Skip to content

Releases

v0.5.7

Choose a tag to compare

@github-actions github-actions released this 30 Oct 16:06

What's Changed

  • fix(log): skip OSC 9;4 progress when stderr is not a terminal by @gw31415 in #73

Full Changelog: v0.5.6...v0.5.7

v0.5.6

Choose a tag to compare

@github-actions github-actions released this 30 Oct 14:08
4b6a4f2

What's Changed

  • ci(release): test against a pinned Neovim 0.12.5 by @gw31415 in #68
  • ci(release): mark published releases as latest by @gw31415 in #69
  • feat(generations): list and switch retained generations by @gw31415 in #70
  • chore(deps): bump actions/upload-artifact from 7.0.1 to 7.0.2 by @dependabot[bot] in #55
  • chore(deps): bump actions/download-artifact from 8.0.1 to 8.0.2 by @dependabot[bot] in #56
  • chore(deps): bump Swatinem/rust-cache from f0d9c3887740aee45f6153b24b3a6b815192ec16 to c8037a86dde8214a8310e9f54a8fc61ab362aa31 by @dependabot[bot] in #57
  • feat: retain 64 generations, keep generations in use, add --watch and rsplug.watch() by @gw31415 in #71

Full Changelog: v0.5.5...v0.5.6

v0.5.5

Choose a tag to compare

@github-actions github-actions released this 29 Oct 14:32
279d8cf

What's Changed

  • perf(runtime): cut rsplug's startup overhead (single source, no :packadd!) by @gw31415 in #64
  • chore(release): prepare v0.5.4 by @gw31415 in #65
  • fix(runtime): support Neovim 0.9 in the rtp loader by @gw31415 in #66
  • chore(release): prepare v0.5.5 by @gw31415 in #67

Full Changelog: v0.5.3...v0.5.5

v0.5.3

Choose a tag to compare

@github-actions github-actions released this 29 Oct 12:13
727444a

What's Changed

  • fix(install): 既存の generation を再利用するときも init.lua を指し直す by @gw31415 in #62
  • chore(release): prepare v0.5.3 by @gw31415 in #63

Full Changelog: v0.5.2...v0.5.3

v0.5.2

Choose a tag to compare

@github-actions github-actions released this 29 Oct 11:23
d9669ae

What's Changed

  • fix(on_map): 仮マッピングの退役でプラグインの本物のマッピングを消さない by @gw31415 in #58
  • chore(release): prepare v0.6.0 by @gw31415 in #59
  • chore(release): prepare v0.5.2 by @gw31415 in #61

Full Changelog: v0.5.1...v0.5.2

v0.5.1

Choose a tag to compare

@github-actions github-actions released this 29 Aug 14:48

Full Changelog: v0.5.0...v0.5.1

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 29 Aug 14:04
v0.5.0
dad95aa

What's Changed

  • chore(deps): bump actions/checkout from 5.1.0 to 7.0.1 by @dependabot[bot] in #43
  • chore(deps): bump actions/download-artifact from 6.0.0 to 8.0.1 by @dependabot[bot] in #44
  • chore(deps): bump actions/upload-artifact from 6.0.0 to 7.0.1 by @dependabot[bot] in #45
  • chore(deps): bump actions/attest-build-provenance from 2.4.0 to 4.1.1 by @dependabot[bot] in #46
  • refactor(cli): replace clap with usage-rs by @gw31415 in #52
  • feat(cli): add man and completion generation by @gw31415 in #53
  • chore(deps): bump actions/attest from 4.1.1 to 4.2.2 by @dependabot[bot] in #48
  • chore(deps): bump Swatinem/rust-cache from e18b497796c12c097a38f9edb9d0641fb99eee32 to f0d9c3887740aee45f6153b24b3a6b815192ec16 by @dependabot[bot] in #50
  • chore(deps): update Rust dependencies by @gw31415 in #54

New Contributors

Full Changelog: v0.4.0...v0.5.0

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 24 Jul 11:31
v0.4.0
df671a4

