Hackage checking maintainership of packages

Hi, on another thread there was a suggestion which perhaps went unnoticed by most: ---------- Forwarded message ----------
From: Niklas Hambüchen
Date: 2013/5/4 ... I would even be happy with newhackage sending every package maintainer a quarterly question "Would you still call your project X 'maintained'?" for each package they maintain; Hackage could really give us better indications concerning this.
This sounds to me like a very good idea. It could be as simple as "If you consider yourself to be the maintainer of package X please just hit reply and send." If Hackage doesn't get an answer, it'd just would display some red text like "This package seems to be unmaintained since D.M.Y." Best regards, Petr

On May 5, 2013 7:25 AM, "Petr Pudlák"
Hi,
on another thread there was a suggestion which perhaps went unnoticed by
most:
---------- Forwarded message ---------- From: Niklas Hambüchen
Date: 2013/5/4 ... I would even be happy with newhackage sending every package maintainer a quarterly question "Would you still call your project X 'maintained'?" for each package they maintain; Hackage could really give us better indications concerning this. This sounds to me like a very good idea. It could be as simple as "If you
consider yourself to be the maintainer of package X please just hit reply and send." If Hackage doesn't get an answer, it'd just would display some red text like "This package seems to be unmaintained since D.M.Y."
Best regards, Petr
For those packages that give a repository, a query could be done automatically to see when it was last updated. It's not the same thing as 'being maintained', but is less annoying for those people with many packages on hackage. Doug

I'd say:
- If a package has UNMAINTAINED (perhaps also DEPRECATED?) somewhere in its
title/description, don't do anything.
- Otherwise if the package hasn't been updated for past 3 months, send a
quarterly reminder (including the information under what conditions the
reminder is sent).
2013/5/5 Doug Burke
On May 5, 2013 7:25 AM, "Petr Pudlák"
wrote: Hi,
on another thread there was a suggestion which perhaps went unnoticed by
most:
---------- Forwarded message ---------- From: Niklas Hambüchen
Date: 2013/5/4 ... I would even be happy with newhackage sending every package maintainer a quarterly question "Would you still call your project X 'maintained'?" for each package they maintain; Hackage could really give us better indications concerning this. This sounds to me like a very good idea. It could be as simple as "If
you consider yourself to be the maintainer of package X please just hit reply and send." If Hackage doesn't get an answer, it'd just would display some red text like "This package seems to be unmaintained since D.M.Y."
Best regards, Petr
For those packages that give a repository, a query could be done automatically to see when it was last updated. It's not the same thing as 'being maintained', but is less annoying for those people with many packages on hackage.
Doug

And we can have something on hackage that does this check automatically! And we can put "unmaintained" in the description! And then we can leave it unmaintained! "Unmaintained" should have its own flag, I think... On 5/5/2013 2:28 PM, Petr Pudlák wrote:
I'd say: - If a package has UNMAINTAINED (perhaps also DEPRECATED?) somewhere in its title/description, don't do anything. - Otherwise if the package hasn't been updated for past 3 months, send a quarterly reminder (including the information under what conditions the reminder is sent).
2013/5/5 Doug Burke
mailto:dburke.gw@gmail.com> On May 5, 2013 7:25 AM, "Petr Pudlák"
mailto:petr.mvd@gmail.com> wrote: > > Hi, > > on another thread there was a suggestion which perhaps went unnoticed by most: > >> ---------- Forwarded message ---------- >> From: Niklas Hambüchen mailto:mail@nh2.me> >> Date: 2013/5/4 >> ... >> I would even be happy with newhackage sending every package maintainer a >> quarterly question "Would you still call your project X 'maintained'?" >> for each package they maintain; Hackage could really give us better >> indications concerning this. > > > This sounds to me like a very good idea. It could be as simple as "If you consider yourself to be the maintainer of package X please just hit reply and send." If Hackage doesn't get an answer, it'd just would display some red text like "This package seems to be unmaintained since D.M.Y." > > Best regards, > Petr > For those packages that give a repository, a query could be done automatically to see when it was last updated. It's not the same thing as 'being maintained', but is less annoying for those people with many packages on hackage.
Doug
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

