Four#270
Merged
Merged
Conversation
Add --dry-run flag to deploy command that validates WASM artifact path, wallet existence, network connectivity via Horizon, and estimates Soroban fees via RPC simulation — all without submitting any transaction. Prints a numbered 4-step deployment plan with pass/fail indicators, estimated fee, XLM balance, WASM hash, and actionable warnings. Exits cleanly so users can review before going live, reducing accidental mainnet deployments. Closes Nanle-code#240 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…data (Nanle-code#251) Extend TemplateEntry with optional license (SPDX identifier), repository, homepage, and documentation URL fields. All fields are serde-defaulted for backward compatibility with existing registries. Expose all four as CLI flags on `starforge template publish`. Display them in `template show` and the publish confirmation output so users can quickly assess template transparency and trustworthiness. Closes Nanle-code#251 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add `starforge plugin update [name]` subcommand that detects whether installed plugins need updating and upgrades them without a manual reinstall. - Adds optional `version` and `installed_at` fields to InstalledPlugin (serde-defaulted for backward compatibility) - For crates.io sources: runs `cargo install --force` - For other trusted sources: compares library mtime to last-install timestamp and refreshes the registry entry when newer - Local-path plugins are reported as unupdatable with guidance - Unknown/untrusted sources require --yes to proceed - Preserves trust level and source configuration across updates - Reports updated / skipped / failed counts with actionable messages Closes Nanle-code#245 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…e-code#248 Nanle-code#251 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
@Maxwell316 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! 🚀 |
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.
Pull Request: Feature Batch — Issues #240, #245, #248, #251
Summary
--dry-run) validates the full deployment path without submitting any transaction, printing an actionable deployment plan with fee estimates and warnings.license,repository,homepage, anddocumentationURL fields to template entries, exposed via CLI publish flags and shown intemplate show.starforge plugin update [name]to upgrade installed plugins from their registered sources without manual reinstalls.versionand version constraints, and checks thatcli_version_min <= cli_version_max— all with actionable error messages.Changes
src/commands/deploy.rs— closes #240--dry-runflag toDeployArgsrun_dry_run()function that runs 4 sequential checks:stellar contract deploycommand to runsrc/utils/templates.rs+src/commands/template.rs— closes #251, #248license,repository,homepage,documentationoptional fields toTemplateEntry(serde-defaulted for backward compatibility)--license,--repository,--homepage,--documentationflags onstarforge template publishtemplate showandtemplate publishoutputvalidate_template_structure_with_constraints()— the full audit entry-point used bypublish_template_versioned:README.md(actionable error)version,cli_version_min,cli_version_maxas valid semvercli_version_min > cli_version_maxmake_valid_template()test helper now createsREADME.mdsrc/plugins/registry.rs+src/commands/plugin.rs— closes #245version: Option<String>andinstalled_at: Option<String>toInstalledPlugin(serde-defaulted)install_plugin()now recordsinstalled_attimestamp (ISO-8601 UTC)Update { name: Option<String>, yes: bool }variant toPluginCommandsupdate()function:cargo install --forceinstalled_atand refreshes registry if newer--yesis passedTest Plan
cargo buildsucceeds without warningscargo test— all tests pass (no regressions)starforge deploy --wasm <file> --dry-run— prints plan, no transaction submittedstarforge template publish <path> --name t --description d --author a --license MIT --repository https://github.com/org/repo— stores and displays metadatastarforge template show <name>— displays license/repository/homepage/docsstarforge template publish <path> --name t --description d --author awith no README.md — fails with actionable errorstarforge plugin update— checks all plugins and reports statusstarforge plugin update <name>— updates single named plugincloses #240
closes #245
closes #248
closes #251