hashobject / perun

Programmable static site generator built with Clojure and Boot (HELP NEEDED!)
https://perun.io
Eclipse Public License 1.0
351 stars 38 forks source link

The future of perun? #241

Open allentiak opened 5 years ago

allentiak commented 5 years ago

Hi, I think it is time to put into words what we have been discussing informally: we need a new stable release! I have created a new milestone for 0.5.0. I have also started this thread to decide what to put in it :-)

What do you think?

(To open up the discussion, I am mentioning here every single person who has contributed code so far, and every single person who has an open PR, in no particular order.) @podviaznikov @bhagany @Deraen @martinklepsch @arichiardi @nicorikken @munen @edannenberg @eccentric-j @ballpointcarrot @wiseman @jstaffans @ikitommi @daemianmack @alandipert @Robsteranium @MartyGentillon @MageMasher @AdamFrey @devurandom @agzam @rqcy

arichiardi commented 5 years ago

Probably I should look at #208

munen commented 5 years ago

@allentiak Generally speaking, I would be happy about a new release^^

There's many good changes since the last release! That why, for deployment of https://200ok.ch, we're cloning the repository and don't use the released version anymore.

Since you asked for an opinion, I personally would opt to integrate automatic releases for PRs merged to master. That's more work to be done once, but afterwards (except for CI maintenance) every fix or feature will be available in a release automatically.

allentiak commented 5 years ago

I'm happy this ticket sparkled some positive discussion!

@munen AFAIK, the only person with the needed credentials to publish new releases is @podviaznikov Maybe he has something to say about this?

(BTW: I am writing a list of the things I would like to see in a 0.5.0 release. I will post it here shortly, so we can discuss about it.)

allentiak commented 5 years ago

Some ideas towards 0.5.0

Perun is a great project. That being said, the code's current internal quality could be definitely improved. This would make the project more easy to maintain and debug.

Rather than adding new features, I would like to first perform a general code cleanup and quality improvement.

  1. Get the CHANGELOG up to date. (There is a record of only 2% of the changes occurred since the only stable release, in early 2016.)

  2. Refactor the tests (e.g., the main test file is 848! lines long).

  3. Refactor the main code (e.g., a simple configuration change or dependency update may involve changes scattered across many files - there is no central place to change config parameters.)

  4. Get the example sites and the documentation (tutorials, HOWTOs) up to date.

Task 1 would be the first and easiest thing to do. I could take care of it. Once it is done, we could start working on tasks 2 and 3, concurrently. The degree to which we could work on 4 would depend on the difficulty of 2 and 3.

What do you think about this?

podviaznikov commented 5 years ago

All the ideas are good. If we can improve tests, documentation and add automatic releases (as suggested) that would be amazing.

Automatic releases - was my big wish too for a long time, but I wasn't able to do it. Of course if someone setups up releases (I was waiting for GitHub actions to be enabled on the repo) - I will enter clojars credentials as a secret. Also if someone knows a better way to manage access to Clojars - let me know (maybe they added some new options to manage permissions and access).

@allentiak I agree with your list. Feel free to create GH milestone with separate issues and we can move forward. Those are all very good ideas!

allentiak commented 5 years ago

I have created the milestone for 0.5.0. https://github.com/hashobject/perun/milestone/1

Should we wait a few more days so we can get more feedback from the rest mentioned above?

allentiak commented 5 years ago

Also if someone knows a better way to manage access to Clojars - let me know (maybe they added some new options to manage permissions and access).

@podviaznikov Perhaps you could start by adding current perun members to the clojars group? https://github.com/clojars/clojars-web/wiki/Groups#adding-members-to-a-group

jaidetree commented 5 years ago

227 to provide Clojure 1.9 support

allentiak commented 4 years ago

