This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: Rip out mq instructions
Type: Stage: resolved
Components: Devguide Versions:
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: Nosy List: eric.araujo, ezio.melotti, francismb, ned.deily, orsenthil, pitrou, python-dev, r.david.murray
Priority: normal Keywords: patch

Created on 2012-04-01 15:33 by pitrou, last changed 2022-04-11 14:57 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
ripmq.patch pitrou, 2012-04-02 20:32
Messages (15)
msg157302 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2012-04-01 15:33
The devguide describes a mq-based approach (*) for generating patches, but it seems nobody (almost) uses it. We should therefore replace that description with a more traditional one ("hg diff").

(*) http://docs.python.org/devguide/patch.html#tool-usage
msg157307 - (view) Author: Éric Araujo (eric.araujo) * (Python committer) Date: 2012-04-01 15:59
Yes please.  We already have text if we look at the history before 73e11f64a704; we only need to agree on recommending “uncommitted changes in a clone” (which is okay to share patches but not for not ideal for more than one person working on something), named branches (what was in the previous text, because it makes it easy to run hg diff -r default and such commands) or bookmarks (lightweight named branches that some people recommend; I’m not sure how they’re better, given that in the end we generate a patch and make a new commit).

I, for one, use both uncommitted-changes and named branches; the former is easiest, but the latter safer: if I screw up a merge in a clone where I use a named branch, I can revert and retry the merge, but if I screw up merging pulled changes with my uncommitted edits, I risk losing them.
msg157308 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2012-04-01 16:01
> I, for one, use both uncommitted-changes and named branches; the
> former is easiest, but the latter safer: if I screw up a merge in a
> clone where I use a named branch, I can revert and retry the merge,
> but if I screw up merging pulled changes with my uncommitted edits, I
> risk losing them.

I think uncommitted changes is fine for a simple introduction.
hg experts can use whatever they want without needing our help.
msg157327 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2012-04-01 19:58
No one uses it?  I'm surprised.  I do and it seems to me by far the easiest and safest way to maintain patches in progress when there is constant churn.
msg157341 - (view) Author: Ezio Melotti (ezio.melotti) * (Python committer) Date: 2012-04-02 02:10
+1
Most of the time "hg diff > issue12345.diff" is all that it's needed to produce a patch, and whenever I point someone to the devguide they usually get confused because they think they have to use mq.

FWIW I mostly use uncommitted changes, possibly on more clones, and since I usually upload the patch to the tracker I don't risk losing it in case I do something wrong.
msg157381 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2012-04-02 20:18
> No one uses it?  I'm surprised.  I do and it seems to me by far the
> easiest and safest way to maintain patches in progress when there is
> constant churn.

Ah, good to know :) My wording was a bit too strong then.
However, I rarely see mq-produced patches when processing patches from contributors.
msg157382 - (view) Author: R. David Murray (r.david.murray) * (Python committer) Date: 2012-04-02 20:25
One person that I helped at the PyCon sprints was using it, because the devguide said to.  But I think she was more confused by it than she would have been by 'hg diff', at least to start out.  Or maybe not...but I wasn't able to help her with the mq commands, because I don't use mq myself.

I should try it sometime, I suppose.
msg157383 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2012-04-02 20:28
> One person that I helped at the PyCon sprints was using it, because
> the devguide said to.  But I think she was more confused by it than
> she would have been by 'hg diff', at least to start out.  Or maybe
> not...but I wasn't able to help her with the mq commands, because I
> don't use mq myself.

mq is "advanced" compared to other workflows. It's a rather powerful and
sophisticated tool. I think people familiar with hg will have no problem
using mq even if we don't mention it. hg beginners, on the other hand,
will be more comfortable with something simpler.
msg157384 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2012-04-02 20:32
Here is a patch.
msg157391 - (view) Author: R. David Murray (r.david.murray) * (Python committer) Date: 2012-04-02 23:30
LGTM.
msg157402 - (view) Author: Ezio Melotti (ezio.melotti) * (Python committer) Date: 2012-04-03 08:37
+   hg import --no-commit < mywork.patch

Is the '<' correct here?

I would also mention hg diff right away, and explain about adding/removing files after that.
The rest looks good.
msg157406 - (view) Author: Senthil Kumaran (orsenthil) * (Python committer) Date: 2012-04-03 10:30
On Tue, Apr 03, 2012 at 08:37:35AM +0000, Ezio Melotti wrote:
> 
> Ezio Melotti <ezio.melotti@gmail.com> added the comment:
> 
> +   hg import --no-commit < mywork.patch
> 
> Is the '<' correct here?

No!. It should just be hg import --no-commit mywork.patch.

I asked around at PyCon to see if there were people using 'mq' just to
know about their workflow and it's advantages. I think only Ned
mentioned that he was using it, but everyone "theoretically" agreed
that it could be useful extension while working on a patch. When it is
not being used by many, I think it is just adding to the confusion by
it's mention in the devguide. +1 to remove it.
msg157415 - (view) Author: Roundup Robot (python-dev) (Python triager) Date: 2012-04-03 13:41
New changeset e1d4b6dc9702 by Antoine Pitrou in branch 'default':
Issue #14466: remove mq-based workflow
http://hg.python.org/devguide/rev/e1d4b6dc9702
msg157416 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2012-04-03 13:41
Done, thank you.
msg159727 - (view) Author: Francis MB (francismb) * Date: 2012-04-30 19:10
Just for the record:

Thanks to the old mq workflow in the devguide I've learned about them and I'm now using it all the time to send and manage the patches.

The only thing is that one should first use the “qqueue” functionality (see “hg help qqueue”) and then in a "qqueue" all the old devguide stuff (hg qdiff, hg qpush, hg qpop, and so on...).

I agree that for a beginner the actual workflow maybe easier.
History
Date User Action Args
2022-04-11 14:57:28adminsetgithub: 58671
2012-04-30 19:10:42francismbsetnosy: + francismb
messages: + msg159727
2012-04-03 13:41:44pitrousetstatus: open -> closed
resolution: fixed
messages: + msg157416

stage: needs patch -> resolved
2012-04-03 13:41:26python-devsetnosy: + python-dev
messages: + msg157415
2012-04-03 10:30:41orsenthilsetnosy: + orsenthil
messages: + msg157406
2012-04-03 08:37:34ezio.melottisetmessages: + msg157402
2012-04-02 23:30:36r.david.murraysetmessages: + msg157391
2012-04-02 20:32:34pitrousetfiles: + ripmq.patch
keywords: + patch
messages: + msg157384
2012-04-02 20:28:15pitrousetmessages: + msg157383
2012-04-02 20:25:28r.david.murraysetnosy: + r.david.murray
messages: + msg157382
2012-04-02 20:18:12pitrousetmessages: + msg157381
2012-04-02 02:10:12ezio.melottisetmessages: + msg157341
2012-04-01 19:58:59ned.deilysetnosy: + ned.deily
messages: + msg157327
2012-04-01 16:01:13pitrousetmessages: + msg157308
2012-04-01 15:59:35eric.araujosetmessages: + msg157307
2012-04-01 15:34:05pitrousetnosy: + eric.araujo
2012-04-01 15:33:50pitroucreate