Skip to content
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
182 changes: 182 additions & 0 deletions specifications/14-constraint-semver-operators.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
}
]
}
]
}
]
},
Expand All @@ -214,6 +286,16 @@
"toggleName": "F8.semverEQ",
"expectedResult": true
},
{
"description": "F8.semverEQ should be enabled for metadata",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"description": "F8.semverEQ should be enabled for metadata",
"description": "F8.semverEQ should ignore metadata and compare only semver",

I understand SemVer 2.0.0 defines precedence (you should ignore metadata for precedence comparison), but it doesn't say anything about equality.

This gives us:

  • version identity/string equality: 1.2.2+foo != 1.2.2
  • SemVer precedence comparison (ignoring metadata): compare(1.2.2+foo, 1.2.2) == 0

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point. We do only want the SemVer precedence comparison then is my understanding here? @sighphyre

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@gastonfournier with "compare(1.2.2+foo, 1.2.2) == 0" are you suggesting that we do not take metadata into consideration when establishing equality?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this is horribly debatable but I agree with Gaston here: 1.1.1+foo == 1.1.1

For no other reason than if you force an exact match here then you can get into a weird place where two semantic versions do not satisfy any of A >= B, A > B, A == B, A < B or A <=B... which... is weird

No idea how SDKs are going to handle this, so should be funnn to roll this out

"context": {
"properties": {
"version": "1.2.2+metadata"
}
},
"toggleName": "F8.semverEQ",
"expectedResult": true
},
{
"description": "F8.semverEQ should be disabled",
"context": {
Expand Down Expand Up @@ -244,6 +326,16 @@
"toggleName": "F8.semverGT",
"expectedResult": false
},
{
"description": "F8.semverGT should not be enabled for metadata",
Comment thread
daveleek marked this conversation as resolved.
Outdated
"context": {
"properties": {
"version": "1.2.2+metadata"
}
},
"toggleName": "F8.semverGT",
"expectedResult": true
},
{
"description": "F8.semverGTE should be enabled",
"context": {
Expand Down Expand Up @@ -294,6 +386,16 @@
"toggleName": "F8.semverLT",
"expectedResult": false
},
{
"description": "F8.semverLT should be disabled for metadata",
Comment thread
daveleek marked this conversation as resolved.
Outdated
"context": {
"properties": {
"version": "1.2.2+metadata"
}
},
"toggleName": "F8.semverLT",
"expectedResult": false
},
{
"description": "F8.semverLTE should be enabled",
"context": {
Expand Down Expand Up @@ -453,6 +555,86 @@
},
"toggleName": "F8.invalidSemverWithLeadingV",
"expectedResult": false
},
{
"description": "F8.semverMetadataEQ should be enabled for no metadata",
Comment thread
daveleek marked this conversation as resolved.
Outdated
"context": {
"properties": {
"version": "1.2.2"
}
},
"toggleName": "F8.semverMetadataEQ",
"expectedResult": true
},
{
"description": "F8.semverMetadataEQ should be enabled for metadata.1",
Comment thread
daveleek marked this conversation as resolved.
Outdated
"context": {
"properties": {
"version": "1.2.2+metadata.1"
}
},
"toggleName": "F8.semverMetadataEQ",
"expectedResult": true
},
{
"description": "F8.semverMetadataEQ should be enabled for metadata",
Comment thread
daveleek marked this conversation as resolved.
Outdated
"context": {
"properties": {
"version": "1.2.2+metadata"
}
},
"toggleName": "F8.semverMetadataEQ",
"expectedResult": true
},
{
"description": "F8.semverPreReleaseMetadataEQ should be enabled for no metadata",
Comment thread
daveleek marked this conversation as resolved.
Outdated
"context": {
"properties": {
"version": "1.2.2-alpha.1"
}
},
"toggleName": "F8.semverPreReleaseMetadataEQ",
"expectedResult": true
},
{
"description": "F8.semverPreReleaseMetadataEQ should be enabled for metadata.1",
Comment thread
daveleek marked this conversation as resolved.
Outdated
"context": {
"properties": {
"version": "1.2.2-alpha.1+metadata.1"
}
},
"toggleName": "F8.semverPreReleaseMetadataEQ",
"expectedResult": true
},
{
"description": "F8.semverPreReleaseMetadataEQ should be enabled for metadata",
Comment thread
daveleek marked this conversation as resolved.
Outdated
"context": {
"properties": {
"version": "1.2.2-alpha.1+metadata"
}
},
"toggleName": "F8.semverPreReleaseMetadataEQ",
"expectedResult": true
},
{
"description": "F8.semverPreReleaseMetadataLT should not be enabled for no metadata",
Comment thread
daveleek marked this conversation as resolved.
Outdated
"context": {
"properties": {
"version": "1.2.2-alpha.1"
}
},
"toggleName": "F8.semverPreReleaseMetadataLT",
"expectedResult": false
},
{
"description": "F8.semverPreReleaseMetadataGT should not be enabled for higher metadata",
Comment thread
daveleek marked this conversation as resolved.
Outdated
"context": {
"properties": {
"version": "1.2.2-alpha.1+metadata.2"
}
},
"toggleName": "F8.semverPreReleaseMetadataGT",
"expectedResult": false
}
]
}
Loading