Just checking the repo wouldn't work. It may still have some activity
but not be maintained and vice-versa.
On Sun, May 5, 2013 at 2:19 PM, Doug Burke
On May 5, 2013 7:25 AM, "Petr Pudlák"
wrote: Hi,
on another thread there was a suggestion which perhaps went unnoticed by most:
---------- Forwarded message ---------- From: Niklas Hambüchen
Date: 2013/5/4 ... I would even be happy with newhackage sending every package maintainer a quarterly question "Would you still call your project X 'maintained'?" for each package they maintain; Hackage could really give us better indications concerning this. This sounds to me like a very good idea. It could be as simple as "If you consider yourself to be the maintainer of package X please just hit reply and send." If Hackage doesn't get an answer, it'd just would display some red text like "This package seems to be unmaintained since D.M.Y."
Best regards, Petr
For those packages that give a repository, a query could be done automatically to see when it was last updated. It's not the same thing as 'being maintained', but is less annoying for those people with many packages on hackage.
Doug
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
-- Felipe.

On 6 May 2013 09:42, Felipe Almeida Lessa
Just checking the repo wouldn't work. It may still have some activity but not be maintained and vice-versa.
ok, how about this: if the maintainer feels that their repo and maintenance activities are non-injective they can additionally provide an http-accessible URL for the maintenance activity. Hackage can then do an HTTP HEAD request on that URL and use the Last-Modified response header as an indication of the last time of maintenance activity. I'm being a bit tongue-in-cheek, but actually this would allow you to point hackage to a blog as evidence of maintenance activity. I like the idea of just pinging the code repo. Conrad.
On Sun, May 5, 2013 at 2:19 PM, Doug Burke
wrote: On May 5, 2013 7:25 AM, "Petr Pudlák"
wrote: Hi,
on another thread there was a suggestion which perhaps went unnoticed by most:
---------- Forwarded message ---------- From: Niklas Hambüchen
Date: 2013/5/4 ... I would even be happy with newhackage sending every package maintainer a quarterly question "Would you still call your project X 'maintained'?" for each package they maintain; Hackage could really give us better indications concerning this. This sounds to me like a very good idea. It could be as simple as "If you consider yourself to be the maintainer of package X please just hit reply and send." If Hackage doesn't get an answer, it'd just would display some red text like "This package seems to be unmaintained since D.M.Y."
Best regards, Petr
For those packages that give a repository, a query could be done automatically to see when it was last updated. It's not the same thing as 'being maintained', but is less annoying for those people with many packages on hackage.
Doug
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
-- Felipe.
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

But what if the package is already perfect?
Jokes aside, I think that activity alone wouldn't be a good indicator.
On Mon, May 6, 2013 at 9:59 AM, Conrad Parker
On 6 May 2013 09:42, Felipe Almeida Lessa
wrote: Just checking the repo wouldn't work. It may still have some activity but not be maintained and vice-versa.
ok, how about this: if the maintainer feels that their repo and maintenance activities are non-injective they can additionally provide an http-accessible URL for the maintenance activity. Hackage can then do an HTTP HEAD request on that URL and use the Last-Modified response header as an indication of the last time of maintenance activity. I'm being a bit tongue-in-cheek, but actually this would allow you to point hackage to a blog as evidence of maintenance activity.
I like the idea of just pinging the code repo.
Conrad.
On Sun, May 5, 2013 at 2:19 PM, Doug Burke
wrote: On May 5, 2013 7:25 AM, "Petr Pudlák"
wrote: Hi,
on another thread there was a suggestion which perhaps went unnoticed
most:
---------- Forwarded message ---------- From: Niklas Hambüchen
Date: 2013/5/4 ... I would even be happy with newhackage sending every package quarterly question "Would you still call your project X 'maintained'?" for each package they maintain; Hackage could really give us better indications concerning this.
This sounds to me like a very good idea. It could be as simple as "If you consider yourself to be the maintainer of package X please just hit reply and send." If Hackage doesn't get an answer, it'd just would display some red text like "This package seems to be unmaintained since D.M.Y."
Best regards, Petr
For those packages that give a repository, a query could be done automatically to see when it was last updated. It's not the same thing as 'being maintained', but is less annoying for those people with many
by maintainer a packages
on hackage.
Doug
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
-- Felipe.
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

