@lando/drupal 1.11.0 → 1.13.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 (149) hide show
  1. package/.lando.yml +1 -2
  2. package/CHANGELOG.md +18 -0
  3. package/LICENSE +21 -0
  4. package/README.md +20 -27
  5. package/builders/_drupaly.js +27 -20
  6. package/builders/drupal-mariadb.js +1 -1
  7. package/builders/drupal-mssql.js +1 -1
  8. package/builders/drupal-mysql.js +7 -1
  9. package/builders/drupal-nginx.js +1 -1
  10. package/builders/drupal-php.js +18 -19
  11. package/builders/drupal-postgres.js +1 -1
  12. package/builders/drupal10.js +1 -1
  13. package/builders/drupal6.js +3 -2
  14. package/builders/drupal9.js +1 -1
  15. package/config/drupal11/mysql8.cnf +44 -92
  16. package/inits/drupal10.js +5 -0
  17. package/inits/drupal11.js +7 -0
  18. package/inits/drupal6.js +4 -0
  19. package/inits/drupal7.js +3 -0
  20. package/inits/drupal8.js +3 -0
  21. package/inits/drupal9.js +5 -0
  22. package/netlify.toml +17 -1
  23. package/node_modules/@lando/mariadb/.lando.yml +1 -1
  24. package/node_modules/@lando/mariadb/.node-version +1 -1
  25. package/node_modules/@lando/mariadb/CHANGELOG.md +8 -1
  26. package/node_modules/@lando/mariadb/LICENSE +21 -0
  27. package/node_modules/@lando/mariadb/README.md +5 -2
  28. package/node_modules/@lando/mariadb/builders/mariadb.js +25 -22
  29. package/node_modules/@lando/mariadb/netlify.toml +9 -2
  30. package/node_modules/@lando/mariadb/package.json +8 -8
  31. package/node_modules/@lando/mysql/.lando.yml +1 -1
  32. package/node_modules/@lando/mysql/CHANGELOG.md +10 -0
  33. package/node_modules/@lando/mysql/LICENSE +21 -0
  34. package/node_modules/@lando/mysql/README.md +5 -2
  35. package/node_modules/@lando/mysql/builders/mysql.js +9 -5
  36. package/node_modules/@lando/mysql/netlify.toml +9 -0
  37. package/node_modules/@lando/mysql/package.json +8 -8
  38. package/node_modules/@lando/php/.lando.yml +1 -1
  39. package/node_modules/@lando/php/CHANGELOG.md +35 -1
  40. package/node_modules/@lando/php/LICENSE +21 -0
  41. package/node_modules/@lando/php/README.md +5 -2
  42. package/node_modules/@lando/php/builders/php.js +68 -15
  43. package/node_modules/@lando/php/images/5.6-apache/Dockerfile +0 -4
  44. package/node_modules/@lando/php/images/5.6-fpm/Dockerfile +0 -5
  45. package/node_modules/@lando/php/images/7.0-apache/Dockerfile +0 -4
  46. package/node_modules/@lando/php/images/7.0-fpm/Dockerfile +0 -4
  47. package/node_modules/@lando/php/images/7.1-apache/Dockerfile +0 -4
  48. package/node_modules/@lando/php/images/7.1-fpm/Dockerfile +0 -4
  49. package/node_modules/@lando/php/images/7.2-apache/Dockerfile +0 -4
  50. package/node_modules/@lando/php/images/7.2-fpm/Dockerfile +0 -4
  51. package/node_modules/@lando/php/images/7.3-apache/Dockerfile +0 -3
  52. package/node_modules/@lando/php/images/7.3-fpm/Dockerfile +0 -3
  53. package/node_modules/@lando/php/images/7.4-apache/Dockerfile +45 -55
  54. package/node_modules/@lando/php/images/7.4-fpm/Dockerfile +59 -69
  55. package/node_modules/@lando/php/images/8.0-apache/Dockerfile +45 -56
  56. package/node_modules/@lando/php/images/8.0-fpm/Dockerfile +45 -56
  57. package/node_modules/@lando/php/images/8.1-apache/Dockerfile +12 -2
  58. package/node_modules/@lando/php/images/8.1-fpm/Dockerfile +12 -2
  59. package/node_modules/@lando/php/images/8.2-apache/Dockerfile +12 -2
  60. package/node_modules/@lando/php/images/8.2-fpm/Dockerfile +12 -2
  61. package/node_modules/@lando/php/images/8.3-apache/Dockerfile +24 -4
  62. package/node_modules/@lando/php/images/8.3-fpm/Dockerfile +25 -4
  63. package/node_modules/@lando/php/images/8.4-apache/Dockerfile +27 -4
  64. package/node_modules/@lando/php/images/8.4-fpm/Dockerfile +27 -4
  65. package/node_modules/@lando/php/netlify.toml +10 -1
  66. package/node_modules/@lando/php/node_modules/@lando/nginx/.lando.yml +1 -1
  67. package/node_modules/@lando/php/node_modules/@lando/nginx/.node-version +1 -1
  68. package/node_modules/@lando/php/node_modules/@lando/nginx/CHANGELOG.md +9 -1
  69. package/node_modules/@lando/php/node_modules/@lando/nginx/LICENSE +21 -0
  70. package/node_modules/@lando/php/node_modules/@lando/nginx/README.md +5 -2
  71. package/node_modules/@lando/php/node_modules/@lando/nginx/builders/nginx.js +34 -15
  72. package/node_modules/@lando/php/node_modules/@lando/nginx/netlify.toml +9 -4
  73. package/node_modules/@lando/php/node_modules/@lando/nginx/package.json +8 -8
  74. package/node_modules/@lando/php/package.json +10 -10
  75. package/node_modules/@lando/php/scripts/install-composer.sh +4 -0
  76. package/node_modules/@lando/php/utils/add-build-step.js +17 -3
  77. package/node_modules/@lando/php/utils/get-install-commands.js +19 -3
  78. package/node_modules/@lando/postgres/.lando.yml +1 -1
  79. package/node_modules/@lando/postgres/CHANGELOG.md +11 -0
  80. package/node_modules/@lando/postgres/LICENSE +21 -0
  81. package/node_modules/@lando/postgres/README.md +5 -2
  82. package/node_modules/@lando/postgres/builders/postgres.js +9 -9
  83. package/node_modules/@lando/postgres/netlify.toml +9 -4
  84. package/node_modules/@lando/postgres/package.json +8 -8
  85. package/node_modules/semver/README.md +14 -4
  86. package/node_modules/semver/bin/semver.js +4 -1
  87. package/node_modules/semver/classes/comparator.js +2 -0
  88. package/node_modules/semver/classes/index.js +2 -0
  89. package/node_modules/semver/classes/range.js +2 -0
  90. package/node_modules/semver/classes/semver.js +22 -5
  91. package/node_modules/semver/functions/clean.js +2 -0
  92. package/node_modules/semver/functions/cmp.js +2 -0
  93. package/node_modules/semver/functions/coerce.js +2 -0
  94. package/node_modules/semver/functions/compare-build.js +2 -0
  95. package/node_modules/semver/functions/compare-loose.js +2 -0
  96. package/node_modules/semver/functions/compare.js +2 -0
  97. package/node_modules/semver/functions/diff.js +7 -12
  98. package/node_modules/semver/functions/eq.js +2 -0
  99. package/node_modules/semver/functions/gt.js +2 -0
  100. package/node_modules/semver/functions/gte.js +2 -0
  101. package/node_modules/semver/functions/inc.js +2 -0
  102. package/node_modules/semver/functions/lt.js +2 -0
  103. package/node_modules/semver/functions/lte.js +2 -0
  104. package/node_modules/semver/functions/major.js +2 -0
  105. package/node_modules/semver/functions/minor.js +2 -0
  106. package/node_modules/semver/functions/neq.js +2 -0
  107. package/node_modules/semver/functions/parse.js +2 -0
  108. package/node_modules/semver/functions/patch.js +2 -0
  109. package/node_modules/semver/functions/prerelease.js +2 -0
  110. package/node_modules/semver/functions/rcompare.js +2 -0
  111. package/node_modules/semver/functions/rsort.js +2 -0
  112. package/node_modules/semver/functions/satisfies.js +2 -0
  113. package/node_modules/semver/functions/sort.js +2 -0
  114. package/node_modules/semver/functions/valid.js +2 -0
  115. package/node_modules/semver/index.js +2 -0
  116. package/node_modules/semver/internal/constants.js +2 -0
  117. package/node_modules/semver/internal/debug.js +2 -0
  118. package/node_modules/semver/internal/identifiers.js +2 -0
  119. package/node_modules/semver/internal/lrucache.js +2 -0
  120. package/node_modules/semver/internal/parse-options.js +2 -0
  121. package/node_modules/semver/internal/re.js +10 -4
  122. package/node_modules/semver/package.json +8 -7
  123. package/node_modules/semver/preload.js +2 -0
  124. package/node_modules/semver/ranges/gtr.js +2 -0
  125. package/node_modules/semver/ranges/intersects.js +2 -0
  126. package/node_modules/semver/ranges/ltr.js +2 -0
  127. package/node_modules/semver/ranges/max-satisfying.js +2 -0
  128. package/node_modules/semver/ranges/min-satisfying.js +2 -0
  129. package/node_modules/semver/ranges/min-version.js +2 -0
  130. package/node_modules/semver/ranges/outside.js +2 -0
  131. package/node_modules/semver/ranges/simplify.js +2 -0
  132. package/node_modules/semver/ranges/subset.js +2 -0
  133. package/node_modules/semver/ranges/to-comparators.js +2 -0
  134. package/node_modules/semver/ranges/valid.js +2 -0
  135. package/package.json +13 -13
  136. package/LICENSE.md +0 -674
  137. package/PRIVACY.md +0 -169
  138. package/node_modules/@lando/mariadb/LICENSE.md +0 -674
  139. package/node_modules/@lando/mariadb/PRIVACY.md +0 -169
  140. package/node_modules/@lando/mariadb/tmpfile +0 -0
  141. package/node_modules/@lando/mysql/.tool-versions +0 -1
  142. package/node_modules/@lando/mysql/LICENSE.md +0 -674
  143. package/node_modules/@lando/mysql/PRIVACY.md +0 -169
  144. package/node_modules/@lando/php/LICENSE.md +0 -674
  145. package/node_modules/@lando/php/PRIVACY.md +0 -169
  146. package/node_modules/@lando/php/node_modules/@lando/nginx/LICENSE.md +0 -674
  147. package/node_modules/@lando/php/node_modules/@lando/nginx/PRIVACY.md +0 -169
  148. package/node_modules/@lando/postgres/LICENSE.md +0 -674
  149. package/node_modules/@lando/postgres/PRIVACY.md +0 -169
