Skip to content

Releases: StarryReverie/selector4nix

v0.10.0 Release

Choose a tag to compare

@github-actions github-actions released this 23 Aug 09:59

https://github.com/StarryReverie/selector4nix/blob/v0.10.0/CHANGELOG.md

What's Changed

New Contributors

Full Changelog: v0.9.1...v0.10.0

v0.9.1 Release

Choose a tag to compare

@github-actions github-actions released this 15 Aug 13:14

https://github.com/StarryReverie/selector4nix/blob/v0.9.1/CHANGELOG.md

What's Changed

  • chore(deps): bump Rust dependency minijinja to 2.22.0 by @renovate[bot] in #148
  • chore(deps): bump Rust dependency minijinja-autoreload to 2.22.0 by @renovate[bot] in #149
  • Add a workaround for harmonia when requesting NARs using chunked streaming by @StarryReverie in #150
  • chore(deps): bump Rust dependency minijinja-autoreload to 2.23.0 by @renovate[bot] in #154
  • chore(deps): bump Rust dependency clap to 4.6.6 by @renovate[bot] in #152
  • chore(deps): bump Node.js dependency vite to 8.2.1 by @renovate[bot] in #151
  • chore(deps): bump Rust dependency async-trait to 0.1.92 by @renovate[bot] in #155
  • Update substituter's status after acquiring a NAR stream by @StarryReverie in #158
  • chore(deps): bump Rust dependency moka to 0.12.16 by @renovate[bot] in #159
  • chore(deps): bump rust-futures monorepo to 0.3.34 by @renovate[bot] in #160
  • chore(deps): bump Rust dependency minijinja-autoreload to 2.24.0 by @renovate[bot] in #161
  • Add a workaround for ranged HTTP responses with 200 of subsequent chunks for harmonia by @StarryReverie in #163
  • Fix stateful parameters preserving and forgetting NAR URL's query parameters from upstream on cache miss by @StarryReverie in #164
  • Refactor by enforcing invariants of parsing NAR query parameters by @StarryReverie in #165

Full Changelog: v0.9.0...v0.9.1

v0.9.0 Release

Choose a tag to compare

@github-actions github-actions released this 04 Aug 03:04

https://github.com/StarryReverie/selector4nix/blob/v0.9.0/CHANGELOG.md

What's Changed

Full Changelog: v0.8.0...v0.9.0

v0.8.0 Release

Choose a tag to compare

@github-actions github-actions released this 17 Jul 12:14

Highlights

  • Concurrent chunked NAR transfer: NAR files are now fetched through multiple concurrent connections. This feature is enabled by default and transparently falls back to single-connection transfer for servers that do not support range requests. Credits to @mio-19 for the idea.
  • Status dashboard: The proxy's web interface now displays a live dashboard showing substituter availability, cache statistics, and current configuration.
  • Earlier substituter fallback: NAR file streaming now detects unavailable substituters sooner and falls back to alternatives without waiting for timeouts.

New Features

  • Added concurrent chunked NAR file transfer, enabled by default. Configurable via network.chunked_streaming, network.streaming_chunk_max_len, and network.streaming_window_max_len.
  • Added a dynamic status dashboard at the proxy's root URL.

Improvements

  • NAR file streaming falls back to alternative substituters earlier when the selected substituter becomes unavailable.

What's Changed

  • chore(deps): bump Rust dependency anyhow to 1.0.103 by @renovate[bot] in #79
  • chore(deps): bump Rust dependency arc-swap to 1.9.2 by @renovate[bot] in #80
  • feat(frontend): add dynamic status dashboard by @XYenon in #81
  • chore(deps): bump Rust dependency serde_json to 1.0.150 by @renovate[bot] in #82
  • Polish dashboard UI by @StarryReverie in #84
  • Deprecate build support by garnix by @StarryReverie in #85
  • Fallback earlier when streaming NAR file if selected substituter is already unavailable by @StarryReverie in #86
  • chore(deps): bump Rust dependency bytes to 1.12.1 by @renovate[bot] in #87
  • Refactor by extracting streaming client to subcrate by @StarryReverie in #88
  • Add concurrent chunked NAR file transfer by @StarryReverie in #89
  • Update flake inputs and bump Rust toolchain version to 1.96.1 by @StarryReverie in #90
  • Revert "chore: update flake inputs and bump Rust toolchain version to 1.96.1" by @StarryReverie in #91
  • Add configuration items for chunked NAR streaming by @StarryReverie in #92
  • chore(deps): bump Rust dependency toml to 1.1.3 by @renovate[bot] in #93
  • Enable all testcases from all crates in the workspace by @StarryReverie in #94
  • Add CONTRIBUTING.md, architecture, and conventions documentations by @StarryReverie in #96
  • chore(deps): bump Rust dependency which to 8.0.5 by @renovate[bot] in #95
  • chore(deps): bump Rust dependency clap to 4.6.2 by @renovate[bot] in #97
  • Refactor by unifying error handling and re-designing API by @StarryReverie in #100
  • chore(deps): bump Rust dependency tokio to 1.53.0 by @renovate[bot] in #98

