annotate README.rst @ 6935:954d7ea5cd67 stable

stack: when stack base is obsolete, pick any successor, even if at random There are situations when s0 is obsolete and we also cannot pick just one successor for it to use in stack. In such a case, let's pick the "latest" successor from the first set. We're assuming that obsutil.successorssets() returns data in the same order (it should, since it makes sure to sort data internally). Keeping that in mind, while the successor picked for s0 by this code is not based on any sort of sophisticated logic, it should nonetheless be the same every time. This patch is probably not going to completely break anything that was previously working fine, because the previous behavior was to just abort with an exception.
author Anton Shestakov <av6@dwimlabs.net>
date Sat, 16 Nov 2024 17:01:02 +0400
parents 9c70bdc92cdb
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
560
4580ff7157ae fix readme header
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 556
diff changeset
1 =============================
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
2 Mutable History For Mercurial
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
3 =============================
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
4
2095
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
5 Evolve Extension
5415
3be5dba88c49 readme: various small fixes to formatting and spelling
Anton Shestakov <av6@dwimlabs.net>
parents: 5414
diff changeset
6 ================
2095
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
7
5415
3be5dba88c49 readme: various small fixes to formatting and spelling
Anton Shestakov <av6@dwimlabs.net>
parents: 5414
diff changeset
8 This package supplies the evolve extension for Mercurial,
2094
e906723ab99f README: rework the intro
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2075
diff changeset
9
e906723ab99f README: rework the intro
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2075
diff changeset
10 **The full implementation of the changeset evolution concept is still in
2099
47017b3086d4 README: more update to prepare for pypi upload
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2097
diff changeset
11 progress.** Please subscribe to the `evolve-testers mailing list
47017b3086d4 README: more update to prepare for pypi upload
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2097
diff changeset
12 <https://www.mercurial-scm.org/mailman/listinfo/evolve-testers>`_ to stay up to
47017b3086d4 README: more update to prepare for pypi upload
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2097
diff changeset
13 date with changes.
2094
e906723ab99f README: rework the intro
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2075
diff changeset
14
2102
e243e1d9464c README: timeless typo fixes
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2099
diff changeset
15 This extension:
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
16
5416
e2fb20dd0df7 readme: link to ChangesetEvolution, reword a couple of list items
Anton Shestakov <av6@dwimlabs.net>
parents: 5415
diff changeset
17 * enables the "`changeset evolution`_" feature of core Mercurial,
2097
c99e926d465a README: more change to have a pretty rendering on pypi
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2095
diff changeset
18
5416
e2fb20dd0df7 readme: link to ChangesetEvolution, reword a couple of list items
Anton Shestakov <av6@dwimlabs.net>
parents: 5415
diff changeset
19 * provides a set of commands to rewrite history in a distributed way,
e2fb20dd0df7 readme: link to ChangesetEvolution, reword a couple of list items
Anton Shestakov <av6@dwimlabs.net>
parents: 5415
diff changeset
20
e2fb20dd0df7 readme: link to ChangesetEvolution, reword a couple of list items
Anton Shestakov <av6@dwimlabs.net>
parents: 5415
diff changeset
21 * issues various warning messages when "troubles" from changeset evolution
e2fb20dd0df7 readme: link to ChangesetEvolution, reword a couple of list items
Anton Shestakov <av6@dwimlabs.net>
parents: 5415
diff changeset
22 appear in your repository,
2094
e906723ab99f README: rework the intro
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2075
diff changeset
23
5416
e2fb20dd0df7 readme: link to ChangesetEvolution, reword a couple of list items
Anton Shestakov <av6@dwimlabs.net>
parents: 5415
diff changeset
24 * provides an ``hg evolve`` command to deal with such troubles,
2097
c99e926d465a README: more change to have a pretty rendering on pypi
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2095
diff changeset
25
5416
e2fb20dd0df7 readme: link to ChangesetEvolution, reword a couple of list items
Anton Shestakov <av6@dwimlabs.net>
parents: 5415
diff changeset
26 * improves performance of obsolescence marker exchange and discovery during
e2fb20dd0df7 readme: link to ChangesetEvolution, reword a couple of list items
Anton Shestakov <av6@dwimlabs.net>
parents: 5415
diff changeset
27 push and pull.
2099
47017b3086d4 README: more update to prepare for pypi upload
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2097
diff changeset
28
6840
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
29 .. _`changeset evolution`: https://wiki.mercurial-scm.org/ChangesetEvolution
293
232990fbecb5 [doc] update readme
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 267
diff changeset
30
2097
c99e926d465a README: more change to have a pretty rendering on pypi
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2095
diff changeset
31 Documentation
c99e926d465a README: more change to have a pretty rendering on pypi
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2095
diff changeset
32 -------------
c99e926d465a README: more change to have a pretty rendering on pypi
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2095
diff changeset
33
5415
3be5dba88c49 readme: various small fixes to formatting and spelling
Anton Shestakov <av6@dwimlabs.net>
parents: 5414
diff changeset
34 We recommend reading the documentation first. An online version is available
3be5dba88c49 readme: various small fixes to formatting and spelling
Anton Shestakov <av6@dwimlabs.net>
parents: 5414
diff changeset
35 here:
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
36
2097
c99e926d465a README: more change to have a pretty rendering on pypi
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2095
diff changeset
37 https://www.mercurial-scm.org/doc/evolution/
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
38
5417
bf56062dac5e readme: mention docs/ in the documentation section
Anton Shestakov <av6@dwimlabs.net>
parents: 5416
diff changeset
39 Source of the documentation can be found in ``docs/``.
bf56062dac5e readme: mention docs/ in the documentation section
Anton Shestakov <av6@dwimlabs.net>
parents: 5416
diff changeset
40
2097
c99e926d465a README: more change to have a pretty rendering on pypi
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2095
diff changeset
41 How to Install
c99e926d465a README: more change to have a pretty rendering on pypi
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2095
diff changeset
42 ==============
c99e926d465a README: more change to have a pretty rendering on pypi
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2095
diff changeset
43
c99e926d465a README: more change to have a pretty rendering on pypi
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2095
diff changeset
44 Using Pip
c99e926d465a README: more change to have a pretty rendering on pypi
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2095
diff changeset
45 ---------
2095
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
46
5415
3be5dba88c49 readme: various small fixes to formatting and spelling
Anton Shestakov <av6@dwimlabs.net>
parents: 5414
diff changeset
47 You can install the latest released version using pip::
324
ff070b9e22ef readme: explain "instalation process"
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 293
diff changeset
48
2095
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
49 $ pip install --user hg-evolve
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
50
6840
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
51 Note: some distributions have adopted PEP 668 and made using ``pip install
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
52 --user`` more difficult than it should be. One of the cleanest ways around this
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
53 issue is to install both Mercurial and this extension in a separate virtual
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
54 environment. If you don't want to manage the virtual environment manually, you
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
55 can use Pipx.
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
56
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
57 Using Pipx
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
58 ----------
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
59
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
60 Its documentation explains that "pipx is made specifically for application
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
61 installation", and the idea is that for every application it can create and
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
62 maintain a separate virtual environment and make all executables available on a
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
63 single path (e.g. ~/.local/bin/ on Linux, check ``pipx ensurepath``).
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
64
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
65 To create a virtual environment for hg and install evolve::
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
66
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
67 $ pipx install mercurial
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
68 $ pipx inject mercurial hg-evolve
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
69 # or pipx runpip mercurial install hg-evolve
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
70
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
71 Note: it's recommended to use ``inject`` command to install evolve, but
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
72 sometimes ``runpip`` could be used. On some setups ``inject`` might require
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
73 specifying the full path to the extension in the configuration file, while
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
74 ``runpip`` might not.
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
75
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
76 Using Your Package Manager
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
77 --------------------------
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
78
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
79 Sometimes your distribution's package manager might have the newest (or recent
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
80 enough) version of the extension. For example, both `Debian`_ and `Ubuntu`_
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
81 currently have a package called ``mercurial-evolve``. Similarly, other
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
82 distributions might have it packaged, possibly under a slightly different name.
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
83 Try searching your package manager's database or see `this Repology page`_.
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
84
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
85 .. _`Debian`: https://packages.debian.org/search?keywords=mercurial-evolve&searchon=names&exact=1&suite=all&section=all
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
86 .. _`Ubuntu`: https://packages.ubuntu.com/search?keywords=mercurial-evolve&searchon=names&exact=1&suite=all&section=all
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
87 .. _`this Repology page`: https://repology.org/project/mercurial-evolve/related
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
88
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
89 From Source
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
90 -----------
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
91
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
92 To obtain a local version from source::
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
93
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
94 $ hg clone https://repo.mercurial-scm.org/evolve
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
95
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
96 There's no need to compile anything or run ``make``.
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
97
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
98 This method keeps the extension in its own repo, and you can use it by
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
99 specifying the full path to the ``hgext3rd/evolve/``.
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
100
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
101 Alternatively, you can install it::
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
102
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
103 $ cd evolve
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
104 # optionally `hg update <target revision>`
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
105 $ pip install --user .
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
106
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
107 This should avoid the need to specify the full path to the extension.
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
108
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
109 Enabling the Extension
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
110 ----------------------
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
111
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
112 After installing the extension, you need to enable it before you can use it.
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
113
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
114 To do that, edit your hgrc::
2095
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
115
5415
3be5dba88c49 readme: various small fixes to formatting and spelling
Anton Shestakov <av6@dwimlabs.net>
parents: 5414
diff changeset
116 $ hg config --edit # add these two lines:
2095
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
117 [extensions]
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
118 evolve =
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
119
6840
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
120 If you didn't install the extension or Mercurial can't find it on one of the
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
121 default paths, you need to specify the full path to ``hgext3rd/evolve/``::
5418
bc12eb8f41cb readme: it's possible to use evolve without installing
Anton Shestakov <av6@dwimlabs.net>
parents: 5417
diff changeset
122
bc12eb8f41cb readme: it's possible to use evolve without installing
Anton Shestakov <av6@dwimlabs.net>
parents: 5417
diff changeset
123 [extensions]
bc12eb8f41cb readme: it's possible to use evolve without installing
Anton Shestakov <av6@dwimlabs.net>
parents: 5417
diff changeset
124 evolve = ~/evolve/hgext3rd/evolve
2095
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
125
6840
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
126 Similarly, if you want to enable topic extension, do this::
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
127
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
128 $ hg config --edit
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
129 [extensions]
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
130 topic =
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
131 # or
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
132 topic = ~/evolve/hgext3rd/topic
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
133
6091
91cbb952676e readme: add potential pitfalls during installation
Anton Shestakov <av6@dwimlabs.net>
parents: 6090
diff changeset
134 Pitfalls
91cbb952676e readme: add potential pitfalls during installation
Anton Shestakov <av6@dwimlabs.net>
parents: 6090
diff changeset
135 --------
91cbb952676e readme: add potential pitfalls during installation
Anton Shestakov <av6@dwimlabs.net>
parents: 6090
diff changeset
136
91cbb952676e readme: add potential pitfalls during installation
Anton Shestakov <av6@dwimlabs.net>
parents: 6090
diff changeset
137 If you get ``"failed to import extension evolve: No module named 'evolve'"``
91cbb952676e readme: add potential pitfalls during installation
Anton Shestakov <av6@dwimlabs.net>
parents: 6090
diff changeset
138 error, there are a couple of things to check:
91cbb952676e readme: add potential pitfalls during installation
Anton Shestakov <av6@dwimlabs.net>
parents: 6090
diff changeset
139
6840
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
140 * make sure you gave pip/pipx the correct package name (it's ``hg-evolve``),
6091
91cbb952676e readme: add potential pitfalls during installation
Anton Shestakov <av6@dwimlabs.net>
parents: 6090
diff changeset
141
91cbb952676e readme: add potential pitfalls during installation
Anton Shestakov <av6@dwimlabs.net>
parents: 6090
diff changeset
142 * make sure evolve is installed for the same version of Python that you use for
6840
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
143 running Mercurial (``hg debuginstall | grep Python``),
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
144
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
145 * try specifying the full path to the ``hgext3rd/evolve/`` directory.
6091
91cbb952676e readme: add potential pitfalls during installation
Anton Shestakov <av6@dwimlabs.net>
parents: 6090
diff changeset
146
4046
669b32100eca readme: document the purpose of the evolve extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4042
diff changeset
147 Extension Purpose
669b32100eca readme: document the purpose of the evolve extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4042
diff changeset
148 =================
669b32100eca readme: document the purpose of the evolve extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4042
diff changeset
149
669b32100eca readme: document the purpose of the evolve extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4042
diff changeset
150 The goal of this extension is to provide an appropriate place for code and
5423
ba213f62fd50 readme: improve the extension purpose section
Anton Shestakov <av6@dwimlabs.net>
parents: 5422
diff changeset
151 concepts related to `changeset evolution`_ to mature. In this extension we
ba213f62fd50 readme: improve the extension purpose section
Anton Shestakov <av6@dwimlabs.net>
parents: 5422
diff changeset
152 allow hackier code, unlocking quick experimentation and faster iterations.
4046
669b32100eca readme: document the purpose of the evolve extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4042
diff changeset
153
5423
ba213f62fd50 readme: improve the extension purpose section
Anton Shestakov <av6@dwimlabs.net>
parents: 5422
diff changeset
154 In addition, evolve extension supports a wide range of Mercurial versions,
ba213f62fd50 readme: improve the extension purpose section
Anton Shestakov <av6@dwimlabs.net>
parents: 5422
diff changeset
155 allowing us to reach a larger user base for feedback. The extension is not tied
ba213f62fd50 readme: improve the extension purpose section
Anton Shestakov <av6@dwimlabs.net>
parents: 5422
diff changeset
156 to the Mercurial release cycle and can release new features and bug fixes at a
ba213f62fd50 readme: improve the extension purpose section
Anton Shestakov <av6@dwimlabs.net>
parents: 5422
diff changeset
157 higher rate if necessary.
4046
669b32100eca readme: document the purpose of the evolve extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4042
diff changeset
158
5423
ba213f62fd50 readme: improve the extension purpose section
Anton Shestakov <av6@dwimlabs.net>
parents: 5422
diff changeset
159 Once a concept is deemed ready, its implementation is moved into core
ba213f62fd50 readme: improve the extension purpose section
Anton Shestakov <av6@dwimlabs.net>
parents: 5422
diff changeset
160 Mercurial. The maturation period helped us to get a clearer picture of what was
4046
669b32100eca readme: document the purpose of the evolve extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4042
diff changeset
161 needed. During the upstreaming process, we can use this clearer picture to
5423
ba213f62fd50 readme: improve the extension purpose section
Anton Shestakov <av6@dwimlabs.net>
parents: 5422
diff changeset
162 clean up the code and upgrade it to an appropriate quality for core Mercurial.
2020
143c8e4dc22d topic: merge the topic extension in the evolve repository
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 1824
diff changeset
163
5415
3be5dba88c49 readme: various small fixes to formatting and spelling
Anton Shestakov <av6@dwimlabs.net>
parents: 5414
diff changeset
164 Python 3 Support
4818
bce578f9012f python3: mention beta Python 3 support in README
Raphaël Gomès <rgomes@octobus.net>
parents: 4814
diff changeset
165 ================
bce578f9012f python3: mention beta Python 3 support in README
Raphaël Gomès <rgomes@octobus.net>
parents: 4814
diff changeset
166
5420
5a7a5de347b5 readme: update py3 support section
Anton Shestakov <av6@dwimlabs.net>
parents: 5419
diff changeset
167 Mercurial announced official `support for Python 3`_ starting with its 5.2
5a7a5de347b5 readme: update py3 support section
Anton Shestakov <av6@dwimlabs.net>
parents: 5419
diff changeset
168 release. Since 9.3.0, evolve has official support for Python 3.6+.
4818
bce578f9012f python3: mention beta Python 3 support in README
Raphaël Gomès <rgomes@octobus.net>
parents: 4814
diff changeset
169
6840
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
170 .. _`support for Python 3`: https://wiki.mercurial-scm.org/Python3
4818
bce578f9012f python3: mention beta Python 3 support in README
Raphaël Gomès <rgomes@octobus.net>
parents: 4814
diff changeset
171
6265
8b3cb6cae4a2 readme: add a section for python 2 support as well
Anton Shestakov <av6@dwimlabs.net>
parents: 6092
diff changeset
172 Python 2 Support
8b3cb6cae4a2 readme: add a section for python 2 support as well
Anton Shestakov <av6@dwimlabs.net>
parents: 6092
diff changeset
173 ================
8b3cb6cae4a2 readme: add a section for python 2 support as well
Anton Shestakov <av6@dwimlabs.net>
parents: 6092
diff changeset
174
8b3cb6cae4a2 readme: add a section for python 2 support as well
Anton Shestakov <av6@dwimlabs.net>
parents: 6092
diff changeset
175 Python 2 is supported by evolve. However, Mercurial 6.2 release dropped support
8b3cb6cae4a2 readme: add a section for python 2 support as well
Anton Shestakov <av6@dwimlabs.net>
parents: 6092
diff changeset
176 for it, so evolve can work on Python 2 only on earlier versions.
8b3cb6cae4a2 readme: add a section for python 2 support as well
Anton Shestakov <av6@dwimlabs.net>
parents: 6092
diff changeset
177
8b3cb6cae4a2 readme: add a section for python 2 support as well
Anton Shestakov <av6@dwimlabs.net>
parents: 6092
diff changeset
178 Debian packages that are built using Heptapod CI only install files for Python
8b3cb6cae4a2 readme: add a section for python 2 support as well
Anton Shestakov <av6@dwimlabs.net>
parents: 6092
diff changeset
179 3, because they target current Debian stable.
8b3cb6cae4a2 readme: add a section for python 2 support as well
Anton Shestakov <av6@dwimlabs.net>
parents: 6092
diff changeset
180
2097
c99e926d465a README: more change to have a pretty rendering on pypi
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2095
diff changeset
181 How to Contribute
c99e926d465a README: more change to have a pretty rendering on pypi
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2095
diff changeset
182 =================
238
b5d9841defc8 more read me update
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 237
diff changeset
183
6092
92f1a6e7c139 readme: add #mercurial too, since it's relevant
Anton Shestakov <av6@dwimlabs.net>
parents: 6091
diff changeset
184 Discussion happens in #hg-evolve and #mercurial on libera_ IRC network.
3766
6352dc395ebf evolve: update the readme with more information about contribution
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 3071
diff changeset
185
5955
2068ff9ad72a readme: move the support channel on libera
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 5600
diff changeset
186 .. _libera: https://libera.chat/
3766
6352dc395ebf evolve: update the readme with more information about contribution
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 3071
diff changeset
187
5415
3be5dba88c49 readme: various small fixes to formatting and spelling
Anton Shestakov <av6@dwimlabs.net>
parents: 5414
diff changeset
188 Bugs are to be reported on the Mercurial's bug tracker (component:
3be5dba88c49 readme: various small fixes to formatting and spelling
Anton Shestakov <av6@dwimlabs.net>
parents: 5414
diff changeset
189 `evolution`_).
2099
47017b3086d4 README: more update to prepare for pypi upload
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2097
diff changeset
190
47017b3086d4 README: more update to prepare for pypi upload
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2097
diff changeset
191 .. _evolution: https://bz.mercurial-scm.org/buglist.cgi?component=evolution&query_format=advanced&resolution=---
1182
15492cea54e9 readme: add a reference to the bugtracker in the contribute section
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 1175
diff changeset
192
5421
f287f6b082f8 readme: improve wording in the contributing section
Anton Shestakov <av6@dwimlabs.net>
parents: 5420
diff changeset
193 The recommended way to submit a patch is to create a Merge Request on
5138
b8b234123fe6 readme: update heptapod link
Anton Shestakov <av6@dwimlabs.net>
parents: 5116
diff changeset
194 https://foss.heptapod.net/mercurial/evolve. To do so, create an account and
5421
f287f6b082f8 readme: improve wording in the contributing section
Anton Shestakov <av6@dwimlabs.net>
parents: 5420
diff changeset
195 request access. You'll then be able to create a topic-based merge request.
4922
dacbd20b2f72 readme: update contribution guide
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4877
diff changeset
196
dacbd20b2f72 readme: update contribution guide
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4877
diff changeset
197 Alternatively, you can use the patchbomb extension to send email to `mercurial
dacbd20b2f72 readme: update contribution guide
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4877
diff changeset
198 devel <https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel>`_.
dacbd20b2f72 readme: update contribution guide
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4877
diff changeset
199 Please make sure to use the evolve-ext flag when doing so. You can use a
dacbd20b2f72 readme: update contribution guide
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4877
diff changeset
200 command like this::
1000
8043ae3612e4 readme: mention patchbomb usage and patch description guidelines on wiki
Faheem Mitha <faheem@faheem.info>
parents: 987
diff changeset
201
2097
c99e926d465a README: more change to have a pretty rendering on pypi
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2095
diff changeset
202 $ hg email --to mercurial-devel@mercurial-scm.org --flag evolve-ext --rev '<your patches>'
1000
8043ae3612e4 readme: mention patchbomb usage and patch description guidelines on wiki
Faheem Mitha <faheem@faheem.info>
parents: 987
diff changeset
203
2099
47017b3086d4 README: more update to prepare for pypi upload
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2097
diff changeset
204 For guidelines on the patch description, see the `official Mercurial guideline`_.
47017b3086d4 README: more update to prepare for pypi upload
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2097
diff changeset
205
6840
9c70bdc92cdb docs: update installation instructions due to PEP 668
Anton Shestakov <av6@dwimlabs.net>
parents: 6558
diff changeset
206 .. _`official Mercurial guideline`: https://wiki.mercurial-scm.org/ContributingChanges#Patch_descriptions
1000
8043ae3612e4 readme: mention patchbomb usage and patch description guidelines on wiki
Faheem Mitha <faheem@faheem.info>
parents: 987
diff changeset
207
5415
3be5dba88c49 readme: various small fixes to formatting and spelling
Anton Shestakov <av6@dwimlabs.net>
parents: 5414
diff changeset
208 Please don't forget to update and run the tests when you fix a bug or add a
3be5dba88c49 readme: various small fixes to formatting and spelling
Anton Shestakov <av6@dwimlabs.net>
parents: 5414
diff changeset
209 feature. To run the tests, you need a working copy of Mercurial, say in
3be5dba88c49 readme: various small fixes to formatting and spelling
Anton Shestakov <av6@dwimlabs.net>
parents: 5414
diff changeset
210 $HGSRC::
926
14d91c36f88b README: document how to run the tests
Greg Ward <greg@gerg.ca>
parents: 924
diff changeset
211
2097
c99e926d465a README: more change to have a pretty rendering on pypi
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2095
diff changeset
212 $ cd tests
c99e926d465a README: more change to have a pretty rendering on pypi
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2095
diff changeset
213 $ python $HGSRC/tests/run-tests.py
1526
c2a772ade409 README: update instructions for running tests.
Greg Ward <greg@gerg.ca>
parents: 1519
diff changeset
214
5195
85640f1feced readme: mention compat string format
Anton Shestakov <av6@dwimlabs.net>
parents: 5194
diff changeset
215 When certain blocks of code need to cope with API changes in core Mercurial,
85640f1feced readme: mention compat string format
Anton Shestakov <av6@dwimlabs.net>
parents: 5194
diff changeset
216 they should have comments in the ``hg <= x.y (commit hash)`` format. For
85640f1feced readme: mention compat string format
Anton Shestakov <av6@dwimlabs.net>
parents: 5194
diff changeset
217 example, if a function needs another code path because of changes introduced in
85640f1feced readme: mention compat string format
Anton Shestakov <av6@dwimlabs.net>
parents: 5194
diff changeset
218 02802fa87b74 that was first included in Mercurial 5.3, then the comment should
85640f1feced readme: mention compat string format
Anton Shestakov <av6@dwimlabs.net>
parents: 5194
diff changeset
219 be::
85640f1feced readme: mention compat string format
Anton Shestakov <av6@dwimlabs.net>
parents: 5194
diff changeset
220
85640f1feced readme: mention compat string format
Anton Shestakov <av6@dwimlabs.net>
parents: 5194
diff changeset
221 # hg <= 5.2 (02802fa87b74)
85640f1feced readme: mention compat string format
Anton Shestakov <av6@dwimlabs.net>
parents: 5194
diff changeset
222
85640f1feced readme: mention compat string format
Anton Shestakov <av6@dwimlabs.net>
parents: 5194
diff changeset
223 See also tests/test-check-compat-strings.t.
85640f1feced readme: mention compat string format
Anton Shestakov <av6@dwimlabs.net>
parents: 5194
diff changeset
224
2537
4a467331ec79 readme: clarify the branch policy
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2535
diff changeset
225 Branch policy
4a467331ec79 readme: clarify the branch policy
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2535
diff changeset
226 -------------
4a467331ec79 readme: clarify the branch policy
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2535
diff changeset
227
5421
f287f6b082f8 readme: improve wording in the contributing section
Anton Shestakov <av6@dwimlabs.net>
parents: 5420
diff changeset
228 The evolve tests are highly impacted by changes in core Mercurial. To deal with
f287f6b082f8 readme: improve wording in the contributing section
Anton Shestakov <av6@dwimlabs.net>
parents: 5420
diff changeset
229 this, we use named branches.
2537
4a467331ec79 readme: clarify the branch policy
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2535
diff changeset
230
5194
f478ac0a818f readme: copywrite the section about branch policy, wrap long lines
Anton Shestakov <av6@dwimlabs.net>
parents: 5138
diff changeset
231 There are two main branches: "stable" and "default". Tests on these branches
f478ac0a818f readme: copywrite the section about branch policy, wrap long lines
Anton Shestakov <av6@dwimlabs.net>
parents: 5138
diff changeset
232 are supposed to pass with the corresponding "default" and "stable" branch from
f478ac0a818f readme: copywrite the section about branch policy, wrap long lines
Anton Shestakov <av6@dwimlabs.net>
parents: 5138
diff changeset
233 core Mercurial. The documentation is built from the tip of stable.
2537
4a467331ec79 readme: clarify the branch policy
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2535
diff changeset
234
5194
f478ac0a818f readme: copywrite the section about branch policy, wrap long lines
Anton Shestakov <av6@dwimlabs.net>
parents: 5138
diff changeset
235 In addition, we have compatibility branches to check tests on older versions of
2537
4a467331ec79 readme: clarify the branch policy
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2535
diff changeset
236 Mercurial. They are the "mercurial-x.y" branches. They are used to apply
5194
f478ac0a818f readme: copywrite the section about branch policy, wrap long lines
Anton Shestakov <av6@dwimlabs.net>
parents: 5138
diff changeset
237 expected test changes only, no code changes should happen there.
4042
75e4c451b753 readme: document the tag we use on output change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 3766
diff changeset
238
5194
f478ac0a818f readme: copywrite the section about branch policy, wrap long lines
Anton Shestakov <av6@dwimlabs.net>
parents: 5138
diff changeset
239 Test output changes from a changeset in core should add the following line to
5415
3be5dba88c49 readme: various small fixes to formatting and spelling
Anton Shestakov <av6@dwimlabs.net>
parents: 5414
diff changeset
240 their patch description::
4042
75e4c451b753 readme: document the tag we use on output change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 3766
diff changeset
241
5415
3be5dba88c49 readme: various small fixes to formatting and spelling
Anton Shestakov <av6@dwimlabs.net>
parents: 5414
diff changeset
242 CORE-TEST-OUTPUT-UPDATE: <changeset hash>
4814
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
243
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
244 Format-source config
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
245 ====================
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
246
5598
d1f6cf85bfec readme: fix syntax of format-source link
Sietse Brouwer <sbbrouwer@gmail.com>
parents: 5195
diff changeset
247 Format-source helps smooth out the pain of merging after auto-formatting.
d1f6cf85bfec readme: fix syntax of format-source link
Sietse Brouwer <sbbrouwer@gmail.com>
parents: 5195
diff changeset
248 Follow the installation instructions at the `format-source`_ repo.
4814
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
249
5414
15b7c822cc46 readme: update link to format-source
Anton Shestakov <av6@dwimlabs.net>
parents: 5398
diff changeset
250 .. _`format-source`: https://foss.heptapod.net/mercurial/format-source
4814
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
251
5422
39cd95b6f566 readme: shorter path to byteify-strings.py and not editing per-user config
Anton Shestakov <av6@dwimlabs.net>
parents: 5421
diff changeset
252 Then update your per-repo config file::
4814
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
253
5415
3be5dba88c49 readme: various small fixes to formatting and spelling
Anton Shestakov <av6@dwimlabs.net>
parents: 5414
diff changeset
254 $ hg config --local --edit # add these lines:
4814
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
255 [extensions]
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
256 formatsource =
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
257
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
258 [format-source]
5422
39cd95b6f566 readme: shorter path to byteify-strings.py and not editing per-user config
Anton Shestakov <av6@dwimlabs.net>
parents: 5421
diff changeset
259 byteify-strings = python3 ~/hg/contrib/byteify-strings.py --dictiter --treat-as-kwargs kwargs opts commitopts TROUBLES --allow-attr-methods
4814
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
260 byteify-strings:mode.input = file
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
261 byteify-strings:mode.output = pipe
5116
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
262
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
263 Release Checklist
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
264 =================
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
265
6090
66d146b88c45 readme: update release checklist (mostly formatting)
Anton Shestakov <av6@dwimlabs.net>
parents: 5955
diff changeset
266 * use contrib/merge-test-compat.sh to merge with the test compatibility
66d146b88c45 readme: update release checklist (mostly formatting)
Anton Shestakov <av6@dwimlabs.net>
parents: 5955
diff changeset
267 branches,
66d146b88c45 readme: update release checklist (mostly formatting)
Anton Shestakov <av6@dwimlabs.net>
parents: 5955
diff changeset
268
5116
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
269 * make sure the tests are happy on all supported versions,
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
270
6090
66d146b88c45 readme: update release checklist (mostly formatting)
Anton Shestakov <av6@dwimlabs.net>
parents: 5955
diff changeset
271 * make sure there is no code difference between the compatibility branches and
66d146b88c45 readme: update release checklist (mostly formatting)
Anton Shestakov <av6@dwimlabs.net>
parents: 5955
diff changeset
272 stable (no diff within hgext3rd/),
5116
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
273
6407
6b128ae8e2ad docs: let's try to make development versions compatible with PEP-440
Anton Shestakov <av6@dwimlabs.net>
parents: 6265
diff changeset
274 * update the ``testedwith`` variable for all extensions (remove '.dev0'):
5116
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
275
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
276 - hgext3rd/evolve/metadata.py
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
277 - hgext3rd/topic/__init__.py
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
278 - hgext3rd/pullbundle.py
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
279
6090
66d146b88c45 readme: update release checklist (mostly formatting)
Anton Shestakov <av6@dwimlabs.net>
parents: 5955
diff changeset
280 * make sure CHANGELOG is up-to-date,
5116
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
281
6090
66d146b88c45 readme: update release checklist (mostly formatting)
Anton Shestakov <av6@dwimlabs.net>
parents: 5955
diff changeset
282 * add a date to the CHANGELOG entry for the target version,
5116
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
283
6090
66d146b88c45 readme: update release checklist (mostly formatting)
Anton Shestakov <av6@dwimlabs.net>
parents: 5955
diff changeset
284 * update the ``__version__`` field of all relevant extensions:
5116
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
285
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
286 - hgext3rd/evolve/metadata.py
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
287 - hgext3rd/topic/__init__.py
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
288 - hgext3rd/pullbundle.py (if touched)
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
289
6090
66d146b88c45 readme: update release checklist (mostly formatting)
Anton Shestakov <av6@dwimlabs.net>
parents: 5955
diff changeset
290 * create a new Debian changelog entry:
5116
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
291
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
292 - debchange --newversion x.y.z-1 "new upstream release"
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
293 - debchange --release
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
294
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
295 * sanity check install and sdist targets of setup.py:
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
296
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
297 - python setup.py install --home=$(mktemp -d)
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
298 - python setup.py sdist
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
299
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
300 * tag the commit,
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
301
6090
66d146b88c45 readme: update release checklist (mostly formatting)
Anton Shestakov <av6@dwimlabs.net>
parents: 5955
diff changeset
302 * move ``@`` bookmark to the new tag,
66d146b88c45 readme: update release checklist (mostly formatting)
Anton Shestakov <av6@dwimlabs.net>
parents: 5955
diff changeset
303
5116
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
304 * push and publish the tag,
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
305
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
306 * upload the tarball to PyPI,
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
307
6435
8a7db813bd07 docs: add building a .deb package to release checklist
Anton Shestakov <av6@dwimlabs.net>
parents: 6407
diff changeset
308 * build .deb on Heptapod CI for the tagged commit,
8a7db813bd07 docs: add building a .deb package to release checklist
Anton Shestakov <av6@dwimlabs.net>
parents: 6407
diff changeset
309
6090
66d146b88c45 readme: update release checklist (mostly formatting)
Anton Shestakov <av6@dwimlabs.net>
parents: 5955
diff changeset
310 * make an announcement on evolve-testers@mercurial-scm.org and
66d146b88c45 readme: update release checklist (mostly formatting)
Anton Shestakov <av6@dwimlabs.net>
parents: 5955
diff changeset
311 mercurial@mercurial-scm.org,
5116
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
312
6407
6b128ae8e2ad docs: let's try to make development versions compatible with PEP-440
Anton Shestakov <av6@dwimlabs.net>
parents: 6265
diff changeset
313 * bump versions of all extensions and add ``.dev0`` (see existing commits as an
5116
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
314 example):
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
315
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
316 - hgext3rd/evolve/metadata.py
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
317 - hgext3rd/topic/__init__.py
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
318 - hgext3rd/pullbundle.py
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
319
6090
66d146b88c45 readme: update release checklist (mostly formatting)
Anton Shestakov <av6@dwimlabs.net>
parents: 5955
diff changeset
320 Version bump rules:
66d146b88c45 readme: update release checklist (mostly formatting)
Anton Shestakov <av6@dwimlabs.net>
parents: 5955
diff changeset
321
6407
6b128ae8e2ad docs: let's try to make development versions compatible with PEP-440
Anton Shestakov <av6@dwimlabs.net>
parents: 6265
diff changeset
322 - stable branch x.y.z+1.dev0
6b128ae8e2ad docs: let's try to make development versions compatible with PEP-440
Anton Shestakov <av6@dwimlabs.net>
parents: 6265
diff changeset
323 - default branch x.y+1.0.dev0
5116
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
324
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
325 * merge stable into default.