Search nix packages versions - and minimalist devshell and version manager built on nix - Flake generator for version pinned packages.

domain

+23 -23
+5 -5
README.md
··· 1 # `nix-versions` - All versions of nixpkgs at your fingerprints. 2 3 - `nix-versions` is a CLI tool that can help you [find the nixpkgs revision for historical versions of a package](https://nix-versions.alwaysdata.net/getting-started/listing-versions.html). 4 5 It does so by integrating the following services available to the nix ecosystem: 6 ··· 16 17 It also features [version constraint](https://github.com/Masterminds/semver?tab=readme-ov-file#hyphen-range-comparisons) filters, allowing you to restrict packages to a known set of compatible/stable versions that work with you. 18 19 - When used in conjuction with `nix shell` and `direnv`, `nix-versions`, it can also double as a plain-text [development shell and tools version manager with automatic environment loading](https://nix-versions.alwaysdata.net/tools-version-manager.html) targeting people new to nix, but familiar with tools like npm, rvm, asdf, mise. 20 21 - Our website provides a flakes generator for version-pinned packages. You can use these generated flakes as inputs on your own flakes, [allowing version constrained package updates](https://nix-versions.alwaysdata.net/flake-generator.html). 22 23 - Read more at our [website](https://nix-versions.alwaysdata.net/) 24 25 - ### https://nix-versions.alwaysdata.net
··· 1 # `nix-versions` - All versions of nixpkgs at your fingerprints. 2 3 + `nix-versions` is a CLI tool that can help you [find the nixpkgs revision for historical versions of a package](https://nix-versions.oeiuwq.com/getting-started/listing-versions.html). 4 5 It does so by integrating the following services available to the nix ecosystem: 6 ··· 16 17 It also features [version constraint](https://github.com/Masterminds/semver?tab=readme-ov-file#hyphen-range-comparisons) filters, allowing you to restrict packages to a known set of compatible/stable versions that work with you. 18 19 + When used in conjuction with `nix shell` and `direnv`, `nix-versions`, it can also double as a plain-text [development shell and tools version manager with automatic environment loading](https://nix-versions.oeiuwq.com/tools-version-manager.html) targeting people new to nix, but familiar with tools like npm, rvm, asdf, mise. 20 21 + Our website provides a flakes generator for version-pinned packages. You can use these generated flakes as inputs on your own flakes, [allowing version constrained package updates](https://nix-versions.oeiuwq.com/flake-generator.html). 22 23 + Read more at our [website](https://nix-versions.oeiuwq.com/) 24 25 + ### https://nix-versions.oeiuwq.com
+2 -2
docs/README.md
··· 62 > You can use our `flake.zip` endpoint as an input on your own `flake.nix` or `devenv.yaml`.<br/> 63 > There's also `flake.nix` endpoint that outputs a text file. 64 ```shell 65 - nix develop 'https://nix-versions.alwaysdata.net/flake.zip/cowsay@latest/go@1.24.x' --output-lock-file /dev/null 66 ``` 67 <details><summary>see command output</summary> 68 <pre class="ansi-to-html"> ··· 74 > Our `use_nix_tools.sh` endpoint can get you a `direnv` shell in no time!<br/> 75 > You don't even need `nix-versions` installed, just `nix` and `direnv`. 76 ```shell 77 - direnv fetchurl "https://nix-versions.alwaysdata.net/use_nix_tools.sh/ruby/cowsay" 78 ```
··· 62 > You can use our `flake.zip` endpoint as an input on your own `flake.nix` or `devenv.yaml`.<br/> 63 > There's also `flake.nix` endpoint that outputs a text file. 64 ```shell 65 + nix develop 'https://nix-versions.oeiuwq.com/flake.zip/cowsay@latest/go@1.24.x' --output-lock-file /dev/null 66 ``` 67 <details><summary>see command output</summary> 68 <pre class="ansi-to-html"> ··· 74 > Our `use_nix_tools.sh` endpoint can get you a `direnv` shell in no time!<br/> 75 > You don't even need `nix-versions` installed, just `nix` and `direnv`. 76 ```shell 77 + direnv fetchurl "https://nix-versions.oeiuwq.com/use_nix_tools.sh/ruby/cowsay" 78 ```
+7 -7
docs/flake-generator.md
··· 12 13 ```shell 14 # Generate a flake.nix containing latest ruby and nodejs. 15 - curl https://nix-versions.alwaysdata.net/flake.nix/ruby@latest/nodejs@latest -o flake.nix 16 17 # An archive containing flake.nix. This is useful as input for your own flakes. 18 - curl https://nix-versions.alwaysdata.net/flake.zip/ruby@latest/nodejs@latest -o flake.zip 19 ``` 20 21 ## Keeping up to date with versioned packages ··· 24 25 ```nix 26 { 27 - inputs.tools.url = "https://nix-versions.alwaysdata.net/flake.zip/go@~1.24/*.pip@25"; 28 } 29 ``` 30 ··· 41 You can inspect the content of generated flake.zip with the following command: 42 43 ```shell 44 - nix flake show https://nix-versions.alwaysdata.net/flake.zip/go@1.24.x/ruby@~3.4 --no-write-lock-file 45 ``` 46 47 Requesting for `go@1.24.x` and `ruby@~3.4` will generate a flake with the following structure: ··· 68 You can create quick one-shot environments by using the following command: 69 70 ``` 71 - nix develop https://nix-versions.alwaysdata.net/flake.zip/go@1.24.x/ruby@~3.4 --no-write-lock-file 72 ``` 73 74 ## Using as `input` on your own flakes. ··· 77 78 ```nix 79 { 80 - inputs.tools.url = "https://nix-versions.alwaysdata.net/flake.zip/go@~1.24"; 81 outputs = inputs: { 82 # Go 1.24 is available at: 83 # inputs.tools.packages.${system}.go ··· 92 ```yaml 93 inputs: 94 tools: 95 - url: "https://nix-versions.alwaysdata.net/flake.zip/go@~1.24" 96 ```
··· 12 13 ```shell 14 # Generate a flake.nix containing latest ruby and nodejs. 15 + curl https://nix-versions.oeiuwq.com/flake.nix/ruby@latest/nodejs@latest -o flake.nix 16 17 # An archive containing flake.nix. This is useful as input for your own flakes. 18 + curl https://nix-versions.oeiuwq.com/flake.zip/ruby@latest/nodejs@latest -o flake.zip 19 ``` 20 21 ## Keeping up to date with versioned packages ··· 24 25 ```nix 26 { 27 + inputs.tools.url = "https://nix-versions.oeiuwq.com/flake.zip/go@~1.24/*.pip@25"; 28 } 29 ``` 30 ··· 41 You can inspect the content of generated flake.zip with the following command: 42 43 ```shell 44 + nix flake show https://nix-versions.oeiuwq.com/flake.zip/go@1.24.x/ruby@~3.4 --no-write-lock-file 45 ``` 46 47 Requesting for `go@1.24.x` and `ruby@~3.4` will generate a flake with the following structure: ··· 68 You can create quick one-shot environments by using the following command: 69 70 ``` 71 + nix develop https://nix-versions.oeiuwq.com/flake.zip/go@1.24.x/ruby@~3.4 --no-write-lock-file 72 ``` 73 74 ## Using as `input` on your own flakes. ··· 77 78 ```nix 79 { 80 + inputs.tools.url = "https://nix-versions.oeiuwq.com/flake.zip/go@~1.24"; 81 outputs = inputs: { 82 # Go 1.24 is available at: 83 # inputs.tools.packages.${system}.go ··· 92 ```yaml 93 inputs: 94 tools: 95 + url: "https://nix-versions.oeiuwq.com/flake.zip/go@~1.24" 96 ```
+1 -1
docs/getting-started/cli-help.ansi.html
··· 10 11 List available package versions. 12 13 - See <a href="https://nix-versions.alwaysdata.net">https://nix-versions.alwaysdata.net</a> for a complete guide. 14 15 OPTIONS 16
··· 10 11 List available package versions. 12 13 + See <a href="https://nix-versions.oeiuwq.com">https://nix-versions.oeiuwq.com</a> for a complete guide. 14 15 OPTIONS 16
+2 -2
docs/non-flake-environments.md
··· 9 They are intended for usage on non-flake environments. 10 11 ```shell 12 - curl https://nix-versions.alwaysdata.net/default.nix/ruby@latest -o default.nix 13 14 - nix-shell https://nix-versions.alwaysdata.net/default.zip/ruby@latest -A devShell 15 ``` 16 The reason we mention them as *experimental* is because generating a `default.nix` file 17 requires our server to download and generate a sri-checksum for fetching each tools'
··· 9 They are intended for usage on non-flake environments. 10 11 ```shell 12 + curl https://nix-versions.oeiuwq.com/default.nix/ruby@latest -o default.nix 13 14 + nix-shell https://nix-versions.oeiuwq.com/default.zip/ruby@latest -A devShell 15 ``` 16 The reason we mention them as *experimental* is because generating a `default.nix` file 17 requires our server to download and generate a sri-checksum for fetching each tools'
+3 -3
docs/tools-version-manager.md
··· 40 41 ```bash 42 # Place this on your .envrc 43 - source_url "https://nix-versions.alwaysdata.net/use_nix_tools.sh/go/ruby" HASH 44 ``` 45 46 Where `HASH` can be obtained with: 47 48 ```bash 49 - direnv fetchurl "https://nix-versions.alwaysdata.net/use_nix_tools.sh/go/ruby" 50 ``` 51 52 You can obtian package updates by doing `direnv reload`. ··· 126 ```shell 127 mkdir -p ~/.config/direnv/lib 128 # You can always inspect the downloaded function before installing it 129 - curl "https://nix-versions.alwaysdata.net/use_nix_tools.sh" -o ~/.config/direnv/lib/use_nix_tools.sh 130 ``` 131 132 Then, on your project directory, besides your `.nix_tools` file, create an `.envrc` file that will be
··· 40 41 ```bash 42 # Place this on your .envrc 43 + source_url "https://nix-versions.oeiuwq.com/use_nix_tools.sh/go/ruby" HASH 44 ``` 45 46 Where `HASH` can be obtained with: 47 48 ```bash 49 + direnv fetchurl "https://nix-versions.oeiuwq.com/use_nix_tools.sh/go/ruby" 50 ``` 51 52 You can obtian package updates by doing `direnv reload`. ··· 126 ```shell 127 mkdir -p ~/.config/direnv/lib 128 # You can always inspect the downloaded function before installing it 129 + curl "https://nix-versions.oeiuwq.com/use_nix_tools.sh" -o ~/.config/direnv/lib/use_nix_tools.sh 130 ``` 131 132 Then, on your project directory, besides your `.nix_tools` file, create an `.envrc` file that will be
+3 -3
nix/packages.nix
··· 10 vendorHash = builtins.readFile ./../cli/vendor-hash; 11 meta = with pkgs.lib; { 12 description = "Go CLI for searching nix packages versions using lazamar or nixhub"; 13 - homepage = "https://nix-versions.alwaysdata.net"; 14 mainProgram = "nix-versions"; 15 }; 16 }; ··· 28 dontInstall = true; 29 meta = with pkgs.lib; { 30 description = "Site for docs and flake generation services."; 31 - homepage = "https://nix-versions.alwaysdata.net"; 32 }; 33 }; 34 ··· 40 env.CGO_ENABLED = 0; # static build 41 meta = with pkgs.lib; { 42 description = "Web UI for docs and flake generation services."; 43 - homepage = "https://nix-versions.alwaysdata.net"; 44 mainProgram = "web"; 45 }; 46 };
··· 10 vendorHash = builtins.readFile ./../cli/vendor-hash; 11 meta = with pkgs.lib; { 12 description = "Go CLI for searching nix packages versions using lazamar or nixhub"; 13 + homepage = "https://nix-versions.oeiuwq.com"; 14 mainProgram = "nix-versions"; 15 }; 16 }; ··· 28 dontInstall = true; 29 meta = with pkgs.lib; { 30 description = "Site for docs and flake generation services."; 31 + homepage = "https://nix-versions.oeiuwq.com"; 32 }; 33 }; 34 ··· 40 env.CGO_ENABLED = 0; # static build 41 meta = with pkgs.lib; { 42 description = "Web UI for docs and flake generation services."; 43 + homepage = "https://nix-versions.oeiuwq.com"; 44 mainProgram = "web"; 45 }; 46 };