package/.lando.yml CHANGED
@@ -5,7 +5,7 @@ proxy:
5
5
  services:
6
6
  cli:
7
7
  api: 4
8
- image: node:18
8
+ image: node:20
9
9
  command: sleep infinity
10
10
  ports:
11
11
  - 5173:5173/http
@@ -22,4 +22,3 @@ tooling:
22
22
  vitepress:
23
23
  service: cli
24
24
  cmd: npx vitepress
25
-
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  ## {{ UNRELEASED_VERSION }} - [{{ UNRELEASED_DATE }}]({{ UNRELEASED_LINK }})
2
2
 
3
+ ## v1.13.0 - [September 17, 2025](https://github.com/lando/drupal/releases/tag/v1.13.0)
4
+
5
+ * Added default config values to the `.lando.yml` file after init.
6
+ * Switched images to [bitnamilegacy](https://github.com/bitnami/containers/issues/83267) namespace
7
+ * Updated to [@lando/mariadb@1.7.0](https://github.com/lando/mariadb/releases/tag/v1.7.0)
8
+ * Updated to [@lando/mysql@1.6.0](https://github.com/lando/mysql/releases/tag/v1.6.0)
9
+ * Updated to [@lando/php@1.8.0](https://github.com/lando/php/releases/tag/v1.8.0)
10
+ * Updated to [@lando/postgres@1.5.0](https://github.com/lando/postgres/releases/tag/v1.5.0)
11
+ * Updated default `nginx` version to `1.29`
12
+ * Updated MySQL config for better MySQL 8.4 support.
13
+
14
+ ## v1.12.0 - [January 16, 2025](https://github.com/lando/drupal/releases/tag/v1.12.0)
15
+
16
+ * Updated globally installed Drush to `v8.5.0`.
17
+ * Added docs for setting up [Drupal CMS](https://drupal.org/docs/drupal-cms).
18
+ * Updated to [@lando/php@1.7.1](https://github.com/lando/php/releases/tag/v1.7.1).
19
+ * Updated to [@lando/mysql@1.5.0](https://github.com/lando/mysql/releases/tag/v1.5.0).
20
+
3
21
  ## v1.11.0 - [December 9, 2024](https://github.com/lando/drupal/releases/tag/v1.11.0)
4
22
 
5
23
  * Optimized for `midcore`
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Lando Alliance
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  This is the _official_ [Lando](https://lando.dev) plugin for [Drupal](https://www.drupal.org/). When installed it...
4
4
 
5
5
  * Allows users to run `drupal` cms
6
- * Allows users to configure `php` version from `5.3` all the way to `8.3`
6
+ * Allows users to configure `php` version from `5.3` all the way to `8.4+`
7
7
  * Allows users to configure `webroot`
8
8
  * Allows users to configure web server to (`apache` or `nginx`)
9
9
  * Allows users to configure database backend to (`mariadb`, `mysql`, or `postgres`)
@@ -15,11 +15,15 @@ Of course, once a user is running their Drupal project with Lando they can take
15
15
 
16
16
  ## Basic Usage
17
17
 
18
- Add a `drupal9` recipe to your Landofile
18
+ Add a `drupal11` recipe to your Landofile
19
19
 
20
20
  ```yaml
21
- name: Drupal 9
22
- recipe: drupal9
21
+ name: Drupal 11
22
+ recipe: drupal11
23
+ config:
24
+ php: 8.3
25
+ via: apache:2.4
26
+ database: mysql:8.0
23
27
  ```
24
28
 
25
29
  For more info you should check out the [docs](https://docs.lando.dev/drupal):
@@ -35,14 +39,11 @@ For more info you should check out the [docs](https://docs.lando.dev/drupal):
35
39
  ```bash
36
40
  # With npm
37
41
  npm install @lando/drupal
38
-
39
- # With yarn
40
- yarn add @lando/drupal
41
42
  ```
42
43
 
43
44
  ## Issues, Questions and Support
44
45
 
45
- If you have a question or would like some community support we recommend you [join us on Slack](https://launchpass.com/devwithlando). Note that this is the Slack community for [Lando](https://lando.dev) but we are more than happy to help with this module as well!
46
+ If you have a question or would like some community support we recommend you [join us on Slack](https://launchpass.com/devwithlando).
46
47
 
47
48
  If you'd like to report a bug or submit a feature request then please [use the issue queue](https://github.com/lando/drupal/issues/new/choose) in this repo.
48
49
 
@@ -53,40 +54,27 @@ We try to log all changes big and small in both [THE CHANGELOG](https://github.c
53
54
 
54
55
  ## Development
55
56
 
56
- * Requires [Node 14+](https://nodejs.org/dist/latest-v14.x/)
57
- * Prefers [Yarn](https://classic.yarnpkg.com/lang/en/docs/install)
58
-
59
- ```bash
60
- git clone https://github.com/lando/drupal.git && cd drupal
61
- yarn install
62
- ```
63
-
64
- If you don't want to install Node 18 or Yarn for whatever reason you can install [Lando](https://docs.lando.dev/basics/installation.html) and use that:
57
+ * Requires [Node 20+](https://nodejs.org/dist/latest-v20.x/)
65
58
 
66
59
  ```bash
67
60
  git clone https://github.com/lando/drupal.git && cd drupal
68
- # Install deps and get node
69
- lando start
70
-
71
- # Run commands
72
- lando node
73
- lando yarn
61
+ npm install
74
62
  ```
75
63
 
76
64
  ## Testing
77
65
 
78
66
  ```bash
79
67
  # Lint the code
80
- yarn lint
68
+ npm run lint
81
69
 
82
70
  # Run unit tests
83
- yarn test
71
+ npm test
84
72
  ```
85
73
 
86
74
  ## Releasing
87
75
 
88
76
  ```bash
89
- yarn release
77
+ npm release
90
78
  ```
91
79
 
92
80
 
@@ -94,6 +82,7 @@ yarn release
94
82
 
95
83
  * [@pirog](https://github.com/pirog)
96
84
  * [@reynoldsalec](https://github.com/reynoldsalec)
85
+ * [@AaronFeledy](https://github.com/AaronFeledy)
97
86
 
98
87
  ## Contributors
99
88
 
@@ -105,4 +94,8 @@ Made with [contributors-img](https://contrib.rocks).
105
94
 
106
95
  ## Other Resources
107
96
 
108
- * [Important advice](https://www.youtube.com/watch?v=WA4iX5D9Z64)
97
+ * [LICENSE](/LICENSE)
98
+ * [TERMS OF USE](https://docs.lando.dev/terms)
99
+ * [PRIVACY POLICY](https://docs.lando.dev/privacy)
100
+ * [CODE OF CONDUCT](https://docs.lando.dev/coc)
101
+
@@ -9,7 +9,7 @@ const utils = require('../lib/utils.js');
9
9
  const warnings = require('../lib/warnings.js');
10
10
 
11
11
  // "Constants"
12
- const DRUSH8 = '8.4.8';
12
+ const DRUSH8 = '8.5.0';
13
13
  const DRUSH7 = '7.4.0';
14
14
 
15
15
  // Tooling defaults
@@ -147,7 +147,7 @@ const getServices = options => ({
147
147
  },
148
148
  database: {
149
149
  config: getServiceConfig(options, ['database']),
150
- authentication: 'mysql_native_password',
150
+ authentication: '',
151
151
  type: `drupal-${options.database}`,
152
152
  portforward: true,
153
153
  creds: {
@@ -162,13 +162,11 @@ const getServices = options => ({
162
162
  * Helper to get the phar build command
163
163
  */
164
164
  const getDbTooling = database => {
165
- // Make sure we strip out any version number
166
- const db = database.split(':')[0];
167
- const ver = database.split(':')[1];
165
+ const [db, ver] = database.split(':');
168
166
  // Choose wisely
169
167
  if (db === 'mysql') {
170
168
  return {mysql: mysqlCli};
171
- } else if (db === 'mariadb' && ver < 10.4) {
169
+ } else if (db === 'mariadb' && semver.lt(semver.coerce(ver), '10.4.0')) {
172
170
  // Use mysql command for MariaDB 10.3.x and below
173
171
  return {mysql: mysqlCli};
174
172
  } else if (db === 'mariadb') {
@@ -176,10 +174,12 @@ const getDbTooling = database => {
176
174
  } else if (db === 'postgres') {
177
175
  return {psql: postgresCli};
178
176
  } else if (db === 'mongo') {
179
- return {mongo: {
180
- service: 'database',
181
- description: 'Drop into the mongo shell',
182
- }};
177
+ return {
178
+ mongo: {
179
+ service: 'database',
180
+ description: 'Drop into the mongo shell',
181
+ },
182
+ };
183
183
  }
184
184
  };
185
185
 
@@ -228,15 +228,17 @@ module.exports = {
228
228
  composer: {},
229
229
  confSrc: __dirname,
230
230
  config: {},
231
- database: 'mysql',
231
+ database: 'mysql:5.7',
232
232
  defaultFiles: {
233
233
  php: 'php.ini',
234
234
  },
235
235
  php: '7.2',
236
- tooling: {drush: {
237
- service: 'appserver',
238
- }},
239
- via: 'apache',
236
+ tooling: {
237
+ drush: {
238
+ service: 'appserver',
239
+ },
240
+ },
241
+ via: 'apache:2.4',
240
242
  webroot: '.',
241
243
  xdebug: false,
242
244
  proxy: {},
@@ -244,6 +246,7 @@ module.exports = {
244
246
  builder: (parent, config) => class LandoDrupal extends parent {
245
247
  constructor(id, options = {}) {
246
248
  options = _.merge({}, config, options);
249
+
247
250
  // Set the default drush version if we don't have it
248
251
  if (!_.has(options, 'drush')) options.drush = (options.php === '5.3') ? DRUSH7 : DRUSH8;
249
252
 
@@ -264,12 +267,16 @@ module.exports = {
264
267
  }
265
268
 
266
269
  // Set legacy envars
267
- options.services = _.merge({}, options.services, {appserver: {overrides: {
268
- environment: {
269
- SIMPLETEST_BASE_URL: (options.via === 'nginx') ? 'https://appserver_nginx' : 'https://appserver',
270
- SIMPLETEST_DB: `mysql://${options.recipe}:${options.recipe}@database/${options.recipe}`,
270
+ options.services = _.merge({}, options.services, {
271
+ appserver: {
272
+ overrides: {
273
+ environment: {
274
+ SIMPLETEST_BASE_URL: (options.via === 'nginx') ? 'https://appserver_nginx' : 'https://appserver',
275
+ SIMPLETEST_DB: `mysql://${options.recipe}:${options.recipe}@database/${options.recipe}`,
276
+ },
277
+ },
271
278
  },
272
- }}});
279
+ });
273
280
 
274
281
  // Switch the proxy service if needed
275
282
  if (!_.has(options, 'proxyService')) {
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  const _ = require('lodash');
4
- const LandoMariadb = require('./../node_modules/@lando/mariadb/builders/mariadb.js');
4
+ const LandoMariadb = require('@lando/mariadb/builders/mariadb.js');
5
5
 
6
6
  // Builder
7
7
  module.exports = {
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  const _ = require('lodash');
4
- const LandoMssql = require('./../node_modules/@lando/mssql/builders/mssql.js');
4
+ const LandoMssql = require('@lando/mssql/builders/mssql.js');
5
5
 
6
6
  // Builder
7
7
  module.exports = {
@@ -1,7 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  const _ = require('lodash');
4
- const LandoMysql = require('./../node_modules/@lando/mysql/builders/mysql.js');
4
+ const semver = require('semver');
5
+ const LandoMysql = require('@lando/mysql/builders/mysql.js');
5
6
 
6
7
  // Builder
7
8
  module.exports = {
@@ -9,6 +10,11 @@ module.exports = {
9
10
  parent: '_service',
10
11
  builder: parent => class DrupalMysql extends LandoMysql.builder(parent, LandoMysql.config) {
11
12
  constructor(id, options = {}) {
13
+ // Versions of MySQL prior to 8.4 use mysql_native_password authentication
14
+ if (!options.authentication && semver.lt(semver.coerce(options.version), '8.4.0')) {
15
+ options.authentication = 'mysql_native_password';
16
+ }
17
+
12
18
  super(id, options, {services: _.set({}, options.name)});
13
19
  }
14
20
  },
@@ -8,7 +8,7 @@ module.exports = {
8
8
  name: 'drupal-nginx',
9
9
  parent: '_webserver',
10
10
  config: {
11
- version: '1.25',
11
+ version: '1.29',
12
12
  },
13
13
  builder: (parent, config) => class DrupalNginx extends PhpNginx.builder(parent, PhpNginx.config) {
14
14
  constructor(id, options = {}) {
@@ -1,30 +1,29 @@
1
1
  'use strict';
2
2
 
3
- const _ = require('lodash');
4
- const fs = require('fs');
5
- const path = require('path');
6
- const landoPhpPath = path.join(__dirname, '../node_modules/@lando/php');
7
- const LandoPhp = require(`${landoPhpPath}/builders/php.js`);
3
+ const LandoPhp = require('@lando/php/builders/php.js');
8
4
 
9
- const loadScripts = options => {
10
- const lando = _.get(options, '_app._lando');
11
- // Move the script to the confDir and make executable.
12
- if (fs.existsSync(path.join(landoPhpPath, 'scripts'))) {
13
- const confDir = path.join(lando.config.userConfRoot, 'scripts');
14
- const dest = lando.utils.moveConfig(path.join(landoPhpPath, 'scripts'), confDir);
15
- lando.utils.makeExecutable(fs.readdirSync(dest), dest);
16
- lando.log.debug('automoved scripts from %s to %s and set to mode 755',
17
- path.join(landoPhpPath, 'scripts'), confDir);
18
- }
19
- };
20
-
21
- // Builder
5
+ /**
6
+ * Drupal PHP builder class that extends Lando PHP builder.
7
+ * Uses the bundled version of @lando/php plugin instead of user's version.
8
+ *
9
+ * @module drupal-php
10
+ */
22
11
  module.exports = {
23
12
  name: 'drupal-php',
24
13
  parent: '_appserver',
14
+ /**
15
+ * Builder function that returns the DrupalPhp class
16
+ * @param {Object} parent - Parent builder class
17
+ * @return {Class} DrupalPhp class extending LandoPhp builder
18
+ */
25
19
  builder: parent => class DrupalPhp extends LandoPhp.builder(parent, LandoPhp.config) {
20
+ /**
21
+ * Create a new DrupalPhp instance
22
+ * @param {string} id - Service id
23
+ * @param {Object} options - Service options
24
+ * @param {Object} factory - App factory instance
25
+ */
26
26
  constructor(id, options = {}, factory) {
27
- loadScripts(options);
28
27
  options.nginxServiceType = 'drupal-nginx';
29
28
  super(id, options, factory);
30
29
  }
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  const _ = require('lodash');
4
- const LandoPostgres = require('./../node_modules/@lando/postgres/builders/postgres.js');
4
+ const LandoPostgres = require('@lando/postgres/builders/postgres.js');
5
5
 
6
6
  // Builder
7
7
  module.exports = {
@@ -27,7 +27,7 @@ module.exports = {
27
27
  // Set drush to false
28
28
  options.drush = false;
29
29
 
30
- // Let's make sure we set appropripate default versions for things
30
+ // Let's make sure we set appropriate default versions for things
31
31
  // See: https://www.drupal.org/docs/system-requirements/database-server-requirements
32
32
  if (_.get(options, 'database') === 'mysql') {
33
33
  options.database = 'mysql:5.7';
@@ -14,8 +14,9 @@ module.exports = {
14
14
  confSrc: path.resolve(__dirname, '..', 'config', 'drupal6'),
15
15
  defaultFiles: {},
16
16
  php: '5.6',
17
- // @NOTE: below seems to be the last known drush version that let you do
18
- // drush si -y succesfully
17
+ // @NOTE: below seems to be the last known Drupal 6 compatible
18
+ // drush version that let you do drush si -y successfully.
19
+ // @see https://github.com/drush-ops/drush/issues/218#issuecomment-2580619527
19
20
  drush: '8.4.5',
20
21
  },
21
22
  builder: (parent, config) => class LandoDrupal6 extends parent {
@@ -27,7 +27,7 @@ module.exports = {
27
27
  // Set drush to false
28
28
  options.drush = false;
29
29
 
30
- // Let's make sure we set appropripate default versions for things
30
+ // Let's make sure we set appropriate default versions for things
31
31
  // See: https://www.drupal.org/docs/9/how-drupal-9-is-made-and-what-is-included/environment-requirements-of-drupal-9
32
32
  if (_.get(options, 'database') === 'mysql') {
33
33
  options.database = 'mysql:5.7';
@@ -3,104 +3,56 @@
3
3
  #
4
4
  # LANDODRUPALMYSQL8CNF
5
5
 
6
- [mysqld]
7
- #
8
- # * Basic Settings
9
- #
10
- # Data is stored in a volume on the db container /sql
11
- default-storage-engine = innodb
6
+ [server]
7
+ # Character sets and SQL mode
8
+ character_set_server = utf8mb4
9
+ collation_server = utf8mb4_general_ci
10
+ sql_mode = ONLY_FULL_GROUP_BY,TRADITIONAL
12
11
 
13
- #
14
- # * Fine Tuning
15
- #
16
- key_buffer_size = 384M
17
- max_allowed_packet = 32M
18
- thread_stack = 400K
19
- thread_cache_size = 8
20
- # This replaces the startup script and checks MyISAM tables if needed
21
- # the first time they are touched
22
- #max_connections = 100
23
- #table_cache = 64
24
- #thread_concurrency = 10
25
- read_rnd_buffer_size = 8M
26
- myisam_sort_buffer_size = 64M
27
- table_open_cache = 512
28
- sort_buffer_size = 2M
12
+ # Basic Tuning.
13
+ max_connections = 500
14
+ connect_timeout = 5
15
+ wait_timeout = 28800
16
+ max_allowed_packet = 32M
17
+ thread_cache_size = 128
18
+ sort_buffer_size = 4M
19
+ bulk_insert_buffer_size = 16M
20
+ tmp_table_size = 32M
21
+ max_heap_table_size = 32M
22
+
23
+ # MyISAM.
24
+ myisam_recover_options = BACKUP
25
+ key_buffer_size = 128M
26
+ table_open_cache = 400
27
+ myisam_sort_buffer_size = 512M
28
+ concurrent_insert = 2
29
29
  read_buffer_size = 2M
30
+ read_rnd_buffer_size = 1M
30
31
 
31
- #
32
- # * Logging and Replication
33
- #
34
- # Both location gets rotated by the cronjob.
35
- # Be aware that this log type is a performance killer.
36
- # As of 5.1 you can enable the log at runtime!
37
- #general_log_file = /src/.lando/log/mysql.log
38
- #general_log = 1
39
- #
40
- # Error logging goes to syslog due to /etc/mysql/conf.d/mysqld_safe_syslog.cnf.
41
- #
42
- # Here you can see queries with especially long duration
43
- #log_slow_queries = /var/log/mysql/mysql-slow.log
44
- #long_query_time = 2
45
- #log-queries-not-using-indexes
46
- #
47
- # The following can be used as easy to replay backup logs or for replication.
48
- # note: if you are setting up a replication slave, see README.Debian about
49
- # other settings you may need to change.
50
- #server-id = 1
51
- #log_bin = /src/.lando/log/mysql-bin.log
52
- expire_logs_days = 10
53
- max_binlog_size = 101M
54
- #binlog_do_db = include_database_name
55
- #binlog_ignore_db = include_database_name
56
- #
57
- # * InnoDB
58
- #
59
- # InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
60
- # Read the manual for more InnoDB related options. There are many!
61
- #
62
- # Uncomment the following if you are using InnoDB tables
63
- #innodb_data_file_path = ibdata1:2000M;ibdata2:10M:autoextend
64
- #innodb_log_group_home_dir = C:\mysql\data/
65
- # You can set .._buffer_pool_size up to 50 - 80 %
66
- # of RAM but beware of setting memory usage too high
67
- #innodb_buffer_pool_size = 384M
68
- #innodb_additional_mem_pool_size = 20M
69
- # Set .._log_file_size to 25 % of buffer pool size
70
- innodb_log_file_size = 100M
71
- #innodb_log_buffer_size = 8M
72
- innodb_flush_log_at_trx_commit = 0
73
- #innodb_lock_wait_timeout = 50
32
+ # InnoDB.
33
+ default_storage_engine = InnoDB
74
34
  innodb_buffer_pool_size = 384M
75
- innodb_log_buffer_size = 4M
76
- innodb_file_per_table = 1
77
- innodb_open_files = 256
78
- innodb_io_capacity = 512
79
- innodb_flush_method = O_DIRECT
80
- innodb_thread_concurrency = 8
35
+ innodb_log_buffer_size = 8M
36
+ innodb_file_per_table = 1
37
+ innodb_open_files = 400
38
+ innodb_io_capacity = 512
39
+ innodb_thread_concurrency = 0
40
+ innodb_read_io_threads = 16
41
+ innodb_write_io_threads = 16
42
+ innodb_flush_log_at_trx_commit = 0
43
+ innodb_max_dirty_pages_pct = 70
44
+ innodb_adaptive_hash_index = 0
45
+ innodb_use_native_aio = 0
81
46
  innodb_lock_wait_timeout = 127
82
- #
83
- # * Security Features
84
- #
85
- # Read the manual, too, if you want chroot!
86
- # chroot = /var/lib/mysql/
87
- #
88
- # For generating SSL certificates I recommend the OpenSSL GUI "tinyca".
89
- #
90
- # ssl-ca=/etc/mysql/cacert.pem
91
- # ssl-cert=/etc/mysql/server-cert.pem
92
- # ssl-key=/etc/mysql/server-key.pem
47
+
48
+ [mysqld-8.4]
49
+ mysql_native_password=ON
50
+
51
+ [client]
52
+ default_character_set=utf8mb4
53
+ max_allowed_packet = 64M
93
54
 
94
55
  [mysqldump]
95
56
  quick
96
57
  quote-names
97
- max_allowed_packet = 32M
98
-
99
- [mysql]
100
- #no-auto-rehash # faster start of mysql but no tab completion
101
-
102
- [isamchk]
103
- key_buffer_size = 384M
104
- sort_buffer_size = 256M
105
- read_buffer = 2M
106
- write_buffer = 2M
58
+ no-tablespaces
package/inits/drupal10.js CHANGED
@@ -5,4 +5,9 @@
5
5
  */
6
6
  module.exports = {
7
7
  name: 'drupal10',
8
+ defaults: {
9
+ 'php': '8.1',
10
+ 'drush': '^11',
11
+ 'composer_version': '2-latest',
12
+ },
8
13
  };
package/inits/drupal11.js CHANGED
@@ -5,4 +5,11 @@
5
5
  */
6
6
  module.exports = {
7
7
  name: 'drupal11',
8
+ defaults: {
9
+ 'php': '8.3',
10
+ 'via': 'apache:2.4',
11
+ 'database': 'mysql:8.0',
12
+ 'composer_version': '2-latest',
13
+ 'drush': '^13',
14
+ },
8
15
  };
package/inits/drupal6.js CHANGED
@@ -5,4 +5,8 @@
5
5
  */
6
6
  module.exports = {
7
7
  name: 'drupal6',
8
+ defaults: {
9
+ 'php': '5.6',
10
+ 'drush': '8.4.5',
11
+ },
8
12
  };
package/inits/drupal7.js CHANGED
@@ -5,4 +5,7 @@
5
5
  */
6
6
  module.exports = {
7
7
  name: 'drupal7',
8
+ defaults: {
9
+ 'php': '7.4',
10
+ },
8
11
  };
package/inits/drupal8.js CHANGED
@@ -5,4 +5,7 @@
5
5
  */
6
6
  module.exports = {
7
7
  name: 'drupal8',
8
+ defaults: {
9
+ 'php': '7.3',
10
+ },
8
11
  };
package/inits/drupal9.js CHANGED
@@ -5,4 +5,9 @@
5
5
  */
6
6
  module.exports = {
7
7
  name: 'drupal9',
8
+ defaults: {
9
+ 'php': '8.0',
10
+ 'drush': '^11',
11
+ 'composer_version': '2-latest',
12
+ },
8
13
  };
package/netlify.toml CHANGED
@@ -10,7 +10,14 @@
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 = [
14
+ "load",
15
+ "CHANGELOG.html",
16
+ "x.com",
17
+ "twitter.com",
18
+ "https://www.drupal.org",
19
+ "/v/"
20
+ ]
14
21
  skipPatterns = [ ".rss", ".gif", ".jpg" ]
15
22
  checkExternal = true
16
23
 
@@ -40,6 +47,15 @@
40
47
  output_path = "reports/lighthouse.html"
41
48
 
42
49
  # We need this so preview environments and the base site look ok on their own
50
+ [[redirects]]
51
+ from = "https://lando-drupal.netlify.app"
52
+ to = "https://lando-drupal.netlify.app/plugins/drupal/index.html"
53
+ status = 301
54
+ force = true
55
+ [[redirects]]
56
+ from = "https://lando-drupal.netlify.app/*"
57
+ to = "https://docs.lando.dev/:splat"
58
+ status = 301
43
59
  [[redirects]]
44
60
  from = "/"
45
61
  to = "/plugins/drupal"
@@ -5,7 +5,7 @@ proxy:
5
5
  services:
6
6
  cli:
7
7
  api: 4
8
- image: node:18
8
+ image: node:20
9
9
  command: sleep infinity
10
10
  ports:
11
11
  - 5173:5173/http