-
Notifications
You must be signed in to change notification settings - Fork 29
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
Defining a process for archiving / sunsetting pyos packages #254
Comments
I like "archive". What do we mean by "no activity"? Is it enough to push a commit? Merge a PR? Or does it have to have a release? So, that's a lot more answers than questions. I suggest that for now almost any answer is a good answer. I would suggest to write down a short policy for "archiving", but I think what we really need to do is to gain real world experience of a few packages that go into that state and see how they look. Do they stop functioning? Do maintainers stop replying, but the code still works? On what time scale? Then, we can come back in a year or two after archiving a few projects and use the experience form those real-world use cases to refine the criteria. |
hey @hamogu 👋 All -- Please feel free to edit / comment etc! New language here - comments welcome Below is the language we have in our guide right now with a note from me that we plan to adjust this! and it looks like @NickleDave agrees with your suggestion above! ****** OLD LANGUAGE ****
|
From https://hackmd.io/ijK9EmoxTp6vGzVhOElvwA
|
eeks sorry @hamogu i always get the permissions wrong with hackmd. it should work now. |
The updated text in |
I like what yall have written. Hopefully this isnt redundant, Im curious about maybe splitting out time since last update and maintainer intention, which seems to be designed in a bit here? There seems to be a little bit of gray area to me about what "maintained" can look like. Eg. A smallish, well architected, no deps, limited scope package could be just fine receiving no updates indefinitely, right? And on the other end, you have packages like youtube-dl which need almost constant maintenance to stay working. So the intention of the maintainer doesn't map so neatly onto time of last update. Maybe we also consider whether they are still responsive to issues? But again in the case of the mythical "perfectly stable package" there might not be any! I wonder about the labor entailed with editors following up indefinitely with an increasing number of packages too, sounds like that could be a lot of work. So would it be possible to have one repo badge that is "maintenance intention" with some enum of possible values like "active," "maintenance," "best effort" (author will try but is no longer primarily.focused on it), "new maintainers wanted," "on hiatus" if dev is paused for eg. Illness or other reasons but will resume, or "archived" for actively paused development? Then we also have separate indicators like."time since last release" or "time to reply to/close issues" that are useful to know for potential tool users but not determinative of maintenance category? After 6mo (or any time period), the maintenance badge flips to some undefined state that indicates that the maintainer needs to go set the state again. If things are normal, maintainer does that. Otherwise, after (unit time) it flips to auto-archive status. In the meantime, the undefined state is itself an indicator of maintenance status. Just an idea! Sorry if its repetitive / doesn't fit |
re: this point, we could suggest the use of repo status badges |
this is great discussion - everyone! thanks! @sneakers-the-rat @NickleDave is the repo badge idea an automated thing? We have one currently unmaintained package. in that case the author has been unresponsive so i don't think we can depend on an author that may have life issues that are bigger than their OSS responsibilities, always keeping something like that up to date. ropensci has a server served badge i believe that they can control. we don't have that right now. BUT i can ask arfon about how JOSS manages badges. from my perspective this would look something like this
Some combination of an email response and repo activity data allow us to then flag a package as archived. the website build has a conditional for packages that are archived and they get listed on a separate page. so most of this COULD be automated potentially is my thought. and a maintainer could always "wake up" a repo and tell us it's maintained again. thoughts??? |
That makes a lot of sense to me, especially so that we have some initial process in place. We can always revisit later with some of the ideas @sneakers-the-rat and I are suggesting. Sorry, I read the initial issue and then came back to this without re-reading, I didn't mean to go off on a tangent |
totally. badges are just images after all, so if they embedded some image like |
@sneakers-the-rat so i follow the part where we serve an image. but where i'm confused is how would we change the state of the image? would we have a badge svg for every package - so individual files for each package and then we could somehow modify the code for the svg to change the color? is that what you're thinking. i do know what svg code looks like so i could imagine that type of workflow. and then the badge links to the console page for that package with all of the metrics and what triggered the change in color? is that what you're thinking? |
colleagues - i have opened a PR that attempts to address all of this. I'm sure i missed things so can you all please have a look / review the PR when you have bandwidth? Let's give this a solid 3 week review period and if that is not enough time we can extend. so i'll make a note to revisit this pr one November 16th prior to the US thanksgiving holiday. it seems to me that a server side badge would be really good to have. i am not sure but with stravalib we've had all sorts of things like a dependencies going into end of life status and needing to swap it out. pre commit hook updates(that sometimes break things). or dependency updates that impact our code and users. so it seems like a 6 month to a year check on "last commit" could be reasonable and we can adjust if need be. Anyway have a look and i'm really open to thoughts / ideas on this. we may just have to try something and see what breaks and what works in the process. |
In the astropy document related to our partnership, a question/ discussion came up as follows:
i am going to copy the comments and open for discussion here as requested by @pllim . (so sorry i missed that comment in july somehow and just saw it today.
Length of time until we begin to wonder about a package being maintained or not?
@hamogu i'm continuing the conversation here. i've also discussed this a bit with @cmarmo - we talked about using language such as "archive" which is what @ropensci uses. But doing that - it feels a bit less "permanent" as in - if someone wants to pick the package back up, we could easily unarchive it.
we also talked about
Let me know what your thoughts are here so we can refine our policy!!
The text was updated successfully, but these errors were encountered: