Translation(s): English - Français
Contents
- Get yourself a Salsa token
- Download the "stuff" repo
- Download all packages
- Setting-up a local build environment
-
Update a package to the new release
- Knowing what package to update
- Go to package's folder
- Save old requirements
- Download updates from upstream
- Import upstream changes to the debian/OSRELEASE branch
- Add yourself to d/copyright and d/changelog
- Check if there have been any changes in the dependencies
- Check if the version exists with in the last stable
- Add this dependencies
- Sort the files alphabetically
- Update changelog and commit
- Building the package
- Update files with upstream
- Upload package
Get yourself a Salsa token
Log into https://salsa.debian.org/
Click on the top-left icon and go in "Edit profile"
Click on "Access token" on the left.
Otherwise, just follow this link: https://salsa.debian.org/-/profile/personal_access_tokens
Export this (in your ~/.bashrc is best):
export SALSA_TOKEN=YOUR_NEW_TOKEN
Download the "stuff" repo
git clone https://salsa.debian.org/openstack-team/debian/stuff.git cd stuff/salsa-scripts ./list-all-git
Download all packages
Simply run the script:
./clone-all
Setting-up a local build environment
~/.gbp.conf
Usually, the below is nice to have:
[DEFAULT] builder = sbuild --source-only-changes --extra-repository='deb http://incoming.debian.org/debian-buildd buildd-unstable main' --extra-repository='deb http://incoming.debian.org/debian-buildd buildd-experimental main' --extra-repository='deb http://localhost/debian experimental main' --build-dep-resolver=aptitude cleaner = /bin/true ignore-branch = True pristine-tar = False no-create-orig = True [buildpackage] export-dir = ../build-area/ [dch] git-log = --first-parent id-length = 7 meta = True meta-closes = Closes|LP full = True
Note that what's import here is the ignore-branch and pristine-tar, because the team doesn't use a debian/gbp.conf on each package for this.
~/.sbuildrc
$build_arch_all = 1; $build_source = 1; #$run_piuparts = 1; $run_autopkgtest = 1; $autopkgtest_root_args = ''; $autopkgtest_opts = [ '--', 'schroot', '%r-%a-sbuild' ]; #$distribution = 'bullseye'; $distribution = 'experimental'; $run_lintian = 1; # Replace this with your own GPG key: $key_id = 'A0B1A9F3508956130E7A425CD416AD15AC6B43FE'; # Don't sign packages: #$pgp_options = '-us -uc'; $clean_source = 0; # don't remove this, Perl needs it: 1;
Update a package to the new release
Knowing what package to update
Updated every hour, one can read the work there's to be done at this URL:
http://osbpo.debian.net/deb-status/
This is produced by the code available here: https://salsa.debian.org/openstack-team/debian/os-version-checker
Go to package's folder
cd package/package
Save old requirements
Copy files test-requirements.txt and requirements.txt:
cp test-requirements.txt ../ && cp requirements.txt ../
Download updates from upstream
./debian/rules fetch-upstream-remote
Import upstream changes to the debian/OSRELEASE branch
Check last package's tag with git tag and create a var TAG:
export TAG=tag
Check if this package has an update with tne new release OpenStack (meta:series: xena):
git show $TAG
Merge with latest tag:
git merge -X theirs $TAG
Update Debian's changelog and commit:
dch --newversion $TAG-1 -D experimental -m "New upstream release." git commit -a -m "Now packaging $TAG (xena)"
Add yourself to d/copyright and d/changelog
Update files copyright, control, changelog and commit:
nano debian/copyright and add: (c) 2021 Name <email@debian.org> # nano debian/control: add Name <email@debian.org>, # dch -r -m "Added myself in copyright and uploaders." # git commit -a -m "Added myself in copyright and uploaders."
Check if there have been any changes in the dependencies
diff -u ../test-requirements.txt test-requirements.txt diff -u ../requirements.txt requirements.txt
If there is no change, go to Build Package bellow.
Check if the version exists with in the last stable
rmadison <package>
Add this dependencies
In file debian/control after Build-Depends-Indep: and in the Package: python3-* after Depends:
Sort the files alphabetically
wrap-and-sort -bastk
Update changelog and commit
dch -r -m "Added PACKAGE to build-depends." git commit -a -m "Added PACKAGE to build-depends."
If there's more than one dependency change, you can replace the message by:
Updated (build-)depends for this release.
If there's only a version bump (because the version isn't available in Stable):
Added versionned depends for PACKAGE >= 1.2.3
Building the package
./debian/rules gen-orig-xz gbp buildpackage
Update files with upstream
If you encounter the following error:
**error**: aborting due to unexpected upstream changes
Get the filename in the log just above:
**info**: local changes detected, the modified files are: <package>/<file>
Use mc (sudo apt install mc) in parent's folder to copy this file in your branch. In the left window, go to the package archive and find the file, in the right window, go to package's folder to file's location. To copy it, click on F5.
Upload package
git push git push --tags
This should normally trigger the build on the Jenkins matching the branch name. You can follow the build in the #debian-openstack-commits channel.