Copyright © 2014-2015 Peter Harpending. pharpend2@gmail.com
Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without any warranty.
This document is for people who want to contribute.
Here is the required software you need to contribute:
git - we use git for version control. If you have never used git before, I suggest reading Pro Git by Scott Chacon.
Some text editor. Emacs is particularly good for LaTeX, although it does have quite a bit of a learning curve.
TeX is the markup language in which LYSA is written, so you need a TeX distribution to compile it. Note that if you are only interested in the PDF file, we publish regular builds here. The target TeX distribution is TeXLive, but it probably works on other TeX distributions. Below you can find installation instructions for select operating systems. If you don't see your operating system there, but know what software is needed, please add it and send a pull request.
To get the bare minimum for the English version:
# pacman -S texlive-core texlive-latexextra texlive-bibtexextra texlive-fontsextra
Alternatively, you can just get every TeXLive package under the sun so you don't have to worry about having the right package every time we change something.
# pacman -S texlive-most
Warning: this will spawn a ton of processes, but will make the build a lot
faster (from several hours to a few minutes). If your memory is precious, use
-av
instead of -jav
.
# emerge -jav dev-tex/biblatex dev-texlive/texlive-latexrecommended dev-texlive/texlive-xetex
# apt-get install biblatex texlive texlive-latex-extra texlive-bibtex-extra texlive-xetex texlive-math-extra texlive-latex3
# apt-get install texlive-latex-extra texlive-bibtex-extra texlive-xetex texlive-latex3 texlive-fonts-recommended
If you add new content to the book, such as a new chapter, or a substantial
portion of text, please feel free to add yourself to the \author
field in
book/lysa.ltx
(you don't have to, if you don't want to). If you merely
suggested changes, or made a number of trivial changes, add yourself to the
\editors
field.
For the time being, you can generate a graph with anything you want, as long as it's open-source. You just have to include the code to generate the graph (in case we want to change it). I recommend Sage.
We might use Idris as an interactive proof assistant. The other candidates are Coq and Agda.
Turing-complete code examples should be written in Haskell.
The git repo is hosted on GitLab. If you have a GitLab account, the easiest thing to do is to fork the repo with GitLab, and then submit a merge request. If you have a GitHub account, you can log into GitLab with your GitHub account.
If you don't use GitLab, and don't want to make a GitLab account, then you can host your git repository elsewhere (such as Gitorious or GitHub), and then email pharpend <pharpend2@gmail.com> with a link to the repository. It's recommended that you copy & paste the diff into the email, because pharpend will be less grumpy if you do. To generate the diff, run
git remote add upstream git@gitlab.com:lysa/lysa.git
git remote update
git diff upstream/master
Try to make sure that each commit only contains one change. It's a lot less
annoying to have to sift through 20 commits each with 1 different change than 1
commit with 20 different changes. If the change is difficult to summarize in one
line, then you should probably split up the commit with git add -p
.
When in doubt, follow the Erlang OTP Git Commit Guide.
The sources are listed in the book/bibliographies/lysa.bib file. Here are some suggested readings: