-
-
Notifications
You must be signed in to change notification settings - Fork 134
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 push
Use 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-packaging
branch - Tags the
x.y.z
version on themaster
branch and creates a new GitHub Release - Tags the
x.y.z-debian
version on thedeb-packaging
branch - Pushes a next-version commit to master including a patch version bump in Meson and AppData
- Merges the
master
branch 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.changes
Another (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.