[build2] Feature Requestion: "Hard-Reset" All Configuration Directories

Klaim - Joël Lamotte mjklaim at gmail.com
Mon Nov 26 14:07:42 UTC 2018

On Mon, 26 Nov 2018 at 13:45, Boris Kolpackov <boris at codesynthesis.com> wrote:
> > > bdep config remove default
> > error: no configurations specified
> > > bdep config remove 1
> > error: no configurations specified
> > > bdep config remove E:\Projects\build2-libs\build-modules\
> > error: no configurations specified
> > > bdep config remove "E:\Projects\build2-libs\build-modules\"
> > error: no configurations specified
> Why not try:
>   bdep help config
> We go to great pains to write decent (IMO) documentation and
> it is really demotivating so see the users go to great pains
> (like trying their luck with a bunch of commands or sending
> questions to the mailing list) to avoid spending a couple of
> minutes reading the fine manual.

Sorry about that.
I did read the manual at the time and misunderstood that I need to
specify " cfg-dir".
Squinting, I can see how it should be  "-c cfg-dir" or "--config
cfg-dir". I probably misread cfg-spec as cfg-dir.
Which makes sense, so it's just that I got it wrong.
Although the parameters specification are precise, it's not trivial
for a human to always get these right (in particular the first time).

I'm saying the following as a game designer, (visual) tool designer
and relying on xp and research on "design" in general ("for humans"):
In general, most user will get these details wrongs anyway, regularly,
in particular at the beginning.
You can't help it, and that's normal. It's the main reason a lot of
tools add guidance messages when parameters/code are wrong (because
you have a context).
Users read manuals only when they have problems (from my xp) and there
is still potential for misunderstanding for a very wide variety of

I don't think you should worry over that as long as there is a
complete documentation (as it is here), "how to" tutorials and chat
rooms with some experts will help with the rest.
Though I understand (by xp) the frustration. I think even if us users
makes extra efforts, we will get some things wrong anyway, sometimes.
If it's a big concern, make the tool be as much as a guide as possible
(I think you already started that).
It's a complex piece of software with a lot of potential ways to get
it wrong, so it would be worth it. Though it might not be necessarily
the focus right now.

If that can help: git is a good example of a similar tool I got wrong
all the time for several first months, or when I try something I
didn't do before.
I get help from more advanced git users when it's too complicated, as
the manual rarely helps me finding a solution.
Now I'm not an expert with git, but I'm not a beginner either (I'm at
ease with "git rebase -i" for example), so it takes time.

> > Also, I understand that deleting the configuration directories makes
> > me lose the specific config I setup there, but I'm totally fine with
> > that [...]
> Others might not be, thought. Generally, we don't automatically remove
> files that may have user-made changes (like config.build).


> What we could probably do is provide something like 'bdep config reset'
> (along with the --all option) which will remove everything (packages,
> bpkg database, etc) except for the build2 configuration (essentially
> leaving just the build2/config.build file) and then re-initialize an
> empty bpkg database. After this you should be able to do 'bdep sync'
> to re-initialize your project (i.e., fetch dependencies, etc).
> One problem with this is that if you have initialized multiple projects
> in the same configuration, then you will have to manually sync each of
> them (and in the correct order, if they depend on each other). We could
> probably do sync automatically as part of the reset to help with that.
> Would something like this work for you?

Yes, I think it would work.
At a minimum it should be fine for most of the experiments I'm making.

Thanks for your time.

A. Joël Lamotte

More information about the users mailing list