(Initial draft) |
(More content) |
||
Line 2: | Line 2: | ||
== Update {{filename|autoqa.spec}} == | == Update {{filename|autoqa.spec}} == | ||
Once the decision has been made to release a new version of autoqa, the first step is to update the rpm {{filename|spec}} file | Once the decision has been made to release a new version of autoqa, the first step is to update the rpm {{filename|spec}} file with the newer version. Ideally, | ||
# Checkout autoqa | # Checkout the ''master'' branch of autoqa <pre>git clone ssh://git.fedorahosted.org/git/autoqa.git && cd autoqa</pre> | ||
# | # Edit {{filename|autoqa.spec}} by incrementing the <code>Version</code> and updating the <code>%changelog</code> | ||
# Locally commit the changes <pre>git commit autoqa.spec</pre> | |||
# | # Push your changes to the remote git repository <pre> git push ssh://git.fedorahosted.org/git/autoqa.git master</pre> | ||
== | == Cherry-pick and tag == | ||
Next, we'll cherry-pick the {{filename|autoqa.spec}} change into the ''stable'' git branch and tag the release. | |||
# Change to the ''stable'' branch <pre>git checkout -b stable origin/stable || git checkout stable</pre> | |||
# Cherry pick the updated {{filename|autoqa.spec}} change <pre>git cherry-pick origin/master</pre> | |||
# Tag the release <pre>git tag vX.Y.X-1,2,3 stable</pre> | |||
# Push your changes <pre>git push --tags ssh://git.fedorahosted.org/git/autoqa.git stable</pre> | |||
== Upload tarball == | == Upload tarball == | ||
Like many projects, the appropriate method to release a new version is by tarball. | Like many projects, the appropriate method to release a new version is by tarball. Once you have tagged the release, upload a new tarball using the following commands. | ||
<pre> make upload </pre> | # Change to the ''stable'' branch <pre>git checkout -b stable origin/stable || git checkout stable</pre> | ||
# Upload a new release tarball <pre> make upload </pre> | |||
== Build == | == Build RPM == | ||
With the tarball uploaded, it's time to package the new release for all currently supported Fedora releases. This includes {{FedoraVersion|long|current}}, {{FedoraVersion|long|previous}} and, depending on the time of release, potentially {{FedoraVersion|long|previous2}}. | |||
# Change to the ''stable'' branch <pre>git checkout -b stable origin/stable || git checkout stable</pre> | |||
# Install build dependencies (requires ''root'' privileges) <pre>yum install $(grep ^BuildRequires: autoqa.spec | awk '{print $2}')</pre> | |||
# Build packages from the current ''stable'' branch <pre> make rpms </pre> | |||
== Update repositories == | |||
Traditionally, this step would be handled by running the {{command|koji build --tag dist-f{{FedoraVersionNumber|current}}-updates path/to/src.rpm}} command. However, since {{package|autoqa}} is not yet packaged and available in Fedora repositories, [[Install_and_configure_AutoQA|a custom package repository]] is used to deliver updates. This section describes building packages for different releases and updating the custom package repositories. | |||
# Prepare a mock chroot for the desired release. In this example, we'll build for {{FedoraVersion|long|previous}} on x86_64 {{#tag:pre| mock -r fedora-{{FedoraVersionNumber|previous}}-x86_64 --init }} | |||
# Using the {{filename|src.rpm}} previously created in step [[#Build_RPM]], build a new package for {{FedoraVersion|long|previous}} {{#tag:pre| mock -r fedora-{{FedoraVersionNumber|previous}}-x86_64 --rebuild path/to/autoqa-X.Y.Z-1.2.3.src.rpm }} | |||
# Repeat this process for all desired releases. | |||
{{admon/note|Building for EPEL-5?|Due to changes in the [[Features/StrongerHashes|filedigest algorithm]], extra care is required when building packages for [[EPEL|EPEL-5]]. Be sure to set the <code>_source_filedigest_algorithm</code> and <code>_binary_filedigest_algorithm</code> for any packages used when building for EPEL-5. This includes the package supplied by the <code>--rebuild</code> argument. Refer to the example below for guidance. | |||
<pre>mock -r epel-5-x86_64 \ | |||
--define '_source_filedigest_algorithm 1' \ | |||
--define '_binary_filedigest_algorithm 1' \ | |||
--rebuild path/to/autoqa-X.Y.Z-1.2.3.src.rpm</pre> | |||
}} | |||
== Deploy == | == Deploy == | ||
FIXME | |||
[[Category:AutoQA]] | [[Category:AutoQA]] |
Revision as of 20:15, 28 June 2011
This page describes the process for tagging, building and deploying a new version of autoqa. This page assumes a basic understanding of rpm spec
file syntax and commands such as git
, mock
and yum
.
Update autoqa.spec
Once the decision has been made to release a new version of autoqa, the first step is to update the rpm spec
file with the newer version. Ideally,
- Checkout the master branch of autoqa
git clone ssh://git.fedorahosted.org/git/autoqa.git && cd autoqa
- Edit
autoqa.spec
by incrementing theVersion
and updating the%changelog
- Locally commit the changes
git commit autoqa.spec
- Push your changes to the remote git repository
git push ssh://git.fedorahosted.org/git/autoqa.git master
Cherry-pick and tag
Next, we'll cherry-pick the autoqa.spec
change into the stable git branch and tag the release.
- Change to the stable branch
git checkout -b stable origin/stable || git checkout stable
- Cherry pick the updated
autoqa.spec
changegit cherry-pick origin/master
- Tag the release
git tag vX.Y.X-1,2,3 stable
- Push your changes
git push --tags ssh://git.fedorahosted.org/git/autoqa.git stable
Upload tarball
Like many projects, the appropriate method to release a new version is by tarball. Once you have tagged the release, upload a new tarball using the following commands.
- Change to the stable branch
git checkout -b stable origin/stable || git checkout stable
- Upload a new release tarball
make upload
Build RPM
With the tarball uploaded, it's time to package the new release for all currently supported Fedora releases. This includes Fedora 41, Fedora 40 and, depending on the time of release, potentially Fedora 39.
- Change to the stable branch
git checkout -b stable origin/stable || git checkout stable
- Install build dependencies (requires root privileges)
yum install $(grep ^BuildRequires: autoqa.spec | awk '{print $2}')
- Build packages from the current stable branch
make rpms
Update repositories
Traditionally, this step would be handled by running the koji build --tag dist-f41-updates path/to/src.rpm
command. However, since autoqa
is not yet packaged and available in Fedora repositories, a custom package repository is used to deliver updates. This section describes building packages for different releases and updating the custom package repositories.
- Prepare a mock chroot for the desired release. In this example, we'll build for Fedora 40 on x86_64
mock -r fedora-40-x86_64 --init
- Using the
src.rpm
previously created in step #Build_RPM, build a new package for Fedora 40mock -r fedora-40-x86_64 --rebuild path/to/autoqa-X.Y.Z-1.2.3.src.rpm
- Repeat this process for all desired releases.
Deploy
FIXME