3 | | === Non-Native Packages === |
4 | | |
5 | | Non-native packages have a `master` branch containing the "upstream" component, and a `debian` branch which contains the upstream component and the debian packaging. |
6 | | |
7 | | '''If you are changing the "upstream" code:''' |
8 | | * Check out the `master` branch, and apply your changes. |
9 | | * Ensure you updated the version of the software. This is either in `configure.ac`, `setup.py`, or a `VERSION` file. |
10 | | * Review your commits, and rebase if necessary. |
11 | | * Tag the commit with the version number, and an annotated tag saying something like "Releasing 1.2.3" |
12 | | * `git tag -a 1.2.3 a4b5c6d7` |
13 | | * Push your master branch, and the tag to `origin`. |
14 | | * '''Once you do this, the version is finalized. If you find a bug, you'll need to bump the version number and repeat this process. |
15 | | * Check out the debian branch, and merge master into it. You are now ready to update the packaging. |
16 | | |
17 | | '''Updating the packaging''' |
18 | | * Make your packaging changes (if any) |
19 | | * Add a changelog entry for the new version, remebering to reset the Debathena component to `-0debathena1` if there's a new "upstream" version. |
20 | | * Push debian to `origin`. |
21 | | |
22 | | === Native Packages === |
23 | | |
24 | | Native packages only have a `master` branch. |
25 | | |
26 | | * Make any changes, and update the changelog. |
27 | | * Push master to `origin`. |
28 | | |
29 | | Native packages are '''not''' tagged, as the tagging happens at build time. |
30 | | |
31 | | == Building == |
32 | | |
33 | | Note: <package> below means the directory in the repo |
34 | | |
35 | | '''Non-native packages have an additional step, prior to building''' |
36 | | * `athena-upstream-tarball -p <package>` |
37 | | |
38 | | '''Building packages''' |
39 | | * `dasource -u <directory-name>` |
40 | | * builds source package |
41 | | * `dapublish [all | package ...]` |
42 | | * publish source package to repo, sign and tag |
43 | | * `dabuild all` |
44 | | * builds any package for which there are source but no binary |
45 | | |
46 | | == Adding a new package == |
47 | | |
48 | | Victor should fill in this part, explaining what is necessary when adding a new package (e.g. debathena-shiny-new-thing). Steps include: adding it to the superrepo, making the build tools aware of it (so that uptsream-tarball and dasource don't fail), etc. |
49 | | |
50 | | == Bootstrapping A New Release == |
51 | | |
52 | | 1. Make sure you have enough space to create the build chroot using lvs and pvs. |
53 | | 2. Alter /root/sources.list.d appropriately |
54 | | 3. Create build chroot using /root/make-chroot |
55 | | 3bis. Make sure resulting chroot actually has universe enabled. |
56 | | 3verybis. Make sure resulting chroot has debathena APT key in it. |
57 | | 4. Update the buildsystem configuration with tags. Do not forget to add ~0.1 |
58 | | 5. Update /mit/debathena/apt/conf |
59 | | 5bis. Do not forget to run `git commit` there |
60 | | 6. Run `dareprepro export`. |
61 | | 7. Fix debathena-machtype |
62 | | 8. Run dapopulate with appropriate flags. An example would be: `dapopulate --handle-broken=include --allow-out-of-date --use-development utopic trusty` |
63 | | (populate utopic with sources from trusty). |
64 | | 9. Open a tmux, and in it, run dabuild on the staging repo. You will probably |
65 | | need to specify -B with the name of preceeding repo, for example: |
66 | | `DEBATHENA_SETUP_HOOK=/afs/sipb.mit.edu/project/debathena/bin/chroot-sources.staging dabuild utopic-staging -B trusty`. |
67 | | |
| 3 | See the "Building official packages" section of the front page. |