Skip to content

docs: update build - #335

Merged
16bit-ykiko merged 4 commits into
mainfrom
update-docs2
Dec 31, 2025
Merged

16bit-ykiko merged 4 commits into
mainfrom
update-docs2

Conversation

@16bit-ykiko

@16bit-ykiko 16bit-ykiko commented Dec 30, 2025 •

Copy link
Copy Markdown
Member

Summary by CodeRabbit

  • Bug Fixes

    • Fixed Windows executable path resolution in tests.
  • Chores

    • Simplified CI build/test commands and job invocations.
    • Reorganized project configuration into named environments and a feature-driven build system.
    • Updated VSCode extension dev tooling and removed ESLint/linting setup.
  • Documentation

    • Rewrote Build-from-Source guides (EN/ZH) with pixi-based quick start and manual flows.
    • Added detailed docs for editor extensions (VSCode, Neovim, Zed).

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai

coderabbitai Bot commented Dec 30, 2025 •

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

This PR renames pixi-invoked tasks in CI workflows, restructures pixi.toml into environment- and feature-driven sections with many new task definitions, updates VSCode/extension build tooling, removes a VSCode ESLint config, adjusts Zed resource-dir handling, and adds Windows-specific executable path logic in tests.

Changes

Cohort / File(s) Summary
CI workflows
\.github/workflows/test-cmake.yml, \.github/workflows/test-xmake.yml
Changed workflow commands to call new pixi task names (e.g., ci-cmake-build → build ... ON, ci-cmake-test → test ${matrix.build_type}, ci-xmake-build → xmake ${matrix.build_type}).
Pixi manifest
pixi.toml
Replaced top-level [dependencies] with [environments]; added many [feature.*] blocks (build, targets, cmake/xmake tasks, test, package, node, format) and rewired task/activation/dependency definitions.
Tests
tests/conftest.py
Added import sys and Windows-specific executable resolution: append .exe when appropriate and prefer existing .exe path.
Documentation
docs/en/dev/build.md, docs/zh/dev/build.md, docs/en/dev/extension.md, docs/zh/dev/extension.md
Large documentation rewrites: emphasize pixi usage, add Quick Start/Manual Build/XMake guidance, new extension development docs for VSCode/Neovim/Zed, and updated LLVM guidance.
Editors — VSCode
editors/vscode/package.json, (deleted) editors/vscode/.eslintrc.json
Removed .eslintrc.json; updated package.json scripts (removed lint from pretest), removed lint script, and upgraded/removed several devDependencies (TypeScript, webpack, eslint tooling adjusted/removed).
Editors — Zed
editors/zed/src/clice.rs
Removed resource_dir field and related computation/validation; find_clice_binary now returns only path and language_server_command no longer passes --resource-dir.

Sequence Diagram(s)

(No sequence diagram generated.)

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

Poem

🐰
I nibble tasks and weave the trail,
Pixi maps now tell the tale,
Workflows shorter, manifests grown,
Windows finds its .exe home,
Hoppy builds and carrots sown. 🥕

Pre-merge checks and finishing touches

