123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- Release Process Workflow
- ########################
- Release a new version of Elgg.
- This is the process the core team follows for making a new Elgg release.
- We have published this information in the spirit of openness,
- and to streamline onboarding of new team members.
- .. contents:: Contents
- :local:
- :depth: 1
- Requirements
- ============
- * SSH access to elgg.org
- * Commit access to http://github.com/Elgg/Elgg
- * Admin access to https://community.elgg.org/
- * Access to `Twitter account`_
- * Access to `G+ page`_
- * Node.js and NPM installed
- * Sphinx installed (``easy_install sphinx && easy_install sphinx-intl``)
- * Transifex client installed (``easy_install transifex-client``)
- * Transifex account with access to Elgg project
- 1. First new stable minor/major release
- =======================================
- Make sure to update the :doc:`/appendix/support` document to include the new minor/major release date and fill in the blanks for the previous release.
- 2. Prepare and tag the release
- ==============================
- Make sure your local git clone is up to date!
- Merge latest commits up from lowest supported branch.
- Visit https://github.com/Elgg/Elgg/compare/new...old and submit the PR
- if there is anything that needs to be merged up.
- Install the prerequisites:
- .. code:: sh
- npm install elgg-conventional-changelog
- easy_install sphinx
- easy_install sphinx-intl
- easy_install transifex-client
- Run the ``release.php`` script. For example, to release 1.9.1:
- .. code:: sh
- git checkout 1.9
- php .scripts/release.php 1.9.1
- This creates a ``release-1.9.1`` branch in your local repo.
- Next, manually browse to the ``/admin/settings/basic`` page and verify it loads. If it does not, a language file from Transifex may have a PHP syntax error. Fix the error and amend your commit with the new file:
- .. code:: sh
- # only necessary if you fixed a language file
- git add .
- git commit --amend
- Next, submit a PR via Github:
- .. code:: sh
- git push your-remote-fork release-1.9.1
- Once approved and merged, tag the release:
- .. code:: sh
- git checkout release-${version}
- git tag -a ${version}
- git push origin ${release}
- Update Milestones on Github
- * Mark release milestones as completed
- * Move unresolved tickets in released milestones to later milestones
- 3. Update the website
- =====================
- The downloads need to point to the new releases.
- Build Package
- -------------
- * ssh to elgg.org
- * Clone https://github.com/Elgg/elgg-scripts
- * Use elgg-scripts/build/build.sh to generate the .zip file.
- Run without arguments to see usage. This also generates the ChangeLog.txt file.
- Example::
- ./build.sh 1.8.5 1.8.5 /var/www/www.elgg.org/download/
- MIT::
- ./build.sh 1.8.5 1.8.5-mit /var/www/www.elgg.org/download/
-
- Update homepage, download, and previous download pages
- ------------------------------------------------------
- * Clone https://github.com/Elgg/old-elgg-website
- * Make changes, commit, push.
-
- * index.php
- * download.php
- * previous.php
- * Pull to live site
- .. code:: sh
- cd /var/www/www.elgg.org && sudo su deploy && git pull
- * flush apc cache (via community admin panel)
- 4. Make the announcement
- ========================
- This should be the very last thing you do.
- * Sign in at https://community.elgg.org/ and compose a blog on with HTML version of CHANGELOG.md.
- * Add tags “release” and “elgg1.x” where x is whatever branch is being released.
- * Tweet from the elgg `Twitter account`_
- * Post from the `G+ page`_
- .. _G+ page: https://plus.google.com/+ElggOrg
- .. _Twitter account: https://twitter.com/elgg
|