Release Process for Linaro newlib

This process describes how to produce a source tarball from git.


  1. Check that we are up to date with the latest trunk from upstream.

Prepare Sources

  1. Check out a fresh source tree:
    git clone ssh://
    cd newlib/newlib
    git checkout linaro_newlib-branch
  2. Add a ChangeLog entry to the start of ChangeLog.linaro:

    20XX-XX-XX  First Last  <email@address>
            Linaro newlib 2.X.X-20XX.XX[-X] released.
            * configure across the tree: Update PACKAGE_VERSION and PACKAGE_STRING.
    Note on release numbers: The main release for a given month's milestone is called 2.X.X-20XX.XX (e.g. 2.0.0-2013.06). Subsequent respins (if necessary) carry an additional respin number, starting at 1 (e.g. 2.0.0-2013.06-1).
  3. Edit configure across the tree:

    find -name configure -exec sed -i -e "s/PACKAGE_VERSION='2.0.0'/PACKAGE_VERSION='2.0.0-2013.06'/" {} \;
    find -name configure -exec sed -i -e "s/PACKAGE_STRING='newlib 2.0.0'/PACKAGE_STRING='newlib 2.0.0-2013.06'/" {} \;
  4. Check in the changes, and tag them
    git commit -a
    git tag -a linaro_newlib-2_X_X-20XX_XX[-X]_release
    git push --tags

Create the tarballs

  1. Export the sources
    cd ..
    git archive --format=tar --prefix=newlib-linaro-2.X.X-20XX.XX-X/ HEAD | xz >../newlib-linaro-2.X.X-20XX.XX-X.tar.xz

Verify the release

  1. Build and test the release sources as thoroughly as possible.
    • Build newlib and run the testsuite natively on ARM

Publishing the release

See WorkingGroups/ToolChain/PublishingARelease.

WorkingGroups/ToolChain/NewlibReleaseProcess (last modified 2015-01-05 14:03:41)