Skip to content

Release Process

Cassidy James Blaede edited this page Sep 27, 2019 · 38 revisions

Currently 😥

Update AppData Release Tag

Create some XML like this:

<release version="1.0.1" date="2019-09-25" urgency="medium">
  <description>
    <ul>
      <li>changelog contents</li>
      <li>More changelog contents</li>
    </ul>
  </description>
</release>

Update Debian Changelog

In the debian branch:

# Create a versioned release, without changing the maintainer, and the first line of the changelog
dch -mv 1.0.1 changelog contents

## Append another list item to the changelog, without changing the maintainer
dch -ma more changelog contents

## Set the release channel/distro, without changing the maintainer
dch -mr bionic

## Commit and Push
git commit -am "Release 1.0.1"
git push

Create a GitHub Release

Use the web UI, point to the master branch, and summarize the changes.

Manually Trigger a Launchpad Build

Ideal ✨🤖✨

Normal Development

  1. Create a pull request with a new feature or fix
  2. Ensure the AppData contains relevant release notes in the PR
  3. PR is reviewed, approved, and merged

Release Time

Human(s) 👩‍💻

  1. Create a release PR
  2. Fill out the PR template:
  • Verify the versioning for the new release (i.e. if it's a x.y.patch or x.minor.z bump)
  • Verify screenshots, AppData, etc.
  • Bump the release date in AppData
  1. PR is reviewed, approved, and merged

CI 🤖

  1. CI updates the Debian changelog in the deb-packaging branch
  2. CI tags the x.y.z version on master, the x.y.z-debian version on deb-packaging, and creates a new GitHub Release
  3. CI pushes a next-version commit to master including a patch version bump in meson and AppData

Automation Notes 📝

Triggering a GitHub Release

https://github.com/danrabbit/release-automation/releases/new?tag=v1.0.1;body=Changelog+contents

(REST API ffr: https://developer.github.com/v3/repos/releases/#create-a-release)

Triggering a Launchpad build

cd /tmp
git clone --single-branch [email protected]:elementary/appcenter
git clone --single-branch --branch deb-packaging [email protected]:elementary/appcenter deb-packaging
mv deb-packaging/debian appcenter/
cd appcenter 
debuild -S -sd
cd ..
dput ppa:elementary-os/stable appcenter_3.1.1_source.changes