Add documentation for bin scripts.
[ikiwiki.git] / README.SIPB
1 README for SIPB maintainers
2
3 Basic instructions on scripts of interest. Also,
4 How this repository is set up, and how to keep IkiWiki up to date.
5
6
7 Overview:
8
9 IkiWiki is a compiler based wiki, as such the files you should be editing
10 are not the live files, and you will need to run a script in order to make
11 your changes live.  These scripts must be run as sipb-www@scripts.mit.edu,
12 do not attempt to run them locally. The scripts are as follows:
13
14 ~/bin/reinstall-ikiwiki
15     This script reinstalls the source files (i.e. this directory) and must
16     be run if you edit source files or templates or anything else in this
17     directory.
18
19 ~/bin/update-ikiwiki
20     This script recompiles the website and should be run if you make any
21     modification to pages.
22         XXX: Eventually, pushing to the Wiki repository will automatically
23         run updates; until then, you'll need to run update-ikiwiki then
24         as well.
25
26 Setup:
27
28 There are three branches of interest: remotes/origin/master, master
29 and sipb.  remotes/origin/master is the remote branch we are tracking;
30 all upstream changes show up in this branch when we `git fetch`.
31
32 master is our "awaiting upstream approval" branch, based off of
33 remotes/origin/master. Any patches in this branch should be immediately
34 suitable for submission to IkiWiki maintainers/. Ideally, this branch
35 should be equivalent to remotes/origin/master.
36
37 sipb is our live branch. It contains all of the ugly hacks and custom
38 modifications that we needed to make our website run. Ideally, this
39 branch is equivalent to master. Don't expect it to be without a lot
40 of rearchitecting and upstream cooperation.
41
42
43 Keeping up to date:
44
45 This two-tiered setup means that you will need to rebase twice in order
46 to propagate changes; possibly once if master == origin/master. Your
47 commands will look like this:
48
49 $ git checkout origin
50 if master == remotes/origin/master:
51   $ git pull
52 else
53   $ git fetch
54   $ git rebase origin/master
55 fi
56 $ git checkout sipb
57 $ git rebase master
58
59 TODO: Make a script that does this.
60