-
-
Notifications
You must be signed in to change notification settings - Fork 94
Releasing new versions
This page documents the workflow for releasing new versions of onedriver. This happens infrequently enough and is complex enough (mostly on the Debian side) that I thought it would significantly speed things up in the future if it was documented here.
One special note for outsiders reading things - COPR and OpenSUSE Build Service (also Launchpad) build without network access by default, so we need to vendor all dependencies.
All RPM-based distros currently have packages built via mock/COPR. COPR is preferred over OpenSUSE Build Service because it's easier to use and supports building directly from GitHub. If COPR supported Debian, that would be great. mock
is the actual tool that COPR uses to build packages, so if it builds via mock, it is guaranteed to work on COPR.
# install dev dependencies
sudo dnf install golang gcc webkit2gtk3-devel json-glib-devel pkg-config git \
rsync rpmdevtools rpm-build mock
sudo usermod -aG mock $USER
newgrp mock
# test build process for current RPM distro
make rpm
# test build locally for other RPM distro
make srpm
mock -r /etc/mock/DISTRO_MOCK_FILE.cfg SRPM
- Login to COPR
- Click "rebuild" and use tag as committish.
https://en.opensuse.org/openSUSE:Build_Service_cross_distribution_howto
pbuilder and debhelper can be installed on Fedora via DNF (Fedora is recommended for cross-distribution building).
sudo apt update
sudo apt install golang gcc libwebkit2gtk-4.0-dev libjson-glib-dev pkg-config git \
rsync devscripts debhelper build-essential pbuilder
sudo pbuilder create # may need to add "--distribution focal" on ubuntu
# build for default pbuilder chroot
make deb
# build for other distro
make dsc
sudo pbuilder --build DSC_FILE --distribution DISTRO_NAME
osc is a tool you can use to build packages for any OS
make clean
make dsc
osc build xUbuntu_20.04 x86_64
osc build openSUSE_Tumbleweed x86_64
OpenSUSE build service doesn't seem to have the ability to build on-demand from GitHub. This requires using the osc
CLI tool (https://en.opensuse.org/openSUSE:OSC#Downloading_and_installing), which is basically a worse version of git.
# clean and build debian artifacts
make clean
make dsc
# list files in repo
osc ls home:jstaf/onedriver
# get status of repo (git status)
osc status
# remove old files (from "status")
osc rm FILE
# add new files (need the .debian.tar.xz .orig.tar.gz and the .dsc files)
osc add FILE
# commit changes and trigger a build for all distros
osc commit
# check status in the opensuse dashboard
If builds fail with the error "unresolvable: have choice for ______", see: https://en.opensuse.org/openSUSE:Build_Service_Tips_and_Tricks#Expansion_errors