ace-test-runner-e2e 0.42.0 → 0.43.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.
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a10bfe582cd05ba82acd9de7b3cde9164748ae79f10197839d30ce1be1d5aa08
|
|
4
|
+
data.tar.gz: 92cb523accd05c05fbe2e7c76c1778204fb048b9e1794b8956d225bc257f2779
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2bf18a436f8f4148db5acc308df5f2071803c173539a1f6b60c5b6dd631ed176fb3c9dce8ce265af0cc493b07160b59b9373e81af877331cddd21571721694ed
|
|
7
|
+
data.tar.gz: 7c0024804c817351a3dc980b71496ac2d010f28c626206c2def6dd32cce48f35e01d73a9fbf8fd805c4691a3fcf3f2054c56dec51dd877026b0f65594c5a1986
|
data/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.43.0] - 2026-10-05
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
- Frozen release manifests accept validated `runtime_dependencies` declarations for exact source-bound consumer edge verification. Missing required consumer declarations remain a proof failure.
|
|
14
|
+
|
|
10
15
|
## [0.42.0] - 2026-10-04
|
|
11
16
|
|
|
12
17
|
### Added
|
|
@@ -4,6 +4,7 @@ require "digest"
|
|
|
4
4
|
require "fileutils"
|
|
5
5
|
require "json"
|
|
6
6
|
require "rubygems/version"
|
|
7
|
+
require "rubygems/requirement"
|
|
7
8
|
|
|
8
9
|
module Ace
|
|
9
10
|
module Test
|
|
@@ -124,7 +125,7 @@ module Ace
|
|
|
124
125
|
label = "packages[#{index}]"
|
|
125
126
|
raise Invalid, "#{label} must be an object" unless entry.is_a?(Hash)
|
|
126
127
|
|
|
127
|
-
reject_unknown_keys!(entry, %w[name artifact_version source_sha supersedes], label)
|
|
128
|
+
reject_unknown_keys!(entry, %w[name artifact_version source_sha supersedes runtime_dependencies], label)
|
|
128
129
|
|
|
129
130
|
name = entry["name"]
|
|
130
131
|
unless name.is_a?(String) && name.match?(GEM_NAME_PATTERN)
|
|
@@ -134,9 +135,34 @@ module Ace
|
|
|
134
135
|
validate_exact_version!(entry["artifact_version"], "#{label}(#{name}) artifact_version")
|
|
135
136
|
validate_source_sha!(entry["source_sha"], "#{label}(#{name}) source_sha")
|
|
136
137
|
validate_supersedes!(entry["supersedes"], entry["artifact_version"], "#{label}(#{name})")
|
|
138
|
+
validate_runtime_dependencies!(entry["runtime_dependencies"], label) if entry.key?("runtime_dependencies")
|
|
137
139
|
name
|
|
138
140
|
end
|
|
139
141
|
|
|
142
|
+
# These are frozen source declarations, not requirements inferred
|
|
143
|
+
# from whatever a registry happened to return during the proof.
|
|
144
|
+
def validate_runtime_dependencies!(raw, label)
|
|
145
|
+
unless raw.is_a?(Hash)
|
|
146
|
+
raise Invalid, "#{label} runtime_dependencies must be an object"
|
|
147
|
+
end
|
|
148
|
+
raw.each do |name, requirements|
|
|
149
|
+
unless name.is_a?(String) && name.match?(GEM_NAME_PATTERN) &&
|
|
150
|
+
requirements.is_a?(Array) && !requirements.empty? &&
|
|
151
|
+
requirements.uniq.length == requirements.length
|
|
152
|
+
raise Invalid, "#{label} has invalid runtime dependency declaration"
|
|
153
|
+
end
|
|
154
|
+
requirements.each do |requirement|
|
|
155
|
+
parsed = requirement.is_a?(String) ? Gem::Requirement.new(requirement) : nil
|
|
156
|
+
canonical = parsed&.requirements&.map { |operator, version| "#{operator} #{version}" }
|
|
157
|
+
unless canonical == [requirement]
|
|
158
|
+
raise Invalid, "#{label} runtime dependency requirements must be canonical strings"
|
|
159
|
+
end
|
|
160
|
+
rescue ArgumentError
|
|
161
|
+
raise Invalid, "#{label} has invalid runtime dependency requirement"
|
|
162
|
+
end
|
|
163
|
+
end
|
|
164
|
+
end
|
|
165
|
+
|
|
140
166
|
def validate_exact_version!(raw, label)
|
|
141
167
|
unless raw.is_a?(String) && !raw.strip.empty?
|
|
142
168
|
raise Invalid, "#{label} must be an exact version string, got #{raw.inspect}"
|
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ace-test-runner-e2e
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.43.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Michal Czyz
|
|
8
8
|
bindir: exe
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date: 2026-10-
|
|
10
|
+
date: 2026-10-05 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
13
|
name: ace-support-cli
|