Pelican-Elegant / elegant

Best theme for Pelican Static Blog Generator
https://elegant.oncrashreboot.com/
MIT License
295 stars 187 forks source link

Future of Pelican Elegant? #173

Closed silverhook closed 5 years ago

silverhook commented 5 years ago

Hi @talha131,

I know this is your baby, but because this theme is so nice and there are so many of us depending on it, it would be really good to have some official-ish decision on what the future of it is.

Are you leaving it for dead and there is no sense in submitting bugs, pull requests etc. any more? Would you be willing to grant more people the power over the project, so the maintainer workload is spread across more people? Or would it be best to agree on a common community-led fork?

These are likely not the only options on how to move forward and together we can probably think of the best one. But in any case I’d hate it if you weren’t involved in the decision.

(BTW, this is not a question on which tech to use in the future, just a governance question.)

talha131 commented 5 years ago

To @silverhook and all others who have upvoted this issue or have been watching this repository.

I am sorry. I should have requested the community to take over a long time ago. My vanity, naivety and poor estimation skills didn't let me see that my hands will be full for so many years.

I had communicated with you in the past via email that I have plans for the theme and want to make it better like getting rid of dependency on bootstrap. When I wrote that, and even now, I mean it in the earnest. Unfortunately, I have got so much on my plate, I can't see how I can add one more project to my todo list.

In the past, when I communicated to you and some other people, that I will pick up the thread in few weeks, I didn't realize how precarious software estimation is. At that time, I really thought that my then commitment would be completed in 4-6 weeks. Instead those projects took more than 6 months. Bugs happen, targets shift, dependencies upgrades etc. I am learning to be better at estimates using time tracking and story points but that's a story for another day. Right now I want every user of Pelican-Elegant to know I am sorry for letting you down and dragging down the theme with me.

Currently, with the projects I have on my board and those that I see following them, I should stop telling myself that I soon will have time for Pelican or Pelican-Elegant.

You are right. This project needs someone more proactive, diligent and most importantly available than me.

Kindly suggest how do I perform this transition? Are you willing to take over? Or do you have someone else in mind?

I used Bootstrap 2. Since then Bootstrap 3 and onward have embraced the flat design. Or a leaner framework can replace Bootstrap. I mean there are things that community will have to decide.

PS. I really appreciate how you frequently reminded me to give time to this project. You were perseverant. Ironically, it was enthusiasm and appreciation of people like you that made me cling to Elegant. I kept telling myself I would be a fool to let go of such wonderful users. "What are the chances you will be able to create another OSS in future which will attract similar dedicated users who are generous with encouragement." 😄

But I must learn not to drag a community down with me. It's hard but necessary. So please accept my heartfelt apology for delaying the inevitable and sincere thanks for staying in touch and pushing me via various means.

So guide me here and help me transfer Git privileges to new project-lead.

silverhook commented 5 years ago

Dear Talha,

please don’t beat yourself over it.

We all learn from our mistakes.

We all have FOSS projects that are either dormant or dead.

Life happens :)

My hat’s off to you for making this difficult decision to hand over the reins of your own project, to make sure it will live on. Not everyone is big enough person to able to make this big, scary step!

Core Team

IMHO the best way forward would be to first set up a core team, responsible for maintenance and governance of Pelican Elegant.

Stats

In terms of pull requests submitted, the top contenders are:

In terms of issues reported:

Then there are two dozen of us with 1 pull request each, and a similar number of users who submitted just one or two bug reports. Amongst those, @0x8BADFOOD is worth noting, as his fork is also quite popular, due to the Tipue search fix.

Proposal

As we can see above, the most active contributors to the project the following still use Pelican Elegant for their blogs seem to be:

I would say that asking these to form the base team, would be a good start.

Further I would also invite the people who are currently working on active forks (I looked at the network graph and selected the ones that have committed to their own fork at least once in the past year):

(Of course, everyone else is welcome as well! I’m just trying to first round up the most likely suspects.)

Putting both together, it looks like a substantial contributor pool for a “simple” blog theme. With a little bit of love, I think we can all pull together and make Pelican even more Elegant :wink:

Since I clearly cannot speak on behalf of anyone else, I can only speak for myself. I’m not much of a coder, but would be happy to contribute my experience with licensing and project governance, and learn to code better with helping here and there as well. But I would not want to be in charge of code quality, as that is not my skill set. Ideally, I would like at least you (@talha131) and @calfzhou as the most senior coders in the project for code reviews.

Governance

First thing would be to see what everyone can bring to the table and divide the appropriate access rights they need to make sure of that.

I suggest we have at least two people with direct write access and access to merge pull requests. Clearly these people should be familiar with the Pelican Elegant code base and have shown before

The details should be discussed by the Core Team in the open, so others – both contributors and users – should be able to provide feedback.

