Changes between Version 5 and Version 6 of NewBuildSystem


Ignore:
Timestamp:
07/01/15 13:11:26 (9 years ago)
Author:
jdreed
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • NewBuildSystem

    v5 v6  
    1 == Committing == 
     1As of July 2015, the former contents of this page have finally been incorporated back into their respective articles.   
    22 
    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  
     3See the "Building official packages" section of the front page.