You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Implement #194: remove latest composer deps from default generated pipelines
This change removes `latest` from default composer dependencies in the generated CI matrix.
The rationale is that `latest` dependencies tend to break our builds, and we usually run @renovate-bot
or @dependabot on our repositories, keeping both `composer.json` and `composer.lock` fairly updated.
Because of this kind of disciplined approach, we can assume that `latest` dependencies are already
regularly tested by refreshing `composer.lock` regularly, and further testing with explicit
`composer update` is considered risky, because it moves into unexplored land, breaking builds that
are otherwise quite stable.
We also don't want to break builds by contributors, or builds that upgrade perfectly safe to upgrade
dependencies, just because a specific `latest` upstream dependency broke, and we didn't really touch
it.
The final objective is that CI can break, but only in commits that change `composer.json` and `composer.lock`,
and those are handled every day by automation.
Therefore, the default testing approach will cover `lowest` and `locked` dependencies, which both move
much less than `latest`, and don't cause instability.
Copy file name to clipboardExpand all lines: laminas-ci.schema.json
+5-5Lines changed: 5 additions & 5 deletions
Original file line number
Diff line number
Diff line change
@@ -24,7 +24,7 @@
24
24
],
25
25
"exclude": [
26
26
{
27
-
"name": "Codeception [8.2, latest]"
27
+
"name": "Codeception [8.2, lowest]"
28
28
}
29
29
],
30
30
"ignore_php_platform_requirements": {
@@ -281,7 +281,7 @@
281
281
"examples": [
282
282
[
283
283
{
284
-
"name": "Codeception [8.2, latest]"
284
+
"name": "Codeception [8.2, lowest]"
285
285
}
286
286
]
287
287
],
@@ -290,7 +290,7 @@
290
290
"title": "The job description to be excluded",
291
291
"examples": [
292
292
{
293
-
"name": "Codeception [8.2, latest]"
293
+
"name": "Codeception [8.2, lowest]"
294
294
}
295
295
],
296
296
"required": [
@@ -303,7 +303,7 @@
303
303
"description": "The name of the job to be excluded. Must be an exact match.",
304
304
"minLength": 1,
305
305
"examples": [
306
-
"Codeception [8.2, latest]"
306
+
"Codeception [8.2, lowest]"
307
307
]
308
308
}
309
309
},
@@ -368,7 +368,7 @@
368
368
"type": "string",
369
369
"enum": ["latest", "lowest", "locked", "*"],
370
370
"title": "The composer dependencies to be used",
371
-
"description": "The composer dependencies to be used. If the wildcard `*` is passed, a list of checks is created containing each `lowest` and `latest` composer dependencies.",
371
+
"description": "The composer dependencies to be used. If the wildcard `*` is passed, a list of checks is created containing each `lowest` and `locked` composer dependencies.",
0 commit comments