aboutsummaryrefslogtreecommitdiff
path: root/nitrocli/doc/packaging.md
blob: 19f3fed7b91c7062f80e04b56f24db1ef7e294ad (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
How to package nitrocli
=======================

This document describes how to update the packaged versions of nitrocli.

Arch Linux
----------

1. Clone the Git repository at ssh://aur@aur.archlinux.org/nitrocli.git.
2. Edit the `PKGBUILD` file:
   - Update the `pkgver` variable to the current nitrocli version.
   - If the `pkgrel` variable is not 1, set it to 1.
   - Update the SHA512 hash in the `sha512sums` variable for the new tarball.
3. Update the `.SRCINFO` file by running `makepkg --printsrcinfo > .SRCINFO`.
4. Verify that the package builds successfully by running `makepkg`.
5. Verify that the package was built as expected by running `pacman -Qlp $f`
   and `pacman -Qip $f`, where `$f` is `nitrocli-$pkgver.pkg.tar.gz`.
6. Check the package for errors by running `namcap PKGBUILD` and `namcap
   nitrocli-$pkgver.pkg.tar.gz`.
7. Add, commit, and push your changes to publish them in the AUR.

If you have to release a new package version without a new nitrocli version,
do not change the `pkgver` variable and instead increment the `pkgrel`
variable.

For more information, see the [Arch User Repository][] page in the Arch Wiki.

Debian
------

1. Clone or fork the Git repository at
   https://salsa.debian.org/rust-team/debcargo-conf.
2. Execute `./update.sh nitrocli`.
3. Check and, if necessary, update the Debian changelog in the file
   `src/nitrocli/debian/changelog`.
4. Verify that the package builds successfully by running `./build.sh nitrocli`
   in the `build` directory.  (This requires an `sbuild` environment as
   described in the `README.rst` file.)
5. Inspect the generated package by running `dpkg-deb --info` and `dpkg-deb
   --contents` on it.
6. If you have push access to the repository, update the `TODO.rst` file to
   indicate that `nitrocli` can be updated.
7. Add and commit your changes.  If you have push access, push them.
   Otherwise create a merge request and indicate that `nitrocli` is ready for
   upload in its description.

For more information, see the [Teams/RustPackaging][] page in the Debian Wiki
and the [README.rst file][] in the debcargo-conf repository.

Gentoo
------

General note: It is recommended (and assumed here) that the most recent existing
ebuild is used as the baseline.

The instructions furthermore assume that you have [`cargo-ebuild`][] installed
and ready for use.

1. Clone the [nitrocli repository][] locally.
2. Check out the tagged release you want to create an ebuild for. E.g., `git
   checkout v0.2.1`.
3. Run `cargo ebuild` inside the `nitrocli/` directory. It will produce an
   ebuild in the same directory.
4. Fork and then clone the official Gentoo Portage tree available at
   https://github.com/gentoo/gentoo.git.
5. Change the working directory to `app-crypt/nitrocli`.
6. Create a copy of the most recently released build. For example,
   `cp nitrocli-0.2.0.ebuild nitrocli-0.2.1.ebuild`
7. Copy over the `CRATES` variable definition from the `cargo-ebuild` created
   ebuild (step 6) into `nitrocli-0.2.1.ebuild` and adjust it as needed (there
   may be duplicate entries).
8. More adjustments to the ebuild may be necessary, depending on the changes
   made to the program.
9. Run `ebuild nitrocli-0.2.1.ebuild manifest` to update the manifest.
10. `FEATURES=test USE=test emerge =nitrocli-0.2.1`
11. Create a commit that includes the ebuild and the *non-ebuild-parts* of
   `Manifest`. Make sure to include a `Signed-off-by` field in the description.
11. Create a pull request for this commit as usual.

[Arch User Repository]: https://wiki.archlinux.org/index.php/Arch_User_Repository
[cargo-ebuild]: https://github.com/cardoe/cargo-ebuild
[nitrocli repository]: git@github.com:d-e-s-o/nitrocli.git
[Teams/RustPackaging]: https://wiki.debian.org/Teams/RustPackaging
[README.rst file]: https://salsa.debian.org/rust-team/debcargo-conf/blob/master/README.rst