README
author Manuel Jacob <me@manueljacob.de>
Wed, 11 Mar 2020 16:04:06 +0100
branchstable
changeset 5206 dc3571a37b56
parent 5138 b8b234123fe6
child 5194 f478ac0a818f
permissions -rw-r--r--
evolve: support ancestor of orphan split with unrelated changeset in between This is done by searching for roots and heads within the range delimited on both sides by the target revs instead of just within the target revs. Example: o 5 | o 4 | o 3 | | * 2 | | | x 1 |/ o 0 1 is obsoleted by 3 and 5. We are considering the case when 2 gets evolved. Before the change, both roots and heads were [3, 5]. The user was offered a choice between 3 and 5 as the destination. After the change, roots are [3] and heads are [5]. 5 is chosen as the destination.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
     6
=================
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
     7
2094
e906723ab99f README: rework the intro
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2075
diff changeset
     8
This package supplies the ``evolve`` extension for Mercurial,
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
4877
77e5c733200a py3: remove smartquotes from README
Ian Moody <moz-ian@perix.co.uk>
parents: 4818
diff changeset
    17
* enables the "changeset evolution" feature of Mercurial core,
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
c99e926d465a README: more change to have a pretty rendering on pypi
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2095
diff changeset
    19
* provides a set of commands to mutate your history,
2094
e906723ab99f README: rework the intro
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2075
diff changeset
    20
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
    21
* issues several warning messages when troubles from some mutable appears in
c99e926d465a README: more change to have a pretty rendering on pypi
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2095
diff changeset
    22
  your repository,
c99e926d465a README: more change to have a pretty rendering on pypi
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2095
diff changeset
    23
2102
e243e1d9464c README: timeless typo fixes
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2099
diff changeset
    24
* provides an ``hg evolve`` command to deal with such "troubles",
2099
47017b3086d4 README: more update to prepare for pypi upload
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2097
diff changeset
    25
2102
e243e1d9464c README: timeless typo fixes
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2099
diff changeset
    26
* improves performance of obsolescence marker exchanges and discovery during
2099
47017b3086d4 README: more update to prepare for pypi upload
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2097
diff changeset
    27
  push and pull.
293
232990fbecb5 [doc] update readme
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 267
diff changeset
    28
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
    29
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
    30
-------------
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
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
We recommend reading the documentation first. An online version is
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
available here:
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    34
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
    35
    https://www.mercurial-scm.org/doc/evolution/
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
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
    38
==============
c99e926d465a README: more change to have a pretty rendering on pypi
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2095
diff changeset
    39
c99e926d465a README: more change to have a pretty rendering on pypi
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2095
diff changeset
    40
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
    41
---------
2095
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
    42
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
    43
You can install the latest evolution version usin pip::
324
ff070b9e22ef readme: explain "instalation process"
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 293
diff changeset
    44
2095
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
    45
    $ pip install --user hg-evolve
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
    46
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
    47
Then just enable it in you hgrc::
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
    48
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
    49
    $ hg config --edit # adds the two line below:
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
    50
    [extensions]
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
    51
    evolve =
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    52
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
    53
From Source
c99e926d465a README: more change to have a pretty rendering on pypi
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2095
diff changeset
    54
-----------
739
dcda64966616 README: polish the language so it reads better
Greg Ward <greg@gerg.ca>
parents: 738
diff changeset
    55
2095
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
    56
To install a local version from source::
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
    57
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
    58
    $ hg clone https://www.mercurial-scm.org/repo/evolve/
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
    59
    $ cd evolve
2113
fed5369058a4 README: remove mention of make
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2102
diff changeset
    60
    $ pip install --user .
2020
143c8e4dc22d topic: merge the topic extension in the evolve repository
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 1824
diff changeset
    61
2095
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
    62
Then just enable it in you hgrc::
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
    63
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
    64
    $ hg config --edit # adds the two line below:
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
    65
    [extensions]
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
    66
    evolve =
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
    67
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
    68
Documentation lives in ``doc/``.
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
    69
2114
51ee2c721b32 README: tries to improve the title about server only
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2113
diff changeset
    70
Server Only Setup
51ee2c721b32 README: tries to improve the title about server only
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2113
diff changeset
    71
=================
2020
143c8e4dc22d topic: merge the topic extension in the evolve repository
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 1824
diff changeset
    72
2099
47017b3086d4 README: more update to prepare for pypi upload
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2097
diff changeset
    73
It is possible to enable a smaller subset of the extensions aimed at server
47017b3086d4 README: more update to prepare for pypi upload
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2097
diff changeset
    74
serving repository. It skips the additions of the new commands and local UI
47017b3086d4 README: more update to prepare for pypi upload
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2097
diff changeset
    75
messages that might add performance overheads. To use the server only
47017b3086d4 README: more update to prepare for pypi upload
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2097
diff changeset
    76
extension, install the package and use::
2095
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
    77
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
    78
    $ hg config --edit # adds the two line below:
2020
143c8e4dc22d topic: merge the topic extension in the evolve repository
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 1824
diff changeset
    79
    [extensions]
2099
47017b3086d4 README: more update to prepare for pypi upload
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2097
diff changeset
    80
    evolve.serveronly =
2020
143c8e4dc22d topic: merge the topic extension in the evolve repository
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 1824
diff changeset
    81
4046
669b32100eca readme: document the purpose of the evolve extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4042
diff changeset
    82
Extension Purpose
669b32100eca readme: document the purpose of the evolve extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4042
diff changeset
    83
=================
669b32100eca readme: document the purpose of the evolve extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4042
diff changeset
    84
669b32100eca readme: document the purpose of the evolve extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4042
diff changeset
    85
The goal of this extension is to provide an appropriate place for code and
669b32100eca readme: document the purpose of the evolve extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4042
diff changeset
    86
concept related to changeset evolution to mature. In this extension we allow
669b32100eca readme: document the purpose of the evolve extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4042
diff changeset
    87
for hackier code, unlocking quick experimentation and faster iterations.
669b32100eca readme: document the purpose of the evolve extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4042
diff changeset
    88
669b32100eca readme: document the purpose of the evolve extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4042
diff changeset
    89
In addition, the evolve extensions support a wider set of Mercurial version,
669b32100eca readme: document the purpose of the evolve extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4042
diff changeset
    90
allowing us to reach a larger user base for feedback. The Evolve extension is
669b32100eca readme: document the purpose of the evolve extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4042
diff changeset
    91
not tight to the Mercurial release cycle and can release new feature and bug
669b32100eca readme: document the purpose of the evolve extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4042
diff changeset
    92
fix at a higher rate if necessary.
669b32100eca readme: document the purpose of the evolve extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4042
diff changeset
    93
669b32100eca readme: document the purpose of the evolve extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4042
diff changeset
    94
Once a concept is ready enough, its implementation is moved into Mercurial
669b32100eca readme: document the purpose of the evolve extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4042
diff changeset
    95
core. The maturation period helped us to get a clearer picture of what was
669b32100eca readme: document the purpose of the evolve extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4042
diff changeset
    96
needed. During the upstreaming process, we can use this clearer picture to
669b32100eca readme: document the purpose of the evolve extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4042
diff changeset
    97
clean up the code and upgrade it to an appropriate quality for Mercurial core.
2020
143c8e4dc22d topic: merge the topic extension in the evolve repository
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 1824
diff changeset
    98
4818
bce578f9012f python3: mention beta Python 3 support in README
Raphaël Gomès <rgomes@octobus.net>
parents: 4814
diff changeset
    99
Python 3 support
bce578f9012f python3: mention beta Python 3 support in README
Raphaël Gomès <rgomes@octobus.net>
parents: 4814
diff changeset
   100
================
bce578f9012f python3: mention beta Python 3 support in README
Raphaël Gomès <rgomes@octobus.net>
parents: 4814
diff changeset
   101
bce578f9012f python3: mention beta Python 3 support in README
Raphaël Gomès <rgomes@octobus.net>
parents: 4814
diff changeset
   102
Mercurial announced beta support for Python 3 starting with its 5.0 release.
bce578f9012f python3: mention beta Python 3 support in README
Raphaël Gomès <rgomes@octobus.net>
parents: 4814
diff changeset
   103
Since 9.1.0, ``evolve`` has beta support for Python 3.6+.
bce578f9012f python3: mention beta Python 3 support in README
Raphaël Gomès <rgomes@octobus.net>
parents: 4814
diff changeset
   104
