@lando/drupal 1.11.0 → 1.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/builders/_drupaly.js +1 -1
  3. package/builders/drupal-php.js +17 -16
  4. package/builders/drupal10.js +1 -1
  5. package/builders/drupal6.js +3 -2
  6. package/builders/drupal9.js +1 -1
  7. package/netlify.toml +17 -1
  8. package/node_modules/@lando/mysql/CHANGELOG.md +5 -0
  9. package/node_modules/@lando/mysql/builders/mysql.js +3 -3
  10. package/node_modules/@lando/mysql/package.json +5 -5
  11. package/node_modules/@lando/php/CHANGELOG.md +29 -1
  12. package/node_modules/@lando/php/builders/php.js +75 -15
  13. package/node_modules/@lando/php/images/5.6-apache/Dockerfile +0 -4
  14. package/node_modules/@lando/php/images/5.6-fpm/Dockerfile +0 -5
  15. package/node_modules/@lando/php/images/7.0-apache/Dockerfile +0 -4
  16. package/node_modules/@lando/php/images/7.0-fpm/Dockerfile +0 -4
  17. package/node_modules/@lando/php/images/7.1-apache/Dockerfile +0 -4
  18. package/node_modules/@lando/php/images/7.1-fpm/Dockerfile +0 -4
  19. package/node_modules/@lando/php/images/7.2-apache/Dockerfile +0 -4
  20. package/node_modules/@lando/php/images/7.2-fpm/Dockerfile +0 -4
  21. package/node_modules/@lando/php/images/7.3-apache/Dockerfile +0 -3
  22. package/node_modules/@lando/php/images/7.3-fpm/Dockerfile +0 -3
  23. package/node_modules/@lando/php/images/7.4-apache/Dockerfile +45 -55
  24. package/node_modules/@lando/php/images/7.4-fpm/Dockerfile +59 -69
  25. package/node_modules/@lando/php/images/8.0-apache/Dockerfile +45 -56
  26. package/node_modules/@lando/php/images/8.0-fpm/Dockerfile +45 -56
  27. package/node_modules/@lando/php/images/8.1-apache/Dockerfile +12 -2
  28. package/node_modules/@lando/php/images/8.1-fpm/Dockerfile +12 -2
  29. package/node_modules/@lando/php/images/8.2-apache/Dockerfile +12 -2
  30. package/node_modules/@lando/php/images/8.2-fpm/Dockerfile +12 -2
  31. package/node_modules/@lando/php/images/8.3-apache/Dockerfile +24 -4
  32. package/node_modules/@lando/php/images/8.3-fpm/Dockerfile +25 -4
  33. package/node_modules/@lando/php/images/8.4-apache/Dockerfile +27 -4
  34. package/node_modules/@lando/php/images/8.4-fpm/Dockerfile +27 -4
  35. package/node_modules/@lando/php/netlify.toml +1 -1
  36. package/node_modules/@lando/php/package.json +5 -5
  37. package/node_modules/@lando/php/scripts/install-composer.sh +4 -0
  38. package/node_modules/@lando/php/utils/add-build-step.js +17 -3
  39. package/node_modules/@lando/php/utils/get-install-commands.js +19 -3
  40. package/package.json +7 -7
@@ -2,8 +2,23 @@
2
2
 
3
3
  FROM php:8.4-apache-bookworm
4
4
 
5
+ ARG TARGETARCH
6
+
5
7
  ADD --chmod=0755 https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/
6
8
 
9
+ RUN \
10
+ # MariaDB client compatibility (https://github.com/lando/php/issues/120)
11
+ mkdir -p /etc/apt/keyrings \
12
+ && curl -o /etc/apt/keyrings/mariadb-keyring.pgp 'https://mariadb.org/mariadb_release_signing_key.pgp' \
13
+ && echo "deb [signed-by=/etc/apt/keyrings/mariadb-keyring.pgp] https://mirror.mariadb.org/repo/11.4/debian bookworm main" > /etc/apt/sources.list.d/mariadb.list
14
+
15
+ # Drupal 11 requires sqlite3 3.45+
16
+ ARG SQLITE_VERSION=3.45.1
17
+ RUN \
18
+ curl -Lo /tmp/sqlite3.deb "https://snapshot.debian.org/archive/debian/20240506T211830Z/pool/main/s/sqlite3/sqlite3_${SQLITE_VERSION}-1_${TARGETARCH}.deb" \
19
+ && curl -Lo /tmp/libsqlite3-0.deb "https://snapshot.debian.org/archive/debian/20240506T211830Z/pool/main/s/sqlite3/libsqlite3-0_${SQLITE_VERSION}-1_${TARGETARCH}.deb" \
20
+ && curl -Lo /tmp/libsqlite3-dev.deb "https://snapshot.debian.org/archive/debian/20240506T211830Z/pool/main/s/sqlite3/libsqlite3-dev_${SQLITE_VERSION}-1_${TARGETARCH}.deb"
21
+
7
22
  RUN \
8
23
  mkdir -p /usr/share/man/man1 /usr/share/man/man7 \
9
24
  && apt -y update && apt-get install -y \
@@ -11,13 +26,18 @@ RUN \
11
26
  exiftool \
12
27
  git-core \
13
28
  gnupg2 \
14
- openssl \
29
+ imagemagick \
30
+ mariadb-client \
31
+ mariadb-client-compat \
15
32
  postgresql-client-15 \
16
33
  pv \
17
34
  rsync \
18
35
  ssh \
19
36
  unzip \
20
- wget
37
+ wget \
38
+ /tmp/sqlite3.deb \
39
+ /tmp/libsqlite3-0.deb \
40
+ /tmp/libsqlite3-dev.deb
21
41
 
22
42
  RUN \
23
43
  install-php-extensions @fix_letsencrypt \
@@ -28,6 +48,7 @@ RUN \
28
48
  && install-php-extensions exif \
29
49
  && install-php-extensions gd \
30
50
  && install-php-extensions gettext \
51
+ && install-php-extensions imagick \
31
52
  && install-php-extensions imap \
32
53
  && install-php-extensions intl \
33
54
  && install-php-extensions ldap \
@@ -42,10 +63,12 @@ RUN \
42
63
  && install-php-extensions pdo_pgsql \
43
64
  && install-php-extensions redis \
44
65
  && install-php-extensions soap \
45
- # && install-php-extensions xdebug \
66
+ && install-php-extensions xhprof \
46
67
  && install-php-extensions zip
47
68
 
48
- RUN install-php-extensions @composer-2
69
+ # Install xdebug but disable it by default
70
+ RUN install-php-extensions xdebug \
71
+ && rm -f /usr/local/etc/php/conf.d/*xdebug.ini
49
72
 
50
73
  RUN \
51
74
  chsh -s /bin/bash www-data && mkdir -p /var/www/.composer && chown -R www-data:www-data /var/www \
@@ -2,8 +2,23 @@
2
2
 
3
3
  FROM php:8.4-fpm-bookworm
4
4
 
5
+ ARG TARGETARCH
6
+
5
7
  ADD --chmod=0755 https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/
6
8
 
9
+ RUN \
10
+ # MariaDB client compatibility (https://github.com/lando/php/issues/120)
11
+ mkdir -p /etc/apt/keyrings \
12
+ && curl -o /etc/apt/keyrings/mariadb-keyring.pgp 'https://mariadb.org/mariadb_release_signing_key.pgp' \
13
+ && echo "deb [signed-by=/etc/apt/keyrings/mariadb-keyring.pgp] https://mirror.mariadb.org/repo/11.4/debian bookworm main" > /etc/apt/sources.list.d/mariadb.list
14
+
15
+ # Drupal 11 requires sqlite3 3.45+
16
+ ARG SQLITE_VERSION=3.45.1
17
+ RUN \
18
+ curl -Lo /tmp/sqlite3.deb "https://snapshot.debian.org/archive/debian/20240506T211830Z/pool/main/s/sqlite3/sqlite3_${SQLITE_VERSION}-1_${TARGETARCH}.deb" \
19
+ && curl -Lo /tmp/libsqlite3-0.deb "https://snapshot.debian.org/archive/debian/20240506T211830Z/pool/main/s/sqlite3/libsqlite3-0_${SQLITE_VERSION}-1_${TARGETARCH}.deb" \
20
+ && curl -Lo /tmp/libsqlite3-dev.deb "https://snapshot.debian.org/archive/debian/20240506T211830Z/pool/main/s/sqlite3/libsqlite3-dev_${SQLITE_VERSION}-1_${TARGETARCH}.deb"
21
+
7
22
  RUN \
8
23
  mkdir -p /usr/share/man/man1 /usr/share/man/man7 \
9
24
  && apt -y update && apt-get install -y \
@@ -12,13 +27,18 @@ RUN \
12
27
  exiftool \
13
28
  git-core \
14
29
  gnupg2 \
15
- openssl \
30
+ imagemagick \
31
+ mariadb-client \
32
+ mariadb-client-compat \
16
33
  postgresql-client-15 \
17
34
  pv \
18
35
  rsync \
19
36
  ssh \
20
37
  unzip \
21
- wget
38
+ wget \
39
+ /tmp/sqlite3.deb \
40
+ /tmp/libsqlite3-0.deb \
41
+ /tmp/libsqlite3-dev.deb
22
42
 
23
43
  RUN \
24
44
  install-php-extensions @fix_letsencrypt \
@@ -29,6 +49,7 @@ RUN \
29
49
  && install-php-extensions exif \
30
50
  && install-php-extensions gd \
31
51
  && install-php-extensions gettext \
52
+ && install-php-extensions imagick \
32
53
  && install-php-extensions imap \
33
54
  && install-php-extensions intl \
34
55
  && install-php-extensions ldap \
@@ -43,10 +64,12 @@ RUN \
43
64
  && install-php-extensions pdo_pgsql \
44
65
  && install-php-extensions redis \
45
66
  && install-php-extensions soap \
46
- # && install-php-extensions xdebug \
67
+ && install-php-extensions xhprof \
47
68
  && install-php-extensions zip
48
69
 
49
- RUN install-php-extensions @composer-2
70
+ # Install xdebug but disable it by default
71
+ RUN install-php-extensions xdebug \
72
+ && rm -f /usr/local/etc/php/conf.d/*xdebug.ini
50
73
 
51
74
  RUN \
52
75
  chsh -s /bin/bash www-data && mkdir -p /var/www/.composer && chown -R www-data:www-data /var/www \
@@ -10,7 +10,7 @@
10
10
  [[context.deploy-preview.plugins]]
11
11
  package = "netlify-plugin-checklinks"
12
12
  [context.deploy-preview.plugins.inputs]
13
- todoPatterns = [ "load", "CHANGELOG.html", "x.com", "twitter.com", "/v/" ]
13
+ todoPatterns = [ "load", "CHANGELOG.html", "/v/", "x.com", "twitter.com", "www.php.net" ]
14
14
  skipPatterns = [ ".rss", ".gif", ".jpg" ]
15
15
  checkExternal = true
16
16
 
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@lando/php",
3
3
  "description": "A Lando plugin that provides a tight integration with PHP.",
4
- "version": "1.6.3",
4
+ "version": "1.7.1",
5
5
  "author": "Mike Pirog @pirog",
6
6
  "license": "GPL-3.0",
7
7
  "repository": "lando/php",
@@ -66,9 +66,9 @@
66
66
  "semver"
67
67
  ],
68
68
  "dist": {
69
- "integrity": "sha512-ob+QIOJAhWamdWvGKl8DNISxFOjsxXWGd7cl3M/afWThMRT+EH7iYyy2MuBzxAF7YbQ3FfxcoGSt3YvH1fRiNg==",
70
- "shasum": "6f506661057bf7807c5f156264e9e2822c347fa6",
71
- "filename": "lando-php-1.6.3.tgz",
72
- "unpackedSize": 3119748
69
+ "integrity": "sha512-GF7bMuFPLQoPPb1ODyJ2aCLbASR6PLmM9TLJy+5v+2xViS6elMJLe20D51SsFB4K8vzo4o6PIO7WboE5PRn8cg==",
70
+ "shasum": "3e52a825d6d81d9117e9ce6243e28a1d16c43fea",
71
+ "filename": "lando-php-1.7.1.tgz",
72
+ "unpackedSize": 3128531
73
73
  }
74
74
  }
@@ -16,6 +16,10 @@ elif [ "$VERSION" = '2-latest' ]; then
16
16
  php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer --2
17
17
  elif [ "$VERSION" = '2' ]; then
18
18
  php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer --2
19
+ elif [ "$VERSION" = '2.2' ]; then
20
+ php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer --2.2
21
+ elif [ "$VERSION" = '2.2-latest' ]; then
22
+ php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer --2.2
19
23
  elif [ "$VERSION" = 'preview' ]; then
20
24
  php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer --preview
21
25
  elif [ "$VERSION" = 'snapshot' ]; then
@@ -3,9 +3,23 @@
3
3
  // Modules
4
4
  const _ = require('lodash');
5
5
 
6
- /*
7
- * Helper to get global deps
8
- * @TODO: this looks pretty testable? should services have libs?
6
+ /**
7
+ * Helper function to add build steps to a service's configuration
8
+ *
9
+ * @param {string|string[]} steps - The build step(s) to add
10
+ * @param {Object} app - The Lando app object
11
+ * @param {string} name - The name of the service
12
+ * @param {string} [step='build_internal'] - The build step type to modify
13
+ * @param {boolean} [front=false] - Whether to add steps to front of array
14
+ * @return {void} - Modifies app config object directly
15
+ *
16
+ * @example
17
+ * // Add a build step to the end
18
+ * addBuildStep('npm install', app, 'web');
19
+ *
20
+ * @example
21
+ * // Add multiple build steps to the front
22
+ * addBuildStep(['composer install', 'npm install'], app, 'web', 'build_internal', true);
9
23
  */
10
24
  module.exports = (steps, app, name, step = 'build_internal', front = false) => {
11
25
  const current = _.get(app, `config.services.${name}.${step}`, []);
@@ -3,9 +3,25 @@
3
3
  // Modules
4
4
  const _ = require('lodash');
5
5
 
6
- /*
7
- * Helper to get global deps
8
- * @TODO: this looks pretty testable? should services have libs?
6
+ /**
7
+ * Helper function to generate installation commands for dependencies
8
+ *
9
+ * @param {Object} deps - Dependencies object with package names as keys and versions as values
10
+ * @param {Function} pkger - Function that generates package installation command
11
+ * @param {string[]} [prefix=[]] - Command prefix to prepend to each installation command
12
+ * @return {string[]} Array of formatted installation commands
13
+ *
14
+ * @example
15
+ * // Generate npm install commands
16
+ * const deps = { 'lodash': '^4.0.0', 'express': '4.17.1' };
17
+ * const npmInstall = (pkg, version) => ['npm', 'install', `${pkg}@${version}`];
18
+ * getInstallCommands(deps, npmInstall);
19
+ * // Returns: ['npm install lodash@^4.0.0', 'npm install express@4.17.1']
20
+ *
21
+ * @example
22
+ * // Generate commands with prefix
23
+ * getInstallCommands(deps, npmInstall, ['sudo', '-E']);
24
+ * // Returns: ['sudo -E npm install lodash@^4.0.0', 'sudo -E npm install express@4.17.1']
9
25
  */
10
26
  module.exports = (deps, pkger, prefix = []) => _(deps)
11
27
  .map((version, pkg) => _.flatten([prefix, pkger(pkg, version)]))
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@lando/drupal",
3
3
  "description": "A Lando plugin that provides a tight integration with Drupal.",
4
- "version": "1.11.0",
4
+ "version": "1.12.0",
5
5
  "author": "Mike Pirog @pirog",
6
6
  "license": "GPL-3.0",
7
7
  "repository": "lando/drupal",
@@ -45,8 +45,8 @@
45
45
  "dependencies": {
46
46
  "@lando/mariadb": "^1.6.3",
47
47
  "@lando/mssql": "^1.4.3",
48
- "@lando/mysql": "^1.4.4",
49
- "@lando/php": "^1.6.3",
48
+ "@lando/mysql": "^1.5.0",
49
+ "@lando/php": "^1.7.1",
50
50
  "@lando/postgres": "^1.4.4",
51
51
  "lodash": "^4.17.21",
52
52
  "semver": "^7.5.4"
@@ -75,9 +75,9 @@
75
75
  "semver"
76
76
  ],
77
77
  "dist": {
78
- "integrity": "sha512-/hYlznGXww+cUTiL6NkMsIrUWWr9IIWCSs15SkCN2UHse7Hs+ceXzUMw9ogmKkKHOS1krIOAPNcU2yqIadqi6A==",
79
- "shasum": "23ad56f23c283cd40f96e040cca5c4735b72e164",
80
- "filename": "lando-drupal-1.11.0.tgz",
81
- "unpackedSize": 10658041
78
+ "integrity": "sha512-iCBPPIwT980yuDdiFcF+QUD3o0QEOjCfm2EU49iJNMXRYXXRutNdDZx9XhDXLyIS7CAIY/QtJsnEZ9yTh18hFA==",
79
+ "shasum": "21bd6c197804104637f63b90f24827b222ff2cbe",
80
+ "filename": "lando-drupal-1.12.0.tgz",
81
+ "unpackedSize": 10667705
82
82
  }
83
83
  }