Motivation
Julia has been around for 6 years now, and for the last 2–3 years the number of packages has increased rapidly. As it is inevitable with free software and single-person projects, some packages have received less maintenance after an initial period of activity, and quite a few packages appear to be abandoned.
I want to emphasize that I think this is normal, and people are under no obligation to contribute their time and effort to projects they are no longer interested in. At the same time, encountering code snippets or earlier discussion about a now-abandoned package can be confusing and frustrating to new users.
I don’t know what the right solution is, but I wanted to start some discussion about this. This is not a plan to formalize or enforce (haha) anything, the intention is to ensure a common understanding.
Objective measures of activity
Most Julia packages live in a git repository, usually on Github or similar. The main page shows the date of the last activity on the code, which can be informative; similarly one can look at the date of discussions in the issues.
Lack of recent activity per se is not a signal of abandonment, there may be just no issues. New releases usually require some maintenance though, so I would say that a package should be considered potentially abandonned if there has been no activity
- 3 months after the last stable release,
- for the last 2 years.
Signalling commitment to maintenance
This is about informing potential users about the maintainer’s intentions about the package, and is somewhat difficult to do since there are so many variables. For example, one may intend to support some package but currently lack the time because of other obligations or major life events.
That said, I find the repostatus badges quite useful, and the distinction between Suspended, Abandonned, Inactive, Unsupported fine-grained enough.
I would consider a repo Active if
- it is updated to work correctly within 2 months of the latest release (ideally, package maintaners would make sure things work on alpha before the release, but dependency problems can delay this),
- issues get some response within 1 month,
- PRs get some response within 1-3 months (depending on complexity).
This does not mean that issues and PRs are fixed/merged/closed within this timeframe, just that they get some discussion.
For repos which are not Active, it is a courtesy to change their status to something else, eg Suspended or Inactive. Also, repos should consider not starting out as Active, rather WIP, and switch to Active after consistent maintenance for 1 year.
The above should not be construed as justification to badger package maintaners about unfixed issues etc. But once a package appears to be inactive for a while, I think an issue asking for clarification about its status is OK. Similarly, I think it is reasonable to wait 2-4 weeks with a “friendly bump” if some issue has not received attention.