Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PyCQA/isort triage #64

Closed
Helveg opened this issue Jan 9, 2025 · 16 comments
Closed

PyCQA/isort triage #64

Helveg opened this issue Jan 9, 2025 · 16 comments

Comments

@Helveg
Copy link

Helveg commented Jan 9, 2025

(crossposted on Discord as well)

Hi! I've opened PyCQA/isort#2283 and I've struggled to get traction on it for several months now. I'd like to volunteer to triage issues and contribute more PRs, given that there's someone I could tag to review/merge my PRs in a timely manner?

On top of that I've been involved in OpenSource communities for about 20 years now and wouldn't mind volunteering to maintain isort and help keep the PyCQA healthy and active.

@DanielNoord
Copy link
Member

DanielNoord commented Jan 9, 2025

I can't really comment on whether we can/should add more maintainers to the project as I'm not sure who is the "owner" of the project, but I'm a an organization admin. I don't think people would mind if I did some reviews and merged PRs. The list of 56 PRs is a bit too long to sort through, but feel free to ping me on individual PRs that you'd like to get merged.

I can also do releases I think!

But, still: we should probably find more active maintainers. As I said, I'm not sure what the process for that should be though.

@Helveg
Copy link
Author

Helveg commented Jan 9, 2025

Well it's great to hear back from someone within the organization either way :) Let's see how it goes for now just pinging you, and after a bit I might ask to revisit the maintenance topic.

Thanks!

@Helveg Helveg closed this as completed Jan 9, 2025
@sigmavirus24
Copy link
Member

@DanielNoord I tend to avoid merging things on projects in unfamiliar with. It can feel like a violation to project members when an owner steps in and maybe accepts something they're uncomfortable with.

@DanielNoord
Copy link
Member

That's understandable but in this case the code was very small and also reviewed by others.

I don't intend to merge PRs like PyCQA/isort#2319 but making sure we can add support for 3.13 (PyCQA/isort#2306) for such a crucial package seems sensible. I believe that is the benefit that the PyCQA can offer: stepping in for small changes when maintainers don't have time themselves.

@sirosen
Copy link

sirosen commented Jan 9, 2025

In case it is useful, I volunteered to help out in the Discord as well (different channel from @Helveg, same basic message).
There is a community of developers with experience maintaining mature projects who are willing to step in and try to be responsible custodians of the project.

From the commit history, it seems that @staticdev was the sole and primary maintainer last year.
If he could share whether or not he intends to come back to the project, and his opinion on finding (and vetting?) new maintainers, I think that would help some of us looking to help out understand what we can and should do.

@sigmavirus24
Copy link
Member

Without consent to make those changes, I'm not comfortable with adding folks or merging things.


No offense to either of you, but I'm wary of @DanielNoord merging things as is. We never had agreement that others would be able to merge things from isort maintainers. (This has happened with other projects but those haven't needed it.) We also never got agreement to add folks who haven't made many contributions before regardless of reputation or lack thereof.

I'm big on consent. I know @graingert was making attempts to reach people. I would believe he's been unsuccessful. And seeing as @DanielNoord was made an owner to help invite Pylint folks to teams and the org but Pylint has gone into their own org, I'm not sure there's much reason to keep him as owner as he hasn't bothered to receive anyone's consent. That's not the behavior I would expect.

@sirosen
Copy link

sirosen commented Jan 11, 2025

That's a fair starting point. We should also acknowledge the possibility that past maintainers won't come back to the projects. I'm prompted to think of the package reclamation process ( https://peps.python.org/pep-0541/#abandoned-projects ).1

For my part, I won't try to contribute to the project without more clarity about what the right path forward is -- I have filed no issues and opened no PRs. As an outsider, I want the PyCQA members to decide what they feel is best, and I don't want to add to the workload or put improper pressure on people to act quickly.

If issue triage, bugfixing, or other work is agreed to be appropriate, my offer to help stands!

Footnotes

  1. Not trying to say the PEP 541 process is perfect. But it's useful precedent and pertinent because this is the Python ecosystem. That framework suggests that the current stage of the process we're in is "no recent releases, are maintainers reachable?"

@kurtmckee
Copy link

I've been triaging issues and reviewing PRs for isort this week, and Daniel's been responsive. At the beginning of the week there were 219 issues and 57 PRs. In the last five days that's dropped to 198 issues and 41 PRs.

However, it sounds like there's a standing administrative consent issue with the project. That is an important consideration, and I hope it can be resolved. In the meantime, I'll stop triaging until administrative issues are addressed.

@sigmavirus24
Copy link
Member

@sirosen that's a good point. If the organization were more ... Organized, I'd start to get alignment around that. Mostly this is just a loose collection right now. Attempts at collaboration and sharing things between projects never made it past the discussion at the PyCon hallway track. I'll see if I can reach @staticdev out of band as we have collaborated on other projects as well. If he's okay with it, I'll at least add y'all as triage maintainers to help with the open issues/PRs. Given how widely used isort is, I would want to make sure releases are for a while a little more audited but I don't personally have that time.

