-
-
Notifications
You must be signed in to change notification settings - Fork 138
Release Process
Daniel Foré edited this page Oct 21, 2019
·
38 revisions
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>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 pushUse the web UI, point to the master branch, and summarize the changes.
…
- Create a pull request with a new feature or fix
- Ensure the AppData contains relevant release notes in the PR
- PR is reviewed, approved, and merged
- Updates translation files when there are string changes
- Create a release PR based off of the master branch
- 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
- Verify that the PR has a label called
Release(should be auto-set by the PR template)
- PR is reviewed, approved, and merged.
- Updates the Debian changelog in the
deb-packagingbranch - Tags the
x.y.zversion on themasterbranch and creates a new GitHub Release - Tags the
x.y.z-debianversion on thedeb-packagingbranch - Pushes a next-version commit to master including a patch version bump in Meson and AppData
- Merges the
masterbranch into the user-defined stable branch (eg.juno) to enable stable launchpad builds
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)
There are two ways we can go about this. One is using dput for a "push" method:
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.changesAnother (which is what we'll actually do) is to set up daily builds using Launchpad recipes for a non-master git branch. So to summarize:
- Create or fast forward a release branch (aka step 5 of automated release process)
- Use Launchpad automatic git imports
- Use launchpad recipes to "daily" build the release branch in the stable PPA. (But since this branch is not updated daily, it'll only build release commits)
See the wiki sidebar (below on mobile) for other sections, sub-pages, etc.