@lando/drupal 1.12.0 → 1.14.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 (150) hide show
  1. package/.eslintignore +5 -0
  2. package/.lando.yml +1 -2
  3. package/CHANGELOG.md +26 -0
  4. package/LICENSE +21 -0
  5. package/README.md +20 -27
  6. package/builders/_drupaly.js +44 -19
  7. package/builders/drupal-mariadb.js +1 -1
  8. package/builders/drupal-mssql.js +1 -1
  9. package/builders/drupal-mysql.js +7 -1
  10. package/builders/drupal-nginx.js +1 -1
  11. package/builders/drupal-php.js +1 -3
  12. package/builders/drupal-postgres.js +1 -1
  13. package/config/drupal11/mysql8.cnf +44 -92
  14. package/inits/drupal10.js +5 -0
  15. package/inits/drupal11.js +7 -0
  16. package/inits/drupal6.js +4 -0
  17. package/inits/drupal7.js +3 -0
  18. package/inits/drupal8.js +3 -0
  19. package/inits/drupal9.js +5 -0
  20. package/netlify.toml +1 -1
  21. package/node_modules/@lando/mariadb/.lando.yml +1 -1
  22. package/node_modules/@lando/mariadb/.node-version +1 -1
  23. package/node_modules/@lando/mariadb/CHANGELOG.md +12 -1
  24. package/node_modules/@lando/mariadb/LICENSE +21 -0
  25. package/node_modules/@lando/mariadb/README.md +5 -2
  26. package/node_modules/@lando/mariadb/builders/mariadb.js +26 -22
  27. package/node_modules/@lando/mariadb/netlify.toml +9 -2
  28. package/node_modules/@lando/mariadb/package.json +8 -8
  29. package/node_modules/@lando/mysql/.lando.yml +1 -1
  30. package/node_modules/@lando/mysql/CHANGELOG.md +5 -0
  31. package/node_modules/@lando/mysql/LICENSE +21 -0
  32. package/node_modules/@lando/mysql/README.md +5 -2
  33. package/node_modules/@lando/mysql/builders/mysql.js +9 -5
  34. package/node_modules/@lando/mysql/netlify.toml +9 -0
  35. package/node_modules/@lando/mysql/package.json +8 -8
  36. package/node_modules/@lando/php/.lando.yml +1 -1
  37. package/node_modules/@lando/php/AGENTS.md +81 -0
  38. package/node_modules/@lando/php/CHANGELOG.md +31 -0
  39. package/node_modules/@lando/php/LICENSE +21 -0
  40. package/node_modules/@lando/php/README.md +9 -3
  41. package/node_modules/@lando/php/builders/php.js +39 -12
  42. package/node_modules/@lando/php/images/5.6-apache/Dockerfile +9 -4
  43. package/node_modules/@lando/php/images/5.6-fpm/Dockerfile +9 -4
  44. package/node_modules/@lando/php/images/7.0-apache/Dockerfile +9 -4
  45. package/node_modules/@lando/php/images/7.0-fpm/Dockerfile +9 -4
  46. package/node_modules/@lando/php/images/7.1-apache/Dockerfile +1 -1
  47. package/node_modules/@lando/php/images/7.1-fpm/Dockerfile +1 -1
  48. package/node_modules/@lando/php/images/7.2-apache/Dockerfile +1 -1
  49. package/node_modules/@lando/php/images/7.2-fpm/Dockerfile +1 -1
  50. package/node_modules/@lando/php/images/7.3-apache/Dockerfile +1 -1
  51. package/node_modules/@lando/php/images/7.3-fpm/Dockerfile +1 -1
  52. package/node_modules/@lando/php/images/7.4-apache/Dockerfile +2 -2
  53. package/node_modules/@lando/php/images/7.4-fpm/Dockerfile +2 -2
  54. package/node_modules/@lando/php/images/8.0-apache/Dockerfile +2 -2
  55. package/node_modules/@lando/php/images/8.0-fpm/Dockerfile +2 -2
  56. package/node_modules/@lando/php/images/8.1-apache/Dockerfile +1 -1
  57. package/node_modules/@lando/php/images/8.1-fpm/Dockerfile +1 -1
  58. package/node_modules/@lando/php/images/8.2-apache/Dockerfile +1 -1
  59. package/node_modules/@lando/php/images/8.2-fpm/Dockerfile +1 -1
  60. package/node_modules/@lando/php/images/8.3-apache/Dockerfile +23 -22
  61. package/node_modules/@lando/php/images/8.3-fpm/Dockerfile +22 -22
  62. package/node_modules/@lando/php/images/8.4-apache/Dockerfile +21 -22
  63. package/node_modules/@lando/php/images/8.4-fpm/Dockerfile +21 -22
  64. package/node_modules/@lando/php/images/8.5-apache/Dockerfile +77 -0
  65. package/node_modules/@lando/php/images/8.5-fpm/Dockerfile +78 -0
  66. package/node_modules/@lando/php/netlify.toml +10 -1
  67. package/node_modules/@lando/php/node_modules/@lando/nginx/.lando.yml +1 -1
  68. package/node_modules/@lando/php/node_modules/@lando/nginx/.node-version +1 -1
  69. package/node_modules/@lando/php/node_modules/@lando/nginx/CHANGELOG.md +9 -1
  70. package/node_modules/@lando/php/node_modules/@lando/nginx/LICENSE +21 -0
  71. package/node_modules/@lando/php/node_modules/@lando/nginx/README.md +5 -2
  72. package/node_modules/@lando/php/node_modules/@lando/nginx/builders/nginx.js +34 -15
  73. package/node_modules/@lando/php/node_modules/@lando/nginx/netlify.toml +9 -4
  74. package/node_modules/@lando/php/node_modules/@lando/nginx/package.json +8 -8
  75. package/node_modules/@lando/php/package.json +10 -10
  76. package/node_modules/@lando/php/scripts/install-db-client.sh +31 -0
  77. package/node_modules/@lando/php/scripts/mariadb-compat-install.sh +42 -0
  78. package/node_modules/@lando/php/scripts/mysql-client-install.sh +62 -0
  79. package/node_modules/@lando/postgres/.lando.yml +1 -1
  80. package/node_modules/@lando/postgres/CHANGELOG.md +15 -0
  81. package/node_modules/@lando/postgres/LICENSE +21 -0
  82. package/node_modules/@lando/postgres/README.md +5 -2
  83. package/node_modules/@lando/postgres/builders/postgres.js +11 -10
  84. package/node_modules/@lando/postgres/netlify.toml +9 -4
  85. package/node_modules/@lando/postgres/package.json +8 -8
  86. package/node_modules/semver/README.md +14 -4
  87. package/node_modules/semver/bin/semver.js +4 -1
  88. package/node_modules/semver/classes/comparator.js +2 -0
  89. package/node_modules/semver/classes/index.js +2 -0
  90. package/node_modules/semver/classes/range.js +2 -0
  91. package/node_modules/semver/classes/semver.js +22 -5
  92. package/node_modules/semver/functions/clean.js +2 -0
  93. package/node_modules/semver/functions/cmp.js +2 -0
  94. package/node_modules/semver/functions/coerce.js +2 -0
  95. package/node_modules/semver/functions/compare-build.js +2 -0
  96. package/node_modules/semver/functions/compare-loose.js +2 -0
  97. package/node_modules/semver/functions/compare.js +2 -0
  98. package/node_modules/semver/functions/diff.js +7 -12
  99. package/node_modules/semver/functions/eq.js +2 -0
  100. package/node_modules/semver/functions/gt.js +2 -0
  101. package/node_modules/semver/functions/gte.js +2 -0
  102. package/node_modules/semver/functions/inc.js +2 -0
  103. package/node_modules/semver/functions/lt.js +2 -0
  104. package/node_modules/semver/functions/lte.js +2 -0
  105. package/node_modules/semver/functions/major.js +2 -0
  106. package/node_modules/semver/functions/minor.js +2 -0
  107. package/node_modules/semver/functions/neq.js +2 -0
  108. package/node_modules/semver/functions/parse.js +2 -0
  109. package/node_modules/semver/functions/patch.js +2 -0
  110. package/node_modules/semver/functions/prerelease.js +2 -0
  111. package/node_modules/semver/functions/rcompare.js +2 -0
  112. package/node_modules/semver/functions/rsort.js +2 -0
  113. package/node_modules/semver/functions/satisfies.js +2 -0
  114. package/node_modules/semver/functions/sort.js +2 -0
  115. package/node_modules/semver/functions/valid.js +2 -0
  116. package/node_modules/semver/index.js +2 -0
  117. package/node_modules/semver/internal/constants.js +2 -0
  118. package/node_modules/semver/internal/debug.js +2 -0
  119. package/node_modules/semver/internal/identifiers.js +2 -0
  120. package/node_modules/semver/internal/lrucache.js +2 -0
  121. package/node_modules/semver/internal/parse-options.js +2 -0
  122. package/node_modules/semver/internal/re.js +10 -4
  123. package/node_modules/semver/package.json +8 -7
  124. package/node_modules/semver/preload.js +2 -0
  125. package/node_modules/semver/ranges/gtr.js +2 -0
  126. package/node_modules/semver/ranges/intersects.js +2 -0
  127. package/node_modules/semver/ranges/ltr.js +2 -0
  128. package/node_modules/semver/ranges/max-satisfying.js +2 -0
  129. package/node_modules/semver/ranges/min-satisfying.js +2 -0
  130. package/node_modules/semver/ranges/min-version.js +2 -0
  131. package/node_modules/semver/ranges/outside.js +2 -0
  132. package/node_modules/semver/ranges/simplify.js +2 -0
  133. package/node_modules/semver/ranges/subset.js +2 -0
  134. package/node_modules/semver/ranges/to-comparators.js +2 -0
  135. package/node_modules/semver/ranges/valid.js +2 -0
  136. package/package.json +13 -13
  137. package/LICENSE.md +0 -674
  138. package/PRIVACY.md +0 -169
  139. package/node_modules/@lando/mariadb/LICENSE.md +0 -674
  140. package/node_modules/@lando/mariadb/PRIVACY.md +0 -169
  141. package/node_modules/@lando/mariadb/tmpfile +0 -0
  142. package/node_modules/@lando/mysql/.tool-versions +0 -1
  143. package/node_modules/@lando/mysql/LICENSE.md +0 -674
  144. package/node_modules/@lando/mysql/PRIVACY.md +0 -169
  145. package/node_modules/@lando/php/LICENSE.md +0 -674
  146. package/node_modules/@lando/php/PRIVACY.md +0 -169
  147. package/node_modules/@lando/php/node_modules/@lando/nginx/LICENSE.md +0 -674
  148. package/node_modules/@lando/php/node_modules/@lando/nginx/PRIVACY.md +0 -169
  149. package/node_modules/@lando/postgres/LICENSE.md +0 -674
  150. package/node_modules/@lando/postgres/PRIVACY.md +0 -169
