Skip to content
This repository has been archived by the owner on Jul 9, 2020. It is now read-only.

Latest commit

 

History

History
184 lines (132 loc) · 4.36 KB

RELEASE.md

File metadata and controls

184 lines (132 loc) · 4.36 KB

Release standards and procedures

Versioning

Dreditor follows the Semantic Versioning standard.

Given a version number MAJOR.MINOR.PATCH, increment the:

  • MAJOR version when the new release contains incompatible API changes.

    -1.2.5
    +2.0.0
  • MINOR version when the new release adds new functionality in a backwards-compatible manner.

    -1.2.5
    +1.3.0
  • PATCH version when the new release contains backwards-compatible bug fixes.

    -1.2.5
    +1.2.6

Additional suffixes for pre-releases or build numbers may be appended, separated by a dash/hyphen.

Release Process

Examples assume that:

  1. Ensure that you have the latest code and HEAD is clean:

    $ git checkout 1.x
    $ git reset --hard
    $ git pull origin 1.x
  2. Confirm that Dreditor works correctly:

    $ grunt build
    $ grunt test
  3. Increase the version number:

    $ grunt release

    This bumps the PATCH version in package.json. Alternatively:

    • To bump the MINOR version: grunt release:minor
    • To bump the MAJOR version: grunt release:major
    $ git diff
    diff --git a/package.json b/package.json
    index 2432958..1a299ec 100644
    --- a/package.json
    +++ b/package.json
    @@ -5 +5 @@
    -  "version": "1.2.5",
    +  "version": "1.2.6",
  4. Commit the version change:

    $ git add package.json
    $ git commit -m "Dreditor 1.2.6"
  5. Create an annotated tag for the release:

    $ git tag -m 1.2.6 1.2.6
  6. Push the new version commit and tag:

    $ git push origin 1.x --tags
  7. Verify that the new release and all builds appear on the build page.

  8. Test whether the new release installs and works correctly in each browser.

All performed operations up till here can be reverted in case something went wrong.

Publishing releases

Proceed with publishing the newly built extensions.

Examples assume that:

Chrome

  1. Download the packaged Chrome extension from the build page.

  2. Go to https://chrome.google.com/webstore/developer/dashboard

  3. Click the Edit operation link for Dreditor.

  4. Click the Upload Updated Package button + upload the downloaded package.

  5. Click the Publish changes button at the bottom.

Firefox and Safari

  1. Change to your local clone of unicorn-fail/dreditor.org.

  2. Ensure that you have the latest code and HEAD is clean:

    $ git checkout 7.x
    $ git reset --hard
    $ git pull origin 7.x
  3. Download the packaged extension for each browser from the build page and replace the corresponding dreditor.* file in the root directory.

  4. Create a new "release" on https://github.com/unicorn-fail/dreditor/releases for the tag created above and upload the same binary files to that tagged release.

  5. Edit the update.plist file in the root directory to replace the version with the new version.

    $ git diff
    diff --git a/dreditor.safariextz b/dreditor.safariextz
    index 2e8dd2d..ee6524f 100644
    Binary files a/dreditor.safariextz and b/dreditor.safariextz differ
    diff --git a/dreditor.xpi b/dreditor.xpi
    index 742cdf1..0e6542e 100644
    Binary files a/dreditor.xpi and b/dreditor.xpi differ
    diff --git a/update.plist b/update.plist
    index 9d040be..f1b51b5 100644
    --- a/update.plist
    +++ b/update.plist
    @@ -12,5 +12,5 @@
            <key>CFBundleVersion</key>
    -       <string>1.2.5</string>
    +       <string>1.2.6</string>
            <key>CFBundleShortVersionString</key>
    -       <string>1.2.5</string>
    +       <string>1.2.6</string>
            <key>URL</key>
  6. Commit and push the new releases to unicorn-fail/dreditor.org:

    $ git add -u
    $ git commit -m "Dreditor 1.2.6"
    $ git push origin 7.x
  7. Deploy changes on the server:

    $ sudo su
    $ cd /var/www/sites/dreditor.org
    $ git pull