Hi, Petr Pudlák wrote:
---------- Forwarded message ---------- From: *Niklas Hambüchen*
mailto:mail@nh2.me> Date: 2013/5/4 ... I would even be happy with newhackage sending every package maintainer a quarterly question "Would you still call your project X 'maintained'?" for each package they maintain; Hackage could really give us better indications concerning this. This sounds to me like a very good idea. It could be as simple as "If you consider yourself to be the maintainer of package X please just hit reply and send." If Hackage doesn't get an answer, it'd just would display some red text like "This package seems to be unmaintained since D.M.Y."
I like the idea of displaying additional info about the status of package development, but I don't like the idea of annoying hard-working package maintainers with emails about their perfect packages that actually didn't need any updates since ages ago. So what about this: Hackage could try to automatically collect and display information about the development status of packages that allow potential users to *guess* whether the package is maintained or not. Currently, potential users have to collect this information themselves. Here are some examples I have in mind: * Fetch the timestamp of the latest commit from the HEAD repo * Fetch the number of open issues from the issue tracker * Display reverse dependencies on the main hackage page * Show the timestamp of the last Hackage upload of the uploader Tillmann

On 06/05/13 17:46, Tillmann Rendel wrote:
So what about this: Hackage could try to automatically collect and display information about the development status of packages that allow potential users to *guess*
In my opinion, that's what we have now. Obtaining the info in the four points you mention from their respective sources usually takes less than a minute in sum - hackage saving me that minute would give me little added value. Having the metrics you mention is nice, but still they are just metrics and say little the only thing that's important: Is there a human who commits themselves to this package?
I like the idea of displaying additional info about the status of package development, but I don't like the idea of annoying hard-working package maintainers with emails about their perfect packages
I really think this is not too big of a deal, getting one email every 3 months and clicking a few checkboxes. Probably fits into one cabal update.

Hi, Niklas Hambüchen wrote:
Having the metrics you mention is nice, but still they are just metrics and say little the only thing that's important:
Is there a human who commits themselves to this package?
I like the idea of displaying additional info about the status of package development, but I don't like the idea of annoying hard-working package maintainers with emails about their perfect packages
I really think this is not too big of a deal, getting one email every 3 months and clicking a few checkboxes.
Is "a human clicked the check box" a good metric for "a human commits themselves to this package"? Tillmann

On Mon, May 06, 2013 at 08:14:59PM +0800, Niklas Hambüchen wrote:
On 06/05/13 20:06, Tillmann Rendel wrote:
Is "a human clicked the check box" a good metric for "a human commits themselves to this package"?
If the check box has the text "Do you want this thing to be called 'maintained' on Hackage" next to it, yes.
The problem is that people tend to (truthfully) check such a box, then stop maintaining the package for whatever reasons, and never bother unchecking the box.

is that really a problem though?
Who's problem are we trying to solve? Is this being proposed to help
seasoned haskellers, or make getting started easier for new folks?
those are two VERY different problems. Also many of the maintainers for
heavily used packages are incredibly busy as is, do they need to keep track
of even *more* email? I'd hope not.
In some respects, just having the hackage2 deps and revdeps stats is a
good proxy for how likely a package is to be well maintained.
On Mon, May 6, 2013 at 8:45 AM, Niklas Hambüchen
Well, that's what the "once every 3 months" is good for.
On Mon 06 May 2013 20:34:13 SGT, Tobias Dammers wrote:
The problem is that people tend to (truthfully) check such a box, then stop maintaining the package for whatever reasons, and never bother unchecking the box.
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

I do think it's a real problem even for seasoned haskellers. I don't have
problems in remembering which packages I should use for the things I've
already used before recently, but I need to search Hackage just as everyone
else as soon as I need to do something new.
I also agree that this is more of a social problem not a tooling one.
Hackage would just provide a tool for helping this kind of social
interaction.
On Mon, May 6, 2013 at 1:25 PM, Carter Schonwald wrote: is that really a problem though? Who's problem are we trying to solve? Is this being proposed to help
seasoned haskellers, or make getting started easier for new folks? those are two VERY different problems. Also many of the maintainers for
heavily used packages are incredibly busy as is, do they need to keep track
of even *more* email? I'd hope not. In some respects, just having the hackage2 deps and revdeps stats is a
good proxy for how likely a package is to be well maintained. On Mon, May 6, 2013 at 8:45 AM, Niklas Hambüchen Well, that's what the "once every 3 months" is good for. On Mon 06 May 2013 20:34:13 SGT, Tobias Dammers wrote: The problem is that people tend to (truthfully) check such a box, then
stop maintaining the package for whatever reasons, and never bother
unchecking the box. _______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe _______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe --
Felipe.

