# Prefer requirements over recommendations inside the standard?

**URL:** <https://discourse.bemanproject.org/t/prefer-requirements-over-recommendations-inside-the-standard/155>\
**Category:** Beman Website and Docs\
**Created:** [July 25, 2024, 12:34pm UTC](https://discourse.bemanproject.org/t/prefer-requirements-over-recommendations-inside-the-standard/155 "2024-07-25T12:34:25Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![neatudarius](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.bemanproject.org/neatudarius/32/70_2.png) [@neatudarius](https://discourse.bemanproject.org/u/neatudarius)\
**Post date:** [July 25, 2024, 12:34pm UTC](https://discourse.bemanproject.org/t/prefer-requirements-over-recommendations-inside-the-standard/155/1 "2024-07-25T12:34:25Z")

</div>

I noticed we’ve recently added few extra sections to the Beman Standard. I really love the contributions! I think we should discuss again what rules are REQUIREMENTS and what are RECOMMENDATIONS. My feeling is that we should convert some RECOMMENDATIONS to REQUIREMENTS.

I will list few ideas:

- Naming should be enforced for simplifying the usage and even automation for packaging:
  - `[LIBRARY_NAMES] RECOMMENDATION`
  - `[REPOSITORY_NAME] RECOMMENDATION`
  - `[README.TITLE] RECOMMENDATION`

- I expect that the header of each library inside Beman libraries to be similar:
  - `[README.PURPOSE] RECOMMENDATION` - why not always having a purpose?
  - `[README.IMPLEMENTS] RECOMMENDATION` - why not always specify the papers in the same way? If not applicable, please write `Implements: N/A`.

- `[CMAKE.DEFAULT/SKIP_TESTS] RECOMMENDATION` (WIP in [Add CMAKELISTS recommendations by neatudarius · Pull Request #27 · bemanproject/beman · GitHub](https://github.com/beman-project/beman/pull/27)). People seem to agree to be recommendation, but I think it’s essentially to be a requirement for packaging.
- `[FILE.COPYRIGHT] RECOMMENDATION ` / `[CMAKE.AVOID_PASSTHROUGHS] RECOMMENDATION` / `[DIRECTORY.SOURCES] RECOMMENDATION`- why allowing people for inconsistent behaviour here? We already required them (if they import code into Beman) to change their makefile / README/ Files for other aspects. Why not going to requiring all changes? (for libraries built from scratch, I suppose is not a problem to apply any convention).

What’s your opinion here?

---

<div class="post-metadata">

**Author:** ![dsankel](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.bemanproject.org/dsankel/32/5_2.png) [@dsankel](https://discourse.bemanproject.org/u/dsankel)\
**Post date:** [July 26, 2024, 9:53pm UTC](https://discourse.bemanproject.org/t/prefer-requirements-over-recommendations-inside-the-standard/155/2 "2024-07-26T21:53:51Z")

</div>

Recommendations are in place to facilitate the incorporation of libraries built independently of the Beman project where it would be difficult or otherwise tedious for an author to change after the fact. Those complications could be due to corporate requirements (as in licensing) or an existing user base (as in branding).

That being said, some of your concerns still apply. I can’t think of a good reason for someone to not conform to `[CMAKE.SKIP_TESTS]` or `[CMAKE.DEFAULT]`, for example.

---

<div class="post-metadata">

**Author:** ![neatudarius](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.bemanproject.org/neatudarius/32/70_2.png) [@neatudarius](https://discourse.bemanproject.org/u/neatudarius)\
**Post date:** [July 29, 2024, 5:24pm UTC](https://discourse.bemanproject.org/t/prefer-requirements-over-recommendations-inside-the-standard/155/3 "2024-07-29T17:24:26Z")

</div>

> Recommendations are in place to facilitate the incorporation of libraries built independently of the Beman project where it would be difficult or otherwise tedious for an author to change after the fact. Those complications could be due to corporate requirements (as in licensing) or an existing user base (as in branding).

I think we should have a mention that at least for libraries made from scratch inside Beman, all recommendations become requirements. 😃 And that we strongly advice all incoming libraries to apply all recommendations.

> That being said, some of your concerns still apply. I can’t think of a good reason for someone to not conform to `[CMAKE.SKIP_TESTS]` or `[CMAKE.DEFAULT]` , for example.

I would also add to this list few more items, e.g. README.\* - if they are now in Beman, why they cannot write a root MD like other libraries? 😃

---

<div class="post-metadata">

**Author:** ![dsankel](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.bemanproject.org/dsankel/32/5_2.png) [@dsankel](https://discourse.bemanproject.org/u/dsankel)\
**Post date:** [August 1, 2024, 2:10pm UTC](https://discourse.bemanproject.org/t/prefer-requirements-over-recommendations-inside-the-standard/155/4 "2024-08-01T14:10:27Z")

</div>

> [@neatudarius](#):
>
> > That being said, some of your concerns still apply. I can’t think of a good reason for someone to not conform to `[CMAKE.SKIP_TESTS]` or `[CMAKE.DEFAULT]` , for example.
> 
> I would also add to this list few more items, e.g. README.\* - if they are now in Beman, why they cannot write a root MD like other libraries? 😃

It makes sense to require `README.md`, but not necessarily to dictate its contents. I don’t feel strongly about this though so am eager to hear what other people think.

---

<div class="post-metadata">

**Author:** ![neatudarius](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.bemanproject.org/neatudarius/32/70_2.png) [@neatudarius](https://discourse.bemanproject.org/u/neatudarius)\
**Post date:** [July 23, 2025, 11:47pm UTC](https://discourse.bemanproject.org/t/prefer-requirements-over-recommendations-inside-the-standard/155/5 "2025-07-23T23:47:02Z")

</div>


