From 4f292c45ea15e25c25ec36990ba73741ea9b622f Mon Sep 17 00:00:00 2001 From: David Leek Date: Thu, 13 Aug 2026 14:56:08 +0200 Subject: [PATCH 01/12] chore: add semver spec for build metadata --- .../14-constraint-semver-operators.json | 182 ++++++++++++++++++ 1 file changed, 182 insertions(+) diff --git a/specifications/14-constraint-semver-operators.json b/specifications/14-constraint-semver-operators.json index d924b3d..a2fc640 100644 --- a/specifications/14-constraint-semver-operators.json +++ b/specifications/14-constraint-semver-operators.json @@ -200,6 +200,78 @@ ] } ] + }, + { + "name": "F8.semverMetadataEQ", + "description": "semver", + "enabled": true, + "strategies": [ + { + "name": "default", + "parameters": {}, + "constraints": [ + { + "contextName": "version", + "operator": "SEMVER_EQ", + "value": "1.2.2+metadata" + } + ] + } + ] + }, + { + "name": "F8.semverPreReleaseMetadataEQ", + "description": "semver", + "enabled": true, + "strategies": [ + { + "name": "default", + "parameters": {}, + "constraints": [ + { + "contextName": "version", + "operator": "SEMVER_EQ", + "value": "1.2.2-alpha.1+metadata" + } + ] + } + ] + }, + { + "name": "F8.semverPreReleaseMetadataLT", + "description": "semver", + "enabled": true, + "strategies": [ + { + "name": "default", + "parameters": {}, + "constraints": [ + { + "contextName": "version", + "operator": "SEMVER_LT", + "value": "1.2.2-alpha.1+metadata" + } + ] + } + ] + }, + { + "name": "F8.semverPreReleaseMetadataGT", + "description": "semver", + "enabled": true, + "strategies": [ + { + "name": "default", + "parameters": {}, + "constraints": [ + { + "contextName": "version", + "operator": "SEMVER_GT", + "value": "1.2.2-alpha.1+metadata.1" + } + ] + } + ] } ] }, @@ -214,6 +286,16 @@ "toggleName": "F8.semverEQ", "expectedResult": true }, + { + "description": "F8.semverEQ should be enabled for metadata", + "context": { + "properties": { + "version": "1.2.2+metadata" + } + }, + "toggleName": "F8.semverEQ", + "expectedResult": true + }, { "description": "F8.semverEQ should be disabled", "context": { @@ -244,6 +326,16 @@ "toggleName": "F8.semverGT", "expectedResult": false }, + { + "description": "F8.semverGT should not be enabled for metadata", + "context": { + "properties": { + "version": "1.2.2+metadata" + } + }, + "toggleName": "F8.semverGT", + "expectedResult": true + }, { "description": "F8.semverGTE should be enabled", "context": { @@ -294,6 +386,16 @@ "toggleName": "F8.semverLT", "expectedResult": false }, + { + "description": "F8.semverLT should be disabled for metadata", + "context": { + "properties": { + "version": "1.2.2+metadata" + } + }, + "toggleName": "F8.semverLT", + "expectedResult": false + }, { "description": "F8.semverLTE should be enabled", "context": { @@ -453,6 +555,86 @@ }, "toggleName": "F8.invalidSemverWithLeadingV", "expectedResult": false + }, + { + "description": "F8.semverMetadataEQ should be enabled for no metadata", + "context": { + "properties": { + "version": "1.2.2" + } + }, + "toggleName": "F8.semverMetadataEQ", + "expectedResult": true + }, + { + "description": "F8.semverMetadataEQ should be enabled for metadata.1", + "context": { + "properties": { + "version": "1.2.2+metadata.1" + } + }, + "toggleName": "F8.semverMetadataEQ", + "expectedResult": true + }, + { + "description": "F8.semverMetadataEQ should be enabled for metadata", + "context": { + "properties": { + "version": "1.2.2+metadata" + } + }, + "toggleName": "F8.semverMetadataEQ", + "expectedResult": true + }, + { + "description": "F8.semverPreReleaseMetadataEQ should be enabled for no metadata", + "context": { + "properties": { + "version": "1.2.2-alpha.1" + } + }, + "toggleName": "F8.semverPreReleaseMetadataEQ", + "expectedResult": true + }, + { + "description": "F8.semverPreReleaseMetadataEQ should be enabled for metadata.1", + "context": { + "properties": { + "version": "1.2.2-alpha.1+metadata.1" + } + }, + "toggleName": "F8.semverPreReleaseMetadataEQ", + "expectedResult": true + }, + { + "description": "F8.semverPreReleaseMetadataEQ should be enabled for metadata", + "context": { + "properties": { + "version": "1.2.2-alpha.1+metadata" + } + }, + "toggleName": "F8.semverPreReleaseMetadataEQ", + "expectedResult": true + }, + { + "description": "F8.semverPreReleaseMetadataLT should not be enabled for no metadata", + "context": { + "properties": { + "version": "1.2.2-alpha.1" + } + }, + "toggleName": "F8.semverPreReleaseMetadataLT", + "expectedResult": false + }, + { + "description": "F8.semverPreReleaseMetadataGT should not be enabled for higher metadata", + "context": { + "properties": { + "version": "1.2.2-alpha.1+metadata.2" + } + }, + "toggleName": "F8.semverPreReleaseMetadataGT", + "expectedResult": false } ] } From b6fa2aeeebf64d7d0af1864bf425b34fd572d78c Mon Sep 17 00:00:00 2001 From: David Leek Date: Thu, 13 Aug 2026 15:58:12 +0200 Subject: [PATCH 02/12] Update specifications/14-constraint-semver-operators.json MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Gastón Fournier --- specifications/14-constraint-semver-operators.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specifications/14-constraint-semver-operators.json b/specifications/14-constraint-semver-operators.json index a2fc640..4a31c4d 100644 --- a/specifications/14-constraint-semver-operators.json +++ b/specifications/14-constraint-semver-operators.json @@ -327,7 +327,7 @@ "expectedResult": false }, { - "description": "F8.semverGT should not be enabled for metadata", + "description": "F8.semverGT should be disabled if only metadata differs", "context": { "properties": { "version": "1.2.2+metadata" From 48d4384b25065a7c4c5f49c7f6ded414f6e8bac2 Mon Sep 17 00:00:00 2001 From: David Leek Date: Thu, 13 Aug 2026 15:58:23 +0200 Subject: [PATCH 03/12] Update specifications/14-constraint-semver-operators.json MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Gastón Fournier --- specifications/14-constraint-semver-operators.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specifications/14-constraint-semver-operators.json b/specifications/14-constraint-semver-operators.json index 4a31c4d..1697a41 100644 --- a/specifications/14-constraint-semver-operators.json +++ b/specifications/14-constraint-semver-operators.json @@ -387,7 +387,7 @@ "expectedResult": false }, { - "description": "F8.semverLT should be disabled for metadata", + "description": "F8.semverLT should be disabled if only metadata differs", "context": { "properties": { "version": "1.2.2+metadata" From c1ea7d89aa3c9188b6d751eab911bcccc8458c56 Mon Sep 17 00:00:00 2001 From: David Leek Date: Thu, 13 Aug 2026 15:58:33 +0200 Subject: [PATCH 04/12] Update specifications/14-constraint-semver-operators.json MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Gastón Fournier --- specifications/14-constraint-semver-operators.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specifications/14-constraint-semver-operators.json b/specifications/14-constraint-semver-operators.json index 1697a41..98aa7cb 100644 --- a/specifications/14-constraint-semver-operators.json +++ b/specifications/14-constraint-semver-operators.json @@ -557,7 +557,7 @@ "expectedResult": false }, { - "description": "F8.semverMetadataEQ should be enabled for no metadata", + "description": "F8.semverMetadataEQ should be enabled if only metadata differs", "context": { "properties": { "version": "1.2.2" From 85a8e4c85ccad0b2611c99ba8e5ae2c08433df39 Mon Sep 17 00:00:00 2001 From: David Leek Date: Thu, 13 Aug 2026 15:58:52 +0200 Subject: [PATCH 05/12] Update specifications/14-constraint-semver-operators.json MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Gastón Fournier --- specifications/14-constraint-semver-operators.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specifications/14-constraint-semver-operators.json b/specifications/14-constraint-semver-operators.json index 98aa7cb..b004e68 100644 --- a/specifications/14-constraint-semver-operators.json +++ b/specifications/14-constraint-semver-operators.json @@ -567,7 +567,7 @@ "expectedResult": true }, { - "description": "F8.semverMetadataEQ should be enabled for metadata.1", + "description": "F8.semverMetadataEQ should be enabled if only metadata differs and contains a dot", "context": { "properties": { "version": "1.2.2+metadata.1" From bf82e003c4ac89a1eb9a872ac6bcdf6246a3731c Mon Sep 17 00:00:00 2001 From: David Leek Date: Thu, 13 Aug 2026 15:59:02 +0200 Subject: [PATCH 06/12] Update specifications/14-constraint-semver-operators.json MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Gastón Fournier --- specifications/14-constraint-semver-operators.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specifications/14-constraint-semver-operators.json b/specifications/14-constraint-semver-operators.json index b004e68..b32b49d 100644 --- a/specifications/14-constraint-semver-operators.json +++ b/specifications/14-constraint-semver-operators.json @@ -587,7 +587,7 @@ "expectedResult": true }, { - "description": "F8.semverPreReleaseMetadataEQ should be enabled for no metadata", + "description": "F8.semverPreReleaseMetadataEQ should be enabled if only metadata differs", "context": { "properties": { "version": "1.2.2-alpha.1" From acbc58d13e14b3f73efa37628a6d4ffc0963ed85 Mon Sep 17 00:00:00 2001 From: David Leek Date: Thu, 13 Aug 2026 15:59:17 +0200 Subject: [PATCH 07/12] Update specifications/14-constraint-semver-operators.json MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Gastón Fournier --- specifications/14-constraint-semver-operators.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specifications/14-constraint-semver-operators.json b/specifications/14-constraint-semver-operators.json index b32b49d..806abda 100644 --- a/specifications/14-constraint-semver-operators.json +++ b/specifications/14-constraint-semver-operators.json @@ -597,7 +597,7 @@ "expectedResult": true }, { - "description": "F8.semverPreReleaseMetadataEQ should be enabled for metadata.1", + "description": "F8.semverPreReleaseMetadataEQ should be enabled if only metadata differs and contains a dot", "context": { "properties": { "version": "1.2.2-alpha.1+metadata.1" From 38897afd3fe03d86f8762bca040927f183d455f1 Mon Sep 17 00:00:00 2001 From: David Leek Date: Thu, 13 Aug 2026 15:59:36 +0200 Subject: [PATCH 08/12] Update specifications/14-constraint-semver-operators.json MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Gastón Fournier --- specifications/14-constraint-semver-operators.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specifications/14-constraint-semver-operators.json b/specifications/14-constraint-semver-operators.json index 806abda..334c823 100644 --- a/specifications/14-constraint-semver-operators.json +++ b/specifications/14-constraint-semver-operators.json @@ -577,7 +577,7 @@ "expectedResult": true }, { - "description": "F8.semverMetadataEQ should be enabled for metadata", + "description": "F8.semverMetadataEQ should be enabled if metadata matches", "context": { "properties": { "version": "1.2.2+metadata" From 358cb5e3661ea012d25d25e7bbf38cd3b9e0ef24 Mon Sep 17 00:00:00 2001 From: David Leek Date: Thu, 13 Aug 2026 15:59:46 +0200 Subject: [PATCH 09/12] Update specifications/14-constraint-semver-operators.json MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Gastón Fournier --- specifications/14-constraint-semver-operators.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specifications/14-constraint-semver-operators.json b/specifications/14-constraint-semver-operators.json index 334c823..b20e20a 100644 --- a/specifications/14-constraint-semver-operators.json +++ b/specifications/14-constraint-semver-operators.json @@ -607,7 +607,7 @@ "expectedResult": true }, { - "description": "F8.semverPreReleaseMetadataEQ should be enabled for metadata", + "description": "F8.semverPreReleaseMetadataEQ should be enabled if only metadata differs", "context": { "properties": { "version": "1.2.2-alpha.1+metadata" From 3e7e3c228d2b1aa918c801c1166e1822dc36549d Mon Sep 17 00:00:00 2001 From: David Leek Date: Thu, 13 Aug 2026 16:01:14 +0200 Subject: [PATCH 10/12] Update specifications/14-constraint-semver-operators.json MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Gastón Fournier --- specifications/14-constraint-semver-operators.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specifications/14-constraint-semver-operators.json b/specifications/14-constraint-semver-operators.json index b20e20a..54ac52d 100644 --- a/specifications/14-constraint-semver-operators.json +++ b/specifications/14-constraint-semver-operators.json @@ -617,7 +617,7 @@ "expectedResult": true }, { - "description": "F8.semverPreReleaseMetadataLT should not be enabled for no metadata", + "description": "F8.semverPreReleaseMetadataLT should be disabled as both are equal after discarding metadata", "context": { "properties": { "version": "1.2.2-alpha.1" From 7e71e5b2f37158637a8e212ae09c3bee0c2dacaa Mon Sep 17 00:00:00 2001 From: David Leek Date: Thu, 13 Aug 2026 16:01:21 +0200 Subject: [PATCH 11/12] Update specifications/14-constraint-semver-operators.json MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Gastón Fournier --- specifications/14-constraint-semver-operators.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specifications/14-constraint-semver-operators.json b/specifications/14-constraint-semver-operators.json index 54ac52d..6500aaa 100644 --- a/specifications/14-constraint-semver-operators.json +++ b/specifications/14-constraint-semver-operators.json @@ -627,7 +627,7 @@ "expectedResult": false }, { - "description": "F8.semverPreReleaseMetadataGT should not be enabled for higher metadata", + "description": "F8.semverPreReleaseMetadataGT should be disabled for higher metadata cause metadata is ignored and both are equal", "context": { "properties": { "version": "1.2.2-alpha.1+metadata.2" From c98550e8e31c98ebb799274ff3fe6b9835f78139 Mon Sep 17 00:00:00 2001 From: David Leek Date: Mon, 17 Aug 2026 13:17:19 +0200 Subject: [PATCH 12/12] chore: actually expect disabled when saying test is testing disabled --- specifications/14-constraint-semver-operators.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specifications/14-constraint-semver-operators.json b/specifications/14-constraint-semver-operators.json index 6500aaa..aef67b4 100644 --- a/specifications/14-constraint-semver-operators.json +++ b/specifications/14-constraint-semver-operators.json @@ -334,7 +334,7 @@ } }, "toggleName": "F8.semverGT", - "expectedResult": true + "expectedResult": false }, { "description": "F8.semverGTE should be enabled",