Some points I see that would benefit discussion eventually (not necessarily now):

Suggestion how to move forward code-wise

In terms of code, I think the best way forward would be to first pull in calfzhou’s fork, which by now is 63 commits ahead.

Next we should finally release version 2.0, if nothing else to make a statement – according to current plans/milestones, it is just one issue away from being released anyway ;)

After that we should start working through the pull request backlog.

Then, as discussed some time before, it would make most sense to get rid of Bootstrap and in parallel to just maintaining the current version, work on a cleaner implementation (version 3.0 perhaps?). @talha131, how far is your uncss-pelican-elegant?

Clearly this is just a suggestion to kick-start the discussion, and would need to be agreed upon by the Core Team (and the wider community).

I’ll shut up now and let others speak up …

tshepang commented 5 years ago

@silverhook this is an excellent and thorough analysis. I don't use the theme anymore indeed, but just wanted to say thanks for moving things forward.

ashwinvis commented 5 years ago

Happy to see a possibility of continued development. FWIW, we @fluiddyn are currently using pelican-elegant for our project page https://fluiddyn.bitbucket.io. I might be able to add a few pull-requests when the new organization is decided.

mlissner commented 5 years ago

My blog is pretty stagnant, so I probably won't be contributing much here until I do an overhaul of it, but when I do come around, I'll be happy to submit PRs for things I need. Alas, I know I don't have much time for this myself.

AWegnerGitHub commented 5 years ago

I appreciate the call out, but I don't believe I'd make a good leader in this community in the long term. The changes I've made to my fork are relatively minor and were to handle specific things I wanted on my blog. I wasn't thinking about how useful they'd be to others at the time and I'm pretty sure I have a few things hard coded still:

In sort, my changes have really been for personal use and may not be a huge benefit for the community in general.


That said, I love this theme and am open to contributing more, just not in any kind of leadership role. I feel that should be a group of people that are more involved and invested in the code. I'll gladly provide my opinion on things for another perspective though.

calfzhou commented 5 years ago

Pelican-elegant is a wonderful theme. Hope that it will continue moving forward 👍

silverhook commented 5 years ago

@tshepang, great to see you pop by. I suspected you would not be able to contribute much any more, but credit where credit is due. You were a big part of this community :smiley:

@ashwinvis, @mlissner, @AWegnerGitHub: I think the majority of us here is in a similar situation. But willingness to help with even half-baked pull requests that we can then collaborate on together in a wider team, is already pushing things forward quite a bit.

@calfzhou, would you be willing to be part of the team? I think you would be one of the most suited people to review merge/pull requests.

To clarify, I’m not asking anyone to simply replace @talha131 – that would be just pushing the current status quo into the future. If only one person took over everything, it is only a matter of time before they would lose interest, not find the time, disappear to Mars or get family. What I’m asking for is that we organise ourselves so each of us puts just a little bit of effort into it, and we still move Pelican Elegant forward :)

Also, we are in no way in a hurry. This repository hasn’t moved in four years, so we can easily take a few weeks to organise ourselves and start working on the code itself. In that time, I hope we can hear from others in the community as well – both the ones mentioned in this issue and any other (potential) users out there – before we discuss how to divide the work and roles to kick-start this back to life.

ashwinvis commented 5 years ago

The first step would be for @talha131 to decide on an open-source friendly license and put it explicitly there. Right now it does not clearly state what is allowed and what is not. After that there are two options.

  1. Keep the current repository, add collaborators who @talha131 trusts and give them push rights.
  2. Form an "organization" and move the repo under the organization. This has more flexibility to have different teams with varied levels of access levels.

I would say do at least this to get started with, with the core-team's approval. Governance model, code of conduct etc can be formulated by the core team after this step. You can start accepting PRs after you have set all this in place. If we wait for a few weeks, this thread may simply lose momentum.

silverhook commented 5 years ago

@ashwinvis, I agree that the license could use an update, but it’s not the most pressing issue. In fact it’s already usable as it is. It’s effectively MIT with an added clause that demands that everyone keeps Talha’s attribution in the footer of their website (in FOSS legal circles such practice is often referred to as badge-ware, but is not looked at kindly). The extra attribution clause is a bit annoying from the end-user PoV and very uncommon in the modern day and age, but it seems clear enough to me.

As I work with FOSS license compliance and governance for my day job (and long-time hobby), I took the time to open a separate issue here: https://github.com/talha131/pelican-elegant/issues/175

… and another with a Code of Conduct proposal here: https://github.com/talha131/pelican-elegant/issues/176

I would suggest that we move the discussion on those two topics directly to those issues – again, everyone who has a stake in Pelican Elegant (even just users) is welcome to participate there.

Regarding the repository set-up, I agree with you that a new/separate organisation dedicated to this project would give more flexibility, but since it’s not a super-large community, IMHO both would work. What do others think?

As for the governance model, I think we need to discuss this in more detail – does anyone have any preference? I don’t want to be the only one who gives proposals. If you’re interested in this topic, I can warmly suggest Cornelius Schumacher’s talk on The Spectrum of FOSS Governance Models.

talha131 commented 5 years ago

Great to see all this enthusiasm.

In the past I have worked with @tshepang and @calfzhou. They were great. It would be really cool if they join the team. Especially @calfzhou because it seems you are still using the theme.

Pelican-Elegant Github Organization

For now I have created "Pelican-Elegant" organization on Github. Why?
Because the permissions' levels for a user name repository is too restricted for a community driven project. I can only add collaborators with push access. I was looking for access level that would let contributors add other uses to the team in future without involving me.

Let me know if think the name should be changed.

Members

I have invited @silverhook. Once you accept it I will make you admin of the organization. Then you can add contributors from this thread, depending on their availability and interest.

@tshepang and @calfzhou are solid. (Please guys join the team). I am sure others are also awesome though I didn't have the pleasure to work with them.

talha131 commented 5 years ago

uncss-pelican-elegant

@silverhook about uncss-pelican-elegant. This site is generated using a JS package.

Bootstrap is a beast. There are several CSS rules and JS code of it, that weren't used in the theme at at all. uncss removed all such unused rules. So what you see in uncss-pelican-elegant should be the code is use.

In recent years CSS has gotten so strong that for a lot many things you don't need any framework. The intention was to drop Bootstrap or any other framework altogether. And to pick relevant CSS rules from the uncss-pelican-elegant like font style or top menu bar style etc.

License

@ashwinvis I agree with what @silverhook has posted in #175

talha131 commented 5 years ago

Current status

@silverhook Is now the owner of the Pelican Elegant organization. Those who want to join as collaborators please contact him.

To @silverhook, you may want to change the organization name. It is better if you do it early, if you think is necessary.

Documentation

Currently, http://oncrashreboot.com/pelican-elegant is the landing page for the theme. It would be better if it's moved from there. It will remove one more bottleneck created by me for the new organization.

I also wrote bunch of help articles that I never got around to publishing. I will place them inside a new repository in the organization.

talha131 commented 5 years ago

@silverhook I have created documentation repository and moved my Pelican-Elegant help articles to it.

I have removed fluff the best I can but the new team will still have to review it to remove for example links to my email address or social media accounts.

silverhook commented 5 years ago

Hi, @talha131, super-thanks for acting so fast!

Github organisation

Awesome that you managed to change the private repo into an Organisation so fast and in a way where we kept all the history, issues and plans. This is probably the best outcome that we could wish for!

Personally, I think the name is fine. Does anyone have any different suggestions than “Pelican-Elegant”?

Members

I have sent out an invitation to @calfzhou and @tshepang. @calfzhou, I would really like to have you on board to make sure the code is good. @tshepang, since you don’t use Pelican any more, I can very much understand if you decline the invitation. But it seemed fair to invite you at least.

Roadmap (pelican-elegant vs uncss-pelican-elegant)

I agree that moving away from a framework (regardless if Bootstrap or other) ASAP is the right way forward. If I remember correctly you explicitly stated several years before that when Bootstrap changed from 2.x to 3.x, there would be so much to do to keep it look the same that you decided rather to start re-writing it from scratch. And now we’re at 4.x, which would mean porting again.

Still, I think it would be best to first release 2.0 and implement all already existing fixes into it. If nothing else, so we gain a common ground again instead of having users be on forks (of forks (of forks)).

After that, I think we should decide how to tackle a clean 3.0 and make that priority – the fact that you transferred your https://github.com/Pelican-Elegant/uncss-pelican-elegant to the Pelican-Elegant organisation could help heaps! Thanks! :smiley:

Documentation

(Man, you’re fast! You’re pushing this forward faster that I can reply!)

Brilliant, thanks!

Licensing

Thanks for the thumbs up on clarifying the license for the code, @talha131. I hope to work on it next week.

Also for documentation the current CC-BY-SA-3.0 license sounds like a good choice. Is this still inherited from your blog? Personally, I’d update it to CC-BY-SA-4.0, but that’s more cosmetics, as all (but the oldest) CC licenses include a “or later” clause by default – so anyone could simply decide that CC-BY-SA-4.0 applies to them instead.

tshepang commented 5 years ago

Yeah, thanks for the invite, but I've moved to zola now. I've now pretty much left the Python ecosystem in favor of that of Rust (for over 3 years now), and I total appreciate the much faster site build times. There was also some search broken-ness with Elegant that I was too lazy (motivation) to chase.

