blob: b664e50bdc3a4c8a58221d84526be8878228021d [file] [log] [blame]
Christian Eglieddc4662009-03-09 13:27:20 +00001-*- outline -*-
Christian Egli5510e4a2009-11-05 09:55:30 +00002This HACKING file describes the development environment.
3
4 Copyright (C) 2008, 2009 ViewPlus Technologies, Inc. and JJB
5 Software, Inc.
6
7 Copying and distribution of this file, with or without modification,
8 are permitted in any medium without royalty provided the copyright
9 notice and this notice are preserved.
Christian Eglieddc4662009-03-09 13:27:20 +000010
11This file attempts to describe the maintainer-specific notes to follow
12when hacking liblouis.
13
Christian Egli5510e4a2009-11-05 09:55:30 +000014* Developing
15** Where to get it
16The development sources are available through anonymous svn at Google
17Code:
18
19 http://code.google.com/p/liblouis/
20
21** Build requirements
22This distribution uses Automake, Autoconf, and Libtool. If you are
23getting the sources from svn (or change configure.ac), you'll need to
24have these tools installed to (re)build. Optionally (if you want to
25generate man pages) you'll also need help2man. All of these programs
26are available from ftp://ftp.gnu.org/gnu.
27
28** Gnulib
29This distribution also uses Gnulib (http://www.gnu.org/software/gnulib)
30to share common files, with the files being checked in to svn. If you
31want to update from the current gnulib, install gnulib, and then run
32 gnulib-tool --import
33in the top-level directory.
34
35For the record, the first time invocation was
36 gnulib-tool --import --lib=libgnu --source-base=gnulib \
37 --m4-base=gnulib/m4 --aux-dir=build-aux --libtool \
38 --macro-prefix=gl getopt-gnu progname version-etc
39More modules might have been added since. The currently-used gnulib
40modules and other gnulib information are recorded in
41gnulib/m4/gnulib-cache.m4. Given a source checkout of gnulib, you can
42update the files with gnulib-tool --import.
43
44** How to build
45After getting the CVS sources, and installing the tools above, you can run
46 sh ./autogen.sh
47to do a fresh build. After that first time, running make should suffice.
48
Christian Eglieddc4662009-03-09 13:27:20 +000049* Release Procedure
50These steps describe what a maintainer does to make a release; they
51are not needed for ordinary patch submission.
52
53** Set the version number
54Update the version number in NEWS (with version, date, and release
55type), ChangeLog and configure.ac.
56
57** Commit and tag
58Commit the changes and tag this version
59
60 svn cp https://liblouis.googlecode.com/svn/trunk \
61 https://liblouis.googlecode.com/svn/tags/liblouis_1_3_8
62
63If you know the exact version number that needs to be tagged use
64
65 svn cp https://liblouis.googlecode.com/svn/trunk \
66 https://liblouis.googlecode.com/svn/tags/liblouis_1_3_8 -r 109
67
68** Make the release
69Check out a clean copy in a different directory, like /tmp. Run
70autogen.sh and configure with no special prefixes. Run make distcheck.
71This will make sure that all needed files are present, and do a
72general sanity check. Run make dist. This will produce a tarball.
73
Christian Egli9a3b3ce2009-05-27 13:46:37 +000074 ./autogen.sh && ./configure && make && make distcheck && make dist
Christian Eglieddc4662009-03-09 13:27:20 +000075
76** Upload
77Upload tarball to Google project page, tag as "featured". This will
78put the link on the main project page. Remove "featured" tag from
79previous tarball release.
80
Christian Egli2ed702e2009-03-12 13:06:39 +000081** Online documentation
82The online documentation is hosted out of subversion of the Google
83code site. To check it out
84
85 svn co https://liblouis.googlecode.com/svn/documentation \
86 liblouis-online-documentation
87
88then move the latest built documentation into this directory and check
89it in
90
91 cd liblouis-online-documentation
92 cp ../liblouis/doc/liblouis.html .
93 svn ci liblouis.html -m "Update online documentation"
94
Christian Eglieddc4662009-03-09 13:27:20 +000095** Announce
96Send an announcement to the liblouis list
97liblouis-liblouisxml@freelists.org. See ANNOUNCEMENT for an example.
98
99** Other web updates
100Update the Google project page. Add the current NEWS to the front
101page.
102
103Also update the page on freshmeat (http://freshmeat.net/projects/liblouis/).
104
105