diff options
author | Mike Burns <mike@mike-burns.com> | 2014-02-20 15:49:36 +0100 |
---|---|---|
committer | Mike Burns <mike@mike-burns.com> | 2014-02-26 17:49:05 +0100 |
commit | 64c8e0c87e02e3a05631d67c9d3072ca87234711 (patch) | |
tree | bd403d4a6513a96e68adbbabbdd92df6fc1b6ea2 /DEVELOPERS.md | |
parent | 0edd365a507d716690ba7e7638681a7f9a61f8b9 (diff) |
Start bringing in the Makefile.am from gitsh
It introduces the `Makefile.am` from gitsh, and abstracts it a bit. This
`Makefile.am`, or most of it, could be dropped into gitsh again. How to
use it is documented in `DEVELOPERS.md`.
The whole release process is more consistent and simple: `make release`
to build a tarball, Homebrew, Arch, Debian, HTML (from manpages), and
tag it, pushed to the various repos, and with cleanup. The `release`
target is composed of smaller targets that stack well.
Diffstat (limited to 'DEVELOPERS.md')
-rw-r--r-- | DEVELOPERS.md | 70 |
1 files changed, 45 insertions, 25 deletions
diff --git a/DEVELOPERS.md b/DEVELOPERS.md index 4d2b684..5a92da8 100644 --- a/DEVELOPERS.md +++ b/DEVELOPERS.md @@ -1,40 +1,60 @@ Developers ========== -GNU autoconf & automake ------------------------ +Making a release +---------------- -This project uses GNU autoconf and automake for installation and -building. To regenerate everything from first principles (`configure.ac` -and `**/Makefile.am`), run the command: +1. Bump the version in `configure.ac`, in `AC_INIT`. + +2. Update the build system. This depends on GNU autoconf and GNU automake. ./autogen.sh -Debian ------- +3. Build the packages: + +This all depends on a `gh-pages` branch: + + git branch gh-pages origin/gh-pages + +On any system you can build the tarball, Homebrew package, Arch +PKGBUILD, and tag: + + make release_build_tarball release_build_homebrew release_build_arch \ + release_build_tag + +You need mdocml to tranform the manpages into HTML: + + make release_build_man_html + +Only on Debian systems can you build the Debian package: + + make release_build_deb + +If you are on a Debian system with mdocml, here is a shortcut: + + make release_build + +From here you can push these: + + make release_push_tarball release_push_homebrew release_push_arch \ + release_push_tag release_push_man_html + make release_push_deb -First, everything must be set up just right: +Or, all at once: - mkdir -p ~/debian/rcm && \ - cp -a rcm ~/debian/rcm/rcm-0.0.2 && \ - cd ~/debian/rcm && \ - rm -f rcm_0.0.2.orig.tar.gz && \ - rm -f rcm-0.0.2/tags && \ - tar --exclude=*swp --exclude-backups --exclude-vcs --exclude=debian --exclude=config.status --exclude=config.log -zcf rcm_0.0.2.orig.tar.gz rcm-0.0.2 + make release_push -Given that, now you can generate the Debian package. This requires the -Debian packaging tools, especially debuild: +You can clean individual steps: - cd ~/debian/rcm/rcm-0.0.2 && \ - debuild -us -uc + make release_clean_tarball release_clean_homebrew release_clean_arch \ + release_clean_deb release_clean_tag release_clean_man_html -HTML documentation ------------------- +Or, again, everything at once: -The HTML documentation is generated using the mdocml suite. Use the -`upload-docs` make target to rebuild the HTML docs and upload them to -GitHub Pages. The `build-docs` target will just build them. + make release_clean - make upload-docs +If you are on a Debian system, have mdocml installed, have an absurd +amount of trust in the system, and know how to debug it intimately, give +everything a go: -More information on mdocml can be found on http://mdocml.bsd.lv/ . + make release |