jaspervdj / hakyll

A static website compiler library in Haskell
jaspervdj.be/hakyll
Other
2.7k stars 413 forks source link

Call for more co-maintainers (as I step down) #1048

Open Minoru opened 1 week ago

Minoru commented 1 week ago

Hey everyone,

I haven't paid attention to recent issues and PRs, and with some (happy) life changes that's coming my way, I don't expect I'll have time for Hakyll anytime soon. Thus I'm stepping down as a co-maintainer.

I really want Hakyll to exist and to trive, so let me describe what's required to maintain it. Perhaps you, the reader, will be interested in picking up some of that work!

Keeping Hakyll in Stackage. This can really be done by anyone who's capable of running cabal build (with help from someone who has commit access to Hakyll and Hackage). You add yourself to Stackage's build-constraints.yaml so you get pinged by issues like https://github.com/commercialhaskell/stackage/issues/7529. For each ping, you update the dependency bounds in hakyll.cabal, submit a PR to Hakyll, merge it, make a Hackage revision (manually applying the changes from the PR), and comment about it on the Stackage issue. 95% of the time, it's as trivial as this. The other 5% is when a dependency API changes and you have to fix the compilation errors. This is usually easy too; and when it's not, you can tag Jasper and add a "help wanted" label.

Issue triage. If you want to explore Hakyll's capabilities, this is for you. People come with all sorts of problems; some trivial, some advanced. I think I was able to answer about 20% from my own experience of building a blog. The rest I was usually able to help somewhat by code-diving.

Reviewing trivial changes. Usually it's version bumps (#1036), but sometimes it's new features (#975) or generalisations of existing APIs (#957). Your job here is to ensure that the additions are consistent with what Hakyll already has: function names should be similar, arguments should be in the similar order (if that makes sense), code is in the appropriate module, etc. Reviewing such changes is a good catalyst for learning about Hakyll's APIs.

Reviewing big changes. This is the area where I struggled the most, but it got slightly easier as I learned about Hakyll's internals (and maybe even Haskell). The most recent such change is async runtime and its refinements (https://github.com/jaspervdj/hakyll/pull/844, https://github.com/jaspervdj/hakyll/pull/863, https://github.com/jaspervdj/hakyll/pull/946). These changes sometimes require a judgement call about their appropriateness or the way they are implemented; I just deferred to Jasper if I was unsure of what to do.

That's it; the four main areas of work as I see it. I should note that each area can possibly be covered by multiple people, so nobody is too stressed any everyone's back is covered.

I don't yet know how new co-maintainers will get appointed. I guess it's up to Jasper. I personally believe in meritocracy, so should point out that most of this work doesn't require commit access on GitHub or maintainership on Hackage. If you're interested in working on any of this, please just start; there's always someone who can merge your PR and push that release.

Please don't break this thing too much, I use it for my blog still :heart:

jaspervdj commented 1 week ago

@Minoru Thanks for all your awesome work in the past few years! I owe you more beers than I can count!

My goal is also to keep Hakyll working with a slight focus on backwards-compatibility in favor of adding new features. There's many websites out there at this point using Hakyll and having to update site.hs can be very annoying if you just want to make a slight change to your website.

LaurentRDC commented 1 week ago

@Minoru Thank you so much for all the work you've put into Hakyll!

@jaspervdj I am happy to serve as co-maintainer. I can't promise I'll be able to review large PRs, but I can at least help keep everything up to date. My hackage username is LaurentRDC as well.

jaspervdj commented 1 week ago

@LaurentRDC thank you for the offer, I really appreciate this, and I think everyone using this project does so, too! I am currently traveling and will add you as a maintainer when I’m at my computer. Feel free to contact me anytime when you have any questions, and also happy to discuss future direction of Hakyll if you want to!

jaspervdj commented 6 days ago

@seschwar As I was looking at the people who have write access, I have removed you since it's been a while since you touched Hakyll. This is just because there is some risk of software supply chain attacks in this day and age so I'd rather restrict access if you don't need it. Let me know if you are looking to contribute again at some point.

slotThe commented 5 days ago

@Minoru thank you for keeping the lights on for so long!

While "co-maintainer" seems like a big hat to wear, I would gladly volunteer to help out here and there! (this is not completely altruistic, I do want to remove https://github.com/jaspervdj/hakyll/pull/1020 from my config, and have a few similarly small changes in the pipeline for "contribute this at some point" :))

KovalevDima commented 5 days ago

As a user of hakyll I just want to say thank you. Documentation of my project(which is a ClickHouse DBMS driver) fully built on top of hakyll and getting ready to be extended. I'm happy all the time using this awesome tool

Minoru commented 4 days ago

Thanks for the kind words everyone!

JFYI, I'll continue reacting to Stackage pings while Laurent is waiting for access to GitHub and Hackage. When that's done, me or him can update stackage/build-constraints.yaml so he gets the pings instead.

jaspervdj commented 1 day ago

@LaurentRDC You should have access to GitHub and Hackage now, ping me if it doesn't work! And thanks again!

LaurentRDC commented 33 minutes ago

As far as I'm concerned, everything has been set up on my end. I'm preparing a minor release with @slotThe's #1020 as well.