#318 Add package_howto.md
Merged 5 years ago by astepano. Opened 5 years ago by astepano.

file added
+155
@@ -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 <astepano@redhat.com>' \

+     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 <astepano@redhat.com>' 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

+ ```

rebased onto 3c679f9

5 years ago

Commit 0390f6c fixes this pull-request

Pull-Request has been merged by astepano

5 years ago

Pull-Request has been merged by astepano

5 years ago