]>
Commit | Line | Data |
---|---|---|
20e9d2cc MW |
1 | Release Build Procedure for FRR maintainers |
2 | ========================================================= | |
3 | ||
5931e259 | 4 | 1. Rename branch (if needed) |
20e9d2cc MW |
5 | |
6 | .. code-block:: shell | |
7 | ||
5931e259 QY |
8 | git clone git@github.com:FRRouting/frr.git |
9 | cd frr | |
10 | git checkout dev/5.0 | |
11 | git push origin :refs/heads/dev/5.0 | |
12 | git push origin dev/5.0:refs/heads/stable/5.0 | |
20e9d2cc | 13 | |
5931e259 | 14 | 2. Checkout the new stable branch: |
20e9d2cc MW |
15 | |
16 | .. code-block:: shell | |
17 | ||
5931e259 | 18 | git checkout stable/5.0 |
20e9d2cc | 19 | |
5931e259 | 20 | 3. Update Changelog for RedHat Package: |
20e9d2cc | 21 | |
5931e259 | 22 | Edit :file:`redhat/frr.spec.in` and look for the ``%changelog`` section: |
20e9d2cc | 23 | |
5931e259 QY |
24 | - Change last (top of list) entry from ``%{version}`` to previous fixed |
25 | version number, i.e.:: | |
20e9d2cc | 26 | |
5931e259 | 27 | * Tue Nov 7 2017 Martin Winter <mwinter@opensourcerouting.org> - %{version} |
20e9d2cc | 28 | |
5931e259 | 29 | to:: |
20e9d2cc | 30 | |
5931e259 | 31 | * Tue Nov 7 2017 Martin Winter <mwinter@opensourcerouting.org> - 3.0.2 |
20e9d2cc | 32 | |
5931e259 QY |
33 | - Add new entry to the top of the list with ``%{version}`` tag and changelog |
34 | for version. | |
35 | Make sure to watch the format, i.e. the day is always 2 characters, with | |
36 | the 1st character being a space if the day is one digit. | |
20e9d2cc | 37 | |
5931e259 | 38 | 4. Update Changelog for Debian Packages: |
20e9d2cc | 39 | |
4c7dfae0 | 40 | Edit :file:`debian/changelog-auto.in`: |
20e9d2cc | 41 | |
5931e259 QY |
42 | - Change last (top of list) entry from ``@VERSION@`` to previous fixed |
43 | version number, i.e.:: | |
20e9d2cc | 44 | |
5931e259 | 45 | frr (@VERSION@) RELEASED; urgency=medium |
20e9d2cc | 46 | |
5931e259 | 47 | to:: |
20e9d2cc | 48 | |
5931e259 | 49 | frr (3.0.2) RELEASED; urgency=medium |
20e9d2cc | 50 | |
5931e259 QY |
51 | - Add a new entry to the top of the list with a ``@VERSION@`` tag and |
52 | changelog for version. | |
20e9d2cc | 53 | |
5931e259 | 54 | 5. Change main version number: |
20e9d2cc | 55 | |
5931e259 QY |
56 | - Edit :file:`configure.ac` and change version in the ``AC_INIT`` command |
57 | - Create a new entry with the version as ``%{version}`` tag | |
20e9d2cc | 58 | |
5931e259 QY |
59 | 6. Test building at least a Red Hat and Ubuntu package (or create a PR to have |
60 | the CI system test them) | |
20e9d2cc | 61 | |
5931e259 | 62 | 7. Commit the changes, adding the changelog to the commit message |
20e9d2cc | 63 | |
5931e259 | 64 | 8. Create a git tag for the version: |
20e9d2cc | 65 | |
5931e259 | 66 | .. code-block:: shell |
20e9d2cc | 67 | |
5931e259 | 68 | git tag -a frr-5.0 -m "FRRouting Release 5.0" |
20e9d2cc | 69 | |
5931e259 | 70 | 9. Push the commit and tag(s) and watch for errors on CI: |
20e9d2cc | 71 | |
5931e259 | 72 | .. code-block:: shell |
20e9d2cc | 73 | |
5931e259 QY |
74 | git push |
75 | git push --tags | |
20e9d2cc | 76 | |
5931e259 | 77 | 10. Kick off the Release build plan on the CI system for the correct release |
20e9d2cc | 78 | |
5931e259 QY |
79 | 11. Send a Release Announcement with changes to |
80 | ``announce@lists.frrouting.org`` | |
20e9d2cc | 81 | |
5931e259 | 82 | 12. Kick off the Snapcraft build plan for the correct release |
20e9d2cc | 83 | |
5931e259 QY |
84 | 13. After CI plans succeed, release on GitHub by going to |
85 | https://github.com/FRRouting/frr/releases and selecting "Draft a new | |
86 | release". | |
20e9d2cc | 87 | |
5931e259 QY |
88 | 14. Deploy Snapcraft release (after CI system finishes the tests for snapcraft |
89 | testplan) |