Translation(s): English - Fran├žais


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.