Skip to content

Support crates.io publishing and update documentation#33

Merged
kunlinglio merged 4 commits into
masterfrom
dev
May 1, 2026
Merged

Support crates.io publishing and update documentation#33
kunlinglio merged 4 commits into
masterfrom
dev

Conversation

@kunlinglio
Copy link
Copy Markdown
Owner

No description provided.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Enables publishing the Path Server crate to crates.io and updates public-facing documentation to reflect installation and usage outside of VS Code/Zed.

Changes:

  • Add crates.io-related package metadata (homepage/keywords/exclude) and public links/docs updates.
  • Hide internal macros and re-exports from generated docs while keeping them usable.
  • Extend the release workflow with a crates.io publish job.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
src/logger.rs Hides exported logging macros from rustdoc to reduce public API surface.
src/lib.rs Adds crate-level docs and hides re-exports from rustdoc while preserving binary usage.
README.md Documents installation/usage for other LSP-capable editors and adds crates.io link.
Cargo.toml Adds crates.io metadata and excludes non-essential directories from the published package.
CHANGELOG.md Notes crates.io publishing addition under Unreleased.
.github/workflows/release.yaml Renames GitHub release job and adds crates.io publish job.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread Cargo.toml
keywords = ["lsp", "language-server", "path", "path-completion"]
license = "Apache-2.0"
readme = "README.md"
exclude = ["extensions/**", "assets/**", ".github/**", ".vscode/**"]
Copy link

Copilot AI May 1, 2026

Choose a reason for hiding this comment

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

exclude = ["extensions/**", "assets/**", ...] will omit the demo GIFs referenced by README.md (./assets/demo-*.gif). On crates.io this typically results in broken images in the rendered README. Either include the required assets in the published package, or update the README to use absolute URLs (e.g., raw GitHub links) so crates.io rendering remains correct.

Suggested change
exclude = ["extensions/**", "assets/**", ".github/**", ".vscode/**"]
exclude = ["extensions/**", ".github/**", ".vscode/**"]

Copilot uses AI. Check for mistakes.
Comment thread src/lib.rs
//!
//! **⚠️ WARNING: Internal API**
//!
//! This crate is primarily designed to be distributed as a standalone binary. And has no intention to maintain as a library dependency for other projects for now.
Copy link

Copilot AI May 1, 2026

Choose a reason for hiding this comment

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

The crate-level docs read awkwardly/grammatically incorrect: "This crate is primarily designed to be distributed as a standalone binary. And has no intention to maintain as a library dependency..." Consider rewriting as a single sentence (or otherwise polishing) since this will be shown prominently on docs.rs/crates.io.

Suggested change
//! This crate is primarily designed to be distributed as a standalone binary. And has no intention to maintain as a library dependency for other projects for now.
//! This crate is primarily intended to be distributed as a standalone binary and is not currently maintained as a library dependency for other projects.

Copilot uses AI. Check for mistakes.
uses: dtolnay/rust-toolchain@stable

- name: Install toml-cli
run: cargo install toml-cli
Copy link

Copilot AI May 1, 2026

Choose a reason for hiding this comment

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

For release reproducibility and to reduce supply-chain risk, consider pinning toml-cli to a specific version (and/or using --locked). Installing the latest toml-cli on every tag means a new upstream release could unexpectedly break this workflow at publish time.

Suggested change
run: cargo install toml-cli
run: cargo install toml-cli --version 0.2.3 --locked

Copilot uses AI. Check for mistakes.
Comment on lines +88 to +90
run: npm run build -- --target ${{ matrix.vscode_target }} -o
../../dist/path-server_vscode_${{ matrix.vscode_target }}_${{
github.ref_name }}.vsix
Copy link

Copilot AI May 1, 2026

Choose a reason for hiding this comment

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

The run: value is split across multiple lines without using a block scalar (|/>), which will insert newlines into the command. That will break the -o <output> argument (and also splits the ${{ github.ref_name }} expression), likely causing the packaging step to fail. Keep the command on one line, or use a run: | block with proper line continuations so the output path stays part of the same command string.

Suggested change
run: npm run build -- --target ${{ matrix.vscode_target }} -o
../../dist/path-server_vscode_${{ matrix.vscode_target }}_${{
github.ref_name }}.vsix
run: |
npm run build -- --target ${{ matrix.vscode_target }} -o \
../../dist/path-server_vscode_${{ matrix.vscode_target }}_${{ github.ref_name }}.vsix

Copilot uses AI. Check for mistakes.
@kunlinglio kunlinglio merged commit 4aa99ef into master May 1, 2026
9 checks passed
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.

2 participants