summaryrefslogtreecommitdiffstats
path: root/edit.md
blob: 36415f9513dca3187f2e1aa16e28b8311b032a9a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
[[!meta title="Editing the EmacsConf wiki"]]
[[!meta copyright="Copyright © 2020 Amin Bandali"]]

This site is a wiki, editable by anyone on the planet.  The pages are
written in markdown, and converted to HTML using the
[ikiwiki](//ikiwiki.info) wiki compiler.  You are welcome and
encouraged to edit and help improve the site.

**Important:** see the [[EmacsConf wiki license terms|COPYING]] before
before proceeding any further and pushing any changes.

To edit the wiki, you need to install `git` if it is not installed on
your machine already.  Then, you can clone the sources from any one of
the following addresses:

    ssh://anon@git.emacsconf.org:emacsconf-wiki
    git://git.emacsconf.org/emacsconf-wiki
    https://git.emacsconf.org/emacsconf-wiki

Note that the `https://` access is read-only and does not allow
pushing changes, while the `ssh://` and `git://` methods allow pushes
as well.  Even though `https://` access is read-only, it can be useful
if you would like to manually cross-check and compare the hashes of
commits with hashes of the commits of a clone over the insecure
`git://` protocol.

We strongly recommend using `ssh://` (which is both secure and allows
pushes), and avoiding `git://` (no transport security) and `https://`
(read-only access).

## SSH access (recommended method)

To use the `ssh://` method, you need `openssh` installed on your
machine, which is available on virtually all GNU/Linux distributions
and other Unix-like operating systems like the BSDs.  You also need to
download the ssh private key [[id_rsa_anon_git_emacsconf]] and install
it into `~/.ssh/` (the `.ssh` directory in your home directory).  The
key fingerprint is `SHA256:XbUoLgO2YH9+phNPKvwq8w0Q/8NhaKfS/VE6pDwTPsM
anon@git.emacsconf.org`, and its randomart image is:

    +---[RSA 2048]----+
    |              .  |
    |             o . |
    |    + o   . o .  |
    |   . * + o o     |
    |    . * S + .    |
    |     + &.B.o     |
    |    ..+ E=*      |
    |    o.ooo@.o     |
    |     +o++..      |
    +----[SHA256]-----+

Note that `openssh` requires SSH private keys to be secured with
permissions that prevent other users on your machine from reading or
modifying them.

To download the key and set appropriate permissions on it, you run
something along these lines in your terminal:

    wget https://emacsconf.org/id_rsa_anon_git_emacsconf
    mkdir -p ~/.ssh/
    mv id_rsa_anon_git_emacsconf ~/.ssh/
    chmod 600 ~/.ssh/id_rsa_anon_git_emacsconf

You can show the fingerprint of the key to examine with the expected
fingerprint mentioned ealier using:

    ssh-keygen -lf ~/.ssh/id_rsa_anon_git_emacsconf

Lastly, you need to create a `~/.ssh/config` file (if you don't have
one already) and add the following to it:

    Host front0.emacsconf.org
        Port 22
        User git
        IdentityFile ~/.ssh/id_rsa_anon_git_emacsconf

The `Port 22` line is optional, since SSH uses port 22 by default.
However, the SSH server listens on ports 21, 22, 53, 81, 8000, and
8080 for your convenience if you need it.

You're now all set and ready to clone the repository containing the
wiki sources.  To do so, run:

    git clone anon@git.emacsconf.org:emacsconf-wiki

If this is your first time using Git, please set valid and real
`user.name` and `user.email` configurations options (see [Getting
Started - First-Time Git
Setup](//git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup)).

Now, go ahead and make your changes to the website sources in the
repository you just cloned.  When you're done, do:

    git add X Y Z
    git commit -m"descriptive commit message"

where `X`, `Y`, and `Z` are the files you changes; and `descriptive
commit message` is, well, a descriptive text describing your changes.
When you are ready, push your changes by running `git push`, and if
all went well, your commit should be pushed and your changes appear on
the website within a few seconds.