Skip to content

Preparing a release

spuds edited this page Feb 16, 2015 · 1 revision

[DEVELOPER DOCUMENTATION](Tech Home) > [RELEASE](Prepairing a release)

Prepare a release!

ElkArte uses the release system provided by github.

A few days before the release start a draft of the release announcement.
In order to have a formatted result in the news section of the admin panel, remember to use html in the text of the release announcement.
Each release has at least two attachments: a zip and a tar.gz version of the install package.

This checklist is intended to be used as a template for the preparation of any release.

Before the release

  • Do a fresh clone of the repository
  • generate detailed-version.js:
    • run generate_detailed-version.php from the root directory
    • move the newly generated detailed-version.js out of the package directory
    • delete generate_detailed-version.php
  • Verify all the files changed during the preparation of the patch have the correct version number. The following git command can be used to have a list of all the files changed between two branched.
git log --name-only --pretty=oneline --full-index master..patch_1-0-x | grep -vE '^[0-9a-f]{40} ' | sort | uniq
  • commit detailed-version.js to gh-pages:
    • run generate_detailed-version.php from the root directory
    • move the newly generated detailed-version.js out of the package directory
    • delete generate_detailed-version.php
    • checkout the gh-pages branch (fetch the repository if necessary)
    • create a new branch
    • replace the file detailed-version.js with the one just generated
    • commit the changes
    • push online and send a PR to the ElkArte repository
  • Write a draft of the release announcement. It should consist of:
    • a general description of the release
    • a release notes document including the major changes since the previous version (for development versions like alpha, beta and RC is the previous dev version, for final versions is the previous stable version8
    • a known issues document listing the major issues affecting the release (i.e. bugs not critical enough to be blocker, but potentially annoying)

Packages creation check list:

  • Do a fresh clone of the repository
  • From the install directory, move the following files to the base directory:
    • Settings.php
    • Settings_bak.php
    • install.php
    • db_last_error.php
    • install_1-0_mysql.sql
    • install_1-0_postgresql.sql
  • remove the following files and directories:
    • .git
    • .gitattributes
    • .gitignore
    • .scrutinizer.yml
    • .travis.yml
    • CONTRIBUTING.md
    • DCO.txt
    • phpdoc.yml
    • README.md
    • docs
    • install
    • tests
  • create a package with the remaining files

Complete the release

  • Merge the pull request for the detailed-version.js update
  • Create a new release at github using the announcement previously drafted, and attach the packed files
  • ...
  • Profit!!!

HOME > TECH GUIDES

Architecture

Functions and Variables

  • About $user_info variable
  • About the createList() function.
  • About [Template Layers](Template layers).
  • About [is_activated](is activated) values.

Customization

  • [Create a theme](Make a new theme)
  • [Create an Addon](Create an Addon)

GitHub

Clone this wiki locally