@@ -1,5 +1,12 @@
1
1
  ## {{ UNRELEASED_VERSION }} - [{{ UNRELEASED_DATE }}]({{ UNRELEASED_LINK }})
2
2
 
3
+ ## v1.5.0 - [August 31, 2025](https://github.com/lando/nginx/releases/tag/v1.5.0)
4
+
5
+ * Switched images to [bitnamilegacy](https://github.com/bitnami/containers/issues/83267) namespace
6
+ * Added `nginx:1.29`
7
+ * Added `nginx:1.28`
8
+ * Updated `nginx:1.27` to `1.27.5`
9
+
3
10
  ## v1.4.4 - [December 7, 2024](https://github.com/lando/nginx/releases/tag/v1.4.4)
4
11
 
5
12
  * Optimized for `midcore`
@@ -32,7 +39,8 @@
32
39
  * Changed default version to `1.26`
33
40
 
34
41
  ## v1.1.0 - [March 8, 2024](https://github.com/lando/nginx/releases/tag/v1.1.0)
35
- * Updated to latest database services.
42
+
43
+ * Updated to latest database services.
36
44
 
37
45
  ## v1.0.0 - [December 7, 2023](https://github.com/lando/ngin/releases/tag/v1.0.0)
38
46
 
@@ -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.
@@ -49,5 +49,8 @@ Made with [contributors-img](https://contrib.rocks).
49
49
 
50
50
  ## Other Selected Resources
51
51
 
52
- * [LICENSE](https://github.com/lando/nginx/blob/main/LICENSE.md)
53
- * [The best professional advice ever](https://www.youtube.com/watch?v=tkBVDh7my9Q)
52
+ * [LICENSE](/LICENSE)
53
+ * [TERMS OF USE](https://docs.lando.dev/terms)
54
+ * [PRIVACY POLICY](https://docs.lando.dev/privacy)
55
+ * [CODE OF CONDUCT](https://docs.lando.dev/coc)
56
+
@@ -8,21 +8,40 @@ const path = require('path');
8
8
  module.exports = {
9
9
  name: 'nginx',
10
10
  config: {
11
- version: '1.27',
12
- supported: ['1.16', '1.17', '1.18', '1.19', '1.20', '1.21', '1.22', '1.23', '1.24', '1.25', '1.26', '1.27'],
11
+ version: '1.29',
12
+ supported: [
13
+ '1',
14
+ '1.29',
15
+ '1.28',
16
+ '1.27',
17
+ '1.26',
18
+ '1.25',
19
+ '1.24',
20
+ '1.23',
21
+ '1.22',
22
+ '1.21',
23
+ '1.20',
24
+ '1.19',
25
+ '1.18',
26
+ '1.17',
27
+ '1.16',
28
+ ],
13
29
  pinPairs: {
14
- '1.27': 'bitnami/nginx:1.27.2-debian-12-r0',
15
- '1.26': 'bitnami/nginx:1.26.2-debian-12-r6',
16
- '1.25': 'bitnami/nginx:1.25.5-debian-12-r7',
17
- '1.24': 'bitnami/nginx:1.24.0-debian-12-r25',
18
- '1.23': 'bitnami/nginx:1.23.4-debian-11-r24',
19
- '1.22': 'bitnami/nginx:1.22.1-debian-11-r66',
20
- '1.21': 'bitnami/nginx:1.21.6-debian-11-r21',
21
- '1.20': 'bitnami/nginx:1.20.2-debian-11-r9',
22
- '1.19': 'bitnami/nginx:1.19.10-debian-10-r94',
23
- '1.18': 'bitnami/nginx:1.18.0-debian-10-r363',
24
- '1.17': 'bitnami/nginx:1.17.10-debian-10-r71',
25
- '1.16': 'bitnami/nginx:1.16.1-debian-10-r106',
30
+ '1': 'bitnamilegacy/nginx:1.29.1-debian-12-r0',
31
+ '1.29': 'bitnamilegacy/nginx:1.29.1-debian-12-r0',
32
+ '1.28': 'bitnamilegacy/nginx:1.28.0-debian-12-r4',
33
+ '1.27': 'bitnamilegacy/nginx:1.27.5-debian-12-r1',
34
+ '1.26': 'bitnamilegacy/nginx:1.26.2-debian-12-r10',
35
+ '1.25': 'bitnamilegacy/nginx:1.25.5-debian-12-r7',
36
+ '1.24': 'bitnamilegacy/nginx:1.24.0-debian-12-r25',
37
+ '1.23': 'bitnamilegacy/nginx:1.23.4-debian-11-r24',
38
+ '1.22': 'bitnamilegacy/nginx:1.22.1-debian-11-r66',
39
+ '1.21': 'bitnamilegacy/nginx:1.21.6-debian-11-r21',
40
+ '1.20': 'bitnamilegacy/nginx:1.20.2-debian-11-r9',
41
+ '1.19': 'bitnamilegacy/nginx:1.19.10',
42
+ '1.18': 'bitnamilegacy/nginx:1.18.0',
43
+ '1.17': 'bitnamilegacy/nginx:1.17.10',
44
+ '1.16': 'bitnamilegacy/nginx:1.16.1-r146',
26
45
  },
27
46
  patchesSupported: true,
28
47
  confSrc: path.resolve(__dirname, '..', 'config'),
@@ -71,7 +90,7 @@ module.exports = {
71
90
 
72
91
  // Build the default stuff here
73
92
  const nginx = {
74
- image: `bitnami/nginx:${options.version}`,
93
+ image: `bitnamilegacy/nginx:${options.version}`,
75
94
  command: `/launch.sh ${vhosts} ${server} ${params}`,
76
95
  environment: {
77
96
  NGINX_HTTP_PORT_NUMBER: '80',
@@ -14,8 +14,6 @@
14
14
  skipPatterns = [ ".rss", ".gif", ".jpg" ]
15
15
  checkExternal = true
16
16
 
17
-
18
-
19
17
  # Sets our asset optimization
20
18
  [build.processing.css]
21
19
  bundle = true
@@ -41,9 +39,16 @@
41
39
  [plugins.inputs.audits]
42
40
  output_path = "reports/lighthouse.html"
43
41
 
44
-
45
-
46
42
  # We need this so preview environments and the base site look ok on their own
43
+ [[redirects]]
44
+ from = "https://lando-nginx.netlify.app"
45
+ to = "https://lando-nginx.netlify.app/plugins/nginx/index.html"
46
+ status = 301
47
+ force = true
48
+ [[redirects]]
49
+ from = "https://lando-nginx.netlify.app/*"
50
+ to = "https://docs.lando.dev/:splat"
51
+ status = 301
47
52
  [[redirects]]
48
53
  from = "/"
49
54
  to = "/plugins/nginx"
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@lando/nginx",
3
3
  "description": "A Lando plugin that provides a tight integration with NGINX.",
4
- "version": "1.4.4",
4
+ "version": "1.5.0",
5
5
  "author": "Mike Pirog @pirog",
6
- "license": "GPL-3.0",
6
+ "license": "MIT",
7
7
  "repository": "lando/nginx",
8
8
  "bugs": "https://github.com/lando/nginx/issues/new/choose",
9
9
  "homepage": "https://github.com/lando/nginx",
@@ -14,7 +14,7 @@
14
14
  "nginx"
15
15
  ],
16
16
  "engines": {
17
- "node": ">=18.0.0"
17
+ "node": ">=20.0.0"
18
18
  },
19
19
  "lando": {},
20
20
  "main": "index.js",
@@ -48,7 +48,7 @@
48
48
  "devDependencies": {
49
49
  "@babel/eslint-parser": "^7.16.0",
50
50
  "@lando/leia": "^1.0.0-beta.3",
51
- "@lando/vitepress-theme-default-plus": "^1.1.0-beta.24",
51
+ "@lando/vitepress-theme-default-plus": "^1.1.1",
52
52
  "chai": "^4.3.4",
53
53
  "command-line-test": "^1.0.10",
54
54
  "eslint": "^7.32.0",
@@ -62,9 +62,9 @@
62
62
  "lodash"
63
63
  ],
64
64
  "dist": {
65
- "integrity": "sha512-mW8wzVbKHLNsQhsWyuxx4pwxgB26hRe6gAe82VzrgBpYCyNqyR2WbkvoTXM1jlllyUQaHB3V8FtZLxNREKWy3g==",
66
- "shasum": "379bada9fb0b1bddfa323b6f574beed862457236",
67
- "filename": "lando-nginx-1.4.4.tgz",
68
- "unpackedSize": 1481520
65
+ "integrity": "sha512-5ucFuVSujqYHcrRYfp7h7hJoeB4hDIykCa3jCSrOzXEh9yJA5tOoIHWZ6sA5bVWMZ+fmVjJwN4ECq5bCSL4fXQ==",
66
+ "shasum": "4f17dd1cd473fd82fffc629a87f09b695826bf75",
67
+ "filename": "lando-nginx-1.5.0.tgz",
68
+ "unpackedSize": 1438911
69
69
  }
70
70
  }
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@lando/php",
3
3
  "description": "A Lando plugin that provides a tight integration with PHP.",
4
- "version": "1.7.1",
4
+ "version": "1.11.0",
5
5
  "author": "Mike Pirog @pirog",
6
- "license": "GPL-3.0",
6
+ "license": "MIT",
7
7
  "repository": "lando/php",
8
8
  "bugs": "https://github.com/lando/php/issues/new/choose",
9
9
  "homepage": "https://github.com/lando/php",
@@ -14,7 +14,7 @@
14
14
  "php"
15
15
  ],
16
16
  "engines": {
17
- "node": ">=18.0.0"
17
+ "node": ">=20.0.0"
18
18
  },
19
19
  "lando": {},
20
20
  "main": "index.js",
@@ -43,20 +43,20 @@
43
43
  "test": "npm run lint && npm run test:unit"
44
44
  },
45
45
  "dependencies": {
46
- "@lando/nginx": "^1.4.4",
46
+ "@lando/nginx": "^1.5.0",
47
47
  "lodash": "^4.17.21",
48
48
  "semver": "^7.6.3"
49
49
  },
50
50
  "devDependencies": {
51
51
  "@babel/eslint-parser": "^7.25.9",
52
52
  "@lando/leia": "0.6.7",
53
- "@lando/vitepress-theme-default-plus": "^1.1.0-beta.24",
53
+ "@lando/vitepress-theme-default-plus": "^1.1.1",
54
54
  "chai": "^4.3.4",
55
55
  "command-line-test": "^1.0.10",
56
56
  "eslint": "^7.32.0",
57
57
  "eslint-config-google": "^0.9.1",
58
58
  "eslint-plugin-vue": "^8.0.3",
59
- "mocha": "^9.1.2",
59
+ "mocha": "^11.1.0",
60
60
  "nyc": "^15.1.0",
61
61
  "vitepress": "^1.3.4"
62
62
  },
@@ -66,9 +66,9 @@
66
66
  "semver"
67
67
  ],
68
68
  "dist": {
69
- "integrity": "sha512-GF7bMuFPLQoPPb1ODyJ2aCLbASR6PLmM9TLJy+5v+2xViS6elMJLe20D51SsFB4K8vzo4o6PIO7WboE5PRn8cg==",
70
- "shasum": "3e52a825d6d81d9117e9ce6243e28a1d16c43fea",
71
- "filename": "lando-php-1.7.1.tgz",
72
- "unpackedSize": 3128531
69
+ "integrity": "sha512-DXgh9l91jzrUk7wGgfTLLdlHzWnILc+VNJzPqtiTLa6sx9APcbUTQO4ns4efDjto64+cyRYqiyMSGAxrEmP/TA==",
70
+ "shasum": "bbaaf72ebdb5eaf2e8f94157cbad92022356e662",
71
+ "filename": "lando-php-1.11.0.tgz",
72
+ "unpackedSize": 3058868
73
73
  }
74
74
  }
@@ -0,0 +1,31 @@
1
+ #!/bin/bash
2
+ # Install database client matching the detected database type/version
3
+ # Usage: install-db-client.sh <type>:<version>
4
+ # Examples:
5
+ # install-db-client.sh mysql:8.4
6
+ # install-db-client.sh mariadb:11.8
7
+
8
+ set -e
9
+
10
+ DB_CLIENT="${1:-}"
11
+ if [[ -z "$DB_CLIENT" ]]; then
12
+ echo "No database client specified, keeping defaults"
13
+ exit 0
14
+ fi
15
+
16
+ DB_TYPE="${DB_CLIENT%%:*}"
17
+ DB_VERSION="${DB_CLIENT##*:}"
18
+ SCRIPTS_DIR="$(dirname "$0")"
19
+
20
+ case "$DB_TYPE" in
21
+ mysql)
22
+ "$SCRIPTS_DIR/mysql-client-install.sh" "$DB_VERSION"
23
+ ;;
24
+ mariadb)
25
+ "$SCRIPTS_DIR/mariadb-compat-install.sh"
26
+ ;;
27
+ *)
28
+ echo "Unknown database type: $DB_TYPE"
29
+ exit 1
30
+ ;;
31
+ esac
@@ -0,0 +1,42 @@
1
+ #!/bin/bash
2
+ # Usage: mariadb-compat-install.sh
3
+ # Creates wrapper scripts to map deprecated mysql commands to mariadb equivalents
4
+ # The mariadb-client package is already installed in the base image
5
+
6
+ set -e
7
+
8
+ echo "Installing MariaDB compatibility wrappers..."
9
+
10
+ # Create wrapper scripts for each mysql* command that maps to mariadb* equivalent
11
+ for cmd in mysql mysqldump mysqladmin mysqlcheck mysqlimport mysqlshow; do
12
+ suffix="${cmd#mysql}"
13
+ mariadb_cmd="mariadb${suffix:+-}${suffix}"
14
+
15
+ if command -v "$mariadb_cmd" &> /dev/null; then
16
+ cat > "/usr/local/bin/$cmd" << EOF
17
+ #!/bin/bash
18
+ exec -a "\$0" $mariadb_cmd "\$@"
19
+ EOF
20
+ chmod +x "/usr/local/bin/$cmd"
21
+ echo " Created wrapper: $cmd -> $mariadb_cmd"
22
+ fi
23
+ done
24
+
25
+ # Create config directory if it doesn't exist
26
+ mkdir -p /etc/mysql/conf.d
27
+
28
+ # Create MySQL client config with compatibility settings
29
+ cat > /etc/mysql/conf.d/lando.cnf << 'MYCNF'
30
+ [client]
31
+ default-character-set=utf8mb4
32
+
33
+ [client-mariadb]
34
+ # Prevent SSL errors when connecting to servers without SSL
35
+ disable-ssl-verify-server-cert
36
+
37
+ [mysqldump]
38
+ # MySQL 8 uses this; MariaDB safely ignores it via loose- prefix
39
+ loose-skip-column-statistics
40
+ MYCNF
41
+
42
+ echo "MariaDB compatibility wrappers installed"
@@ -0,0 +1,62 @@
1
+ #!/bin/bash
2
+ # Install MySQL client from pre-downloaded binaries
3
+ # Usage: mysql-client-install.sh <version>
4
+ # Examples: mysql-client-install.sh 8.4, mysql-client-install.sh 8.0
5
+
6
+ set -e
7
+
8
+ VERSION="${1:-8.4}"
9
+
10
+ echo "Installing MySQL $VERSION client..."
11
+
12
+ # Map version to the closest available pre-downloaded version
13
+ # We have 8.0 and 8.4 available
14
+ case "$VERSION" in
15
+ 8.4*|8.3*)
16
+ CLIENT_VERSION="8.4"
17
+ ;;
18
+ 8.0*|8.1*|8.2*|5.7*)
19
+ CLIENT_VERSION="8.0"
20
+ ;;
21
+ *)
22
+ # Default to 8.4 for unknown versions
23
+ CLIENT_VERSION="8.4"
24
+ echo "Warning: Unknown MySQL version $VERSION, using $CLIENT_VERSION client"
25
+ ;;
26
+ esac
27
+
28
+ CLIENT_DIR="/usr/local/mysql-client/$CLIENT_VERSION"
29
+
30
+ if [ -d "$CLIENT_DIR" ]; then
31
+ # Remove MariaDB client symlinks if they exist in /usr/local/bin
32
+ rm -f /usr/local/bin/mysql /usr/local/bin/mysqldump /usr/local/bin/mysqladmin 2>/dev/null || true
33
+
34
+ # Create symlinks to the pre-downloaded MySQL client
35
+ ln -sf "$CLIENT_DIR/mysql" /usr/local/bin/mysql
36
+ ln -sf "$CLIENT_DIR/mysqldump" /usr/local/bin/mysqldump
37
+ ln -sf "$CLIENT_DIR/mysqladmin" /usr/local/bin/mysqladmin
38
+
39
+ echo "MySQL $CLIENT_VERSION client activated from pre-downloaded binaries"
40
+ else
41
+ echo "Warning: Pre-downloaded MySQL client not found at $CLIENT_DIR"
42
+ echo "Keeping default mariadb-client"
43
+ exit 0
44
+ fi
45
+
46
+ # Create config directory if it doesn't exist
47
+ mkdir -p /etc/mysql/conf.d
48
+
49
+ # Create MySQL client config with compatibility settings
50
+ cat > /etc/mysql/conf.d/lando.cnf << 'MYCNF'
51
+ [client]
52
+ default-character-set=utf8mb4
53
+
54
+ [mysqldump]
55
+ # Prevent column-statistics errors with newer mysqldump
56
+ skip-column-statistics
57
+ MYCNF
58
+
59
+ if ! mysql --version 2>/dev/null; then
60
+ echo "Error: MySQL client not available after activation"
61
+ exit 1
62
+ fi
@@ -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
@@ -1,5 +1,20 @@
1
1
  ## {{ UNRELEASED_VERSION }} - [{{ UNRELEASED_DATE }}]({{ UNRELEASED_LINK }})
