Page MenuHomePhabricator

Release Procedure
Updated 163 Days AgoPublic

This aims to be the central place for everything you need to know when your are going to make a efl release. It tries to summarize all the arcane wisdom which was collect over the years. "(Major)" in this document the major release such as 1.17.0 and 1.18.0.

Pre-requisite

Release Procedure (Step #1)

  1. (Major) Send a release cycle proposal.
  2. Make sure that the codebase is in a releasable state. This is not covered here but should be mentioned

Release Procedure (Step #2)

  • Step #2 (1 ~ 6) is done semi-automatically by running a script
./release.sh --prepare [--major]
  1. Adjust version in configure.ac and turn on release mode
  2. Update NEWS file with changes since last release
  3. Commit local release changes
    • Version bump in configure.ac
    • Updated NEWS file
  4. Run make distcheck to get the tarballs
  5. Push changes to the repo
  6. Upload tarballs to e5-web1 /srv/web/download.enlightenment.org/public_html/pre-releases to avoid confusion that it might be a final release
  7. Send 24 hour countdown mail to enlightenment-release(enlightenment-release@lists.sourceforge.net) and enlightenment-devel(enlightenment-devel@lists.sourceforge.net) mailing list

Release Procedure (Step #3)

  • Step #3 (2, 4) are done automatically by running a script
./release.sh --finalise  [--major]
  1. Wait 24+ hours
    • Fix any reported issues, upload new tarballs as necessary
  2. Tag release in git (git tag -a) and push tag (git push --tags)
  3. (Optional) If it is a major release create a stable branch and push it to the repo
  4. Move final tarballs to e5-web1 /srv/web/download.enlightenment.org/public_html/rel and the related subfolder
  5. Update download links on website
  6. Put the final release announcement into phame (including checksums for the tarballs)
  7. Send out final release announcement to release@lists.enlightenment.org which is an aliase for enlightenment-devel, enlightenment-users, enlightenment-intl, enlightenment-release, enlightenment-announce (talk to @raster to get permissions updated if you haven't done a release))
  8. (Optional) Open up the master branch by setting the version to X.X.99 and switching to dev mode
  9. (Optional) Switch stable branch builds on jenkins to new branch (Talk to Stefan if needed)
  10. (Optional) If it is a major release run make doc and upload and unpack the tarball on docs.enlightenment.org
  11. (Optional) Add new EFL VERSION define

Release maintenance

We only support the current release with backports and fixes while developing the next. What does this mean in detail:

  • Once we release a new version the one before will no longer get stable releases (We are sorry for that but without enough manpower we can only handle one release at a given time)
  • We don't have long term releases (Again lack of manpower. Stand up and join if you have an interest and what to do it)
  • An example: we just released 1.9 which means from now on we will now longer provide 1.8.x releases but 1.9.x one instead while developing 1.10. Once that is released we start over again.

Upload Tarballs

To upload tarballs to the enlightenment download page you need to have your developer ssh keys on the correct machines and be in the right groups giving you the needed permissions. Please contact Beber about it.

Given our infrastructure you need a special Proxy setup to upload files

Last Author
stefan_schmidt
Last Edited
Jul 6 2018, 1:55 AM
Projects
None
Subscribers
raster, seoz, beber