@DanielNoord
Copy link
Member

DanielNoord commented Jan 11, 2025

That's sad to hear, but I'll stop merging things then.

I get where you are coming from @sigmavirus24 but honestly in this case I don't really agree. With that position we're actively "hurting" users of isort and dividing the Python linting/formatting ecosystem further as people can't keep using it. Besides, while there might not have been consensus in this particular issue I got confirmation both through other channels and in the actual isort repository that people appreciated somebody stepping up and doing a little maintenance work.

This is not about me deciding on the future of the project or accepting features proposals, but about making sure the CI can run again (PyCQA/isort#2324), fixing issues with the dependency declarations (PyCQA/isort#2325), other fixes that at least make the project usable again (PyCQA/isort#2311) and fixing the integration with codecov that I did myself. I was explicitly not making any decisions about features or proposals (see PyCQA/isort#1531) as I didn't believe I was in a position to do so.

Nobody is getting any better by the project being unmaintained and I'd be a shame if somebody had to fork it just to make sure it usable on recent interpreter versions. I'd be a shame to not make use of the many offers of help of respected and experienced community members just because we can't reach people that have been unreachable for months.

I saw @staticdev works in The Netherlands as I do so I might try to reach them as on Monday, but I'd hope that this can be resolved even if we can't reach anyone.

@robmoss2k
Copy link

I'm an outsider looking in. I'm a fractional CTO who was until recently frustrated that my Python 3.13 project - 3.13 is a customer requirement as they want to use the new free-threaded CPython - was not lintable with isort. I hugely appreciated the work that @DanielNoord put into releasing isort 6.0.0.

I understand the politics here. I did some digging. The original owner of isort when it was transferred to PyCQA, @timothycrosley, last committed to isort in the week of February 19th, 2023. As per the PyCQA history, Timothy requested the transfer of isort to PyCQA in August 2020. He continued to maintain the project but the project has been essentially dormant for almost two years save for the 5.13 release prompted by the fact that Python 3.12 had been released two months prior, and the 6.0.0 release in response to Python 3.13. The owner was not involved in this release, its two patch releases, or the 6.0.0 release. @asottile indicated on the isort Discord channel that Timothy is "pretty much done with open source".

The Discord channel also has a note from @sirosen that he's interested in picking up the ownership of this project. As per the Abandoned Projects guidelines, isort is effectively abandoned by @timothycrosley. That's fine - he is not mandated to spend his free time maintaining open-source projects. But the PyCQA organization should assign a new owner, given that we have someone willing to take it, whether that be @sirosen or @DanielNoord.

I also believe that a stronger organizational structure would significantly benefit PyCQA. This thread demonstrates that the organization currently operates on an ad-hoc basis. A little more formal yet lightweight structure would provide real benefits for users of PyCQA tools.

A Technical Steering Committee would be the most likely candidate to improve the management and organization in the absence of a BDFL. Harmonizing contributor guidelines across PyCQA projects, adopting a standard release workflow, adopting a shared policy on Python EOL dates across all PyCQA projects, and creating a PyCQA utility package for shared functionality between projects would all be beneficial decisions for the TSC to mull over. Inviting other commonly used, yet poorly maintained, linters into the PyCQA ecosystem would also be a good plan if such a structure were in place.

As PyCQA is responsible for tools so important to the wider Python user base, and as I have skin in this particular game, I would be happy to be involved in or even lead such a management effort - noting, of course, that there are existing owners in place and I wouldn't want to step on anyone's toes.

@sirosen
Copy link

sirosen commented Jan 28, 2025

The fact that a past maintainer returned to the project and collaborated with Daniel to do the 6.0 release is both a good thing for the user community and pertinent to this thread. IMO this issue should be closed -- isort has been restored to a functioning state for now.

If @Helveg or I want to get involved, the right way for us to do it at this stage is to try to help with the project while it has some active maintainers. I have some work I'd like to do, but I have my own prior responsibilities as well.

Decisions about changing PyCQA governance may be informed by this thread, but I do not believe that this is the right place for that discussion.

@robmoss2k
Copy link

@sirosen Where is the right place for that discussion?

@sirosen
Copy link

sirosen commented Jan 29, 2025

Either a fresh issue or the discord, but either will only work if pycqa members are interested.

If it happens in this thread I'll unsubscribe, as I have no particular interest in being involved in pycqa governance at this time. (If I become a member of the org in the future, which is not impossible but unlikely, that would change.)

@Helveg
Copy link
Author

Helveg commented Feb 5, 2025

Could someone definitively conclude who is actively maintaining isort now, and then close the issue?

@DanielNoord
Copy link
Member

I'm happy to report that I have been able to contact @staticdev and he is now actively merging PRs and releasing isort. I have helped a bit with some of the reviews and think collaboration is going great.

I still have opinions about what we should do with unmaintained projects within the organisation but I think that is outside of the scope of this issue. Therefore, I'm going to close it. If anybody feels that is premature 8md happily reopen of course!

Thanks to all involved for the lively discussion and helping with giving isort the attention and care it needed :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants