Skip to content

chore: remove the legacy xano command - #206

Open
MihalyToth20 wants to merge 3 commits into
mainfrom
dev
Open

chore: remove the legacy xano command#206
MihalyToth20 wants to merge 3 commits into
mainfrom
dev

Conversation

@MihalyToth20

@MihalyToth20 MihalyToth20 commented Jun 8, 2026

Copy link
Copy Markdown
Collaborator

Summary by CodeRabbit

Release Notes

  • Chores
    • Removed legacy xano command from CLI.
    • caly-xano is now the primary command-line interface.

@changeset-bot

changeset-bot Bot commented Jun 8, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: fa7b3c5

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@calycode/cli Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@coderabbitai

coderabbitai Bot commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Walkthrough

This PR removes legacy xano command support from the CLI package. Changes include a changeset entry documenting the removal, deletion of the legacy-xano esbuild entry point, removal of the xano bin command from package.json, cleanup of the build configuration, and removal of the postject dependency.

Changes

Remove legacy xano command support

Layer / File(s) Summary
Release documentation
.changeset/cruel-rings-play.md
Changeset documents the patch bump for @calycode/cli and describes removal of legacy xano command handling to prevent CLI naming collisions.
Build and package configuration cleanup
packages/cli/esbuild.config.ts, packages/cli/package.json
Esbuild config removes legacy-xano entry point and reformats buildEnvDefines with multi-line environment variable definitions. Package.json removes the xano bin entry, drops the postject dev dependency, and narrows the build:chmod script to only chmod the active dist/index.cjs bundle.

🎯 2 (Simple) | ⏱️ ~8 minutes

Possibly related PRs

  • calycode/xano-tools#188: Initiates the xanocaly-xano command migration and adds legacy xano command deprecation guards that this PR completes by removing the deprecated entrypoint and error handling entirely.

🐰 Legacy commands fade away,
New paths clearly marked today,
No more collision in the fray,
caly-xano leads the way! 🎯

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main objective of the changeset: removing the legacy xano command across multiple files.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch dev

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

packages/cli/esbuild.config.ts

