Skip to content

Conversation

maiste
Copy link
Collaborator

@maiste maiste commented Sep 16, 2025

This PR is based on top of the #12440. It must not be merged until the other PR is merged. The PR updates the structure and replaces it with three categories for the Changelog (added, changed and, fixed). It also updates the CONTRIBUTING.md with an explanation on how it works.

This PR is the first part of #12304. It will help to generate the changelog in automatically and simplify the release process.

(To be review, you should only take the last three commits into account)

@maiste maiste added docs Documentation improvements chore Something that just needs to be done. labels Sep 16, 2025
@maiste maiste requested review from Alizter and shonfeder September 16, 2025 08:43
@maiste maiste force-pushed the chore/rewrite-changelog-structure branch from c8eafc4 to ccc22be Compare September 26, 2025 09:43
@maiste maiste marked this pull request as ready for review September 26, 2025 09:43
@maiste maiste force-pushed the chore/rewrite-changelog-structure branch 2 times, most recently from d3c6cb5 to 27ee3bc Compare September 29, 2025 14:54
@maiste
Copy link
Collaborator Author

maiste commented Sep 29, 2025

@Alizter and @shonfeder I have rebased the PR on the main branch with the CONTRIBUTING.md change. It should be good to merge this one to make sure the new addition will stick to the new structure.

CONTRIBUTING.md Outdated
In Dune, the Changelog is in `CHANGES.md`. As they are many contributions at
the same time and to prevent an infinite cycle of rebase, the `CHANGES.md` file
is only updated when releasing Dune. To keep track of the changes, they must be
recorded inside `doc/changes/`. The name of the file is `<PR number>.md`.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it actually necessary that the file just be numbered? Can it have a descriptive name too/instead?

Copy link
Collaborator Author

@maiste maiste Oct 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As we only append the files in CHANGES.md and they should be reviewed before being merged into main, it is not necessary to have a descriptive name. Using the number of the PR makes it easier to retrieve when doing patch release (where we want to target small changes).

`added`, `changed`, `fixed`, where:
- `added` records every new feature or behaviour inside of Dune
- `changed` records a difference of behaviour with the previous version
- `fixed` records any change that restores the behaviour as expected
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

An explanation of the format, with an example, would also be helpful here (including the conventions for referencing the PR and author).

How are breaking changes indicated?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think we specify the breaking changes, as the SemVer convention is supposed to make this very clear by increasing the major version number.

Even if it is not entirely true (as we have seen with the formatting), dune is "not supposed" to introduce breaking changes without changing the lang dune version.

However, I would be happy to add a convention for such cases. Apart from a BREAKING CHANGE in front of the entry, I don't see anything else. Would you have any suggestion here?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You're correct that breaking changes are uncommon in dune, in that we do our best to avoid them. Since those cases are rare, I don't think it makes sense to add special support for it. When they do happen we can manually edit the changelog to highlight the severity.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I pushed a fix with a breaking change part before seeing your comment. Let me know if the wording is not emphasizing enough the exceptional aspect of breaking change. If it does not work, I can remove it.

@maiste maiste force-pushed the chore/rewrite-changelog-structure branch from 27ee3bc to ff76db1 Compare October 3, 2025 09:49
@maiste
Copy link
Collaborator Author

maiste commented Oct 3, 2025

Thanks for the review @shonfeder! I have applied your suggestions and reworked the part about the format. I added a paragraph about BREAKING CHANGE. Does it work for you?

Copy link
Collaborator

@Alizter Alizter left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me. We will need to coordinate this with other PRs when merging.

@maiste
Copy link
Collaborator Author

maiste commented Oct 3, 2025

Indeed! I expect a period where we will have to manually move the markdown files until the new structure is fully adopted.

Signed-off-by: Etienne Marais <[email protected]>
@maiste maiste force-pushed the chore/rewrite-changelog-structure branch from ff76db1 to 6ff6b56 Compare October 7, 2025 06:49
@maiste maiste force-pushed the chore/rewrite-changelog-structure branch from 6ff6b56 to 04bdb1d Compare October 7, 2025 06:52
@maiste maiste merged commit 2702fd2 into ocaml:main Oct 7, 2025
25 checks passed
@maiste maiste deleted the chore/rewrite-changelog-structure branch October 7, 2025 08:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
chore Something that just needs to be done. docs Documentation improvements
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants