# How to Contribute to This Wiki (!) Some general hints first; they may sound very familiar from other software projects: * Do independent changes *separately*: don't aggregate changes that don't belong together. * Install your changes *early* and *often*: don't hold your contribution back until you think it is perfect. ## Edit Via the Web Interface When you found a page you want to work on, just follow the *Edit* link on the top of the page. When doing this for the first time, this will first transfer you to a page where you have to create a wiki account. After logging in, you can edit the wiki pages. ## Working on a Checkout of the git Repository (!) What is being described here are only the basics. The checkouts are completely valid git repositories and can (and want to) be treated as such. Consult the git documentation about how to shuffle around with branches, how to rename files, how to upload arbitrary data files, and so on. For being able to do a checkout from which you can later directly push your changes back into the master repository, you need a [[shell_account_on_*flubber*|Hurd/PublicHurdBoxen]]. (It's also very much recommenable that you set up your local ssh configuration as advised on that page.) $ git clone flubber:~wiki/wiki [dest] If you don't have such an account or don't have your login data handy, you can still get the pages the read-only way. *Not yet available.* $ git clone git://flubber.bddebian.com/wiki [dest] For both cases: if you omit *[dest]* it will default to *wiki*. Later, you can just *cd* into the *wiki* directory and run a *git pull* to get hold of the latest changes others have installed. But now: work on these files. $ cd wiki/ $ emacs Hurd/NextHurd.mdwn $ git commit Hurd/NextHurd.mdwn [...] $ emacs Hurd/DesignGoals.mdwn $ git commit Hurd/DesignGoals.mdwn [...] $ [...] Remember that at this stage your commits have only been installed into your personal working copy. So, finally you'll explicitly have to install your changes into the master repository. You can also get them locally rendered to html pages. $ wiki/render_locally [...] scanning HowToContributeToThisWiki.mdwn rendering HowToContributeToThisWiki.mdwn Now open `wiki.rendered/index.html' to browse the wiki pages. If you like what you've done, then it's now time to publish your changes. If you can push directly into the master repository this is as simple as follows. $ git push updating 'refs/heads/master' from d83f93f34b69633ca1afb588001df7addd708faf to c0b8171de9c69e029bf998aafd4682105c217eb8 Generating pack... [...] Updating web pages. This may up to a few minutes at the utmost... If you can't do that, then first prepare to publish your changes. $ git-format-patch -M -B origin 0001-Be-a-bit-more-expressive.patch [...] See through the generated **.patch* files and simply delete those you don't want to pulish. Finally, publish the good ones. If you have a local mail transfer agent running, the following is all you have to do. $ git-send-email --to web-hurd@gnu.org *.patch [...] If you don't have an mta running, you'll have to find another way: either post the **.patch* files to or upload them somewhere for us to download them from.