jazzband / help

Use this repo to get help from the roadies
https://jazzband.co/roadies
27 stars 7 forks source link

Proposal: Mezzanine #178

Open petedermott opened 4 years ago

petedermott commented 4 years ago

https://github.com/stephenmcd/mezzanine

Mezzanine is a Django powered CMS that has stagnated over the last couple of years as its main developer (@stephenmcd) now works for Google. It is currently lacking Django 2+ support and in need of a bit of help to bring it up to date.

Viability: The project is well established and well used. Its first documented release was 2012-03-03.

GitHub stats: Stars: 4k, Forks: 1.5k.

Documentation: http://mezzanine.jupo.org/docs/

Additional dependencies that may also need to be included: filebrowser-safe grappelli-safe

jezdez commented 4 years ago

Hi @petedermott, I'm glad you opened the ticket, after our chat on IRC.

Have you talked with any of the regular contributors to Mezzanine (including @stephenmcd) to discuss what their point of view on the proposal is? Any news regarding some commercial users of the CMS that usually are paying for staff to use it?

Generally speaking, and I'm repeating for the public what I said on IRC, I'm worried with such a large project, that it requires some of the people that have actively contributed to Mezzanine to join Jazzband and become project leads here.

To be clear, while the project is certainly viable in the sense that is has been around for a while and checks all points regarding docs, tests and code quality, it's also quite complex (as is common for CMSs). To make sure there is a secure long-term maintenance there is no way around having prior contributors as project leads because of that.

Since I'm sure it'll come up, what are the plans for https://github.com/stephenmcd/cartridge -- "Ecommerce for Mezzanine" and https://github.com/stephenmcd/drum -- "Reddit / Hacker News clone for Mezzanine"?

jezdez commented 4 years ago

@stephenmcd What's your take on this, do you agree that Jazzband would be a better place for Mezzanine? Who would be good people to talk to about long-term maintenance?

petedermott commented 4 years ago

There was a discussion on the Mezzanine mailing list about it but there hasn't been any activity other than a response from one of the other contributors to the project - @jerivas

We also have an open issue regarding the update to a Django 2+ compatible code base which is where the idea of using Jazzband was initially floated.

Any news regarding some commercial users of the CMS that usually are paying for staff to use it?

I am not entirely sure what you mean by this? We use the CMS @fermorltd and have a couple of medium to large sites built with it, I have not checked with other developers about their individual use cases.

Since I'm sure it'll come up, what are the plans for https://github.com/stephenmcd/cartridge -- "Ecommerce for Mezzanine" and https://github.com/stephenmcd/drum -- "Reddit / Hacker News clone for Mezzanine"?

Cartridge had one update in 2019, I have a fork of it that I have been trying to keep to date but very little has happened on the main branch.

Drum hasn't been updated since 2017 with the last issue opened in mid 2018 so I think it would be safe to assume that it has been abandoned.

jezdez commented 4 years ago

There was a discussion on the Mezzanine mailing list about it but there hasn't been any activity other than a response from one of the other contributors to the project - @jerivas

We also have an open issue regarding the update to a Django 2+ compatible code base which is where the idea of using Jazzband was initially floated.

@jerivas: could you elaborate if you would be available as project lead in case @stephenmcd agrees to transfer Mezzanine to Jazzband?

Any news regarding some commercial users of the CMS that usually are paying for staff to use it?

I am not entirely sure what you mean by this? We use the CMS @fermorltd and have a couple of medium to large sites built with it, I have not checked with other developers about their individual use cases.

What I meant is that there is probably interest by other typical users of a CMS such as Mezzanine to secure long-term maintenance. I would suggest to do a very active outreach to find others interested in this and making sure they are onboard with opening a traditionally single-author-project to a larger team, and maybe consider spending engineering time on maintaining it in Jazzband, too.

To be clear, my main worry is that Mezzanine would not be better maintained by just moving it to Jazzband since it misses some form of leadership that @stephenmcd has provided in the past.

For the record, Jazzband does not provide software development or maintenance as a service, but is merely a more open GitHub organization to coordinate collaboration for maintenance. Getting actual confirmation from some of the previous users and contributors is essential basically.

Since I'm sure it'll come up, what are the plans for https://github.com/stephenmcd/cartridge -- "Ecommerce for Mezzanine" and https://github.com/stephenmcd/drum -- "Reddit / Hacker News clone for Mezzanine"?