2
2
 
3
+ ## v1.6.0 - [September 8, 2025](https://github.com/lando/postgres/releases/tag/v1.6.0)
4
+
5
+ * Added support for Postgres 17
6
+
7
+ ## v1.5.0 - [September 1, 2025](https://github.com/lando/postgres/releases/tag/v1.5.0)
8
+
9
+ * Switched images to [bitnamilegacy](https://github.com/bitnami/containers/issues/83267) namespace
10
+ * Updated `postgres:16` to `16.6.0`
11
+ * Updated `postgres:15` to `15.10.0`
12
+ * Updated `postgres:14` to `14.18.0`
13
+ * Updated `postgres:13` to `13.18.0`
14
+ * Updated `postgres:12` to `12.20.0`
15
+ * Updated `postgres:11` to `11.22.0`
16
+ * Updated `postgres:10` to `10.23.0`
17
+
3
18
  ## v1.4.4 - [December 7, 2024](https://github.com/lando/postgres/releases/tag/v1.4.4)
4
19
 
5
20
  * Optimized for `midcore`
@@ -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.
@@ -49,5 +49,8 @@ Made with [contributors-img](https://contrib.rocks).
49
49
 
50
50
  ## Other Selected Resources
51
51
 
52
- * [LICENSE](https://github.com/lando/postgres/blob/main/LICENSE.md)
53
- * [The best professional advice ever](https://www.youtube.com/watch?v=tkBVDh7my9Q)
52
+ * [LICENSE](/LICENSE)
53
+ * [TERMS OF USE](https://docs.lando.dev/terms)
54
+ * [PRIVACY POLICY](https://docs.lando.dev/privacy)
55
+ * [CODE OF CONDUCT](https://docs.lando.dev/coc)
56
+
@@ -11,16 +11,17 @@ module.exports = {
11
11
  name: 'postgres',
12
12
  config: {
13
13
  version: '10',
14
- supported: ['16', '15', '14', '13', '12', '11', '11.1', '11.0', '10', '10.6.0', '9.6'],
14
+ supported: ['17', '16', '15', '14', '13', '12', '11', '11.1', '11.0', '10', '10.6.0', '9.6'],
15
15
  pinPairs: {
16
- '16': 'bitnami/postgresql:16.2.0-debian-12-r8',
17
- '15': 'bitnami/postgresql:15.2.0-debian-11-r26',
18
- '14': 'bitnami/postgresql:14.1.0-debian-10-r9',
19
- '13': 'bitnami/postgresql:13.5.0-debian-10-r9',
20
- '12': 'bitnami/postgresql:12.9.0-debian-10-r9',
21
- '11': 'bitnami/postgresql:11.14.0-debian-10-r9',
22
- '10': 'bitnami/postgresql:10.19.0-debian-10-r9',
23
- '9.6': 'bitnami/postgresql:9.6.24-debian-10-r9',
16
+ '17': 'bitnamilegacy/postgresql:17.6.0-debian-12-r4',
17
+ '16': 'bitnamilegacy/postgresql:16.6.0-debian-12-r2',
18
+ '15': 'bitnamilegacy/postgresql:15.10.0-debian-12-r2',
19
+ '14': 'bitnamilegacy/postgresql:14.18.0-debian-12-r0',
20
+ '13': 'bitnamilegacy/postgresql:13.18.0-debian-12-r2',
21
+ '12': 'bitnamilegacy/postgresql:12.20.0-debian-12-r26',
22
+ '11': 'bitnamilegacy/postgresql:11.22.0-debian-11-r4',
23
+ '10': 'bitnamilegacy/postgresql:10.23.0-debian-11-r3',
24
+ '9.6': 'bitnamilegacy/postgresql:9.6.24',
24
25
  },
25
26
  patchesSupported: true,
26
27
  confSrc: path.resolve(__dirname, '..', 'config'),
@@ -50,7 +51,7 @@ module.exports = {
50
51
  if (!options.healthcheck) options.healthcheck = require('../utils/get-default-healthcheck')(options);
51
52
 
52
53
  const postgres = {
53
- image: `bitnami/postgresql:${options.version}`,
54
+ image: `bitnamilegacy/postgresql:${options.version}`,
54
55
  command: '/launch.sh',
55
56
  environment: {
56
57
  ALLOW_EMPTY_PASSWORD: 'yes',
@@ -14,8 +14,6 @@
14
14
  skipPatterns = [ ".rss", ".gif", ".jpg" ]
15
15
  checkExternal = true
16
16
 
17
-
18
-
19
17
  # Sets our asset optimization
20
18
  [build.processing.css]
21
19
  bundle = true
@@ -41,9 +39,16 @@
41
39
  [plugins.inputs.audits]
42
40
  output_path = "reports/lighthouse.html"
43
41
 
44
-
45
-
46
42
  # We need this so preview environments and the base site look ok on their own
43
+ [[redirects]]
44
+ from = "https://lando-postgres.netlify.app"
45
+ to = "https://lando-postgres.netlify.app/plugins/postgres/index.html"
46
+ status = 301
47
+ force = true
48
+ [[redirects]]
49
+ from = "https://lando-postgres.netlify.app/*"
50
+ to = "https://docs.lando.dev/:splat"
51
+ status = 301
47
52
  [[redirects]]
48
53
  from = "/"
49
54
  to = "/plugins/postgres"
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@lando/postgres",
3
3
  "description": "A Lando plugin that provides a tight integration with Postgres.",
4
- "version": "1.4.4",
4
+ "version": "1.6.0",
5
5
  "author": "Mike Pirog @pirog",
6
- "license": "GPL-3.0",
6
+ "license": "MIT",
7
7
  "repository": "lando/postgres",
8
8
  "bugs": "https://github.com/lando/postgres/issues/new/choose",
9
9
  "homepage": "https://github.com/lando/postgres",
@@ -48,13 +48,13 @@
48
48
  "devDependencies": {
49
49
  "@babel/eslint-parser": "^7.16.0",
50
50
  "@lando/leia": "^0.6.5",
51
- "@lando/vitepress-theme-default-plus": "^1.1.0-beta.24",
51
+ "@lando/vitepress-theme-default-plus": "^1.1.1",
52
52
  "chai": "^4.3.4",
53
53
  "command-line-test": "^1.0.10",
54
54
  "eslint": "^7.32.0",
55
55
  "eslint-config-google": "^0.9.1",
56
56
  "eslint-plugin-vue": "^8.0.3",
57
- "mocha": "^9.1.2",
57
+ "mocha": "^11.1.0",
58
58
  "nyc": "^15.1.0",
59
59
  "vitepress": "^1.3.4"
60
60
  },
@@ -62,9 +62,9 @@
62
62
  "lodash"
63
63
  ],
64
64
  "dist": {
65
- "integrity": "sha512-5hV1Up+aCCMklMcUr24uKSocuqQ91/GOOywt2Qj9mfq81F85xwa7xFxWSV+OSlrmwBIkcpNeZVZNz+vk7Rjo4g==",
66
- "shasum": "d23920ab8696c91ff271c9abb823b4e23852dd80",
67
- "filename": "lando-postgres-1.4.4.tgz",
68
- "unpackedSize": 1471063
65
+ "integrity": "sha512-ldqBhdCr2d2tHD30D2an+WL2jTPJUM29p0GdzQ8DGkwo4SdxX3OygcCdMzWORYDPbEl/EaO5082+oAHzxp26EQ==",
66
+ "shasum": "1c3bc204a4495870eaedbbe999f4795976292ce7",
67
+ "filename": "lando-postgres-1.6.0.tgz",
68
+ "unpackedSize": 1428571
69
69
  }
70
70
  }
@@ -100,7 +100,7 @@ Options:
100
100
  -i --increment [<level>]
101
101
  Increment a version by the specified level. Level can
102
102
  be one of: major, minor, patch, premajor, preminor,
103
- prepatch, or prerelease. Default level is 'patch'.
103
+ prepatch, prerelease, or release. Default level is 'patch'.
104
104
  Only one version may be specified.
105
105
 
106
106
  --preid <identifier>
@@ -141,6 +141,8 @@ A "version" is described by the `v2.0.0` specification found at
141
141
  <https://semver.org/>.
142
142
 
143
143
  A leading `"="` or `"v"` character is stripped off and ignored.
144
+ Support for stripping a leading "v" is kept for compatibility with `v1.0.0` of the SemVer
145
+ specification but should not be used anymore.
144
146
 
145
147
  ## Ranges
146
148
 
@@ -237,6 +239,13 @@ $ semver 1.2.4-beta.0 -i prerelease
237
239
  1.2.4-beta.1
238
240
  ```
239
241
 
242
+ To get out of the prerelease phase, use the `release` option:
243
+
244
+ ```bash
245
+ $ semver 1.2.4-beta.1 -i release
246
+ 1.2.4
247
+ ```
248
+
240
249
  #### Prerelease Identifier Base
241
250
 
242
251
  The method `.inc` takes an optional parameter 'identifierBase' string
@@ -415,10 +424,10 @@ Strict-mode Comparators and Ranges will be strict about the SemVer
415
424
  strings that they parse.
416
425
 
417
426
  * `valid(v)`: Return the parsed version, or null if it's not valid.
418
- * `inc(v, release, options, identifier, identifierBase)`:
427
+ * `inc(v, releaseType, options, identifier, identifierBase)`:
419
428
  Return the version incremented by the release
420
429
  type (`major`, `premajor`, `minor`, `preminor`, `patch`,
421
- `prepatch`, or `prerelease`), or null if it's not valid
430
+ `prepatch`, `prerelease`, or `release`), or null if it's not valid
422
431
  * `premajor` in one call will bump the version up to the next major
423
432
  version and down to a prerelease of that major version.
424
433
  `preminor`, and `prepatch` work the same way.
@@ -426,6 +435,7 @@ strings that they parse.
426
435
  same as `prepatch`. It increments the patch version and then makes a
427
436
  prerelease. If the input version is already a prerelease it simply
428
437
  increments it.
438
+ * `release` will remove any prerelease part of the version.
429
439
  * `identifier` can be used to prefix `premajor`, `preminor`,
430
440
  `prepatch`, or `prerelease` version increments. `identifierBase`
431
441
  is the base to be used for the `prerelease` identifier.
@@ -477,7 +487,7 @@ strings that they parse.
477
487
 
478
488
  ### Ranges
479
489
 
480
- * `validRange(range)`: Return the valid range or null if it's not valid
490
+ * `validRange(range)`: Return the valid range or null if it's not valid.
481
491
  * `satisfies(version, range)`: Return true if the version satisfies the
482
492
  range.
483
493
  * `maxSatisfying(versions, range)`: Return the highest version in the list
@@ -3,6 +3,8 @@
3
3
  // Exits successfully and prints matching version(s) if
4
4
  // any supplied version is valid and passes all tests.
5
5
 
6
+ 'use strict'
7
+
6
8
  const argv = process.argv.slice(2)
7
9
 
8
10
  let versions = []
@@ -61,6 +63,7 @@ const main = () => {
61
63
  switch (argv[0]) {
62
64
  case 'major': case 'minor': case 'patch': case 'prerelease':
63
65
  case 'premajor': case 'preminor': case 'prepatch':
66
+ case 'release':
64
67
  inc = argv.shift()
65
68
  break
66
69
  default:
@@ -149,7 +152,7 @@ Options:
149
152
  -i --increment [<level>]
150
153
  Increment a version by the specified level. Level can
151
154
  be one of: major, minor, patch, premajor, preminor,
152
- prepatch, or prerelease. Default level is 'patch'.
155
+ prepatch, prerelease, or release. Default level is 'patch'.
153
156
  Only one version may be specified.
154
157
 
155
158
  --preid <identifier>