build: Revise CHANGES and UPGRADE.txt handling.

This changes the way that we handle adding changes to CHANGES and
UPGRADE.txt. The reason for this is because whenever someone needed to
make a change to one of these files and someone else had already done
so, you would run into merge conflicts. With this new setup, there will
never be merge conflicts since all changes will be documented in the
doc/<file>-staging directory. The release script is now responsible for
merging all of these changes into the appropriate files.

There is a special format that these files have to follow in order to be
parsed. The files do not need to have a meaningful name, but it is
strongly recommended. For example, if you made a change to pjsip, you
may have something like this "res_pjsip_relative_title", where
"relative_title" is something more descriptive than that. Inside each
file, you will need a subject line for your change, followed by a
description. There can be multiple subject lines. The file may look
something like this:

   Subject: res_pjsip
   Subject: Core

   A description that explains the changes made and why. The release
   script will handle the bulleting and section separators!

   You can still separate with new lines within your
   description.

The headers ("Subject" and "Master-Only") are case sensative, but the
value for "Master-Only" ("true" or "True") is not.

For more information, check out the wiki page:
https://wiki.asterisk.org/wiki/display/AST/CHANGES+and+UPGRADE.txt

ASTERISK-28111 #close

Change-Id: I19cf4b569321c88155a65e9b0b80f6d58075dd47
This commit is contained in:
Ben Ford
2019-04-01 14:57:14 -05:00
parent 6f5a6072ab
commit ef404fef91
14 changed files with 2605 additions and 2806 deletions

View File

@@ -5,23 +5,27 @@ used by the release script to update the UPGRADE.txt file automatically. The
only time that it is necessary to add something to the UPGRADE-staging directory
is if you are making a breaking change to an existing feature in Asterisk. The
file does not need to have a meaningful name, but it probably should. If there
are multiple items that need documenting, each can be separated with a subject
line, which should always start with "Subject:", followed by the subject of the
change. This is case sensitive! For example, if you are making a change to PJSIP,
then you might add the file "res_pjsip_breaking_change" to this directory, with
a short description of what it does. If you are adding multiple entries, they
should be done in the same commit to avoid merge conflicts. Here's an example:
are multiple items that need documenting, you can add multiple files, each with
their own description. If the message is going to be the same for each subject,
then you can add multiple subject headers to one file. The "Subject: xxx" line
is case sensitive! For example, if you are making a change to PJSIP, then you
might add the file "res_pjsip_my_cool_feature" to this directory, with a short
description of what it does. If you are adding multiple entries, they should be
done in the same commit to avoid merge conflicts. Here's an example:
> Subject: res_pjsip
> Subject: Core
>
> Here's a pretty good description of what I changed that explains exactly what
> it does and why it breaks things (and why they needed to be broken).
> Here's a pretty good description of my new feature that explains exactly what
> it does and how to use it.
Here's a master-only example:
> Subject: res_ari
> Master-Only: True
>
> Subject: core
> Master-Only: true
>
> Here's another description of something else I added that is a big enough
> change to warrant another entry in the UPDATE.txt file.
> This change will only go into the master branch. The "Master-Only" header
> will never be in a change not in master.
Note that the second subject has another header: "Master-Only". Changes that go
into the master branch and ONLY the master branch are the only ones that should