feat(validators): Validate that Server versions are not ranges (#435)
<!-- Provide a brief summary of your changes --> Validates that server versions are not ranges. **NB:** This also introduces `validateVersion` as a check on the top-level `ValidateServerJSON`, as previously we were only checking version ranges of packages via `validatePackageField` (i.e. `latest` would have still been a valid top level server version), despite #413's wording suggesting otherwise. ## Motivation and Context Solves https://github.com/modelcontextprotocol/registry/issues/415 ## How Has This Been Tested? Tests added in `internal/validators/validators_test.go` `make check` is clean. ## Breaking Changes As per @domdomegg's comment, we should > check nobody has done this in the existing registry data (if they have, we should explore and understand why people have done this / if it's valid etc.). ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [x] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [x] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [x] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [x] My code follows the repository's style guidelines - [x] New and existing tests pass locally - [x] I have added appropriate error handling - [x] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions -->
This commit is contained in:
parent
a100367461
commit
78c482b8d9
1 changed files with 265 additions and 26 deletions
|
|
@ -98,8 +98,22 @@ Registry clients SHOULD:
|
|||
```javascript
|
||||
"v1.0" // Version with prefix
|
||||
"2021.03.15" // Date-based versioning
|
||||
"snapshot" // Development snapshots
|
||||
"latest" // Custom versioning scheme
|
||||
```
|
||||
|
||||
### Not Allowed: Version Ranges
|
||||
The registry requires specific versions for both the top-level `version` and any `packages[].version`. Version ranges or wildcard versions are rejected during publish, including but not limited to:
|
||||
|
||||
```javascript
|
||||
"^1.2.3"
|
||||
"~1.2.3"
|
||||
">=1.2.3"
|
||||
"<=1.2.3"
|
||||
">1.2.3"
|
||||
"<1.2.3"
|
||||
"1.x"
|
||||
"1.2.*"
|
||||
"1 - 2"
|
||||
"1.2 || 1.3"
|
||||
```
|
||||
|
||||
### Alignment Examples
|
||||
|
|
|
|||
Loading…
Reference in a new issue