Cartridge had one update in 2019, I have a fork of it that I have been trying to keep to date but very little has happened on the main branch.

Drum hasn't been updated since 2017 with the last issue opened in mid 2018 so I think it would be safe to assume that at this point it has been abandoned.

Regarding the Cartridge fork, I would suggest to think about whether it's worth retaining the close proximity of the Cartridge and Mezzanine repos in one GitHub organization. Again, @stephenmcd will need to make a final decision about this of course.

aleksihakli commented 4 years ago

"Shared responsibility" usually fits small projects well as the amount of work and updates that need to be done on long-running, established small plugins is quite small and usually entails updating dependencies and test matrices.

Mezzanine is a larger project that is used commercially and should ideally have a team of people running the security, maintenance, and release side of things. Is there such a team available, and what are the benefits of moving such a project into the Jazzband organization?

I agree with @jezdez and think that one large question is "who is responsible for the development" (or rather "who can make the decisions on design and implementation of new features") that needs to be answered before moving projects :)

jerivas commented 4 years ago

Hello everyone,

Thank you for hosting this thoughtful and necessary discussion. I'll attempt to answer some questions and share my ideas as well.

Mezzanine is a larger project that is used commercially and should ideally have a team of people running the security, maintenance, and release side of things. Is there such a team available, and what are the benefits of moving such a project into the Jazzband organization?

Yes, a core team was formed in 2015. I'm part of it but we haven't been very active lately. We do have security and general announcement mailing lists as well.

@jerivas: could you elaborate if you would be available as project lead in case @stephenmcd agrees to transfer Mezzanine to Jazzband?

I am very interested, and want to also bring my company (@unplugstudio) on board. We currently maintain a few dozen Mezzanine sites spanning several Django / Python versions and a handful of Mezzanine addons (closed and open source). We want to contribute back dedicating developer time and resources to Mezzanine.

Our development team is small and I'm the only senior Python dev, so a lot of help will still be needed. I have started a discussion with the rest of the core team to see if someone else would be interested in staying as a contributor.

petedermott commented 4 years ago

I'll be happy to help take on some of the responsibility too. As mentioned previously we use Mezzanine quite a bit @fermorltd, we're generally happy with how it works so we wouldn't be looking to add too many new features going forward, more just keep on top updates to django etc.

Like @unplugstudio our dev team is small and I'm the only Python dev so I wouldn't want to take on this responsibility alone but I'm happy to assist as and when it's needed.

team-hq commented 4 years ago

@jerivas It'd make sense if you were to become a project lead with so many sites using the CMS. I know it's Stephen's baby and he'd probably want to be involved but the this CMS needs a new champion.

wimfeijen commented 4 years ago

hi all! Just wanted to say that we folks at Go2People Websites are interested in helping maintain the project as well!

For us, preferrably we would aim to keep it the same as it is right now (no new features), and with just a few updates to keep it compatible with the new releases of Django and other 3rd party packages (e.g. django-rest-framework).

We are willing to contribute the occasional PR (pull request).

jerivas commented 4 years ago

It's great to see so many people interested in Mezzanine! For anyone reading this who wants to contribute, here are the recommended steps you can follow right now:

  1. Help us test out the current Django 2.2 pull request. If we can get this PR merged with confidence, we can release a new version to pip soon. The more testers the better.
  2. Subscribe to Mezzanine's Github Repo to receive notifications when new issues / PRs are submitted
  3. Subscribe to Mezzanine's mailing list to stay up to date. Even better, answer some of the questions we get from time to time from people who are new to Mezzanine

I'm now confident we can keep the project moving forward even without moving to Jazzband, but it's good to know we have it as an option 😄

allan-simon commented 4 years ago

at my company we're also interested in getting mezzanine compatible with django2.2+ , we're currently starting a branch with the pull request version as requirements, we'll report you if we see anything weird :+1:

aleksihakli commented 4 years ago

Assuming @stephenmcd would be OK with transferring the project to under the Jazzband organization and joint maintenance, here are a few thoughts on the subject from my personal point of view as a Jazzband organization member.

Read the Docs site for automatically uploading the docs would be nice. Multiple Jazzband projects use a RTD for hosting docs and automatically keeping them up-to-date from master. At the moment the docs are hosted at the JUPO site which I believe is not that accessible to FOSS contributors? @stephenmcd has done an awesome job with Mezzanine and I believe the jupo.org is personally owned by him. Hosting a project under Jazzband should ideally use public tools that are accessible and understandable to everyone. Would you be OK with the docs being hosted under RTD @stephenmcd?

