Description
I discord, @ambv made a simple request:
can you use your own fork for PRs in the future instead of adding branches to python/cpython
And at face value, it sounds like a small request to tweak one's approach in a single project, when in fact the situation is much more complicated.
@jaraco responded
There are advantages to using the canonical repo.
One is that I end up with one fewer repos to manage and keep synced. I already have two machines across which I periodically need to sync multiple branches (main, 3.11, ...). Adding a fork in Github means having yet another code location to manage.
Another advantage is that Github will automatically re-point PRs from an intermediate branch to the main branch when merged. I'm not sure it will do this across forks. That is, I don't think I can create a PR in the canonical repo that targets a branch in a fork and then have that PR re-point to the canonical main once the targeted branch is merged into the canonical repo.
That said, I'd be happy to devise an approach that doesn't cause this consternation. Can you tell me more about the harm experienced by getting those branches? Is it the increased latency due to the extra revisions downloaded or the noise of branch names in the UI output or the cognitive overhead of ignoring those branches or the fact that if everyone adopted this approach it would be unscalable or some combination of those? I'd like to understand the problem better as I'd like to devise a solution that addresses those concerns and my own (or at least capture the concerns for potential future innovation).
I plan to explore creating (once again) a fork in Github, but I would appreciate some advice/guidance on how to keep that fork and the forks of that fork up to date. The current developer guide only goes as far as to say "make forks of forks" without much about how to maintain those forks. In particular, how should I configure the client (how many remotes, how to name those remotes, how to configure those remotes (push/pull)), and how can I automate keeping the upstream branches in sync? Do you have any suggestions on how to manage dependent PRs?
Perhaps since this issue isn't a simple choice, we should track the issues in core-workflow?
This is that issue.
See python/cpython#94528 for an example of a dependent PR (no longer currently dependent).