<div dir="ltr">This is a great UX win for our development process. Thanks for making this happen!<div><br></div><div>Alex</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Sep 5, 2017 at 9:10 PM, Mariatta Wijaya <span dir="ltr"><<a href="mailto:mariatta.wijaya@gmail.com" target="_blank">mariatta.wijaya@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi,<div><br></div><div>The cherry picker bot has just been deployed to CPython repo, codenamed miss-islington.</div><div><br></div><div><div>miss-islington made the very first backport PR for CPython and became a first time GitHub contributor: <a href="https://github.com/python/cpython/pull/3369" target="_blank">https://github.com/python/<wbr>cpython/pull/3369</a> <br></div><div><br></div></div><div>GitHub repo: <a href="https://github.com/python/miss-islington" target="_blank">https://github.com/python/<wbr>miss-islington</a></div><div><br></div><div>What is this?</div><div>==========</div><div><br></div><div><span style="font-family:arial,helvetica,sans-serif">As part of our </span>workflow,<span style="font-family:arial,helvetica,sans-serif"> quite often changes made on the master branch need to be backported to the earlier versions. (for example: from master to 3.6 and 2.7) </span><br></div><div><font face="arial, helvetica, sans-serif"><br></font></div><div><font face="arial, helvetica, sans-serif">Previously the backport has to be done manually by either a core developer or the original PR author.</font></div><div><br></div><div>With the bot, the backport PR is created automatically after the PR has been merged. A core developer will need to review the backport PR.</div><div><font face="arial, helvetica, sans-serif"><br></font></div><div><div>The issue was tracked in <a href="https://github.com/python/core-workflow/issues/8" target="_blank">https://github.com/python/<wbr>core-workflow/issues/8</a></div></div><div><br></div><div>How it works</div><div>==========</div><div><br></div><div>1. If a PR needs to be backported to one of the maintenance branches, a core developer should apply the "needs backport to X.Y" label. Do this **before** you merge the PR. </div><div><br></div><div>2. Merge the PR</div><div><br></div><div>3. miss-islington will leave a comment on the PR, saying it is working on backporting the PR.</div><div><br></div><div>4. If there's no merge conflict, the PR should be created momentarily.</div><div><br></div><div>5. Review the backport PR created by miss-islington and merge it when you're ready.</div><div><br></div><div>Merge Conflicts / Problems?</div><div>======================</div><div><br></div><div>In case of merge conflicts, or if a backport PR was not created within 2 minutes, it likely failed and you should do the backport manually.</div><div><br></div><div>Manual backport can be done using cherry_picker: <a href="https://pypi.org/project/cherry-picker/" target="_blank">https://pypi.<wbr>org/project/cherry-picker/</a> </div><div><br></div><div>Older merged PRs not yet backported?</div><div>==============================</div><div><br></div><div>At the moment, those need to be backported manually.</div><div><br></div><div>Don't want PR to be backported by a bot?</div><div>==============================<wbr>==</div><div><br></div><div>My recommendation is to apply the "needs backport to X.Y" **after** the PR has been merged. The label is still useful to remind ourselves that this PR still needs backporting. </div><div><br></div><div>Who is Miss Islington?</div><div>=================</div><div><br></div><div>I found out from Wikipedia that Miss Islington is the name of the witch in Monty Python and The Holy Grail.</div><div><br></div><div>miss-islington has not signed the CLA!</div><div>=============================</div><div><br></div><div>A core dev can ignore the warning and merge the PR anyway.</div><div><br></div><div>Thanks!</div><span class="HOEnZb"><font color="#888888"><div><br></div><div><br></div><div><div><div class="m_-3367589921255241762gmail_signature">Mariatta Wijaya</div></div>
</div></font></span></div>
<br>______________________________<wbr>_________________<br>
python-committers mailing list<br>
<a href="mailto:python-committers@python.org">python-committers@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-committers" rel="noreferrer" target="_blank">https://mail.python.org/<wbr>mailman/listinfo/python-<wbr>committers</a><br>
Code of Conduct: <a href="https://www.python.org/psf/codeofconduct/" rel="noreferrer" target="_blank">https://www.python.org/psf/<wbr>codeofconduct/</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr">"I disapprove of what you say, but I will defend to the death your right to say it." -- Evelyn Beatrice Hall (summarizing Voltaire)<br>"The people's good is the highest law." -- Cicero</div><div dir="ltr">GPG Key fingerprint: D1B3 ADC0 E023 8CA6<br><div><br></div></div></div></div></div>
</div>