Would an open documentation site such as RTD for Mezzanine docs be OK to everyone?

As the project is a large one it would probably be good to agree on practices and a maintenance team which will be handling PRs and issues as all members of the Jazzband organization can push commits to branches, merge PRs, and make tags on GitHub by default.

Would it be possible to provide a list of GitHub handles who would be the maintainers for this project?

Restricting master branch and PRs would probably be a good idea. That would allow for security gates and quality gating the releases. For example, passing peer reviews are required in multiple projects in order to merge patches into master. Many projects just require a single passing review from a Jazzband organization member. This usually improves quality of contributions and promotes learning and co-operation in projects.

A few best practices for administration in Jazzband:

  1. Restrict important branches to project maintainers only. One option is to allow PR merging after QA passes in automated CI and a reviewer approves the changes.
  2. Automate releases with Travis to Jazzband site and make them from the Jazzband site to PyPI. There are examples of this available in multiple Jazzband projects, here's one.

Using the Jazzband site with the organization enables restricting uploads from the Jazzband site to PyPI to Mezzanine project maintainers.

What do you think is a good security and release model for Mezzanine?

I believe this issue is a good place to map out good maintenance models and discuss the security of hosting a project of this size in an organization with a joint maintenance model.

jerivas commented 4 years ago

Mezzanine already has docs hosted on RTD: https://mezzanine.readthedocs.io/en/latest/. They are open to contribution on the mezzanine repo (inside the docs folder).

aleksihakli commented 4 years ago

OK, missed that! The RTD link isn't visible on the repo page, maybe it should be added? :)

jezdez commented 4 years ago

Thank you all for your willingness to support Mezzanine going forward. To me -- and forgive me if I offer an subjective opinion here -- it seems as if the Mezzanine community actually exists and just lacks a modest level of community and project management to make sure it's maintained in the future.

Especially since there seem to be multiple organizations using it actively and willing to be public about it, I'm wondering if it wouldn't be better to form an own GitHub organization for Mezzanine where a similarly collaborative community around it could be established -- instead of Jazzband.

I mean that with the greatest respect, but I need to remind everyone that a content management system is not a typical use case for Jazzband and maybe it's okay to stay separate.

Note, I am a bit worried that @stephenmcd hasn't so far chimed it, making all of this pretty speculative. Could anyone reach out to him directly or has a good contact for me to do so?

aleksihakli commented 4 years ago

I was wondering about the same thing as @jezdez on whether or not it would be good to form a separate organization for Mezzanine as it's highly specific and a larger scale project.

In my opinion there are a few paths worth considering:

  1. Do nothing (stay in the current situation),
  2. Build a separate organization for Mezzanine, or
  3. Migrate Mezzanine into Jazzband and see how it evolves; organizational changes can be made after this as well, and Jazzband can possibly help Mezzanine take care of some smaller scale maintenance considerations, enabling core contributors to focus on deeper concerns like architecture and design choices instead of routine maintenance.

We're discussing options 2 and 3 in this discussion. I personally think that the option 3 offers a fair balance of lowered bar of participation with better maintenance, but doesn't require the effort in building the organizational model, as Jazzband abstracts that away to some degree with the open doors policy and the great work Mr. Leidel is doing with the organization and it's automated tooling.

Mezzanine obviously has a lot of contributors and users, but I think the question is, is the community active enough to implement option 2, or is option 3 better for sustenance of the project?

Django has it's own organization but e.g. DRF is part of the Encode organization that houses a group of projects, so it's joint maintenance model as well.

team-hq commented 4 years ago

I don't think that anything can be done without @stephenmcd joining conversation. It's his baby and he'll have a final say. Is there anyone from Google we can reach out to who can get in touch with him internally?

allan-simon commented 4 years ago

His blog http://blog.jupo.org/ contains his email address , has someone tried to reach him through it ?

stephenmcd commented 4 years ago

Hi folks,

@jerivas (one of the core maintainers who posted earlier on this thread) and I discussed this offline, and my understanding is that moving forward he will be the primary maintainer, with the project structurally remaining as is.

Apologies for the untimeliness in replying, and thanks everyone for the discussion.

allan-simon commented 4 years ago

thanks @stephenmcd for all what you've done , and congrats @jerivas , I can't wait for mezzanine to officially support django2.2+ !