Workflow for distribution¶
This section of the documentation describes how to MusicDB packages will be created.
The workflows starts with creating a clean source tarball. This archive is the base of all further packages.
Create Release Candidate Branch¶
Packages are created from a release candidate branch.
git checkout -b v8.0.0-rc
Update Version Numbers¶
There is a script that propagates the versions in the VERSION file through the whole project.
cd scripts
./UpdateVersionNumbers.sh
The release date needs to be updated manually.
Also all files in dist/debian
need to be updated manually.
Source Tarball¶
The source tarball is created out of some directories and files of the git repository. It consists of the following files and directories:
./musicdb
./webui
./share
./sql
README.md
LICENSE
setup.py
pyproject.toml
CHANGELOG
The script to create this archive is build.sh src
.
It builds the archive into pkg/musicdb-$version-src.tar.zst
.
The archive extracts into a musicdb-$version-src
directory.
This source archive is then used to create other packages.
The source archive does not include the documentation.
To create a separate documentation package, run build.sh doc
.
It builds the archive into pkg/musicdb-$version-doc.tar.zst
.
The archive extracts into a musicdb-$version-doc
directory.
Arch Linux pacman Package¶
This section describes how to create a package for Arch Linux.
Based on the source package, a pacman
package can be build with the pkg-build.sh
script.
# Create Packages
cd scripts
./build src pkg doc
Fedora rpm Package¶
This section describes how to create a package for Fedora.
# Create Build Environment
sudo dnf install rpmdevtools
rpmdev-setuptree
sudo dnf install python3-devel python3-build /usr/bin/pathfix.py
# Create Packages
cd scripts
./build src rpm
Debian/Ubuntu deb Package¶
This section describes how to create a package for Debian that can also be installed on Ubuntu.
# Create Build Environment
apt install build-essential debmake fakeroot pbuilder debhelper dh-exec
apt install zstd
apt install dh-python python3-all python3-setuptools
# Create Packages
cd scripts
./build src deb