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

Maintenance plan #97

Open
jaraco opened this issue Jul 31, 2024 · 3 comments
Open

Maintenance plan #97

jaraco opened this issue Jul 31, 2024 · 3 comments

Comments

@jaraco
Copy link

jaraco commented Jul 31, 2024

Given that this project accepted a SyntaxError in the code that's gone unaddressed for over two years (#90), I'm worried this project may be abandoned. Are there plans to maintain it? How can I help?

@jondo
Copy link

jondo commented Jul 31, 2024

I wonder whether the fork https://github.com/idanmiara/ordered-set is a good successor. I had not need to test it yet. It is not on pypi.org, however.

@rspeer
Copy link
Owner

rspeer commented Aug 9, 2024

I'm sorry for leaving a syntax error in the main branch. For 2 years I had a job that didn't support my open-source work, so my projects remained mostly idle for that time.

However -- I'm confused why maintenance of this library is such a concern. Does it not work already?

There are requests for me to increase the scope of the library, but I don't see that as being necessary, and accepting too many requests is what got me into trouble before anyway. Why can't the library remain as it is?

It seems to me that there hasn't been something that needed to be fixed (such as a bug or an algorithmic inefficiency) for 6 years. What's changed since then are:

  • Type annotations -- I agree by now that these are nice to have
  • Wheel packaging -- ordered_set.py used to be a single file, and I miss when it was, but I understand the convenience of Python packaging. I regret that I got haranged into using "flit", which I have never heard of anyone else using, instead of something commonly used like Poetry.
  • Code style updates, which of course I regret because none of them were necessary and one of them broke the main branch

I'm fine with you using someone else's library, or just using Python's built-in dict ordering if that's sufficient for what you need, but what is the actual concern here? Again, sorry for leaving a syntax error in the main branch, but why would you even need to run an unreleased version of ordered-set from the main branch?

@jaraco
Copy link
Author

jaraco commented Aug 9, 2024

Thanks for the reply. And allow me to apologize for being borderline hostile to the project. I appreciate you and the work you do on it.

However -- I'm confused why maintenance of this library is such a concern. Does it not work already?

what is the actual concern here? Again, sorry for leaving a syntax error in the main branch, but why would you even need to run an unreleased version of ordered-set from the main branch?

I don't remember precisely the reason I encountered the issue. Based on the timing, I think I was working on incorporating orderedset into pypa/rootbeer as a demo for bootstrapping Setuptools installs from source, but I found I had to roll back to the latest tagged release (pypa/rootbeer@0b2f901) to avoid the SyntaxError. I felt uneasy that a project that setuptools depends on was potentially abandoned.

My bigger concern was that there was broken code or incompatible at the head of the repository, which had been patched but not accepted, so it lessened my confidence in the maintenance of this package. For example, if a critical issue were to be identified, it would be blocked by the error that was sitting at HEAD. In the projects I maintain, I do my best to cut releases frequently so that the source code in GitHub nearly matches the published artifacts.

I'd feel a lot better if the code published in PyPI wasn't more than 6 months behind the code in GitHub.

  • Wheel packaging -- ordered_set.py used to be a single file, and I miss when it was, but I understand the convenience of Python packaging. I regret that I got haranged into using "flit", which I have never heard of anyone else using, instead of something commonly used like Poetry.

I sympathize with this sentiment. I've been spending a lot of time recently trying to develop a system that's both lightweight and sophisticated, and one of the things I've found is that the simplicity of flit avoids bootstrapping challenges with downstream integrators.

I do think Flit is widely used, but Poetry is also popular. I wouldn't feel too bad about adopting Flit.

I've started work on the Coherent System to address some of these concerns and give projects tooling and infrastructure to give developers the ability to focus on their contribution and not ancillary concerns. It's not ready for prime-time and I wouldn't recommend it for ordered set yet, but maybe after the MVP is available with GitHub Actions support (right now it's not even viable for me to dogfood). I only mention as a teaser for one possible attractive avenue for projects that wish to focus on their primary value proposition (their code).

If I were to take sole custody of this project (which I don't expect), I'd probably apply the jaraco/skeleton project to it, aligning it with the hundreds of other projects I develop, sharing the best practices with those projects. If I were to help as a co-maintainer, I'd only expect to make minor tweaks and help approve critical pull requests and maybe help cut releases, but without making any changes without ample review opportunity.

Regardless, I respect the work that you've done here and all I'm seeking to do is offer emotional and maintenance support.

Thanks for taking the time to read through my comments. Feel free to close the issue with whatever actions you take (if any).

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

3 participants