<div dir="ltr"><div class="markdown-here-wrapper" style=""><p style="margin:0px 0px 1.2em!important">First-timer here on this list. Just wanted to chime in briefly on a few things.</p>
<blockquote style="margin:1.2em 0px;border-left-width:4px;border-left-style:solid;border-left-color:rgb(221,221,221);padding:0px 1em;color:rgb(119,119,119);quotes:none">
<p style="margin:0px 0px 1.2em!important">Basically a way to map an issue to a PR (or vice-versa). Probably the simplest solution is to allow pasting in a GitHub PR URL or the PR # to make the association. The other option is for the bot to accept a command to make the association. No reason we can’t have both, though. But either way we should have a way to connect PRs to issues.</p>
</blockquote>
<p style="margin:0px 0px 1.2em!important">I have seen many projects — specifically those using an issue tracker outside of GitHub — accomplish this by asking their contributors to include the issue number in the title.</p>
<p style="margin:0px 0px 1.2em!important">Two example projects doing this: <a href="https://github.com/apache/spark/pulls">Apache Spark</a>, <a href="https://github.com/scala/scala/pulls">Scala</a></p>
<p style="margin:0px 0px 1.2em!important">Then, those projects would have some kind of bot or hook (like Berker mentioned) use the issue number in the PR title to create a reference over on the issue tracker.</p>
<p style="margin:0px 0px 1.2em!important">For example, here is <a href="https://github.com/apache/spark/blob/master/dev/github_jira_sync.py">the script</a> that the Apache Spark project uses to create links on JIRA (their issue tracker) to PRs. And here is <a href="https://issues.apache.org/jira/browse/SPARK-11744">an issue</a> where you can see the link that was automatically created to the PR referencing it (under “Issue Links”).</p>
<p style="margin:0px 0px 1.2em!important">If we end up using a CI service with good GitHub integration like Travis, we may even be able to use it to create the issue links as part of the build—no bot or separate service required. Additionally, if we want all PRs to include an issue reference, for example, that could be automatically enforced. Any PR without an issue reference in the title would fail that check, which shows up as a nice, clear X on the PR, with a link to more detail.</p>
<p style="margin:0px 0px 1.2em!important">I’ll echo what others have said and say that I too am interested in contributing to Python project infrastructure, especially in the area of CI integration and various types of automation that make the lives of contributors and committers easier. I spent a lot of time doing very similar work for the Apache Spark project. I think it’s an important thing to work on; lower friction enables more people to contribute more often, and that’s very important for the long-term health of the project.</p>
<p style="margin:0px 0px 1.2em!important">Nick</p>
<div title="MDH:Rmlyc3QtdGltZXIgaGVyZSBvbiB0aGlzIGxpc3QuIEp1c3Qgd2FudGVkIHRvIGNoaW1lIGluIGJy
aWVmbHkgb24gYSBmZXcgdGhpbmdzLjxkaXY+PGJyPjwvZGl2PjxkaXY+Jmd0OyBCYXNpY2FsbHkg
YSB3YXkgdG8gbWFwIGFuIGlzc3VlIHRvIGEgUFIgKG9yIHZpY2UtdmVyc2EpLiBQcm9iYWJseSB0
aGUgc2ltcGxlc3Qgc29sdXRpb24gaXMgdG8gYWxsb3cgcGFzdGluZyBpbiBhIEdpdEh1YiBQUiBV
Ukwgb3IgdGhlIFBSICMgdG8gbWFrZSB0aGUgYXNzb2NpYXRpb24uIFRoZSBvdGhlciBvcHRpb24g
aXMgZm9yIHRoZSBib3QgdG8gYWNjZXB0IGEgY29tbWFuZCB0byBtYWtlIHRoZSBhc3NvY2lhdGlv
bi4gTm8gcmVhc29uIHdlIGNhbid0IGhhdmUgYm90aCwgdGhvdWdoLiBCdXQgZWl0aGVyIHdheSB3
ZSBzaG91bGQgaGF2ZSBhIHdheSB0byBjb25uZWN0IFBScyB0byBpc3N1ZXMuPC9kaXY+PGRpdj48
YnI+PC9kaXY+PGRpdj5JIGhhdmUgc2VlbiBtYW55IHByb2plY3RzIC0tIHNwZWNpZmljYWxseSB0
aG9zZSB1c2luZyBhbiBpc3N1ZSB0cmFja2VyIG91dHNpZGUgb2YgR2l0SHViIC0tIGFjY29tcGxp
c2ggdGhpcyBieSBhc2tpbmcgdGhlaXIgY29udHJpYnV0b3JzIHRvIGluY2x1ZGUgdGhlIGlzc3Vl
IG51bWJlciBpbiB0aGUgdGl0bGUuPC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5Ud28gZXhhbXBs
ZSBwcm9qZWN0cyBkb2luZyB0aGlzOiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXBhY2hl
L3NwYXJrL3B1bGxzIj5BcGFjaGUgU3Bhcms8L2E+LCA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5j
b20vc2NhbGEvc2NhbGEvcHVsbHMiPlNjYWxhPC9hPjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+
VGhlbiwgdGhvc2UgcHJvamVjdHMgd291bGQgaGF2ZSBzb21lIGtpbmQgb2YgYm90IG9yIGhvb2sg
KGxpa2UgQmVya2VyIG1lbnRpb25lZCkgdXNlIHRoZSBpc3N1ZSBudW1iZXIgaW4gdGhlIFBSIHRp
dGxlIHRvIGNyZWF0ZSBhIHJlZmVyZW5jZSBvdmVyIG9uIHRoZSBpc3N1ZSB0cmFja2VyLjwvZGl2
PjxkaXY+PGJyPjwvZGl2PjxkaXY+Rm9yIGV4YW1wbGUsIGhlcmUgaXMgPGEgaHJlZj0iaHR0cHM6
Ly9naXRodWIuY29tL2FwYWNoZS9zcGFyay9ibG9iL21hc3Rlci9kZXYvZ2l0aHViX2ppcmFfc3lu
Yy5weSI+dGhlIHNjcmlwdDwvYT4gdGhhdCB0aGUgQXBhY2hlIFNwYXJrIHByb2plY3QgdXNlcyB0
byBjcmVhdGUgbGlua3Mgb24gSklSQSAodGhlaXIgaXNzdWUgdHJhY2tlcikgdG8gUFJzLiBBbmQg
aGVyZSBpcyA8YSBocmVmPSJodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL1NQ
QVJLLTExNzQ0Ij5hbiBpc3N1ZTwvYT4gd2hlcmUgeW91IGNhbiBzZWUgdGhlIGxpbmsgdGhhdCB3
YXMgYXV0b21hdGljYWxseSBjcmVhdGVkIHRvIHRoZSBQUiByZWZlcmVuY2luZyBpdCAodW5kZXIg
Iklzc3VlIExpbmtzIikuPC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5JZiB3ZSBlbmQgdXAgdXNp
bmcgYSBDSSBzZXJ2aWNlIHdpdGggZ29vZCBHaXRIdWIgaW50ZWdyYXRpb24gbGlrZSBUcmF2aXMs
IHdlIG1heSBldmVuIGJlIGFibGUgdG8gdXNlIGl0IHRvIGNyZWF0ZSB0aGUgaXNzdWUgbGlua3Mg
YXMgcGFydCBvZiB0aGUgYnVpbGQtLW5vIGJvdCBvciBzZXBhcmF0ZSBzZXJ2aWNlIHJlcXVpcmVk
LiBBZGRpdGlvbmFsbHksIGlmIHdlIHdhbnQgYWxsIFBScyB0byBpbmNsdWRlIGFuIGlzc3VlIHJl
ZmVyZW5jZSwgZm9yIGV4YW1wbGUsIHRoYXQgY291bGQgYmUgYXV0b21hdGljYWxseSBlbmZvcmNl
ZC4gQW55IFBSIHdpdGhvdXQgYW4gaXNzdWUgcmVmZXJlbmNlIGluIHRoZSB0aXRsZSB3b3VsZCBm
YWlsIHRoYXQgY2hlY2ssIHdoaWNoIHNob3dzIHVwIGFzIGEgbmljZSwgY2xlYXIgWCBvbiB0aGUg
UFIsIHdpdGggYSBsaW5rIHRvIG1vcmUgZGV0YWlsLjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+
SSdsbCBlY2hvIHdoYXQgb3RoZXJzIGhhdmUgc2FpZCBhbmQgc2F5IHRoYXQgSSB0b28gYW0gaW50
ZXJlc3RlZCBpbiBjb250cmlidXRpbmcgdG8gUHl0aG9uIHByb2plY3QgaW5mcmFzdHJ1Y3R1cmUs
IGVzcGVjaWFsbHkgaW4gdGhlIGFyZWEgb2YgQ0kgaW50ZWdyYXRpb24gYW5kIHZhcmlvdXMgdHlw
ZXMgb2YgYXV0b21hdGlvbiB0aGF0IG1ha2UgdGhlIGxpdmVzIG9mIGNvbnRyaWJ1dG9ycyBhbmQg
Y29tbWl0dGVycyBlYXNpZXIuIEkgc3BlbnQgYSBsb3Qgb2YgdGltZSBkb2luZyB2ZXJ5IHNpbWls
YXIgd29yayBmb3IgdGhlIEFwYWNoZSBTcGFyayBwcm9qZWN0LiBJIHRoaW5rIGl0J3MgYW4gaW1w
b3J0YW50IHRoaW5nIHRvIHdvcmsgb247IGxvd2VyIGZyaWN0aW9uIGVuYWJsZXMgbW9yZSBwZW9w
bGUgdG8gY29udHJpYnV0ZSBtb3JlIG9mdGVuLCBhbmQgdGhhdCdzIHZlcnkgaW1wb3J0YW50IGZv
ciB0aGUgbG9uZy10ZXJtIGhlYWx0aCBvZiB0aGUgcHJvamVjdC48L2Rpdj48ZGl2Pjxicj48L2Rp
dj48ZGl2Pk5pY2s8L2Rpdj48ZGl2Pjxicj48L2Rpdj4=" style="height:0;width:0;max-height:0;max-width:0;overflow:hidden;font-size:0em;padding:0;margin:0"></div></div></div>