rsplug.nvim 0.4.0

Released 2026-07-24.

Highlights

  • Faster plugin installation and updates through parallel discovery, adaptive
    remote scheduling, snapshot catalog fast paths, and reuse of already-installed
    repositories.
  • Faster GitHub downloads with RSPLUG_GITHUB_TOKEN, API revision resolution,
    codeload tarballs, connection pooling, and adaptive concurrency.
  • More deterministic published pack directories: copy fallbacks no longer
    create hard-link aliases that can mutate an already-published snapshot.
  • Improved lazy-loading and runtime behavior, including cleaner trigger state,
    corrected Lua module roots, and more reliable plugin/dependency loading.
  • Clearer installer output with configuration summaries, fetch progress, build
    output, and actionable build errors.

Release and validation

  • All six workspace crates are published at version 0.4.0.
  • Release binaries are available for x86_64 and aarch64 Linux, x86_64 and
    aarch64 macOS, and x86_64 Windows.
  • Every binary archive includes version verification and is accompanied by
    SHA256SUMS and build provenance attestation.
  • The release workflow runs formatting, the full locked test suite, Clippy,
    package checks, and an immutable annotated-tag preflight before publication.

Upgrade notes

The configuration format remains compatible with the previous release. Existing
lock files can be reused; run your normal update command when you want to refresh
locked revisions.

See the full commit history
for implementation details.

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 14 Jul 08:57

Highlights

v0.3.0 is a substantial update to rsplug.nvim's installation, packaging, repository-resolution, and runtime-generation internals. It improves the reliability of repeated installs and updates while making large plugin sets faster to resolve and safer to publish atomically.

New features

Faster GitHub repository resolution and downloads

  • Added batched GitHub GraphQL revision resolution for GitHub repositories.
  • Pipelines revision resolution with repository fetching so network work can overlap instead of waiting for every lookup to finish first.
  • Keeps a per-repository ls-remote fallback for non-GitHub sources and for GitHub API/GraphQL failures.
  • Added the required GitHub User-Agent header to API requests.
  • Added a faster GitHub HTTPS download path using:
    • A shared reqwest::Client for connection pooling and HTTP/2 multiplexing.
    • GitHub's REST API and ls-remote fallback for revision resolution.
    • codeload.github.com tarball downloads, outside the GitHub API rate limit.
    • zlib-ng-backed decompression.
  • Added adaptive download concurrency that can reduce parallelism when the remote service reports errors.

Persistent plugin-list and snapshot metadata

  • Added persistent plugin-list blocks and snapshot manifests.
  • Snapshot state now records the inputs needed to identify and reuse a generated package reliably.
  • Repeated loads can reuse an existing snapshot without requiring the source repository's .git directory when it is not needed.
  • Added content-hash-based identity for tarball and generated content, avoiding collisions based only on repository paths.
  • Added canonical repository identity handling for lock keys and cache paths, including normalized GitHub and Git URL forms.

Atomic package publication

  • Package installation now builds into a staging generation and publishes it atomically.
  • A failed install no longer replaces the previously published working generation.
  • Added generation selection through the RSPLUG_GENERATION environment variable.
  • Cleaned up stale staging directories and improved reuse of an existing installed package.

More robust package merging and copying

  • Reworked pack copying to recursively merge directory contents instead of relying on symlink placement.
  • Added copy fallbacks for hard-link operations that cross filesystems.
  • Uses the platform's normal file-copy behavior on macOS, including APFS clone support where available.
  • Preserves .gitignore-ignored build artifacts when copying plugin contents.
  • Added the dotgit option to include a repository's .git directory in the generated pack when required.
  • Added safer handling for sealed-directory collisions and overlapping merge destinations.
  • Improved documentation-file handling by moving plugin documentation into the dedicated _rsplug:doc start plugin when appropriate.
  • Fixed merge normalization and source-name preservation across merged plugins.
  • Improved default merge behavior and restored the appropriate guard for optional plugins.

Configuration and lazy-loading improvements

  • Added explicit configuration IDs with validation while keeping plugin names optional.
  • Improved support for script-only configuration entries and anonymous script-only plugins.
  • Preserved the intended precedence when start = true is combined with a lazy-loading trigger.
  • Fixed lua_start script separators and runtime template generation.
  • Removed the unsupported sym option from the documented configuration surface.

Lock-file and garbage-collection improvements

  • Added lock-file reconstruction from the local plugin cache.
  • Added garbage-collection support for stale cache entries.
  • Improved lock-key normalization and conflict detection for equivalent repository URLs.

Reliability and bug fixes

  • Fixed a panic caused by attempting to unwrap a load context while an Arc reference was still alive.
  • Fixed revision state tracking when a revision is already resolved through the GraphQL path.
  • Fixed warnings from the GraphQL batch-resolution path being routed through the normal logger instead of directly to stderr.
  • Fixed duplicate and stale entries during manifest-driven package merging.
  • Fixed data loss when merging directory entries into an existing destination.
  • Fixed document stealing and package enumeration edge cases.
  • Fixed lazy-loading behavior around startup plugins and trigger precedence.
  • Improved terminal progress output for fetching, loading, updating, and installed-plugin summaries.
  • Updated the Rust toolchain to Rust 1.97.0.
  • Updated key dependencies, including toml_edit and reqwest.

Crate versions

All workspace crates are now published at 0.3.0:

  • rsplug
  • rsplug-adaptive-semaphore
  • rsplug-dag
  • rsplug-file-specifier
  • rsplug-walker
  • rsplug-fts

Verification

The release was verified with:

  • cargo fmt --all -- --check
  • cargo clippy --workspace --all-targets -- -D warnings
  • cargo test --workspace
  • GitHub Actions release builds for:
    • aarch64-apple-darwin
    • aarch64-unknown-linux-gnu
    • x86_64-apple-darwin
    • x86_64-pc-windows-msvc
    • x86_64-unknown-linux-gnu

Upgrade notes

Existing configuration files remain compatible. If you use cache or generated-pack automation, review the new RSPLUG_GENERATION behavior and the dotgit option. The new atomic publication path is designed to make interrupted or failed updates safe, so it is recommended to let rsplug manage generations rather than copying generated pack directories manually.

Full Changelog: v0.2.4...v0.3.0

v0.2.4

Choose a tag to compare

@github-actions github-actions released this 06 Jul 16:30
v0.2.4
4cf1d3d

v0.2.4

Features

  • GitHub token authentication: Set GITHUB_TOKEN or GH_TOKEN to
    authenticate GitHub API requests and avoid rate limits. Token lookup
    follows the gh CLI convention (GITHUB_TOKEN takes precedence over
    GH_TOKEN).
  • GitHub tarball fetch fallback: When a Git fetch hits GitHub's rate
    limit, rsplug automatically falls back to downloading the tarball
    archive.
  • Adaptive semaphore for fetch rate limiting: Fetch operations now use
    an adaptive concurrency limiter that backs off on rate-limit errors.
  • Dynamic loading bar width: The progress loading bar now adjusts its
    width to fit the terminal.
  • Improved cache fetch progress UI: Fetch stage progress reporting is
    now clearer.

Bug Fixes

  • -u alone no longer installs uninstalled repos: Running rsplug -u
    without --install no longer accidentally installs repos that were not
    yet installed.
  • Git dependency dep_name now uses repo basename: dep_name for Git
    URL dependencies is now consistently derived from the repo basename.
  • Readable source names in not-installed warnings: The "not installed"
    warning now shows human-readable source names instead of internal
    identifiers.

Internal

  • Snapshot cache infrastructure (source.git + per-snapshot worktrees) for
    stable plugin references across updates.
  • Plugin identity separated from absolute placement paths.
  • Config parse error messages improved.
  • Lua runtime style unified (single-quote, no-paren) across generated
    templates.

Full Changelog: v0.2.3...v0.2.4