<div dir="ltr">I just finished the tutorial and playing with the basics of build2,<div>still a lot to do (build2 is quite complex! at least to understand well).</div><div><br></div><div>Anyway here are my notes, in case some improvements can be done on the tutorial or</div><div>on build2 itself:</div><div><br></div><div>1. Sections should be numbered so that:<br></div><div>    - we can easily refer to them in discussions;</div><div>    - it is easy to resume when you paused somewhere in (it's a long tutorial);</div><div>    - the different subjects we need to learn are clearly spottable;</div><div><br></div><div>2. It is not clear that the quickly-made manifest file should be in the sources directory,</div><div>    not in the build directory in the configuration directory.</div><div>    I failed to understand that and lost a lot of time re-doing the operations of this part</div><div>    until I tried with the manifest in the sources.</div><div>    It might be obvious, but when first reading it seemed the manifest was only needed</div><div>    in the configuration directory because we were acting "like if" there is a real package</div><div>    for the purpose of the tutorial. Not sure if everybody would have had the same confusion.</div><div><br></div><div>3. When providing paths, it is not clear when or if a complete/cannonical path is necessary or not.</div><div>    When I tried relative paths it seemed to work all the time, but from the tutorial text it's</div><div>    not clear if it will cause problems later to do so.</div><div><br></div><div>4. The quotted syntax seem flexible, but in the same time quite complex for cli.</div><div>    Not sure what to think yet about that.</div><div><br></div><div>5. When doing some of the cleaning commands, I get "permission denied" (Windows 10) issues that I'm not</div><div>    sure where they come from. Usually it's because something is locking the directory or one of it's file,</div><div>    but here when deleting by hand I have no problem so it's not that.</div><div><br></div><div><br></div><div>6. This line: "import libs = libhello%lib{hello}" from the buildfile</div><div>    is still obscure to me for now. I don't understand the part before the % and why "hello" have to be</div><div>    named here.</div><div>    I didn't try yet to look into the rest of the doc, this feedback is from reading the tutorial only</div><div>    (and sometime looking at help instructions).</div><div><br></div><div>7. I think it would be useful to have a last part at the end of the tutorial that</div><div>    reminds things like this:</div><div>    > While some of this might not be crystal clear (like why do we have bootstrap.build and root.build), I am sure you at least have a fuzzy idea of what's going on. And that's enough for what we are after here. Completely explaining what's going on here and, more importantly, why it's going this way is for another time and place (the build2 build system manual).</div><div><br></div><div>    That was in the middle already but a reminder at the end would be useful.</div><div>    And a link to the build system manual would then be part of a nice reading flow.</div><div><br></div><div>8. What I would like to know additionally in a tutorial like this:</div><div>  - how to share the part of the config files that are common to my projects;</div><div>  - just a small example of installing hello and it's dependencies in a separate directory;</div><div><br></div><div>9. I tried to add another project manually from memory, reached some errors but so far the reports were clear enough (although a bit too compact to my taste).</div><div>However I hit one error that is weird:</div><div><br></div><div>>>>>>>>>>>>>>>>>>>>>></div><div>..\kikoo\kikoo.cpp:13:3: error: {}-imbalance detected</div><div>  info: while parsing ..\kikoo\mxx{kikoo}@kikoo-0.1.0\</div><div>  info: while applying rule cxx.compile to update kikoo-0.1.0\bmia{kikoo}</div><div>  info: while applying rule cxx.link to update kikoo-0.1.0\liba{kikoo}</div><div>  info: while applying rule bin.lib to update kikoo-0.1.0\lib{kikoo}</div><div>  info: while applying rule alias to update dir{kikoo-0.1.0\}</div><div>..\kikoo\kikoo.cpp:13:3: error: {}-imbalance detected</div><div>  info: while parsing ..\kikoo\mxx{kikoo}@kikoo-0.1.0\</div><div>  info: while applying rule cxx.compile to update kikoo-0.1.0\bmis{kikoo}</div><div>  info: while applying rule cxx.link to update kikoo-0.1.0\libs{kikoo}</div><div>  info: while applying rule bin.lib to update kikoo-0.1.0\lib{kikoo}</div><div>  info: while applying rule alias to update dir{kikoo-0.1.0\}</div><div>info: failed to update dir{kikoo-0.1.0\}</div><div>>>>>>>>>>>>>>>>>>>>>>>></div><div><br></div><div><br></div><div>The first issue is that it appears twice but not all the time.</div><div>The second is that the error message is not clear. I now understand</div><div>that I forgot some ';' in module-specific lines of my file (not used to it yet)</div><div>but I suspect the error to be from build2 and not from cl (which is the compiler that I used).</div><div>If it is then it's their problem, but if it's not then this will be problematic.</div><div>The compilers already have a hard time figuring out how to report errors in a useful not-confusing</div><div>way, it would be good to use their reports instead of new ones. Unfortunately I don't see</div><div>a good solution to this other than use parts of a compiler to do the parsing.</div><div><br></div><div> </div></div>