Repository navigation
RFC 0002: Versioning and downstream compatibility - #79
Swimburger merged 3 commits into
Conversation
srikrsna
left a comment
There was a problem hiding this comment.
Looks good, just left some minor comments.
| - **Generated code:** If a Forge change makes downstream code migrate, it is | ||
| breaking even when the spec and plugin still compile. | ||
|
|
||
| ## How cf uses Forge |
There was a problem hiding this comment.
I think we can remove this section, cf is just one of our users for our use case.
| Before Forge 1.0, compatible changes increment the patch version and breaking | ||
| changes increment the minor version. After 1.0, Forge follows normal semantic | ||
| versioning. |
There was a problem hiding this comment.
We should also be able to increment the minor version for new features like landing a new plugin before the major. We need not reserve it for just breaking changes.
Also, no need to change the RFC, but we should start following this once we start publishing.
| `Cargo.toml` is the source of the Forge version. The release process copies it to | ||
| the npm package and checks that the Git tag and `forge --version` match. |
There was a problem hiding this comment.
We should also document how the repo itself maintains versions. My take is between releases the repo will show the last released version.
| - **Specs:** A spec that Forge accepts keeps working with the same meaning. | ||
| Removing a supported OpenAPI shape or extension is breaking. Extension renames | ||
| first accept both names and give developers time to migrate. |
There was a problem hiding this comment.
I would lean on the normalize command for this going forward instead of accepting everything
| the interface between Forge and a plugin changes. | ||
|
|
||
| A change is breaking when a developer must change a spec or plugin, rebuild a | ||
| plugin, or migrate incompatible generated code. |
There was a problem hiding this comment.
Forge can be used as a rust crate too, so I think we should include that here.
Summary
cfpins and how it runs Forge during generationDraft for feedback under FORGE-4.
Decisions to review
Checks
pnpm check