aboutsummaryrefslogtreecommitdiffstats
path: root/HACKING.md
diff options
context:
space:
mode:
authorJon Lund Steffensen <jonlst@gmail.com>2014-04-06 20:03:48 +0200
committerJon Lund Steffensen <jonlst@gmail.com>2014-04-06 21:02:45 +0200
commite6507d7778e5400fcc5117683f8b1633f06678a2 (patch)
tree6f213c95a74958c8aae7a52163fb4337de0c88f6 /HACKING.md
parentFix #52: Require Python 3.2 for GUI script (diff)
downloadredshift-ng-e6507d7778e5400fcc5117683f8b1633f06678a2.tar.gz
redshift-ng-e6507d7778e5400fcc5117683f8b1633f06678a2.tar.bz2
redshift-ng-e6507d7778e5400fcc5117683f8b1633f06678a2.tar.xz
HACKING: Update to Markdown syntax; add notes on making releases
Diffstat (limited to '')
-rw-r--r--HACKING.md80
1 files changed, 80 insertions, 0 deletions
diff --git a/HACKING.md b/HACKING.md
new file mode 100644
index 0000000..73be169
--- /dev/null
+++ b/HACKING.md
@@ -0,0 +1,80 @@
+
+Build from repository
+---------------------
+
+``` shell
+$ ./bootstrap
+$ ./configure
+```
+
+The bootstrap script will use autotools to set up the build environment
+and create the `configure` script.
+
+Use `./configure --help` for options. Use `--prefix` to make an install in
+your home directory. This is necessary to test python scripts. The systemd
+user unit directory should be set to avoid writing to the system location.
+
+Systemd will look for the unit files in `~/.config/systemd/user` so this
+directory can be used as a target if the unit files will be used. Otherwise
+the location can be set to `no` to disable the systemd files.
+
+Example:
+
+``` shell
+$ ./configure --prefix=$HOME/redshift/root \
+ --with-systemduserunitdir=$HOME/.config/systemd/user
+```
+
+Now, build the files:
+
+``` shell
+$ make
+```
+
+The main redshift program can be run at this point. To install to the
+prefix directory run:
+
+``` shell
+$ make install
+```
+
+You can now run the python script. Example:
+
+``` shell
+$ $HOME/redshift/root/bin/redshift-gtk
+```
+
+Depenencies
+-----------
+
+* autotools, gettext
+* libdrm (Optional, for DRM support)
+* libxcb, libxcb-randr (Optional, for RandR support)
+* libX11, libXxf86vm (Optional, for VidMode support)
+* geoclue (Optional, for geoclue support)
+
+
+Creating a new release
+----------------------
+
+1. Select a commit in master to branch from, or if making a bugfix release
+ use previous release tag as base (e.g. for 1.9.1 use 1.9 as base)
+2. Create release branch `release-X.Y`
+3. Apply any bugfixes for release
+4. Import updated translations from launchpad and commit. Remember to update
+ `po/LINGUAS` if new languages were added
+5. Update version in `configure.ac` and create entry in NEWS
+6. Run `make distcheck`
+7. Commit and tag release (`vX.Y` or `vX.Y.Z`)
+8. Push tag to Github and also upload source dist file to Github
+
+Also remember to check before release that
+
+* Windows build is ok
+* Build files for distributions are updated
+
+
+Notes
+-----
+* verbose flag is (currently) only held in redshift.c; thus, write all
+ verbose messages there.