You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The current status-quo when it comes to the development integration/synchronization between the importlib backports and the CPython upstream isn't optimal.
Before anything else, I must properly acknowledge @jaraco's monumental and tireless effort on maintaining the importlib backports, and handling the complex synchronization with the CPython upstream, not to mention the continued development of these modules. It has been instrumental to get things to the state they are today, and none of the issues discussed in this thread should reflect negatively on him, but rather our failure to ensure these projects got the resources they need — a far too common tale in open-source.
Here are some issues I think we should improve:
Synchronization process — even though @jaraco has left comments in some PRs describing his workflow, there's no properly documented process
Authorship stripping — the current way changes are synced in and from the backports strip commit authorship
Documentation fragmentation, resulting in a sub-optimal documentation
Eg. importlib.metadata.Distribution, and other classes, do not document their attributes (I regularly have to resort to the source code)
CLA enforcement — the backports do not enforce the CLA
Segmented development workflow — issues and changes happen in both places
Source history — the current way changes are synced in and from the backports strip commit history
cc @python/importlib-team
The text was updated successfully, but these errors were encountered:
I would like to propose officially defining a development upstream, and enforcing it.
The solution that I think would more cleanly handle fragmentation, history, authorship, and CLA issues, is to select CPython as the upstream. An approach to implement this could be to track the backport version here, and when updated, have CI automation to update the backport repos, just like we do to backport to older Python versions.
While I think that's cleaner, it is a major change to how these modules are currently developed, and the implementation might be too complex, so I think it's more likely for us to go with the backports as the upstream. If so, there are a couple things I think we should do:
Add issue tags for each backport, which, once assigned, would cause the issue to be moved to the correct repo
Prevent PRs from changing the code (with a manual override)
Implement some level of automation for the synchronization operation, preserving commit authorship (perhaps even history)
Document the synchronization process
Have the backports maintain a copy of the correspondent CPython documentation, instead of having its own
The current status-quo when it comes to the development integration/synchronization between the importlib backports and the CPython upstream isn't optimal.
Before anything else, I must properly acknowledge @jaraco's monumental and tireless effort on maintaining the importlib backports, and handling the complex synchronization with the CPython upstream, not to mention the continued development of these modules. It has been instrumental to get things to the state they are today, and none of the issues discussed in this thread should reflect negatively on him, but rather our failure to ensure these projects got the resources they need — a far too common tale in open-source.
Here are some issues I think we should improve:
importlib.metadata.Distribution
, and other classes, do not document their attributes (I regularly have to resort to the source code)cc @python/importlib-team
The text was updated successfully, but these errors were encountered: