Source Management Conventions

In order to be available in Scibian packages repositories, all source packages must be maintained into Git repositories hosted in the GitHub Scibian organization.

All source packages Git repositories are maintained using the git-buildpackage utility.

Branches

As an extension of git-buildpackage default conventions, the branches of the source packages Git repositories must respect the following naming conventions, depending on the package type.

Scibian specific native packages

  • scibian/$codename: code and packaging for Scibian releases (ex: scibian/jessie).

The default branch in GitHub repository settings must be set to the latest Scibian release branch.

Debian native packages modified in Scibian

  • master: imported version of the code and packaging from Debian (basis for packages in the latest Scibian release).
  • debian/$codename (optional): code and packaging from specific Debian releases (ex: debian/stretch) if required by previous Scibian releases.
  • scibian/$codename: code and packaging for Scibian releases (ex: scibian/jessie).

The master and debian/* branches must be populated using gbp import-dsc. These branches are not supposed to contain the full history of commits from the Debian maintainers.

The default branch in GitHub repository settings must be set to the latest Scibian release branch.

Scibian specific quilt package

  • upstream : imported version of the code as released by upstream developers.
  • pristine-tar: binary delta file for pristine upstream tarballs.
  • scibian/$codename: code and packaging for Scibian releases (ex: scibian/jessie).

The upstream branch must be populated using gbp import-orig. This branch is not supposed to contain the full history of commits from the upstream developers.

The default branch in GitHub repository settings must be set to the latest Scibian release branch.

Debian quilt package modified in Scibian

  • upstream: imported version of the code as released by upstream developers.
  • pristine-tar: binary delta file for pristine upstream tarballs.
  • master: imported version of the code and packaging from Debian (basis for packages in the latest Scibian release).
  • debian/$codename (optional): code and packaging from specific Debian releases (ex: debian/stretch) if required by previous Scibian releases.
  • scibian/$codename: code and packaging for Scibian releases (ex: scibian/jessie).

The upstream, master and debian/* branches must be populated using gbp import-dsc. These branches are not supposed to contain the full history of commits from the Debian maintainers.

The default branch in GitHub repository settings must be set to the latest Scibian release branch.

General notes

All debian/* et scibian/* branches of the Git repositories must be buildable using pbuilder (or similar). Otherwise, it must considered as a bug.

The debian/* may appear only if the packages of a previous Scibian release relies on Debian packages derived from the list of packages imported in the master branch. The diagram illustrates the case when a debian/* branch is required:

Debian branches use-case

If the packages of all the Scibian releases are based on Debian packages successively imported in the master branch, there is no reason to have a debian/* branch (case A). However, if a previous release of Scibian requires a new Debian package derived of the master branch (eg. in case B, Scibian 8 requires Debian package 1.1-1 after 2.0-1 has been imported in master branch for Scibian 9), a specific debian/* branch must be created to hold that specific Debian version of the package.

Tags

As an extension of git-buildpackage default conventions, the tags of the source packages releases in the Git repositories must respect the following naming conventions:

  • upstream/$version: for upstream release (ex: upstream/1.2.3)
  • debian/$version: for Debian releases (ex: debian/1.2.3-1)
  • scibian/$version: for Scibian releases (ex: scibian/1.2.3-1, scibian/10-0sci9u2, scibian/4.3-3_bpo8+1sci8u1)

For native packages, there is no upstream/* tags.

To create the Scibian releases tag using git-buildpackage, for example in scibian/master branch, run the following command:

gbp buildpackage --git-tag-only \ --git-debian-branch=scibian/master \ --git-debian-tag='scibian/%(version)s' \ --git-debian-tag-msg='%(pkg)s Scibian release %(version)s'

To generate the changelog entries, for example for Scibian 8 in scibian/master branch, run:

gbp dch --distribution=scibian8 --force-distribution \ --debian-branch=scibian/master \ --debian-tag='scibian/%(version)s'