On 29 May 2020, at 21:30, Ruediger Pluem <[email protected]> wrote:

> Reviewing our backport process I noticed that in many cases a clean merge via 
> svn merge fails due to conflicts in CHANGES. While
> these are easy to solve it puts IMHO unnecessary extra work on the backport 
> process, both for reviewing and for actually doing the
> backport. How about if we change the way we document changes the following 
> way:
> 
> 1. We create a changes-fragments directory (name to be determined) at the top 
> level.
> 2. For each release we create a subdirectory such that we end up with the 
> following structure:
> 
>   changes-fragments/
>                     2.4.41/
>                     2.4.42/
>                     2.4.43/
>                     2.4.44/
> 
> 3. Each directory contains the changes for each release and each change entry 
> is a single file.
> 4. We have a script that builds our current CHANGES file from the content in 
> changes-fragments directories with the help of
>   a template or at least some sort of header / footer that is static.
> 5. This script can be called either manually and we commit the resulting 
> CHANGES file as we like just like the x-forms commits
>   for documentation plus this script is called by the release scripts from 
> Daniel as part of the preparation of rolling a
>   release.

I’m keen for a simpler version of this that doesn't create additional steps for 
people.

How about something like this:

1. We create a changes-fragments directory (name to be determined) at the top 
level.
2. The changes-fragments directory contains the changes for each release and 
each change entry is a single file.
3. We update the Makefiles so that if any files are found to exist in 
changes-fragments, those files are moved to the top of CHANGES and then 
deleted. For all builds except for backports, this will be a silent noop. We 
would need some kind of token to force it to be a non-noop in release branches.

What this means is - after every backport, which won’t conflict because changes 
is in a unique file as you describe above, the person performs a build to 
verify that the change is ok. That build automatically sorts out the CHANGES 
file, and the attempt to commit the backport updates changes.

To summarise, with the above, people put changes in changes-fragments 
directory, and that’s it. Everything else is automated as part of the normal 
build, no special scripts, no extra steps, nothing for humans to forget.

Regards,
Graham
—

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to