On Monday 06 May 2013 14:34:13 Tobias Dammers wrote:
The problem is that people tend to (truthfully) check such a box, then stop maintaining the package for whatever reasons, and never bother unchecking the box.
I think there should be just one mail per maintainer mail address, not per package. The notification mail should provide a link to a page, that shows all packages maintained by this user (mail address). Every checkbox should be unchecked by default whether there is activity in the repo or not. This way, the maintainers wouldn't get annoyed by hackage mail spam and to check a couple of checkboxes just takes a few minutes.

Being in favor of not needlessly harassing people, even for a few minutes, I would favor issuing such emails only when there is some reason to believe that the package is not maintained. The two situations I can see that would justify such an email: - A dependency exceeds the upper bound listed in the cabal file. - It fails to build on the most recent GHC with its listed dependencies. Every three months, issue one email per address listing packages that are in one of those conditions at the moment and have been for at least a week (or longer--I care little there). I think this strikes a good balance between bothering people needlessly and doing nothing (although it does not properly catch unmaintained packages that build but with serious bugs; I welcome any automatic ways to determine that with reasonably low false positive rates). --IRS

+1. I would be more than happy to receive such an email every 3 months and quickly scan the page to update the "maintained" status for each of the packages where I'm marked as the maintainer. One modification I would make is to persist the checked state across emails. They should all be unchecked in the very first email for a given user. Later emails should preload the previous submission, i.e. the current state, so the user doesn't have to do a bunch of work if nothing is changed. That could get annoying for people who maintain 10s of packages on Hackage. This is obvious, but that page should also be accessible through some "My Profile" page so that I don't have to wait until I get the email if I want to modify a status. I also wonder if it might be worth it to have a little bit more detail than just "maintained" and "not maintained" as possible flags. Something like the following would be nice (I'm sure there are better names; I just don't have the time right now) : - Actively Developed (Meaning: The package is alive, it's a priority and it's actively improved) - Maintained (Meaning: I make sure it doesn't break, semantics are preserved but no major enhancements) - Life Support (Meaning: I just keep it compiling with no effort towards correctness, i.e. use with caution) - Deprecated/Unmaintained On Monday, May 6, 2013 at 10:55 PM, Dan P. wrote:
On Monday 06 May 2013 14:34:13 Tobias Dammers wrote:
The problem is that people tend to (truthfully) check such a box, then stop maintaining the package for whatever reasons, and never bother unchecking the box.
I think there should be just one mail per maintainer mail address, not per package. The notification mail should provide a link to a page, that shows all packages maintained by this user (mail address). Every checkbox should be unchecked by default whether there is activity in the repo or not. This way, the maintainers wouldn't get annoyed by hackage mail spam and to check a couple of checkboxes just takes a few minutes.
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org (mailto:Haskell-Cafe@haskell.org) http://www.haskell.org/mailman/listinfo/haskell-cafe

Don't underestimate how greatly people appreciate being saved a couple of
minutes!
On Mon, May 6, 2013 at 8:01 PM, Niklas Hambüchen
On 06/05/13 17:46, Tillmann Rendel wrote:
So what about this: Hackage could try to automatically collect and display information about the development status of packages that allow potential users to *guess*
In my opinion, that's what we have now.
Obtaining the info in the four points you mention from their respective sources usually takes less than a minute in sum - hackage saving me that minute would give me little added value.
Having the metrics you mention is nice, but still they are just metrics and say little the only thing that's important:
Is there a human who commits themselves to this package?
I like the idea of displaying additional info about the status of package development, but I don't like the idea of annoying hard-working package maintainers with emails about their perfect packages
I really think this is not too big of a deal, getting one email every 3 months and clicking a few checkboxes.
Probably fits into one cabal update.
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

