CanastaWiki / Canasta

MediaWiki Docker image for Canasta, an all-in-one MediaWiki stack for easy deployment and management of enterprise-ready MediaWiki on production environments.
https://www.canasta.wiki
MIT License
37 stars 28 forks source link

Splitting the Canasta image into a base distro and a regular Canasta #142

Open jeffw16 opened 2 years ago

jeffw16 commented 2 years ago

With its comprehensive of components working together, Canasta has become important to the Enterprise MediaWiki community ever since its release earlier this year. Specifically, Canasta's signature Docker image has been a major boon for Dockerizing/containerizing MediaWiki for production.

For developers who want to extend Canasta, they often request working with a version of Canasta that does not include the collection of extensions. There are various reasons for this: some may be concerned it makes the image too big, while others want to replace the Canasta extensions collection with their own collection. Furthermore, our ability to support Canasta at its core is stymied when we are also bogged down by having to upgrade the extensions.

Therefore, I propose we split the Canasta image into two parts. The first part is the base distro, comprising the core parts of Canasta and MediaWiki. The second part is the extensions collection. The second part will use the first part (the base distro) as the base image and add everything else on top of that.

I should make it clear that the base distro isn't intended to replace the regular Canasta distro that includes our unmatched collection of extensions and skins, and end users should generally be directed to use regular Canasta. Instead, it could mainly serve as a clean divide between the MediaWiki base application and the bundled extensions/skins.

What goes into the "regular Canasta" image:

What stays in the base distro:

yaronkoren commented 2 years ago

That sounds like a good idea, and I think it matches some of the early discussions we had about the whole Canasta setup, actually.

Some random (minor) questions:

jeffw16 commented 2 years ago

What would the new base layer/distro be called?

One idea I have is "mimbre", which is Spanish for wicker, as in wicker baskets (canasta de mimbre).

Why include all skins in the base layer?

There aren't that many of them and it's easy to include them. Plus, a skin is required to use MediaWiki. I'm fine with not including any skins though.

Could the base layer be installed on its own?

Yes.

yaronkoren commented 2 years ago

Interesting, okay. I was expecting something like "Canasta Base", but we could go creative. :)

For skins: MediaWiki already comes bundled with five skins (it was three in MW 1.35, it will be five in MW 1.39). Canasta would add (I think) five more. I think it makes sense to leave out the skins, i.e. add them only in Canasta, so that, er, Mimbre (I'm still not sure how I feel about that name) would be a truly bare-bones distribution.

yaronkoren commented 2 years ago

@tosfos - thoughts?

tosfos commented 2 years ago

I see some advantages to this idea, but I have some questions.

There are various reasons for this: some may be concerned it makes the image too big

Any idea regarding how much bigger it makes it? Are we talking ~100% bigger or ~10% bigger or ~1% bigger? My guess is that the extensions don't add a significant amount of space.

while others want to replace the Canasta extensions collection with their own collection.

I thought we already make that easy. I know we got rid of cfLoad... but isn't this still a simple thing? Or do you mean that developers will want to create some sort of derivative image with their own extensions?

Furthermore, our ability to support Canasta at its core is stymied when we are also bogged down by having to upgrade the extensions.

I don't understand this. Assuming we split the extensions into another image we still need to upgrade the extensions and the same time that we upgrade core. Also, it seems that this would add work, because (I assume) we'll need to maintain 2 separate stack repos.

The skins and extensions that the Wikimedia Foundation bundles with MediaWiki by default Canasta's comprehensive collection of bundled skins

I think that is confusing. I would say if we're bundling WMF extensions we should only bundle WMF skins. Also note that certain skins (Chameleon) require non-WMF extensions, which adds to the confusion. And if we're bundling no extensions we should bundle no skins, or maybe just Vector.

I was expecting something like "Canasta Base"

I agree with something like this. It pushes the Canasta brand and is less confusing.

jeffw16 commented 2 years ago

Thanks for the feedback. Here are my replies:

Any idea regarding how much bigger it makes it? Are we talking ~100% bigger or ~10% bigger or ~1% bigger? My guess is that the extensions don't add a significant amount of space.

While I personally do think the extensions take up significant space, the actual number of bytes it takes up is less of the concern here. Instead, it bloats the image for those who don't want the extensions, whether they are end-users or developers.

Or do you mean that developers will want to create some sort of derivative image with their own extensions?

Yes, such as Open CSP.

I don't understand this. Assuming we split the extensions into another image we still need to upgrade the extensions and the same time that we upgrade core.

Yes, but this way, we can at least have the core image be upgraded before the extensions, so that they don't have to be updated at the same time. Otherwise, it will be very hard to test out whether core works by itself or not.

Also, it seems that this would add work, because (I assume) we'll need to maintain 2 separate stack repos.

This is not correct.

I think that is confusing. I would say if we're bundling WMF extensions we should only bundle WMF skins. Also note that certain skins (Chameleon) require non-WMF extensions, which adds to the confusion. And if we're bundling no extensions we should bundle no skins, or maybe just Vector.

Good point on Chameleon. Okay, whatever then, I'm fine with whichever you want.

I agree with something like this. It pushes the Canasta brand and is less confusing.

Sure, no worries.