Full Changelog: v0.7.0...v0.8.0

v0.7.0 Release

Choose a tag to compare

@github-actions github-actions released this 24 Jun 09:04

What's Changed

  • feat: carry credentials when downloading NAR files by @XYenon in #72
  • chore(deps): bump Rust dependency getset to 0.1.7 by @renovate[bot] in #71
  • chore(deps): bump Rust dependency which to 8.0.4 by @renovate[bot] in #73
  • chore(deps): bump Rust dependency bytes to 1.12.0 by @renovate[bot] in #74
  • chore(deps): update actions/checkout action to v7 by @renovate[bot] in #75
  • Passthrough
    curl and Nix client User-Agent to upstream substituters by @StarryReverie in #76
  • Enable __structuredAttrs for all derivations by @StarryReverie in #77
  • Apply NAR file streaming throttling per substituter host by @StarryReverie in #78

Full Changelog: v0.6.1...v0.7.0

v0.6.1 Release

Choose a tag to compare

@github-actions github-actions released this 08 Jun 13:44

What's Changed

  • chore(deps): bump Rust dependency which to 8.0.3 by @renovate[bot] in #69
  • Fix NAR info request timeout reported by Nix client by @StarryReverie in #70

Full Changelog: v0.6.0...v0.6.1

v0.6.0 Release

Choose a tag to compare

@github-actions github-actions released this 02 Jun 09:12

Highlights

  • Persistent query result caching: Query results can now be persisted to disk via the --cache-dir CLI flag or SELECTOR4NIX_CACHE_DIR environment variable, allowing cache survival across process restarts
  • Module support for persistent caching: Added enablePersistentCaching option to NixOS, nix-darwin, and Home Manager modules
  • Internal refactoring: Ongoing refactoring of the internal architecture to improve long-term maintainability
  • System testing: Added system tests for cache persistence, and parallelized the CI test workflow for faster feedback

New Features

  • Added optional persistent caching for NAR info and NAR file location query results, configurable via --cache-dir flag, SELECTOR4NIX_CACHE_DIR environment variable, or the enablePersistentCaching module option
  • Set a more conservative default for maximum concurrent requests

Bug Fixes

  • Fixed 403 errors when fetching crates during Nix builds

What's Changed

New Contributors

Full Changelog: v0.5.0...v0.6.0

v0.5.0 Release

Choose a tag to compare

@github-actions github-actions released this 26 May 13:27

Highlights

  • Private substituter authentication: Private caches can now be accessed via HTTP Basic authentication, with a dedicated credentials file and credentialFile option in NixOS/nix-darwin/Home Manager modules for declarative setup
  • Auxiliary endpoints and home page: Added a /health endpoint for health checking, an optional priority query parameter to /nix-cache-info endpoint, and a simple landing page at the root path
  • Internal refactoring: Ongoing refactoring of the internal architecture and Nix flake structure to improve long-term maintainability
  • System testing: Added automated system tests running in CI across Linux and Darwin platforms

New Features

  • Added support for private substituters via HTTP Basic authentication, with a dedicated credentials file
  • Added credentialFile option to NixOS, nix-darwin, and Home Manager modules for declarative credential configuration
  • Added optional priority parameter per substituter, reflected in the /nix-cache-info response
  • Improved substituter probing and health recovery strategy
  • Added /health endpoint
  • Added a landing home page

Bug Fixes

  • Fixed credential file having no read permission when running as a systemd dynamic user service

Documentation

  • Clarified licensing scope for Rust source code, Nix code, and documentation

What's Changed

Full Changelog: v0.4.2...v0.5.0

v0.4.2 Release

Choose a tag to compare

@github-actions github-actions released this 23 May 04:00

What's Changed

Full Changelog: v0.4.1...v0.4.2

v0.4.1 Release

Choose a tag to compare

@github-actions github-actions released this 23 May 03:47

Highlights

  • Harmonia compatibility fix: Fixed parsing of non-compressed NAR files, improving compatibility with substituters like Harmonia
  • Progressive Refactoring: Improved internal architecture for long-term maintainability.

Bug Fixes

  • Fixed query parameters being dropped when extracting NAR file names from relative upstream NAR info URLs
  • Fixed failure to parse non-compressed NAR URLs (.nar extension without compression suffix) from harmonia and other substituters

What's Changed

  • Refactor Nar aggregate by spliting it NarInfo and NarFile by @StarryReverie in #21
  • Refactor by decoupling NarInfo and NarFile aggregates by @StarryReverie in #22
  • Refactor by spliting NarInfoData into two more specific variants by @StarryReverie in #23
  • Fix query params dropping and failure of parsing non-compressed NAR URL by @StarryReverie in #24

Full Changelog: v0.4.0...v0.4.1