python / cherry-picker

🐍🍒⛏ Utility script for backporting/cherry-picking CPython changes from master into one of the maintenance branches.
Apache License 2.0
49 stars 39 forks source link

Consider laxing the requirements for maintenance branch names? #69

Open Jackenmen opened 2 years ago

Jackenmen commented 2 years ago

I know that this is a tool primarily for CPython but I found myself in a use case where I could benefit from cherry-picker's help but the branch name I want to backport to isn't version-like. To be specific, I want to use it with a branch named stable because it allows me to replace ReadTheDocs's stable version without going through the release process: https://docs.readthedocs.io/en/stable/versions.html#versioned-documentation

I can't seem to find a good reason for this limitation, the only thing the version in the branch appears to be used for is sorting - it wouldn't be too hard to primarily sort by version but fallback to lexicographic order if the branch doesn't contain a version. If the concern is that user passes the program something that is a commit rather than a branch name then we could enforce that it is in a different way (though you already do this indirectly when creating a backport branch using upstream/MAINTENANCE_BRANCH_NAME as a base which doesn't work with commits).

I'd be happy to implement this if accepted by the way.