But this isn't meant to deprecate the theme of course, more of the prudence to state why I can't accept. I am grateful for the years of service the theme (and Pelican, and Python) gave, and am also surprised that @talha131 felt I contributed enough to deserve that special invite (I got bad memory and it's been so long).

silverhook commented 5 years ago

@tshepang Thanks for the reply. Well appreciated. We’ll miss you and hope you come back some day :)

silverhook commented 5 years ago

I think we’re at a point where a show of hands would be in order – who could tackle what?

No matter if you are part of the “core team” (it’s not set in stone yet), were explicitly called upon in a previous message here or just a user of the theme – if you think you could spare some time and effort here and there, please do comment below what and how much you could contribute.

MartinThoma commented 5 years ago

I use pelican-elegant on https://martin-thoma.com/ . I forked: https://github.com/MartinThoma/pelican-elegant/commits/master

Commits that might be interesting:

Besides that, there are some things I need to consider before using the main bootstrap again:

silverhook commented 5 years ago

@MartinThoma if you could post these as pull requests, it’d be super sweet! :smile:

I think only the featured images feature would need to be made optional, if it’s not yet. At a first glance (and again, I’m not a Python/Pelican/Jinja expert by far) the others seems like there shouldn’t be any issue in accepting them soon.

silverhook commented 5 years ago

I’d like to highlight the #179 where we should vote on how to change the name of the theme/repository (or not).

Deadline to give proposals and vote on that issue: 2018-11-28

MartinThoma commented 5 years ago

@silverhook Changing from Bootstrap 2 to 3 might break a lot of things.

MartinThoma commented 5 years ago

Also, there is Bootstrap 4.1 already: https://getbootstrap.com/docs/4.1/getting-started/introduction/

silverhook commented 5 years ago

@MartinThoma, good point. It may be smarter to stick to Bootstrap 2.x for Release V2.0 and then concentrate on getting rid of Bootstrap altogether for 3.0.

On an unrelated note, I have made some changes to issue labels to make them clearer, but when we decide on our development model, we should take a hard look at them all together to change them to support us in it (or get rid of them, if we don’t like them).

talha131 commented 5 years ago

@silverhook

Also for documentation the current CC-BY-SA-3.0 license sounds like a good choice. Is this still inherited from your blog? Personally, I’d update it to CC-BY-SA-4.0, but that’s more cosmetics, as all (but the oldest) CC licenses include a “or later” clause by default – so anyone could simply decide that CC-BY-SA-4.0 applies to them instead.

Yes. It was inherited from my blog. You can change the license to CC-BY-SA-4.0. I see no issues.

Release Suggestion

You are right. Elegant 2.0 should be released with bug fixes and whatever features it has, based on the last Bootstrap 2 version.

Afterwards, for Elegant 3.0, you must know upgrading Bootstrap2 to 3 or even 4 will break a lot of things. The changes are not just limited to different API or flat look. Boostrap3 or 4 also changed typography and spacing.
When I tried it in the past, I remember it increased the vertical space between the top menu and article heading. For a blog theme these changes are huge and nuclear.

But this is expected whenever you opt in to use a CSS framework. When you pick a framework, you know you are letting go off a large part of the look and feel to the framework. This results in faster development time but down the road maintenance becomes hell due to the dependency on something that you can't control.

A better way is not use any framework or pick a leaner framework or just cherry pick relevant features from Bootstrap4. The lesser the footprint of a CSS framework, the easier it will be to maintain the project thought it may result in longer development time.

For example, instead of using Bootstrap grids, I wanted to use Flexbox to create my own layout. Or even use CSS-Grid thought it is not supported on older browsers.

Similarly the accordion you see in the categories page, I planned to use pure CSS instead of using Bootstrap for it.

My 2 cents.

silverhook commented 5 years ago

Please do make sure to vote and/or comment on how our basic governance of the project should be in #180 – deadline is 2018-12-03 (= ten days from now)

iranzo commented 5 years ago

As a part of the 'reviving' of the community, checking all open code submitted via PR's should be the first step to ensure that 'fixes' already available do work fine are 'in'.

Would be great to also reevaluate the forks made and the fixes incorporated we're not tracking to reuse the already existing work

silverhook commented 5 years ago

@iranzo, I agree. Care to lend a hand? (rhetorical question, I see you’re already very busy in the tracker, hehe)

If anyone else wants to help out, it really is the best time to push this forward towards a stable 2.0 :smile:

iranzo commented 5 years ago

Where should we discuss about the process and what we do support?

As pelican does render the templates we should agree or create 'branches' (i.e. more work and more testing work) to keep features available for both 'equal'.

talha131 commented 5 years ago

@iranzo you will find the relevant discussion in this thread.

https://github.com/Pelican-Elegant/elegant/issues/192

iranzo commented 5 years ago

Should we already close this as the community article has been released?

talha131 commented 5 years ago

Good call @iranzo