Deployment manifest standardization#621
Open
Adeyemi-cmd wants to merge 2 commits into
Open
Conversation
|
@Adeyemi-cmd Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits. You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀 |
Contributor
|
@Adeyemi-cmd fix failing CI |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Close #562
PR Description
SC-W6-01: Deployment Manifest Standardization
Problem
Deploy scripts, the backend registry service, and contributors all consumed
different ad-hoc representations of deployed contract state. There was no
single artifact that guaranteed:
Solution
Introduce a canonical deployment manifest with JSON Schema validation.
Artifacts
documentation/manifest-schema.jsonscripts/deploy.shstellar contract install/deploy/init, fetchesget_deployment_metadata, and emits the manifest withsort_keys=Truescripts/testnet-upgrade-rehearsal.shdeployment-manifest.json(canonical) +rehearsal-artifact.json(supplementary)Tests
Rust (3 new tests in
metadata_test.rs):manifest_schema_fields_are_compatible— compile-time + runtime check that everyDeploymentMetadatafield maps to a manifest schema propertymanifest_schema_types_are_json_representable— ensures u32, Address, and BytesN types round-trip through JSONmanifest_schema_network_is_bound_by_contract_id— verifies contract_id uniquely identifies deploymentsBackend (11 new tests in
manifest.schema.unit.spec.ts):Documentation
deployment-playbook.md— added "Canonical deployment manifest" sectiondeployment-checklist.md— added "Manifest validation" checklist itemsTesting
cargo test -p quickex → 262 passed (0 regressions)
npx jest --config jest.unit.config.ts \
--testPathPattern="manifest.schema" → 11 passed