2013/5/6 Tillmann Rendel
Petr Pudlák wrote:
---------- Forwarded message ----------
From: *Niklas Hambüchen*
mailto:mail@nh2.me> Date: 2013/5/4 ... I would even be happy with newhackage sending every package maintainer a quarterly question "Would you still call your project X 'maintained'?" for each package they maintain; Hackage could really give us better indications concerning this. This sounds to me like a very good idea. It could be as simple as "If you consider yourself to be the maintainer of package X please just hit reply and send." If Hackage doesn't get an answer, it'd just would display some red text like "This package seems to be unmaintained since D.M.Y."
I like the idea of displaying additional info about the status of package development, but I don't like the idea of annoying hard-working package maintainers with emails about their perfect packages that actually didn't need any updates since ages ago.
I understand, but replying to an email with an empty body or clicking on a link once in a few months doesn't seem to be an issue for me. And if somebody is very busy and doesn't update the package, it's more fair to signal from the start that (s)he doesn't want to maintain the package. Personally it happened to me perhaps several times that I used a promising package and discovered later that's it's not being maintained. I'd say that the amount of time required to confirm if authors maintain their packages is negligible compared to the amount of time people lose this way. Just out of curiosity, do you have some examples of such packages, that are being maintained, but not updated since they're near perfect? I'd like to know if this is a real issue. It seems to me
So what about this: Hackage could try to automatically collect and display information about the development status of packages that allow potential users to *guess* whether the package is maintained or not. Currently, potential users have to collect this information themselves.
Here are some examples I have in mind:
* Fetch the timestamp of the latest commit from the HEAD repo * Fetch the number of open issues from the issue tracker * Display reverse dependencies on the main hackage page * Show the timestamp of the last Hackage upload of the uploader
Tillmann
Those are good ideas. Some suggestions: I think we already have the timestamp of each upload, this already gives some information. Perhaps we could add a very simple feature saying how long ago that was and adding a warning color (like yellow if more than a year and red if more than two years). Reverse dependencies would certainly help a lot, but it works only for libraries, not for programs. (Although it's less likely that someone would search hackage for programs.) The problem with issue trackers is that (a) many packages don't have one, (b) there are many different issue trackers. Best regards, Petr

Deepseq comes to mind regarding a "perfect" package that doesn't require
active maintenance.
- Clark
On Mon, May 6, 2013 at 2:21 PM, Petr Pudlák
2013/5/6 Tillmann Rendel
Petr Pudlák wrote:
---------- Forwarded message ----------
From: *Niklas Hambüchen*
mailto:mail@nh2.me> Date: 2013/5/4 ... I would even be happy with newhackage sending every package maintainer a quarterly question "Would you still call your project X 'maintained'?" for each package they maintain; Hackage could really give us better indications concerning this. This sounds to me like a very good idea. It could be as simple as "If you consider yourself to be the maintainer of package X please just hit reply and send." If Hackage doesn't get an answer, it'd just would display some red text like "This package seems to be unmaintained since D.M.Y."
I like the idea of displaying additional info about the status of package development, but I don't like the idea of annoying hard-working package maintainers with emails about their perfect packages that actually didn't need any updates since ages ago.
I understand, but replying to an email with an empty body or clicking on a link once in a few months doesn't seem to be an issue for me. And if somebody is very busy and doesn't update the package, it's more fair to signal from the start that (s)he doesn't want to maintain the package.
Personally it happened to me perhaps several times that I used a promising package and discovered later that's it's not being maintained. I'd say that the amount of time required to confirm if authors maintain their packages is negligible compared to the amount of time people lose this way.
Just out of curiosity, do you have some examples of such packages, that are being maintained, but not updated since they're near perfect? I'd like to know if this is a real issue. It seems to me
So what about this: Hackage could try to automatically collect and display information about the development status of packages that allow potential users to *guess* whether the package is maintained or not. Currently, potential users have to collect this information themselves.
Here are some examples I have in mind:
* Fetch the timestamp of the latest commit from the HEAD repo * Fetch the number of open issues from the issue tracker * Display reverse dependencies on the main hackage page * Show the timestamp of the last Hackage upload of the uploader
Tillmann
Those are good ideas. Some suggestions:
I think we already have the timestamp of each upload, this already gives some information. Perhaps we could add a very simple feature saying how long ago that was and adding a warning color (like yellow if more than a year and red if more than two years).
Reverse dependencies would certainly help a lot, but it works only for libraries, not for programs. (Although it's less likely that someone would search hackage for programs.)
The problem with issue trackers is that (a) many packages don't have one, (b) there are many different issue trackers.
Best regards, Petr
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
participants (14)
-
Carter Schonwald
-
Clark Gaebel
-
Conrad Parker
-
Dan P.
-
Doug Burke
-
Felipe Almeida Lessa
-
Joe Quinn
-
Lyndon Maydwell
-
Niklas Hambüchen
-
Ozgun Ataman
-
Petr Pudlák
-
Sturdy, Ian
-
Tillmann Rendel
-
Tobias Dammers