Skip to content

Feat/graphql versioning and cli migration notes - #1155

Merged
Nanle-code merged 4 commits into
Nanle-code:masterfrom
praizeD10:feat/graphql-versioning-and-cli-migration-notes
Oct 2, 2026
Merged

Nanle-code merged 4 commits into
Nanle-code:masterfrom
praizeD10:feat/graphql-versioning-and-cli-migration-notes

Conversation

@praizeD10

Copy link
Copy Markdown

Description

Brief description of what this PR does and why.

Closes #780
Closes #781

Type of Change

  • 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)
  • Documentation update

Changes Made

  • Change 1
  • Change 2
  • Change 3

Testing

How has this been tested?

Describe the tests you ran and how to reproduce them.

  • Unit tests added/updated
  • Integration tests added/updated
  • Manual testing performed

Test Coverage

Describe what scenarios have been tested:

  • Happy path:
  • Edge cases:
  • Error handling:

Code Quality Checklist

  • My code follows the style guidelines of this project (cargo fmt)
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings (cargo clippy -- -D warnings)
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • The CI checks pass (format, clippy, tests)

Breaking Changes

  • This PR introduces breaking changes

If checked, describe the breaking changes and migration path:

Documentation

  • README.md updated
  • DEVELOPER_GUIDE.md updated (if applicable)
  • API_REFERENCE.md updated (if applicable)
  • No documentation changes needed

Screenshots (if applicable)

Add screenshots or GIFs for UI changes.

Additional Context

Add any other context about the PR here.


Note: Make sure all tests pass locally before submitting:

cargo test
cargo fmt --all
cargo clippy -- -D warnings

Wraith Protocol Dev added 4 commits October 1, 2026 12:58
Nanle-code#781)

- Add GRAPHQL_SCHEMA_VERSIONING.md: 90-day deprecation SLA, versioning
  policy, deprecation process, worked example, and approvals required
- Link new policy from GRAPHQL_GUIDE.md (acceptance criteria requirement)
- Add src/graphql/schema_deprecations.rs: typed DeprecatedField registry
  with unit tests enforcing 90-day window and non-empty reasons
- Add SCHEMA_VERSION constant to src/graphql/schema.rs
- Add scripts/check-graphql-deprecations.sh: CI lint that fails when a
  deprecated field is removed before its earliest_removal date elapses
- Add .github/workflows/graphql-schema-lint.yml: required CI job running
  the deprecation-window check on every src/graphql/** change
- Add GraphQL breaking-change checklist to .github/pull_request_template.md

Closes Nanle-code#781
…anle-code#780)

- Add src/utils/cli_migration_notes.rs: core diff engine and markdown
  renderer; HUMAN_REVIEW_BANNER constant is unconditional and prepended
  by render_migration_notes() in every code path
- Add src/commands/migrate_notes.rs: 'starforge migrate-notes' subcommand
  with generate / snapshot / diff / docs sub-subcommands; docs subcommand
  embeds the maintainer workflow doc via include_str!
- Wire MigrateNotes into src/main.rs Commands enum and dispatch match
- Register cli_migration_notes in src/utils/mod.rs
- Register migrate_notes in src/commands/mod.rs
- Add docs/MIGRATION_NOTES_WORKFLOW.md: step-by-step maintainer workflow
  covering when to run, how to review, where to publish, snapshot format
- Add tests/fixtures/migrate_notes/{before,after}.json: canonical fixture
  pair with command rename (network-info→network show), flag rename
  (--wallet-name→--name), flag became-required (deploy --network),
  flag rename (--dry-run→--simulate), config key rename, type change
- Add tests/cli_migration_notes.rs: integration tests asserting all
  detected changes, banner always present, version headers, section content

Closes Nanle-code#780
…dency

Pre-existing issues inherited from upstream/master that blocked cargo fmt:
- Remove duplicate tokio-postgres entry in Cargo.toml (was at lines 105 and 146)
- Fix invalid let...else syntax in src/utils/soroban.rs (missing match arm comma)
- Reformat upstream files to satisfy cargo fmt --all --check

None of these changes affect feature logic; all are formatting and
manifest corrections required for CI to pass.
…vert test patch in schema_deprecations

- Cargo.lock regenerated after the duplicate tokio-postgres entry was
  removed from Cargo.toml; dependency graph now resolves correctly
- src/graphql/schema_deprecations.rs: revert temporary lint-verification
  test entry (the empty DEPRECATED_FIELDS registry is the correct state)
@praizeD10
praizeD10 force-pushed the feat/graphql-versioning-and-cli-migration-notes branch from c52c970 to cd2ca4f Compare October 1, 2026 14:09
@drips-wave

drips-wave Bot commented Oct 1, 2026

Copy link
Copy Markdown

@praizeD10 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! 🚀

Learn more about application limits

Comment on lines +20 to +40
name: GraphQL Schema Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Make lint script executable
run: chmod +x scripts/check-graphql-deprecations.sh

- name: Check GraphQL deprecation windows
run: bash scripts/check-graphql-deprecations.sh

- name: Verify schema_deprecations.rs compiles
# Compile only the graphql module to catch any Rust errors in the
# deprecation registry before they reach the main CI build job.
uses: dtolnay/rust-toolchain@stable

- name: Install system dependencies
run: sudo apt-get update && sudo apt-get install -y libudev-dev

- name: Compile graphql module (deprecation registry check)
run: cargo check --locked 2>&1 | grep -E "^error" && exit 1 || true
@praizeD10

Copy link
Copy Markdown
Author

@Manuelshub @Nanle-code please merge and assign points

@Nanle-code
Nanle-code merged commit 4f2dc6c into Nanle-code:master Oct 2, 2026
22 of 58 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

3 participants