(Moving my answer from #247, where @arichiardi proposes a move to babashka)

Ciao, @arichiardi, all,

Thanks for bringing this up.

Personally, I have been moving away from boot for some time, in favor of a leaner, deps.edn-based approach. So, in principle, I would favor a migration towards there.

That being said, I doubt I would implement such a change right now. After @podviaznikov gave me the proper permissions to publish releases, about a month ago, my plans were to release a 0.5 beta. This release would be a great way to get contributions from other perun users, like @munen, who had to fork perun due to its lack of releases, merged back here. However, I haven't found the time to do that either...

The project hasn't had a release in over a year now. It is quite obvious that all (or, at least, most) of the perun contributors have other priorities now. Given that, I think that if you (or anyone else) is willing to invest the required time and energy to move this project forward, that person should be able to do so in the direction he/she considers the best. On the sole condition that person can (try to) implement such features him/herself.

For the conditions set above, I don't consider myself capable of taking that place myself. But I think that everybody mentioned in this thread should have their saying, and that it would be great if someone can step up to take over the project.

allentiak commented 4 years ago

UPDATE: I have just updated the README to ask for help.

arichiardi commented 4 years ago

@allentiak that definitely makes sense, a project like this one dying would be a pity.

Thanks for the answer, I will have to think about time as well. Nonetheless, a release should be good (using local 0.5 snapshot) here. Maybe I can as least help with that?

allentiak commented 4 years ago

@arichiardi Sure you can help!

I am mentioning everybody again so they have a chance of proposing alternatives to you leading a new 0.5.0 release. (Feel free to correct me if I'm wrong on this.)

Shall we give this subject a deliberation time of, let's say, two weeks? This is, until the 7th of June 2020? (@arichiardi In the meantime, I would advise to keep your work in a separate branch, to be merged into master once this is decided upon.)

@podviaznikov @bhagany @Deraen @martinklepsch @arichiardi @nicorikken @munen @edannenberg @eccentric-j @ballpointcarrot @wiseman @jstaffans @ikitommi @daemianmack @alandipert @Robsteranium @MartyGentillon @MageMasher @AdamFrey @devurandom @agzam @rqcy @mrchrisadams

arichiardi commented 3 years ago

Perhaps you could start by adding current perun members to the clojars group?

Dear @podviaznikov and @allentiak..I think I can take care of the automatic releases if we are OK with CircleCI (cause I am fairly familiar with it and I have examples floating around).

I think I need admin access to the repo for that and clojars access so that I can generate tokens...

https://github.com/clojars/clojars-web/wiki/Deploy-Tokens

allentiak commented 3 years ago

@arichiardi I'm glad to read your comment. I've given you access to the repo and clojars.

I am currently solving some urgent matters, so I cannot reply in detail right now. I should be able to do so in around a week.

In the meantime, maybe @munen or @podviaznikov have something to add to the conversation?

podviaznikov commented 3 years ago

@arichiardi. I think you have access now. Sounds like a good idea to have automatic release pipeline. CircleCI definitely works.

munen commented 3 years ago

Getting CI into Perun would be great, thank you for your work!

@allentiak, @branch14 and me have had some talks recently with regards on how to ensure maintenance for Perun. The result is that we from 200ok.ch can offer to take over maintenance of Perun and make it a community project. In that regard, we have written to @podviaznikov some weeks ago, but haven't heard back, so far.

This is the proposal we have sent via email:

Dear Mr. Podviaznikov

Let me start by saying that I'm very grateful to you for creating and nurturing Perun to this point! We are using it to build our website 200ok.ch and are quite happy with it. I also remember meeting one of the contributors (Martin Klepsch) at EuroClojure 2016 in Bratislava - incidentally we started working on our 'new' website during the breaks in between the talks(;

Over a year ago, you opened an issue "The future of perun?"[1] on the Github repository. I was looking forward to someone stepping up, but that hasn't happened. In the meantime, I have had a couple of chats with Leandro to talk about the future.

We are happy users of Perun and would like to help new contributors get feedback and get new releases out. We are a small company, but we spend quite a bit of time on FLOSS: https://200ok.ch/floss.html

What I can offer is that we take over the maintenance of Perun and make it a community project. A project with a similar setup would be: https://github.com/200ok-ch/organice/

That would imply that the repositories for code and website will be under the 200ok-ch Github organisation, so that we can set up more tooling around it. Of course, any current maintainer of Perun would also get appropriate rights after moving.

Since this would be a transition, we chose to write you first before answering on the issue so that you have the chance to think about it and answer in private. Let me know what you think.

Best regards and good health, Alain M. Lafon

  1. https://github.com/hashobject/perun/issues/241

The proposal is now in the open, let me know what you think.

If someone steps up and keeps Perun going in the current repository, I'm just as happy and willing to help out where I can🙏

bhagany commented 3 years ago

I have been watching on the sidelines with interest, and this certainly piques it. I think a company is probably in a good position to undertake the kinds of maintenance tasks that a FLOSS project requires, and so would be in favor of this change. It also makes it more likely for me to start contributing again (I do have concerns about the long-term viability of the boot ecosystem, but those can wait).

munen commented 3 years ago

Thank you for your kind words, @bhagany! I fondly remember when you were helping us to get going with Perun initially^^

I agree about the long term viability of Boot, as well. @allentiak also mentioned that he would like to see it replaced. For 200ok.ch, we've made some changes downstream to Perun where Boot just feels wrong, but for the moment we stuck with it.

I'm not saying that this is what we would start on, but in the mid- to longterm, this could very well be a good change! :+1:

arichiardi commented 3 years ago

@podviaznikov side note 😃 I tried but in order to setup CircleCI I need to be an admin. No rush though I am working in my fork for now and I am almost done.

arichiardi commented 3 years ago

About my babashka proposal, I am not sure it would work very easily cause babashka cannot run arbitrary Java code (there are pods for shelling out to CLI commands and stuff but it is more work).

This leaves the only other option, which is to setup a Clojure deps "script", of course checking first what boot-specific functionality perun uses.

@munen would your approach involve moving away from boot?

bhagany commented 3 years ago

fortuitously: https://clojurians.slack.com/archives/C06MAR553/p1607889886125600

and for posterity, from Michiel Borkent on Slack:

Babashka 0.2.5 offers integration with tools.deps for bb scripts and for invoking a JVM clojure process: https://github.com/borkdude/babashka/blob/master/CHANGELOG.md#v025 For questions, come chat in #babashka

I haven't looked into it, but it sounds to me like this would give us a good hook into the JVM

munen commented 3 years ago

@arichiardi

@munen would your approach involve moving away from boot?

Not for the time being. I'd first focus on making Perun a proper community project, again. I'd start with these topics:

But, if the community or a single strong contributor would want to go into that direction, I'm not against it since I also see use cases that are harder to model with Boot.

allentiak commented 3 years ago

Hi, all,

Sorry I haven't been very responsive lately. I have been solving a personal emergency.

I'll make things as brief as possible.

We all know that, after starting, building, and becoming perun's (almost) sole maintainer for many years, @podviaznikov (for reasons irrelevant for this discussion) has not been able to pay much attention to the project for some time now. Ironically, perun's success in attracting users has turned this situation into a problem.

I think we all agree (even @podviaznikov himself) that perun's current de facto one-man-project approach (whereas may have been useful during earlier project stages) is not able to sustain perun's long-term viability. If we are to make this project thrive, we clearly need to change the current state of affairs somehow.

In this regard, I have to commend @podviaznikov for showing interest in hearing others' opinions out on how to best moving the project forward. This shows genuine care on the project's future. I really appreciate this constructive attitude of yours, Anton!

Also, I have to commend the constructive attitude of many of perun's heavy users (most notably, @munen, @arichiardi, and @bhagany) who have shown interest in taking over different aspects of the project.

With the situation established, I think we should focus on the following:

1) Inventory: list and details of all of perun's infra (github group, clojars group, domain name, hosting...). This includes any financial costs associated for any of them.

Definitely, @podviaznikov is the one who best knows all this. Could you please elaborate on this?

2) Organization: start working on key working agreements (such as the project goals), and what means could be the best to achieve them. At this stage, chances are the best way to decide may include at least one (virtual) gathering of all interested parties.