bce578f9012f python3: mention beta Python 3 support in README
Raphaël Gomès <rgomes@octobus.net>
parents: 4814
diff changeset
   105
Support will stay in beta while Mercurial's support for Python 3 remains in
bce578f9012f python3: mention beta Python 3 support in README
Raphaël Gomès <rgomes@octobus.net>
parents: 4814
diff changeset
   106
beta and until it is a bit more battle-tested.
bce578f9012f python3: mention beta Python 3 support in README
Raphaël Gomès <rgomes@octobus.net>
parents: 4814
diff changeset
   107
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
   108
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
   109
=================
238
b5d9841defc8 more read me update
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 237
diff changeset
   110
3766
6352dc395ebf evolve: update the readme with more information about contribution
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 3071
diff changeset
   111
Discussion happens on the #hg-evolve IRC on freenode_.
6352dc395ebf evolve: update the readme with more information about contribution
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 3071
diff changeset
   112
6352dc395ebf evolve: update the readme with more information about contribution
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 3071
diff changeset
   113
.. _freenode: https://freenode.net/
6352dc395ebf evolve: update the readme with more information about contribution
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 3071
diff changeset
   114
2099
47017b3086d4 README: more update to prepare for pypi upload
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2097
diff changeset
   115
Bugs are to be reported on the mercurial's bug tracker (component: `evolution`_):
47017b3086d4 README: more update to prepare for pypi upload
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2097
diff changeset
   116
47017b3086d4 README: more update to prepare for pypi upload
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2097
diff changeset
   117
.. _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
   118
4922
dacbd20b2f72 readme: update contribution guide
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4877
diff changeset
   119
The recommended way is to create Merge Request on
5138
b8b234123fe6 readme: update heptapod link
Anton Shestakov <av6@dwimlabs.net>
parents: 5116
diff changeset
   120
https://foss.heptapod.net/mercurial/evolve. To do so, create an account and
4922
dacbd20b2f72 readme: update contribution guide
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4877
diff changeset
   121
request access. You'll then be able to create topic based merge request.
dacbd20b2f72 readme: update contribution guide
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4877
diff changeset
   122
dacbd20b2f72 readme: update contribution guide
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4877
diff changeset
   123
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
   124
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
   125
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
   126
command like this::
1000
8043ae3612e4 readme: mention patchbomb usage and patch description guidelines on wiki
Faheem Mitha <faheem@faheem.info>
parents: 987
diff changeset
   127
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
   128
    $ 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
   129
3766
6352dc395ebf evolve: update the readme with more information about contribution
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 3071
diff changeset
   130
2099
47017b3086d4 README: more update to prepare for pypi upload
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2097
diff changeset
   131
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
   132
47017b3086d4 README: more update to prepare for pypi upload
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2097
diff changeset
   133
.. _`official Mercurial guideline`: https://mercurial-scm.org/wiki/ContributingChanges#Patch_descriptions
1000
8043ae3612e4 readme: mention patchbomb usage and patch description guidelines on wiki
Faheem Mitha <faheem@faheem.info>
parents: 987
diff changeset
   134
8043ae3612e4 readme: mention patchbomb usage and patch description guidelines on wiki
Faheem Mitha <faheem@faheem.info>
parents: 987
diff changeset
   135
Please don't forget to update and run the tests when you fix a bug or
1526
c2a772ade409 README: update instructions for running tests.
Greg Ward <greg@gerg.ca>
parents: 1519
diff changeset
   136
add a feature. To run the tests, you need a working copy of 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
   137
say in $HGSRC::
926
14d91c36f88b README: document how to run the tests
Greg Ward <greg@gerg.ca>
parents: 924
diff changeset
   138
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
   139
    $ 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
   140
    $ python $HGSRC/tests/run-tests.py
1526
c2a772ade409 README: update instructions for running tests.
Greg Ward <greg@gerg.ca>
parents: 1519
diff changeset
   141
2537
4a467331ec79 readme: clarify the branch policy
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2535
diff changeset
   142
Branch policy
4a467331ec79 readme: clarify the branch policy
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2535
diff changeset
   143
