Release Build Procedure for FRR Maintainers

  1. Rename branch (if needed)
git clone [email protected]:FRRouting/frr.git
cd frr
git checkout dev/5.0
git push origin :refs/heads/dev/5.0
git push origin dev/5.0:refs/heads/stable/5.0
  1. Checkout the new stable branch:
git checkout stable/5.0
  1. Update Changelog for RedHat Package:

    Edit redhat/frr.spec.in and look for the %changelog section:

    • Change last (top of list) entry from %{version} to previous fixed version number, i.e.:

      * Tue Nov  7 2017 Martin Winter <mwinter@opensourcerouting.org> - %{version}
      

      to:

      * Tue Nov  7 2017 Martin Winter <mwinter@opensourcerouting.org> - 3.0.2
      
    • Add new entry to the top of the list with %{version} tag and changelog for version. Make sure to watch the format, i.e. the day is always 2 characters, with the 1st character being a space if the day is one digit.

  2. Update Changelog for Debian Packages:

    Edit debianpkg/changelog.in:

    • Change last (top of list) entry from @VERSION@ to previous fixed version number, i.e.:

      frr (@VERSION@) RELEASED; urgency=medium
      

      to:

      frr (3.0.2) RELEASED; urgency=medium
      
    • Add a new entry to the top of the list with a @VERSION@ tag and changelog for version.

  3. Change main version number:

    • Edit configure.ac and change version in the AC_INIT command
    • Create a new entry with the version as %{version} tag
  4. Test building at least a Red Hat and Ubuntu package (or create a PR to have the CI system test them)

  5. Commit the changes, adding the changelog to the commit message

  6. Create a git tag for the version:

    git tag -a frr-5.0 -m "FRRouting Release 5.0"
    
  7. Push the commit and tag(s) and watch for errors on CI:

    git push
    git push --tags
    
  8. Kick off the Release build plan on the CI system for the correct release

  9. Send a Release Announcement with changes to announce@lists.frrouting.org

  10. Kick off the Snapcraft build plan for the correct release

  11. After CI plans succeed, release on GitHub by going to https://github.com/FRRouting/frr/releases and selecting “Draft a new release”.

  12. Deploy Snapcraft release (after CI system finishes the tests for snapcraft testplan)