Whereas I do have some ideas in this regard, I think this point can only be addressed once we clearly know what are we talking about (read: point 1).

What do you think of all this?

Best, Leandro

podviaznikov commented 3 years ago

Hey guys,

Great discussions.

Just want to add. I do not think of myself as a primary maintainer. I think project had naturally changing main contributors over years.

I think I contributed a lot during initial phase, then @martinklepsch and @Deraen were heavily involved. Then it was long period when @bhagany was main developer.

I think @allentiak was the most active contributor/maintainer in the last years. And also @arichiardi was very active throughout the years.

I think people who were interested in project would spend some time on it and then move on. If this model doesn't work anymore - happy to hear alternatives.

I see mixed messaging here. I think @munen has good ideas, and so does @allentiak and @arichiardi.

But I think I'm still not sure I understand if there is consensus and what do you want from me.

Do you need me to give people in this thread more permissions? Do you guys want to move project to separate/different GitHub org? Do you need something else from me?

I think at this point @allentiak has the same access as I have (I think except domain perun.io) and I think he was the most active maintainer in the past few years.

arichiardi commented 3 years ago

I think people who were interested in project would spend some time on it and then move on. If this model doesn't work anymore - happy to hear alternatives.

In honest humble opinion this worked actually quite well, classic open source model: we do our best when there is enough time on our shoulders :smile:

