Beman Standard tree tweaks

If we are tweaking the tree hierarchy (check CMake add_subdirectory shorthands - CC: @dsankel ), I also propose to add a requirement / recommendation to the standard relative to the tests directory/. I’m fine with any convention, if it’s a convention.

The full tree from Beman.Optional26 is:

  • include/Beman/Optional26/ - public header interface (as stated in the standard); NO change proposed here.
  • src/Beman/Optional26/ (only prefix src/ is stated in the standard) - I would also add suffix Beman/$Library` to the standard)
  • src/Beman/Optional26/tests (folder for tests) - not mentioned in the standard.
  • examples/ (folder for public examples; it can be optional) - not mentioned in the standard.
  • docs/ (folder for docs; it can be optional) - not mentioned in the standard.
  • scripts/ (folder for scripts; it can be optional) - not mentioned in the standard.
  • papers/ (folder for papers; it can be optional) - not mentioned in the standard.

I would like your input. I think it’s better to have explicit requirements / recommendations for all mentioned aspects.

Looks good to me.

The extra directory might make these tests a bit cumbersome to work with. What you think about having unit tests live next to the source files with filenames matching a convention (e.g. ending in .test.cpp)? Integration tests could live in <root>/tests/.

These look good to me. I think the standard could recommend these directory names.

I’ve seen this directory used in many repositories, but I’ve never understood the criteria for files in here.

I’m fine with your proposal, but I would prefer *.t.cpp suffix for shorter file names). Would that be OK with you?

Yes, I will also add this on my list.

We deliver C++ libraries. Any script in this context is a non production code? So any *.sh would end up in scripts/?

Also, I would like to add this topic on our weekly sync agenda.