Skip to content

Commit

Permalink
Download all "real" extensions and skins via Git and not Composer (#280)
Browse files Browse the repository at this point in the history
* Download all "real" extensions and skins via Git and not Composer

The only extensions that are still downloaded via Composer are "helper"/library extensions like DataValues, ParserHooks and Bootstrap (which is to some extent a helper extension).

This change requires a corresponding change to the Canasta-DockerCompose repository to remove all extensions and skins from the file composer.local.json.

* Update composer.canasta.json

* Create semantic-result-formats-composer-reqs.patch

* Create semantic-breadcrumb-links-composer-reqs.patch

* Update composer.canasta.json

* Update Dockerfile

* Update Dockerfile

* Create semantic-forms-select-composer-reqs.patch

* Update Dockerfile

* Create semantic-tasks-composer-reqs.patch

* Update Dockerfile

* Update Dockerfile

* Update Dockerfile

* Update Dockerfile

* Update Dockerfile

* Update semantic-breadcrumb-links-composer-reqs.patch

* Update Dockerfile

* Update Dockerfile

* Update semantic-breadcrumb-links-composer-reqs.patch

* Update Dockerfile

* Update Dockerfile

* Update Dockerfile

* Update semantic-tasks-composer-reqs.patch

* Update semantic-tasks-composer-reqs.patch

* Update semantic-breadcrumb-links-composer-reqs.patch

* Update semantic-forms-select-composer-reqs.patch

* Update semantic-result-formats-composer-reqs.patch

* Update Dockerfile

* Update semantic-breadcrumb-links-composer-reqs.patch

* Update semantic-breadcrumb-links-composer-reqs.patch

* Update semantic-forms-select-composer-reqs.patch

* Update semantic-result-formats-composer-reqs.patch

* Update semantic-tasks-composer-reqs.patch

* Update semantic-tasks-composer-reqs.patch

* Update semantic-tasks-composer-reqs.patch

* Composer-related fixes

* Delete semantic-tasks-composer-reqs.patch

* Delete semantic-forms-select-composer-reqs.patch

* Update Dockerfile

* Create semantic-compound-queries-autoload.patch

* Create semantic-scribunto-autoload.patch

* Update Dockerfile

* Update Dockerfile
  • Loading branch information
yaronkoren committed Aug 25, 2023
1 parent 2cde7de commit 3a909ef
Show file tree
Hide file tree
Showing 6 changed files with 139 additions and 8 deletions.
83 changes: 76 additions & 7 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -99,9 +99,12 @@ RUN set -x; \
# Skins
# The Minerva Neue, MonoBook, Timeless, Vector and Vector 2022 skins are bundled into MediaWiki and do not need to be
# separately installed.
# The Chameleon skin is downloaded via Composer and also does not need to be installed.
RUN set -x; \
cd $MW_HOME/skins \
# Chameleon (v. 4.2.1)
&& git clone https://github.com/ProfessionalWiki/chameleon $MW_HOME/skins/Chameleon \
&& cd $MW_HOME/skins/Chameleon \
&& git checkout -q f34a56528ada14ac07e1b03beda41f775ef27606 \
# CologneBlue
&& git clone -b $MW_VERSION --single-branch https://github.com/wikimedia/mediawiki-skins-CologneBlue $MW_HOME/skins/CologneBlue \
&& cd $MW_HOME/skins/CologneBlue \
Expand All @@ -126,9 +129,7 @@ RUN set -x; \
# PdfHandler, Poem, Renameuser, Replace Text, Scribunto, SecureLinkFixer, SpamBlacklist, SyntaxHighlight, TemplateData,
# TextExtracts, TitleBlacklist, VisualEditor, WikiEditor.
# The following extensions are downloaded via Composer and also do not need to be downloaded here: Bootstrap,
# BootstrapComponents, Maps, Mermaid, Semantic Breadcrumb Links, Semantic Compound Queries, Semantic Extra Special
# Properties, Semantic MediaWiki (along with all its helper library extensions, like DataValues), Semantic Result
# Formats, Semantic Scribunto, SimpleBatchUpload, SubPageList.
# DataValues (and related extensions like DataValuesCommon), ParserHooks.
RUN set -x; \
cd $MW_HOME/extensions \
# AdminLinks (v. 0.6.1)
Expand Down Expand Up @@ -159,6 +160,10 @@ RUN set -x; \
&& git clone --single-branch -b $MW_VERSION https://github.com/wikimedia/mediawiki-extensions-BetaFeatures $MW_HOME/extensions/BetaFeatures \
&& cd $MW_HOME/extensions/BetaFeatures \
&& git checkout -q 09cca44341f9695446c4e9fc9e8fec3fdcb197b0 \
# BootstrapComponents (v. 5.1.0)
&& git clone --single-branch -b master https://github.com/oetterer/BootstrapComponents $MW_HOME/extensions/BootstrapComponents \
&& cd $MW_HOME/extensions/BootstrapComponents \
&& git checkout -q 665c3dee1d9e3f4bcb18dd1920fe27b70e334574 \
# BreadCrumbs2
&& git clone --single-branch -b $MW_VERSION https://github.com/wikimedia/mediawiki-extensions-BreadCrumbs2 $MW_HOME/extensions/BreadCrumbs2 \
&& cd $MW_HOME/extensions/BreadCrumbs2 \
Expand Down Expand Up @@ -359,6 +364,10 @@ RUN set -x; \
&& git clone --single-branch -b $MW_VERSION https://github.com/wikimedia/mediawiki-extensions-MagicNoCache $MW_HOME/extensions/MagicNoCache \
&& cd $MW_HOME/extensions/MagicNoCache \
&& git checkout -q 93534c12dac0e821c46c94b21053d274a6e557de \
# Maps
&& git clone --single-branch -b master https://github.com/ProfessionalWiki/Maps $MW_HOME/extensions/Maps \
&& cd $MW_HOME/extensions/Maps \
&& git checkout -q 5c87d702b30bb132d89ec03d24b7c19a9805db87 \
# MassMessage
&& git clone --single-branch -b $MW_VERSION https://github.com/wikimedia/mediawiki-extensions-MassMessage $MW_HOME/extensions/MassMessage \
&& cd $MW_HOME/extensions/MassMessage \
Expand All @@ -371,6 +380,10 @@ RUN set -x; \
&& git clone --single-branch -b $MW_VERSION https://github.com/wikimedia/mediawiki-extensions-MediaUploader $MW_HOME/extensions/MediaUploader \
&& cd $MW_HOME/extensions/MediaUploader \
&& git checkout -q 1edd91c506c1c0319e7b9a3e71d639130760b1fd \
# Mermaid (v. 3.1.0)
&& git clone --single-branch -b master https://github.com/SemanticMediaWiki/Mermaid $MW_HOME/extensions/Mermaid \
&& cd $MW_HOME/extensions/Mermaid \
&& git checkout -q fd792683fef3c84a7cdd56f8f474c4da0dd630f2 \
# MintyDocs (1.0)
&& git clone --single-branch -b master https://github.com/wikimedia/mediawiki-extensions-MintyDocs $MW_HOME/extensions/MintyDocs \
&& cd $MW_HOME/extensions/MintyDocs \
Expand Down Expand Up @@ -439,6 +452,14 @@ RUN set -x; \
&& git clone --single-branch -b $MW_VERSION https://github.com/wikimedia/mediawiki-extensions-SaveSpinner $MW_HOME/extensions/SaveSpinner \
&& cd $MW_HOME/extensions/SaveSpinner \
&& git checkout -q 1e819e2fff7fad6999bafe71d866c3af50836c42 \
# SemanticBreadcrumbLinks
&& git clone --single-branch -b master https://github.com/SemanticMediaWiki/SemanticBreadcrumbLinks $MW_HOME/extensions/SemanticBreadcrumbLinks \
&& cd $MW_HOME/extensions/SemanticBreadcrumbLinks \
&& git checkout -q 87a69003743f1de52338f4717cfcf5218ca5a743 \
# SemanticCompoundQueries (v. 2.2.0)
&& git clone --single-branch -b master https://github.com/SemanticMediaWiki/SemanticCompoundQueries $MW_HOME/extensions/SemanticCompoundQueries \
&& cd $MW_HOME/extensions/SemanticCompoundQueries \
&& git checkout -q eeb514393fdf2e80ae7084839d8803ee32ae3da4 \
# SemanticDependencyUpdater (v. 2.0.2)
&& git clone --single-branch -b master https://github.com/gesinn-it/SemanticDependencyUpdater $MW_HOME/extensions/SemanticDependencyUpdater \
&& cd $MW_HOME/extensions/SemanticDependencyUpdater \
Expand All @@ -447,10 +468,22 @@ RUN set -x; \
&& git clone --single-branch -b $MW_VERSION https://gerrit.wikimedia.org/r/mediawiki/extensions/SemanticDrilldown $MW_HOME/extensions/SemanticDrilldown \
&& cd $MW_HOME/extensions/SemanticDrilldown \
&& git checkout -q e960979ec5a3b1e662b3742cee7e7ef4056f9a46 \
# SemanticExtraSpecialProperties (v. 3.0.4)
&& git clone --single-branch -b master https://github.com/SemanticMediaWiki/SemanticExtraSpecialProperties $MW_HOME/extensions/SemanticExtraSpecialProperties \
&& cd $MW_HOME/extensions/SemanticExtraSpecialProperties \
&& git checkout -q e449633082a4bf7dcae119b6a6d0bfeec8e3cfe8 \
# SemanticScribunto (v. 2.2.0)
&& git clone --single-branch -b master https://github.com/SemanticMediaWiki/SemanticScribunto $MW_HOME/extensions/SemanticScribunto \
&& cd $MW_HOME/extensions/SemanticScribunto \
&& git checkout -q 1c616a4c4da443b3433000d6870bb92c184236fa \
# SemanticTasks
&& git clone https://github.com/WikiTeq/SemanticTasks.git $MW_HOME/extensions/SemanticTasks \
&& cd $MW_HOME/extensions/SemanticTasks \
&& git checkout -q 70ddd8cf6090139ce5ee6fdf1e7f3a9f2c68d5d3 \
# SimpleBatchUpload (v. 2.0.0)
&& git clone https://github.com/ProfessionalWiki/SimpleBatchUpload $MW_HOME/extensions/SimpleBatchUpload \
&& cd $MW_HOME/extensions/SimpleBatchUpload \
&& git checkout -q 3b9e248b49d7fbeb81d7da32078db7040809e724 \
# SimpleChanges
&& git clone --single-branch -b $MW_VERSION https://github.com/wikimedia/mediawiki-extensions-SimpleChanges $MW_HOME/extensions/SimpleChanges \
&& cd $MW_HOME/extensions/SimpleChanges \
Expand All @@ -459,6 +492,14 @@ RUN set -x; \
&& git clone https://github.com/SemanticMediaWiki/SemanticFormsSelect.git $MW_HOME/extensions/SemanticFormsSelect \
&& cd $MW_HOME/extensions/SemanticFormsSelect \
&& git checkout 4b56baa752401b4ff9fe555fd57fc5c3309601d4 \
# SemanticMediaWiki (v. 4.1.2)
&& git clone https://github.com/SemanticMediaWiki/SemanticMediaWiki $MW_HOME/extensions/SemanticMediaWiki \
&& cd $MW_HOME/extensions/SemanticMediaWiki \
&& git checkout -q 5c94879171d5f741b896828c25a9f2bb07a03dff \
# SemanticResultFormats (v. 4.0.2)
&& git clone https://github.com/SemanticMediaWiki/SemanticResultFormats $MW_HOME/extensions/SemanticResultFormats \
&& cd $MW_HOME/extensions/SemanticResultFormats \
&& git checkout -q d5196722a56f9b65475be68d1e97063d7b975cb9 \
# SimpleMathJax
&& git clone --single-branch https://github.com/jmnote/SimpleMathJax.git $MW_HOME/extensions/SimpleMathJax \
&& cd $MW_HOME/extensions/SimpleMathJax \
Expand All @@ -475,6 +516,10 @@ RUN set -x; \
&& git clone --single-branch -b $MW_VERSION https://github.com/wikimedia/mediawiki-extensions-SocialProfile $MW_HOME/extensions/SocialProfile \
&& cd $MW_HOME/extensions/SocialProfile \
&& git checkout -q 74fcf9bead948ec0419eea10800c9331bcc1273e \
# SubPageList (v. 3.0.0)
&& git clone https://github.com/ProfessionalWiki/SubPageList $MW_HOME/extensions/SubPageList \
&& cd $MW_HOME/extensions/SubPageList \
&& git checkout -q c016dcdb7866f20319731e6497b48fd43756505e \
# TemplateStyles
&& git clone --single-branch -b $MW_VERSION https://github.com/wikimedia/mediawiki-extensions-TemplateStyles $MW_HOME/extensions/TemplateStyles \
&& cd $MW_HOME/extensions/TemplateStyles \
Expand Down Expand Up @@ -568,13 +613,25 @@ RUN set -x; \
RUN set -x; \
sed -i 's="monolog/monolog": "2.2.0",="monolog/monolog": "^2.2",=g' $MW_HOME/composer.json

# Patch some SMW-based extensions' composer.json files to avoid Composer-based downloading of SMW.

# SemanticBreadcrumbLinks
COPY _sources/patches/semantic-breadcrumb-links-composer-reqs.patch /tmp/semantic-breadcrumb-links-composer-reqs.patch
RUN set -x; \
cd $MW_HOME/extensions/SemanticBreadcrumbLinks \
&& git apply /tmp/semantic-breadcrumb-links-composer-reqs.patch

# SemanticResultFormats
COPY _sources/patches/semantic-result-formats-composer-reqs.patch /tmp/semantic-result-formats-composer-reqs.patch
RUN set -x; \
cd $MW_HOME/extensions/SemanticResultFormats \
&& git apply /tmp/semantic-result-formats-composer-reqs.patch

# Composer dependencies
COPY _sources/configs/composer.canasta.json $MW_HOME/composer.local.json
RUN set -x; \
cd $MW_HOME \
&& composer update --no-dev \
# We need the 2nd update for SMW dependencies
&& composer update --no-dev \
# Fix up future use of canasta-extensions directory for composer autoload
&& sed -i 's/extensions/canasta-extensions/g' $MW_HOME/vendor/composer/autoload_static.php \
&& sed -i 's/extensions/canasta-extensions/g' $MW_HOME/vendor/composer/autoload_files.php \
Expand All @@ -585,7 +642,19 @@ RUN set -x; \
&& sed -i 's/skins/canasta-skins/g' $MW_HOME/vendor/composer/autoload_classmap.php \
&& sed -i 's/skins/canasta-skins/g' $MW_HOME/vendor/composer/autoload_psr4.php

# Patches
# Other patches

# Add autoloading to several extensions' extension.json file, which normally require
# Composer autoloading
COPY _sources/patches/semantic-compound-queries-autoload.patch /tmp/semantic-compound-queries-autoload.patch
RUN set -x; \
cd $MW_HOME/extensions/SemanticCompoundQueries \
&& git apply /tmp/semantic-compound-queries-autoload.patch

COPY _sources/patches/semantic-scribunto-autoload.patch /tmp/semantic-scribunto-autoload.patch
RUN set -x; \
cd $MW_HOME/extensions/SemanticScribunto \
&& git apply /tmp/semantic-scribunto-autoload.patch

# Add Bootstrap to LocalSettings.php if the web installer added the Chameleon skin
COPY _sources/patches/core-local-settings-generator.patch /tmp/core-local-settings-generator.patch
Expand Down
8 changes: 7 additions & 1 deletion _sources/configs/composer.canasta.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,23 @@
"include": [
"/mediawiki/config/composer.local.json",
"extensions/AbuseFilter/composer.json",
"extensions/BootstrapComponents/composer.json",
"extensions/CirrusSearch/composer.json",
"extensions/DataTransfer/composer.json",
"extensions/Elastica/composer.json",
"extensions/Maps/composer.json",
"extensions/OATHAuth/composer.json",
"extensions/TimedMediaHandler/composer.json",
"extensions/AntiSpoof/composer.json",
"extensions/TemplateStyles/composer.json",
"extensions/Widgets/composer.json",
"extensions/GoogleAnalyticsMetrics/composer.json",
"extensions/OpenIDConnect/composer.json",
"extensions/WSOAuth/composer.json"
"extensions/SemanticBreadcrumbLinks/composer.json",
"extensions/SemanticMediaWiki/composer.json",
"extensions/SemanticResultFormats/composer.json",
"extensions/WSOAuth/composer.json",
"skins/Chameleon/composer.json"
]
}
}
Expand Down
12 changes: 12 additions & 0 deletions _sources/patches/semantic-breadcrumb-links-composer-reqs.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
diff --git a/composer.json b/composer.json
index 91a21be..04c8270 100644
--- a/composer.json
+++ b/composer.json
@@ -28,7 +28,6 @@
"require": {
"php": ">=5.6",
"composer/installers": "1.*,>=1.0.12",
- "mediawiki/semantic-media-wiki": "~2.5|~3.0|~4.0",
"onoi/shared-resources":"~0.2"
},
"require-dev": {
17 changes: 17 additions & 0 deletions _sources/patches/semantic-compound-queries-autoload.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
diff --git a/extension.json b/extension.json
index 11c452d..cad612a 100644
--- a/extension.json
+++ b/extension.json
@@ -26,6 +26,11 @@
"ExtensionFunctions": [
"SemanticCompoundQueries::onExtensionFunction"
],
- "load_composer_autoloader": true,
+ "AutoloadNamespaces": {
+ "SCQ\\": "src/"
+ },
+ "AutoloadClasses": {
+ "SemanticCompoundQueries": "SemanticCompoundQueries.php"
+ },
"manifest_version": 2
}
10 changes: 10 additions & 0 deletions _sources/patches/semantic-result-formats-composer-reqs.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
--- a/composer.json
+++ b/composer.json
@@ -46,7 +46,6 @@
"require": {
"php": ">=7.3",
"composer/installers": ">=1.0.1",
- "mediawiki/semantic-media-wiki": "~3.0|~4.0",
"nicmart/tree": "^0.2.7",
"data-values/geo": "~4.0|~3.0|~2.0"
},
17 changes: 17 additions & 0 deletions _sources/patches/semantic-scribunto-autoload.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
diff --git a/extension.json b/extension.json
index 27f39c2..092b8dc 100644
--- a/extension.json
+++ b/extension.json
@@ -26,6 +26,11 @@
"ExtensionFunctions": [
"SemanticScribunto::onExtensionFunction"
],
- "load_composer_autoloader":true,
+ "AutoloadNamespaces": {
+ "SMW\\Scribunto\\": "src/"
+ },
+ "AutoloadClasses": {
+ "SemanticScribunto": "SemanticScribunto.php"
+ },
"manifest_version": 2
}

0 comments on commit 3a909ef

Please sign in to comment.