❌ Failed checks (2 warnings)
Check name Status Explanation Resolution
Title check ⚠️ Warning The PR title 'docs: update build' is vague and does not accurately reflect the scope of changes, which include significant modifications to pixi.toml, workflow files, test fixtures, VSCode editor configuration, and Zed extension code—far beyond just documentation updates. Revise the title to accurately reflect all major changes, such as 'refactor: restructure pixi environments and build tasks' or 'feat: modernize build system and editor integration' to properly convey the comprehensive nature of this changeset.
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (1 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
✨ Finishing touches
  • 📝 Generate docstrings

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.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🧹 Nitpick comments (1)
pixi.toml (1)

107-112: Consider propagating build type to test task for consistency.

The test task accepts type argument and passes it to unit-test and integration-test, but doesn't include the ci flag that was used during build. If the CI environment affects test behavior or paths, this could lead to inconsistencies.

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between c6d87cc and 054765e.

⛔ Files ignored due to path filters (1)
  • pixi.lock is excluded by !**/*.lock
📒 Files selected for processing (4)
  • .github/workflows/test-cmake.yml
  • .github/workflows/test-xmake.yml
  • pixi.toml
  • tests/conftest.py
🧰 Additional context used
🪛 Ruff (0.14.10)
tests/conftest.py

46-46: Undefined name path

(F821)


47-47: Undefined name path

(F821)


47-47: Undefined name path

(F821)


48-48: Undefined name path

(F821)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (7)
  • GitHub Check: xmake / build (ubuntu-24.04, debug)
  • GitHub Check: cmake / build (macos-15, Debug)
  • GitHub Check: xmake / build (ubuntu-24.04, releasedbg)
  • GitHub Check: cmake / build (ubuntu-24.04, Debug)
  • GitHub Check: xmake / build (macos-15, releasedbg)
  • GitHub Check: xmake / build (windows-2025, releasedbg)
  • GitHub Check: cmake / build (windows-2025, RelWithDebInfo)
🔇 Additional comments (5)
tests/conftest.py (1)

2-2: LGTM!

The sys import is correctly added and is necessary for the Windows platform check below.

pixi.toml (4)

17-22: Clean environment organization.

The feature-based environment structure is well-organized, providing clear separation between build, development, packaging, formatting, and node environments. This improves maintainability over the previous flat structure.


163-173: Good use of inputs/outputs for incremental builds.

The install-docs and install-vscode tasks properly define inputs and outputs for dependency caching, which enables pixi to skip redundant pnpm install runs when dependencies haven't changed.


186-197: Formatting tasks are comprehensive and well-structured.

The format feature covers all relevant file types with appropriate tools. The exclusion of lock files (package-lock.json, pnpm-lock.yaml) from formatting is a good practice.


96-105: Unix-style paths work cross-platform in this project.

The test tasks already run on Windows as part of the CI pipeline (windows-2025 in test-cmake.yml), and no platform-specific path overrides are needed. Forward slashes are supported in modern shells and pixi handles them transparently.

Likely an incorrect or invalid review comment.

Comment thread .github/workflows/test-cmake.yml Outdated
Comment thread .github/workflows/test-xmake.yml
Comment thread tests/conftest.py Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 2

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 4c892e7 and f3867f4.

⛔ Files ignored due to path filters (1)
  • editors/vscode/pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (8)
  • docs/en/dev/build.md
  • docs/en/dev/extension.md
  • docs/zh/dev/build.md
  • docs/zh/dev/extension.md
  • editors/vscode/.eslintrc.json
  • editors/vscode/package.json
  • editors/zed/src/clice.rs
  • pixi.toml
💤 Files with no reviewable changes (1)
  • editors/vscode/.eslintrc.json
✅ Files skipped from review due to trivial changes (1)
  • docs/en/dev/extension.md
🧰 Additional context used
🪛 LanguageTool
docs/en/dev/build.md

[grammar] ~3-~3: Ensure spelling is correct
Context: ...umes your local environment matches the prebuild environment closely (especially when en...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)


[grammar] ~75-~75: Ensure spelling is correct
Context: ... | ### XMake Build clice with: ```bash xmake f -c --mode=releas...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

🪛 markdownlint-cli2 (0.18.1)
docs/zh/dev/build.md

7-7: Link fragments should be valid

(MD051, link-fragments)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (8)
  • GitHub Check: xmake / build (windows-2025, releasedbg)
  • GitHub Check: cmake / build (windows-2025, RelWithDebInfo)
  • GitHub Check: cmake / build (ubuntu-24.04, Debug)
  • GitHub Check: xmake / build (ubuntu-24.04, releasedbg)
  • GitHub Check: cmake / build (macos-15, Debug)
  • GitHub Check: xmake / build (macos-15, releasedbg)
  • GitHub Check: xmake / build (ubuntu-24.04, debug)
  • GitHub Check: xmake / build (macos-15, debug)
🔇 Additional comments (9)
editors/zed/src/clice.rs (2)

5-7: LGTM: Simplified CliceBinary struct.

The struct now only tracks the executable path, removing the resource_dir field. This simplification aligns with the removal of resource_dir handling throughout the extension.


10-41: This review comment is incorrect. The --resource-dir argument was never a valid CLI option for the clice binary. The clice binary initializes its resource directory automatically at startup from its executable path via fs::init_resource_dir(argv[0]). The resource_dir concept is internal to clice's compiler command building logic, not something LSP clients should pass as arguments. The current implementation passing only --mode and pipe is correct and consistent with the VSCode and Neovim extensions.

Likely an incorrect or invalid review comment.

editors/vscode/package.json (2)

146-146: LGTM: Pretest script simplified.

The removal of pnpm run lint from the pretest script is consistent with the removal of ESLint configuration from the project. The script now only compiles before running tests.


151-163: Both dependency updates are compatible with the current codebase.

The breaking changes in @types/node v25 and webpack-cli v6 do not impact this project:

  • webpack v5.104.1 meets webpack-cli v6's minimum requirement (5.82.0)
  • No deprecated webpack-cli commands (init, loader, plugin) are used
  • No webpack-dev-server v4 dependency exists
  • No deprecated Node.js APIs (SlowBuffer, etc.) are used

Minor note: Consider adding an explicit Node.js version constraint (e.g., .nvmrc or "engines" in package.json) since webpack-cli v6 requires Node.js ≥18.12.0, ensuring consistent developer environments.

pixi.toml (3)

17-22: LGTM: Well-structured environment definitions.

The environment blocks provide clear separation between build, test, package, format, and node workflows. This allows users to activate only the tools they need for their specific tasks.


67-112: LGTM: Well-structured cmake build and test tasks.

The task definitions properly chain dependencies and propagate arguments through the build pipeline. The use of depends-on with parameterized tasks allows flexible configuration of build types.


157-177: LGTM: Efficient Node.js task definitions with caching.

The install tasks properly utilize inputs and outputs for build caching, and the build/publish tasks correctly depend on their respective install tasks. The use of cwd ensures commands run in the correct subdirectories.

docs/zh/dev/extension.md (1)

1-70: All pixi tasks referenced in the documentation (install-vscode, build-vscode, publish-vscode) are properly defined in pixi.toml. No issues found.

docs/zh/dev/build.md (1)

7-7: The link fragment is correct and will resolve properly.

The heading ## 🛠️ Manual Build generates the anchor ID manual-build in VitePress's default configuration. The markdown-it-anchor plugin (used by VitePress) strips emoji during slug generation, so the link reference #manual-build at line 7 correctly resolves to the Manual Build section at line 47.

Comment thread docs/en/dev/build.md
Comment thread docs/en/dev/build.md
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