annotate Sphinx/source/developers/repositories.rst @ 366:12f88a12d146

hostfingerprints
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 01 Apr 2020 08:49:06 +0200
parents 022d59428ea3
children 32d0a95bee7e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
339
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
1 .. _repositories:
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
2
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
3 Accessing code repositories
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
4 ===========================
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
5
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
6 .. contents::
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
7
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
8
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
9 Context
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
10 -------
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
11
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
12 The Orthanc server and most of its plugins are versioned using
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
13 `Mercurial <https://en.wikipedia.org/wiki/Mercurial>`__ on a
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
14 `self-hosted server <https://hg.orthanc-server.com/>`__.
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
15
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
16 The Orthanc project started back in 2011, back in a time where
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
17 Mercurial and `Git <https://en.wikipedia.org/wiki/Git>`__ were equally
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
18 popular. Sébastien Jodogne, the original author of Orthanc, decided to
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
19 use Mercurial given the higher simplicity of its set of commands, and
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
20 given the fact it is safer to use for less experienced users.
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
21
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
22 As pointed out on `Wikipedia
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
23 <https://en.wikipedia.org/wiki/Mercurial>`__, the *"Git vs. Mercurial
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
24 [debate] has become one of the holy wars of hacker culture."* We
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
25 certainly don't want to endure this debate in the context of the
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
26 Orthanc ecosystem. The fact is that a distributed revision-control
340
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
27 was needed for Orthanc, and that both Git and Mercurial have a similar
339
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
28 set of features.
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
29
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
30 If Orthanc were started in 2020, maybe we would have used Git, or
340
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
31 maybe not. But the Orthanc ecosystem is not at all about versioning
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
32 systems. We want to be entirely dedicated to lowering barriers to
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
33 entry in the field of medical imaging. As a consequence, the choice of
339
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
34 Mercurial should be considered as a part of the history, and we simply
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
35 ask people to accept it as a fact.
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
36
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
37 Regarding the reason behind self-hosting, Orthanc was hosted on
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
38 `Google Code
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
39 <https://en.wikipedia.org/wiki/Google_Developers#Google_Code>`__
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
40 between 2012 and 2015, until it was shutdown. In July 2015, Orthanc
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
41 was moved to `Bitbucket by Atlassian
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
42 <https://en.wikipedia.org/wiki/Bitbucket>`__. Unfortunately, in July
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
43 2019, Bitbucket announced that `Mercurial support would be dropped on
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
44 June 2020
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
45 <https://bitbucket.org/blog/sunsetting-mercurial-support-in-bitbucket>`__,
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
46 forcing us to deal with another migration.
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
47
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
48 We are of course grateful to Google and Atlassian for having hosted
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
49 Orthanc during 8 years. However, we cannot afford the cost of
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
50 periodically coping with hosting migrations. We prefer to have a
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
51 simpler environment, yet under our full control. As a consequence,
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
52 starting Q2 2020, Orthanc is hosted using the official ``hg serve``
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
53 tool.
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
54
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
55
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
56 Accessing Mercurial
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
57 -------------------
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
58
340
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
59 .. _hg-clone:
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
60
339
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
61 Read-only access
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
62 ^^^^^^^^^^^^^^^^
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
63
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
64 Anybody has full read-only access to all of the Orthanc official
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
65 repositories, on our `self-hosted server
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
66 <https://hg.orthanc-server.com/>`__.
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
67
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
68 .. highlight:: bash
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
69
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
70 Locally cloning one of those Mercurial repositories (say, the main
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
71 ``orthanc`` repository) is as simple as typing::
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
72
362
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 361
diff changeset
73 $ hg clone https://hg.orthanc-server.com/orthanc/
339
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
74
340
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
75 You can then use separate tools such as `TortoiseHg
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
76 <https://en.wikipedia.org/wiki/TortoiseHg>`__ to browse the code with
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
77 richer features than the Web interface.
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
78
366
12f88a12d146 hostfingerprints
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 362
diff changeset
79 .. highlight:: text
12f88a12d146 hostfingerprints
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 362
diff changeset
80
12f88a12d146 hostfingerprints
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 362
diff changeset
81 You might have to set up a host fingerprint in the Mercurial
12f88a12d146 hostfingerprints
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 362
diff changeset
82 configuration. Add the following lines to your ``~/.hgrc`` file::
12f88a12d146 hostfingerprints
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 362
diff changeset
83
12f88a12d146 hostfingerprints
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 362
diff changeset
84 [hostfingerprints]
12f88a12d146 hostfingerprints
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 362
diff changeset
85 hg.orthanc-server.com = fc:45:10:18:69:4d:a6:2b:22:fa:c0:81:f4:ee:eb:8e:ba:ae:54:90
12f88a12d146 hostfingerprints
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 362
diff changeset
86
339
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
87
344
9f82ecc5a422 fingerprint
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 342
diff changeset
88 Note for Microsoft Windows
9f82ecc5a422 fingerprint
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 342
diff changeset
89 ..........................
9f82ecc5a422 fingerprint
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 342
diff changeset
90
9f82ecc5a422 fingerprint
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 342
diff changeset
91 .. highlight:: text
9f82ecc5a422 fingerprint
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 342
diff changeset
92
9f82ecc5a422 fingerprint
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 342
diff changeset
93 On Microsoft Windows, while cloning the repository, you might face an
9f82ecc5a422 fingerprint
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 342
diff changeset
94 error similar to::
9f82ecc5a422 fingerprint
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 342
diff changeset
95
9f82ecc5a422 fingerprint
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 342
diff changeset
96 abort: error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:661)
9f82ecc5a422 fingerprint
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 342
diff changeset
97
9f82ecc5a422 fingerprint
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 342
diff changeset
98 In such a case, you must explicitly add the cryptographic fingerprint
9f82ecc5a422 fingerprint
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 342
diff changeset
99 of our code server. To this end, edit the `configuration file
9f82ecc5a422 fingerprint
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 342
diff changeset
100 <https://www.mercurial-scm.org/doc/hgrc.5.html#files>`__ of Mercurial
9f82ecc5a422 fingerprint
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 342
diff changeset
101 (by default, ``%USERPROFILE%\Mercurial.ini``), and add the following
9f82ecc5a422 fingerprint
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 342
diff changeset
102 lines::
9f82ecc5a422 fingerprint
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 342
diff changeset
103
9f82ecc5a422 fingerprint
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 342
diff changeset
104 [hostsecurity]
9f82ecc5a422 fingerprint
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 342
diff changeset
105 hg.orthanc-server.com:fingerprints=sha256:A1:75:3A:3F:20:74:C1:A6:C3:16:DD:EC:4C:67:74:C4:70:BE:E8:35:0A:0A:C7:2E:36:1F:49:8B:E2:60:61:73
9f82ecc5a422 fingerprint
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 342
diff changeset
106
9f82ecc5a422 fingerprint
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 342
diff changeset
107 .. highlight:: bash
9f82ecc5a422 fingerprint
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 342
diff changeset
108
9f82ecc5a422 fingerprint
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 342
diff changeset
109 For reference, here is the command that was used to generate this
9f82ecc5a422 fingerprint
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 342
diff changeset
110 fingerprint (`click here for more information
9f82ecc5a422 fingerprint
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 342
diff changeset
111 <https://stackoverflow.com/a/56579497/881731>`__)::
9f82ecc5a422 fingerprint
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 342
diff changeset
112
9f82ecc5a422 fingerprint
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 342
diff changeset
113 $ openssl s_client -connect hg.orthanc-server.com:443 < /dev/null 2>/dev/null | openssl x509 -fingerprint -sha256 -noout -in /dev/stdin
9f82ecc5a422 fingerprint
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 342
diff changeset
114
9f82ecc5a422 fingerprint
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 342
diff changeset
115
339
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
116 Write access
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
117 ^^^^^^^^^^^^
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
118
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
119 Only the core developers of Orthanc have direct write access to the
342
ab1ec4009541 cloning for dev
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 340
diff changeset
120 Orthanc repositories (through SSH). Core developers can clone a
ab1ec4009541 cloning for dev
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 340
diff changeset
121 repository with write access as follows::
ab1ec4009541 cloning for dev
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 340
diff changeset
122
362
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 361
diff changeset
123 $ hg clone ssh://hg@hg.orthanc-server.com/public/orthanc/
339
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
124
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
125
340
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
126 .. _hg-contributing:
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
127
339
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
128 Submitting code
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
129 ^^^^^^^^^^^^^^^
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
130
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
131 We will of course be extremely grateful for receiving external code
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
132 contributions to the Orthanc repositories!
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
133
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
134 However, one of the weaknesses of our self-hosted infrastructure is
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
135 that is does not support automation for `pull requests
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
136 <https://en.wikipedia.org/wiki/Distributed_version_control#Pull_requests>`__.
340
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
137 This section explains the `two accepted ways for communicating
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
138 contributions
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
139 <https://www.mercurial-scm.org/wiki/CommunicatingChanges>`__: by
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
140 submitting a patch, or by exchanging a bundle.
339
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
141
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
142 Importantly, before any contribution can be accepted into the Orthanc
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
143 repositories, its author must sign a :ref:`CLA <cla>`. This allows
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
144 both the University Hospital of Liège and the Osimis company to act as
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
145 the official guardians of the whole Orthanc ecosystem.
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
146
361
84e3a2612c36 links to hg
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 344
diff changeset
147 Also, make sure to read our :ref:`FAQ if submitting code
84e3a2612c36 links to hg
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 344
diff changeset
148 <submitting_code>`.
84e3a2612c36 links to hg
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 344
diff changeset
149
339
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
150
340
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
151 .. _hg-patch:
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
152
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
153 Simple patch (import/export)
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
154 ............................
339
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
155
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
156 .. highlight:: bash
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
157
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
158 If you want to propose a simple contribution, the most direct way of
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
159 passing it on the Orthanc community is by creating a **simple patch**.
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
160
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
161 First make sure to pull the latest version of the code repository,
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
162 then work on your modification in the ``default`` branch (i.e. in the
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
163 mainline code)::
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
164
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
165 $ hg pull
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
166 $ hg up -c default
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
167 [...make your modifications...]
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
168
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
169 Once your contribution is done, here is how to export a patch::
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
170
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
171 $ hg export -r default > /tmp/contribution.patch
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
172
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
173 Once the patch is ready, you can send the ``/tmp/contribution.patch``
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
174 file to the Orthanc community, e.g. by submitting it onto our official
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
175 `discussion group
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
176 <https://groups.google.com/forum/#!forum/orthanc-users>`__. The core
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
177 developers would reintegrate such a patch by typing the following
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
178 command on their side::
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
179
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
180 $ hg pull
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
181 $ hg up -c default
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
182 $ hg import /tmp/contribution.patch
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
183
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
184
340
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
185 .. _hg-bundle:
339
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
186
340
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
187 Exchanging a bundle
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
188 ...................
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
189
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
190 .. highlight:: bash
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
191
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
192 If your contribution is made of several changesets (commits), you
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
193 should work in a dedicated branch, then submit a Mercurial bundle for
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
194 this branch.
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
195
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
196 First make sure to pull the latest version of the code repository,
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
197 then create a branch, say ``my-user/my-fix``, that derives from the
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
198 ``default`` branch (which corresponds to the mainline code)::
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
199
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
200 $ hg pull
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
201 $ hg up -c default
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
202 $ hg branch my-user/my-fix
339
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
203
340
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
204 WARNING: Please chose an unique, explicit name for your branch, and
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
205 make sure that your username is included within for traceability! The
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
206 name ``my-user/my-fix`` is only here for the purpose of the example.
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
207
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
208 You can then do all the modifications as required (including ``hg
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
209 add``, ``hg rm``, and ``hg commit``) in the branch
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
210 ``my-user/my-fix``. When you're done, create a Mercurial bundle that
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
211 gathers all your changes against the source repository as follows::
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
212
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
213 $ hg commit -m 'submitting my fix'
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
214 $ hg bundle /tmp/contribution.bundle https://hg.orthanc-server.com/orthanc
339
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
215
340
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
216 Obviously, make sure to replace
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
217 ``https://hg.orthanc-server.com/orthanc`` by the location of the
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
218 source repository.
339
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
219
340
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
220 Finally, you can submit the file ``/tmp/contribution.bundle`` to the
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
221 community, just like for simple patches. Note that this procedure
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
222 inherently corresponds to the manual creation of a pull request.
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
223
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
224 The core developers would reintegrate such a bundle into the mainline
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
225 by typing the following commands on their side::
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
226
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
227 $ cd /tmp
362
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 361
diff changeset
228 $ hg clone https://hg.orthanc-server.com/orthanc/
340
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
229 $ cd /tmp/orthanc
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
230 $ hg unbundle /tmp/contribution.bundle
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
231 $ hg up -c default
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
232 $ hg merge my-user/my-fix
b5741b354afa bundles
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 339
diff changeset
233
339
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
234
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
235 Issue tracker
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
236 -------------
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
237
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
238 This is work-in-progress. Orthanc will most probably move to the
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
239 `Roundup issue tracker
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
240 <https://en.wikipedia.org/wiki/Roundup_(issue_tracker)>`__ that is
c0a3cd1cabff Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
241 notably used by the Python community.