From 3c679f9aaba3d683b79d4edf252c3dc35b73fc85 Mon Sep 17 00:00:00 2001 From: Andrei Stepanov Date: Mar 21 2019 11:11:38 +0000 Subject: Add package_howto.md Signed-off-by: Andrei Stepanov --- diff --git a/package_howto.md b/package_howto.md new file mode 100644 index 0000000..489f171 --- /dev/null +++ b/package_howto.md @@ -0,0 +1,155 @@ +# New release howto + +## Preparation + +Have a GPG key. +Your git knows about your GPG key. +Find the latest released version with: + +```sh +git tag +``` + +Or go to: https://pagure.io/standard-test-roles/releases + +## Upstream release + +Mark git commit with release tag. For example, to make a new release based on +current `master` do: + +```sh +git pull +git tag -s 3.2 -u 9A82842F -m "version 3.2" master +git push origin 3.2 +``` + +Release .tar.gz archive with: + +```sh +GIT_DIR=~/path/to/standard-test-roles/.git/ git archive \ + --format=tar.gz \ + --prefix standard-test-roles-3.2/ \ + -o standard-test-roles-3.2.tar.gz \ + -v 3.2 +``` + +Upload standard-test-roles-3.2.tar.gz to +[pagure](https://pagure.io/standard-test-roles/upload "pagure"). + + + +## Fedora package + +Starting from Fedora 30 STR ships as a module. However, you can have a personal +COPR build as a bare-package. + +### Module build + +Clone dist-git from +[package](https://src.fedoraproject.org/rpms/standard-test-roles/ "package") and +[module](https://src.fedoraproject.org/modules/standard-test-roles/ "module"). + +Change directory to dist-git for package: + +```sh +cd standard-test-roles +fedpkg switch-branch 3.0 +``` + +In the example above `3.0` - is the module stream name. +*Note*: it is OK that stream with name `3.0` has package with version `3.2`. +This is OK until STR version `3.2` provides API compatible with `3.0`. + +Update .spec file: Version, Release, changelog. Use next command: + +```sh +rpmdev-bumpspec \ + --comment='Build with the latest merged PRs.' \ + --userstring='Andrei Stepanov ' \ + standard-test-roles.spec +``` + +Add new .tar.gz release and save changes to dist-git. + +```sh +kinit astepano@FEDORAPROJECT.ORG +fedpkg new-sources standard-test-roles-3.2.tar.gz +git add standard-test-roles.spec sources +git commit -s -m "Sync with upstream release 3.2" +fedpkg push +``` + +Change directory to dist-git for module. +Create a new commit. You cannot send a new module build without a new commit. + +```sh +fedpkg switch-branch 3.0 +git commit --allow-empty -s -m "Pick up STR 3.2" +fedpkg push +``` + +Send module build to MBS. + +```sh +> fedpkg module-build +Submitting the module build... +The builds 3700, 3701, 3702 and 3703 were submitted to the MBS +``` + +Where 3700 3701 3702 3703 - are modules builds for Fedora28, 29, 30, Rawhide + +Check info with: + +```sh +fedpkg module-build-info 3703 +``` + +Using WEB: +[MBS](https://mbs.fedoraproject.org/module-build-service/1/module-builds/3703 "MBS") or +[MBSWEB](https://release-engineering.github.io/mbs-ui/modules "MBSWEB") + +## Bare package build for Fedora 28, 29 + +Because Fedora 28, 29 doesn't have `module defaults` for STR we need to +build bare package. +[module-default](https://pagure.io/releng/fedora-module-defaults) + +``` +fedpkg switch-branch f29 +fedpkg new-sources standard-test-roles-3.2.tar.gz +rpmdev-bumpspec --comment='Build with the latest merged PRs.' --userstring='Andrei Stepanov ' standard-test-roles.spec +# vim standard-test-roles.spec # edit Version, Release, Changelog +git add standard-test-roles.spec sources +git commit -s -m "Sync with upstream release 3.2" +fedpkg push +fedpkg build --skip-nvr-check +``` + +``` +fedpkg switch-branch f28 +git merge f29 +fedpkg push +fedpkg build --skip-nvr-check +``` + +## Push new build to testing and to stable + +[Koji web interface](https://koji.fedoraproject.org/koji/userinfo?userID=4024) + + +For each (module) build send it to testing: + +``` +bodhi updates new --request=testing --notes="Update to 3.2" --type=enhancement --user astepano standard-test-roles-3.2-1.fc28 +bodhi updates new --request=testing --notes="Update to 3.2" --type=enhancement --user astepano standard-test-roles-3.0-2920190319161255.6c81f848 +``` + +For each build: + +1. Raise karma at [Bodhi web interface](https://bodhi.fedoraproject.org/users/astepano) +2. Send it to stable: + +``` +bodhi updates request --user=astepano standard-test-roles-3.2-1.fc28 stable +bodhi updates new --request=testing --notes="Update to 3.0" --type=enhancement --user astepano standard-test-roles-3.0-2820190114142648.9c690d0e +```