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

Add last commit shields. #60

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

Add last commit shields. #60

wants to merge 1 commit into from

Conversation

kindaro
Copy link

@kindaro kindaro commented Apr 2, 2022

An important criterion for the evaluation of a library is whether it is kept up to date. So I thought it would be good to add the badges that show when the last commit (to a repository mentioned in the description on Hackage) happened.

@gelisam
Copy link
Owner

gelisam commented Apr 2, 2022

Hmm, I am thorn.

One one hand, many frp libraries seem abandoned, and so I agree that it would be useful to clarify where along the actively-maintained to abandonware axis each library is located.

On the other hand, I personally find it very upsetting when people use the date of the last commit as way to evaluate that information. When I maintain a package, I put mechanisms in place (monthly CI runs) which alert me if my package no longer works with the latest version of its dependencies, including ghc. As a result, if my dependencies are stable, I don't need to make any changes, my code still works fine, but my latest commit happens to become older and older. I would even say it's an insulting metric, because it scores more highly the packages in poorly-thought ecosystems where everything breaks all the time and maintainers constantly have to update their code just to keep the existing feature set working as-is. My feelings in regard to that metric are extreme enough that I've considered writing a script which pushes no-op commits to all my repositories every day, just to game that metric!

(deep breath)

So... is there perhaps a different proxy than the last commit date we could use? I really don't want to propagate the use of that metric if I can help it.

@kindaro
Copy link
Author

kindaro commented Apr 2, 2022

I understand you and I could not say it better than you have.

  1. Theoretically we can try to build each package with a range of GHC and put green dots where it builds and red dots where it does not. This would be a better proxy for a package being up to date. This means forking each package, bolting continuous integration onto it (perhaps haskell-ci can help), and writing a reporting script.

  2. We can also do some statistics on tickets — something that would amount to «are there many neglected issues and stale pull requests relative to the total flow of tickets». But this is a whole research project.

I cannot commit to either at this time.

If Hackage wanted to have something like №1 above built in, so that it would work for all packages out of the box, then it would have made sense. It is sufficient to type check the code, so the run does not have to be resource intensive. Then Hackage would provide us with those beautiful theoretical badges.

@gelisam
Copy link
Owner

gelisam commented Apr 2, 2022

If Hackage wanted to have something like №1 above built in, so that it would work for all packages out of the box, then it would have made sense.

Good news, Hackage actually does have this built-in! It's called Hackage Matrix Builder, and it's one of the sources of breakage I check automatically every month. It seems to be down right now for some reason, so here's a ticket which has some screenshots, to give you a flavor of what the tool looks like.

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

Successfully merging this pull request may close these issues.

2 participants