Description
We have approval from the codeowners of diff and cli.
More details here:
asyncapi/diff#226
#2251
We are proceeding with the merger.
Migrate @asyncapi/diff into asyncapi/cli as packages/diff/.
We will assess whether any changes are needed so the library fits the CLI repo. If a breaking change is needed, we will bump the major version. We did this for @asyncapi/optimizer when it moved into CLI, so it could align with how the CLI works.
Action items
Out of scope: Archiving the diff repo.
Spec
The reason we are consolidating these repos and the broader community goal of auditing, is to improve repo health and maintainability, bring on more maintainers, and eventually reduce maintainer burnout.
As part of that, we are adding specs in these repos. Specs act as a source of truth for contributors, and more importantly give AI context about the package. That should help anyone developing here, whatever approach they follow: pure vibe coding, pure spec-driven, or a mix of both.
Notes on references inside cli
What does need updating: root package.json currently has "@asyncapi/diff": "^0.5.0" (npm). After migration it should use the local workspace package, so builds/tests resolve to packages/diff instead of registry.npmjs.org.
The CLI diff command currently imports from @asyncapi/diff/lib/asyncapidiff. After the move, use the normal package export instead.
cli/openapi.yaml is the API spec for the CLI's server-api (it documents a /diff endpoint). It currently links to the standalone asyncapi/diff GitHub repo. Update that link, and other docs/README links, to the monorepo path.
Check Docker and the GitHub Action image. If they need changes for diff.
The CLI has a shared output / error-code convention. Assess how diff (the library and the asyncapi diff command) should follow that, same as we did for optimizer.
References
Description
We have approval from the codeowners of
diffandcli.More details here:
asyncapi/diff#226
#2251
We are proceeding with the merger.
Migrate
@asyncapi/diffintoasyncapi/cliaspackages/diff/.We will assess whether any changes are needed so the library fits the CLI repo. If a breaking change is needed, we will bump the major version. We did this for
@asyncapi/optimizerwhen it moved into CLI, so it could align with how the CLI works.Action items
cli(packages/diff/)turbo.json/ monorepo wiring for the new package"@asyncapi/diff": "^0.5.0")package.json(repository URL and other related fields as needed)clidiff(see below)diffrepo and its code. Explore it and note anything else we should be aware of before/during the movediffaligns with the CLI repo. If a breaking change is needed, bump the major version (same as optimizer)diffcommand and server-api/diffso they use the workspace package after the movediffpackage tests run incli, and check that existing CLIdiffand server-api tests still pass@asyncapi/diffpublishes fromcli(update the release pipeline so it can releasediff)Out of scope: Archiving the diff repo.
Spec
The reason we are consolidating these repos and the broader community goal of auditing, is to improve repo health and maintainability, bring on more maintainers, and eventually reduce maintainer burnout.
As part of that, we are adding specs in these repos. Specs act as a source of truth for contributors, and more importantly give AI context about the package. That should help anyone developing here, whatever approach they follow: pure vibe coding, pure spec-driven, or a mix of both.
Notes on references inside
cliWhat does need updating: root
package.jsoncurrently has"@asyncapi/diff": "^0.5.0"(npm). After migration it should use the local workspace package, so builds/tests resolve topackages/diffinstead of registry.npmjs.org.The CLI
diffcommand currently imports from@asyncapi/diff/lib/asyncapidiff. After the move, use the normal package export instead.cli/openapi.yamlis the API spec for the CLI's server-api (it documents a/diffendpoint). It currently links to the standaloneasyncapi/diffGitHub repo. Update that link, and other docs/README links, to the monorepo path.Check Docker and the GitHub Action image. If they need changes for
diff.The CLI has a shared output / error-code convention. Assess how
diff(the library and theasyncapi diffcommand) should follow that, same as we did for optimizer.References
@asyncapi/openapi-schema-parserinto theparser-jsopenapi-schema-parser#326