For instance my PR for CI has been worked on during my parental leave :smile_cat:

I liked the fact that we have a list of TODOs written here, many messages above, and whoever has time can just pick those up and complete them (I guess?).

allentiak commented 3 years ago

@podviaznikov wrote:

Hey guys,

Great discussions.

Hi, Anton,

Great reading from you!

Just want to add. I do not think of myself as a primary maintainer. I think project had naturally changing main contributors over years.

I think @allentiak was the most active contributor/maintainer in the last years.

Thanks for the flowers :) (You won't see many commits by my hand, though...)

If this model doesn't work anymore - happy to hear alternatives.

Great to read this! I'm glad we all want to help this project move forward.

But I think I'm still not sure I understand if there is consensus and what do you want from me.

You're right, there isn't. But I think the fact that you are sharing your vision of the project with the rest of us in this thread is a great first step towards building that consensus.

Probably, the next step could be knowing a little bit more about how do you currently see yourself with respect to this project?

@podviaznikov Considering you are the initial developer... Could you please elaborate a little bit more about how you see yourself with respect to this project? Is there any role you would like to play in it in the near future? (Of course, it's also fine if you don't. This is just to know where you stand. Again, you are the historical main developer... Plus, you support and manage the project domain...)

arichiardi commented 3 years ago

Get the CHANGELOG up to date. (There is a record of only 2% of the changes occurred since the only stable release, in early 2016.)

I have refrained from pushing 0.5.0 because of the above as it is probably the next (tedious) thing we need to do

allentiak commented 3 years ago

Hi,

I have said before that I didn't have much energy for working on an abandoned project like this one. For now, I'm retiring from this discussion. I will consider giving some love to this project again if/when someone else pus it back in shape.

Given the current state of affairs, I think that the best course of action for those who do want to keep on working on this (like @munen) is to fork the project, leave a note on the README pointing to the new repo, and move on. Whereas I would prefer the new umbrella to be company-independent, it's up to the working parties to decide that.

Chances are, I will stop using perun and switch to a simpler solution.

Thanks for all the fish!

Signing off, Leandro

allentiak commented 3 years ago

@arichiardi @munen Could any of you remove me from the clojars perun org, please? It seems I cannot do it by myself...

arichiardi commented 3 years ago

@allentiak that's sad, but understandable. I removed you from Clojars.

allentiak commented 3 years ago

Thanks, @arichiardi !

Who knows about the future? I might return one day...

munen commented 3 years ago

Hi @allentiak

Sorry to see you go, but I understand your rationale. Thank you very much for your contribution to the FLOSS community and all the best in your future endeavours! :pray: :bow:

See you around :wave:

podviaznikov commented 3 years ago

@allentiak thank you for great contributions over the years 🙏

allentiak commented 3 years ago

Thanks, @munen ! Whereas I thank you very much for your kind words, I thank you much more for your actions.

See you around!

nanoni17728 commented 3 years ago

Hi!

I’ve been lurking around the project for a while. I’m trying to use Perun again to run my personal website so I’m trying to figure things out. Most of my contributions to other projects so far were to improve documentation and in a broader sense, user experience. Looking at the website and its list of yet to be written tutorials, and the documentation pointing to different version of Perun itself, if the project want to keep some steam in the long run there should be some work to be done on this side.

I still think it’s important that code wise the project need fresh blood. But ironing documentation and tutorials out may help clear things up. I’m willing to work on that part!

Have a good day.

munen commented 3 years ago

@nanoni17728 Welcome to the project :pray:

I'd be happy to pull in new documentation and tutorials!

nicorikken commented 3 years ago

@allentiak Sorry for my late response, changes at work moved me away from Clojure, Asciidoc and also I lost interest in getting my personal website up and running. Ever since merging the Asciidoctor support I haven't run Perun, and sometimes I feel bad for merging code and not taking care to maintain. Of course Clojure code once written will forever remain current and valuable :wink: but at least I should have stayed in touch to improve and fix bugs. Perun was a great learning experience for me and it is sad that the project has become unmaintained. I guess that in itself is a learning experience. Thanks to all contributors and I hope others will still derive some value from it.