-------------
4a467331ec79 readme: clarify the branch policy
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2535
diff changeset
   144
4a467331ec79 readme: clarify the branch policy
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2535
diff changeset
   145
The evolve test are highly impacted by changes in core. To deal with this, we use named branches.
4a467331ec79 readme: clarify the branch policy
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2535
diff changeset
   146
4a467331ec79 readme: clarify the branch policy
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2535
diff changeset
   147
There are two main branches: "stable" and "default". Tests on these branch are
4a467331ec79 readme: clarify the branch policy
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2535
diff changeset
   148
supposed to pass with the corresponding "default" and "stable" branch from core
2538
2b2addb23e96 packaging: mark as version 6.3.1.dev
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2537
diff changeset
   149
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
   150
4a467331ec79 readme: clarify the branch policy
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2535
diff changeset
   151
In addition, we have compatibility branches to check tests on older version of
4a467331ec79 readme: clarify the branch policy
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2535
diff changeset
   152
Mercurial. They are the "mercurial-x.y" branches. They are used to apply
4a467331ec79 readme: clarify the branch policy
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2535
diff changeset
   153
expected test change only, no code change 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
   154
75e4c451b753 readme: document the tag we use on output change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 3766
diff changeset
   155
test output change from a changeset in core should adds the following line to their description:
75e4c451b753 readme: document the tag we use on output change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 3766
diff changeset
   156
75e4c451b753 readme: document the tag we use on output change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 3766
diff changeset
   157
CORE-TEST-OUTPUT-UPDATE: <CORE-NODE-ID>
4814
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
   158
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
   159
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
   160
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
   161
====================
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
   162
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
   163
Format source helps smooth out the pain of merging after auto-formatting.
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
   164
Follow the instructions for install here:
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
   165
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
   166
.. _`format-source`: https://bitbucket.org/octobus/format-source
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
   167
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
   168
Then update both your global and repo config files::
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
   169
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
   170
    $ hg config -l # add the lines below
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
   171
    [extensions]
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
   172
    formatsource =
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
   173
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
   174
    [format-source]
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
   175
    byteify-strings = python3 ~/workspace/octobus/mercurial-devel/contrib/byteify-strings.py --dictiter --treat-as-kwargs kwargs opts commitopts TROUBLES --allow-attr-methods
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
   176
    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
   177
    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
   178
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   179
Release Checklist
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   180
=================
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   181
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   182
* 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
   183
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   184
  You can use the `contrib/merge-test-compat.sh` to merge with the test
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   185
  compatibility branches.
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   186
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   187
* make sure there is no code difference between the compat branches and stable
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   188
  (no diff within `hgext3rd/`),
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   189
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   190
* update the `testedwith` variable for all extensions (remove '.dev'):
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   191
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   192
  - hgext3rd/evolve/metadata.py
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   193
  - hgext3rd/topic/__init__.py
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   194
  - hgext3rd/pullbundle.py
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   195
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   196
* make sure the changelog is up to date,
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   197
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   198
* add a date to the changelog entry for the target version,
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   199
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   200
* update the `__version__` field of all relevant extensions:
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   201
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   202
  - hgext3rd/evolve/metadata.py
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   203
  - hgext3rd/topic/__init__.py
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   204
  - hgext3rd/pullbundle.py (if touched)
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   205
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   206
* create a new Debian entry:
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   207
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   208
  - 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
   209
  - debchange --release
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   210
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   211
* 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
   212
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   213
  - 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
   214
  - python setup.py sdist
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   215
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   216
* tag the commit,
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   217
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   218
* push and publish the tag,
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   219
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   220
* upload the tarball to PyPI,
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   221
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   222
* make an announcement on evolve-testers@mercurial-scm.org (possibly on
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   223
  mercurial@mercurial-scm.org too),
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   224
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   225
* bump versions of all extensions and add '.dev' (see existing commits as an
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   226
  example):
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   227
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   228
  - hgext3rd/evolve/metadata.py
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   229
  - hgext3rd/topic/__init__.py
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   230
  - hgext3rd/pullbundle.py
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   231
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   232
  The version we use on the stable branch during development should be
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   233
  `x.y.z+1.dev`. The version of the default branch should be `x.y+1.0.dev`.
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   234
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   235
* merge stable into default.