releases.rst 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. Release Process Workflow
  2. ########################
  3. Release a new version of Elgg.
  4. This is the process the core team follows for making a new Elgg release.
  5. We have published this information in the spirit of openness,
  6. and to streamline onboarding of new team members.
  7. .. contents:: Contents
  8. :local:
  9. :depth: 1
  10. Requirements
  11. ============
  12. * SSH access to elgg.org
  13. * Commit access to http://github.com/Elgg/Elgg
  14. * Admin access to https://community.elgg.org/
  15. * Access to `Twitter account`_
  16. * Access to `G+ page`_
  17. * Node.js and NPM installed
  18. * Sphinx installed (``easy_install sphinx && easy_install sphinx-intl``)
  19. * Transifex client installed (``easy_install transifex-client``)
  20. * Transifex account with access to Elgg project
  21. 1. First new stable minor/major release
  22. =======================================
  23. 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.
  24. 2. Prepare and tag the release
  25. ==============================
  26. Make sure your local git clone is up to date!
  27. Merge latest commits up from lowest supported branch.
  28. Visit https://github.com/Elgg/Elgg/compare/new...old and submit the PR
  29. if there is anything that needs to be merged up.
  30. Install the prerequisites:
  31. .. code:: sh
  32. npm install elgg-conventional-changelog
  33. easy_install sphinx
  34. easy_install sphinx-intl
  35. easy_install transifex-client
  36. Run the ``release.php`` script. For example, to release 1.9.1:
  37. .. code:: sh
  38. git checkout 1.9
  39. php .scripts/release.php 1.9.1
  40. This creates a ``release-1.9.1`` branch in your local repo.
  41. 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:
  42. .. code:: sh
  43. # only necessary if you fixed a language file
  44. git add .
  45. git commit --amend
  46. Next, submit a PR via Github:
  47. .. code:: sh
  48. git push your-remote-fork release-1.9.1
  49. Once approved and merged, tag the release:
  50. .. code:: sh
  51. git checkout release-${version}
  52. git tag -a ${version}
  53. git push origin ${release}
  54. Update Milestones on Github
  55. * Mark release milestones as completed
  56. * Move unresolved tickets in released milestones to later milestones
  57. 3. Update the website
  58. =====================
  59. The downloads need to point to the new releases.
  60. Build Package
  61. -------------
  62. * ssh to elgg.org
  63. * Clone https://github.com/Elgg/elgg-scripts
  64. * Use elgg-scripts/build/build.sh to generate the .zip file.
  65. Run without arguments to see usage. This also generates the ChangeLog.txt file.
  66. Example::
  67. ./build.sh 1.8.5 1.8.5 /var/www/www.elgg.org/download/
  68. MIT::
  69. ./build.sh 1.8.5 1.8.5-mit /var/www/www.elgg.org/download/
  70. Update homepage, download, and previous download pages
  71. ------------------------------------------------------
  72. * Clone https://github.com/Elgg/old-elgg-website
  73. * Make changes, commit, push.
  74. * index.php
  75. * download.php
  76. * previous.php
  77. * Pull to live site
  78. .. code:: sh
  79. cd /var/www/www.elgg.org && sudo su deploy && git pull
  80. * flush apc cache (via community admin panel)
  81. 4. Make the announcement
  82. ========================
  83. This should be the very last thing you do.
  84. * Sign in at https://community.elgg.org/ and compose a blog on with HTML version of CHANGELOG.md.
  85. * Add tags “release” and “elgg1.x” where x is whatever branch is being released.
  86. * Tweet from the elgg `Twitter account`_
  87. * Post from the `G+ page`_
  88. .. _G+ page: https://plus.google.com/+ElggOrg
  89. .. _Twitter account: https://twitter.com/elgg