Oops! Something went wrong! :(

ESLint: 9.39.4

Error: You are using an outdated version of the 'jiti' library. Please update to the latest version of 'jiti' to ensure compatibility and access to the latest features.
at loadTypeScriptConfigFileWithJiti (/node_modules/.pnpm/eslint@9.39.4_jiti@1.21.7/node_modules/eslint/lib/config/config-loader.js:152:9)
at async loadConfigFile (/node_modules/.pnpm/eslint@9.39.4_jiti@1.21.7/node_modules/eslint/lib/config/config-loader.js:266:11)
at async ConfigLoader.calculateConfigArray (/node_modules/.pnpm/eslint@9.39.4_jiti@1.21.7/node_modules/eslint/lib/config/config-loader.js:589:23)
at async #calculateConfigArray (/node_modules/.pnpm/eslint@9.39.4_jiti@1.21.7/node_modules/eslint/lib/config/config-loader.js:743:23)
at async Promise.all (index 0)
at async findFiles (/node_modules/.pnpm/eslint@9.39.4_jiti@1.21.7/node_modules/eslint/lib/eslint/eslint-helpers.js:635:25)
at async ESLint.lintFiles (/node_modules/.pnpm/eslint@9.39.4_jiti@1.21.7/node_modules/eslint/lib/eslint/eslint.js:1014:21)
at async Object.execute (/node_modules/.pnpm/eslint@9.39.4_jiti@1.21.7/node_modules/eslint/lib/cli.js:428:14)
at async main (/node_modules/.pnpm/eslint@9.39.4_jiti@1.21.7/node_modules/eslint/bin/eslint.js:175:19)

Warning

Review ran into problems

🔥 Problems

Stopped waiting for pipeline failures after 30000ms. One of your pipelines takes longer than our 30000ms fetch window to run, so review may not consider pipeline-failure results for inline comments if any failures occurred after the fetch window. Increase the timeout if you want to wait longer or run a @coderabbit review after the pipeline has finished.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@socket-security

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addedrollup-plugin-dts@​6.4.11001001008370
Addedstrip-ansi@​7.2.01001007382100
Addedtrash-cli@​6.0.0981007682100
Addedtsx@​4.22.41001008293100
Addedturbo@​2.9.161001008597100
Addedtailwindcss@​3.4.19981008798100
Addedtypescript@​5.9.3100100909590
Addedts-jest@​29.4.11971009493100
Addedrollup@​4.61.19710010099100

View full report

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
packages/cli/package.json (1)

45-56: ⚠️ Potential issue | 🟠 Major

Fix SEA bundling: postject is still required
packages/cli/build-sea.ts runs npx postject ... via execSync (lines 53-55) as part of "bundle:sea": "tsx build-sea.ts" (and "bundle"), so removing postject from packages/cli/package.json devDependencies will break the SEA injection step. Re-add postject (or change build-sea.ts to avoid using it).

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/cli/package.json` around lines 45 - 56, The SEA bundling step still
relies on running `npx postject` from build-sea.ts (the execSync call around the
`execSync` usage in build-sea.ts and the npm script "bundle:sea"), so restore
`postject` in packages/cli/package.json devDependencies (or alternatively
refactor build-sea.ts to remove the `execSync('npx postject ...')` call and
implement SEA injection natively). Specifically, either add `postject` back into
the "devDependencies" block of package.json so the `npx postject` call succeeds,
or edit build-sea.ts to replace the `execSync` call that invokes postject with a
direct implementation that performs the same injection so the package.json
change isn’t required.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.changeset/cruel-rings-play.md:
- Line 2: The changeset currently lists the `@calycode/cli` update as "patch" but
removing the xano CLI command is a breaking pre-1.0 change and must be released
as "minor"; update the entry for "`@calycode/cli`" in the
.changeset/cruel-rings-play.md file to use minor instead of patch so the release
follows the repo's pre-1.0 policy.

---

Outside diff comments:
In `@packages/cli/package.json`:
- Around line 45-56: The SEA bundling step still relies on running `npx
postject` from build-sea.ts (the execSync call around the `execSync` usage in
build-sea.ts and the npm script "bundle:sea"), so restore `postject` in
packages/cli/package.json devDependencies (or alternatively refactor
build-sea.ts to remove the `execSync('npx postject ...')` call and implement SEA
injection natively). Specifically, either add `postject` back into the
"devDependencies" block of package.json so the `npx postject` call succeeds, or
edit build-sea.ts to replace the `execSync` call that invokes postject with a
direct implementation that performs the same injection so the package.json
change isn’t required.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 5d950f12-00b8-46e7-aaf6-3a749282c5b1

📥 Commits

Reviewing files that changed from the base of the PR and between ac7b446 and fa7b3c5.

📒 Files selected for processing (4)
  • .changeset/cruel-rings-play.md
  • packages/cli/esbuild.config.ts
  • packages/cli/package.json
  • packages/cli/src/legacy-xano-command.ts
💤 Files with no reviewable changes (1)
  • packages/cli/src/legacy-xano-command.ts

@@ -0,0 +1,5 @@
---
"@calycode/cli": patch

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Use a minor changeset for this command removal.

Line 2 marks this as patch, but removing the xano command is a breaking CLI contract change and should follow the repo’s pre-1.0 policy as minor.

Suggested fix
-"`@calycode/cli`": patch
+"`@calycode/cli`": minor

Based on learnings, breaking changes for pre-1.0 internal packages in this repo are intentionally released as minor, and non-minor is treated as incorrect.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"@calycode/cli": patch
"`@calycode/cli`": minor
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.changeset/cruel-rings-play.md at line 2, The changeset currently lists the
`@calycode/cli` update as "patch" but removing the xano CLI command is a breaking
pre-1.0 change and must be released as "minor"; update the entry for
"`@calycode/cli`" in the .changeset/cruel-rings-play.md file to use minor instead
of patch so the release follows the repo's pre-1.0 policy.

Source: Learnings

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant