Eelco:It was a terrible choice of terms. Just replace “intensional” with “content-addressed” and “extensional” with “input-addressed”.
~
or tilde)Tried to find a UNIX/Linux specification that defines the syntax of file system paths, which led me from Path syntax rules (SO thread) to The Open Group Base Specifications Issue 6, IEEE Std 1003.1, 2004 Edition, specifically to chapter 3. Definitions (start with sections “3.2 Absolute Pathname”, “3.319 Relative Pathname” and follow the crumbs - especially to 4.11 Pathname Resolution).
Bottom line is, ~
or tilde is not part of any specification and it may be have different meaning attached to it depending on the shell, so it may be prudent to advise against using it.
See attemp-manual-reorg
branch in toraritte/nix
.
The Nix manual should be more like a reference that the Nixpkgs manual builds upon
A different approach to 1b23ee60a9fb662792abd031d52317e866b94771
(standardize/make_uniformunify).
move “5.1. A Simple Nix Expression” from Nix manual to Nixpkgs manual reason: Nixpkgs is a set of conventions around Nix (what? core? language? what would you call Nix lang + CLI tools + Nix store together?) but it is not essential to introduce the concept. This section is more about how to build a package using the Nixpkgs conventions so it should be there instead of burdening the reader.
try to remove as much Nixpkgs reference as possible (only leave the necessary ones)
=> research how to use Nix without Nixpkgs
Rename “5.2.1 Values” (Data types?) and re-organize content so that different types could be linked (e.g., fetchGit
accepts a file system path; would be nice to link to that part to show how it differs from the shell notation for example)
fetchGit
) and those are generated from the C++ source.move nixos configuration to flakes
upgrade nix version on nixos (with and without flakes)
https://discourse.nixos.org/t/how-to-build-the-nix-manual-not-the-nix-man-pages/20508
=> decipher the command nix build nix/2.10.2\#nix^doc
https://nixos.wiki/wiki/Documentation_Gaps
nixos/nix
src/libstore/derivations.hh 287: FIXME: what is the Hash in this map? -> https://github.com/NixOS/nix/issues/5463 https://github.com/NixOS/nix/pull/5556 (closed)
src/libexpr/primops/fetchTree.cc 185:// FIXME: document -> no issues yet
is it documented that +
also works with attr sets and the output can be string?
see nixos/nixos-homepage
’s shell.nix
where the src = builtins.fetchGit ./.
is the input argument to flake-compat
(in the end, it will be called as src + "flake.lock"
)
nix-repl> builtins.fetchGit ./.
{ lastModified = 1658545606; lastModifiedDate = "20220723030646"; narHash = "sha256-8+QY2L9gvgnvzeI0cXBWTfawRCZYhkGBYX+WxbxRrqg="; outPath = "/nix/store/zwp1brk7ndhls3br4hk4h9xhpii17zs5-source"; rev = "0000000000000000000000000000000000000000"; revCount = 0; shortRev = "0000000"; submodules = false; }
nix-repl> ./.
/home/toraritte/clones/nixos-homepage
nix-repl> src = builtins.fetchGit ./.
nix-repl> src + "/flake.lock"
"/nix/store/zwp1brk7ndhls3br4hk4h9xhpii17zs5-source/flake.lock"
flakeRef#..
(e.g., nix build nix/2.10.2\#nix^doc
)Clean up flakes documentation because right now it is a huge mess. See some historical notes below that redundant to this, but starting over:
flakeRef#attrPath
can be many things but couldn’t figure out most of the possibilites based on the docs such as the Nix manual’s “7.5.1.” section (Installables) and the Discourse announcements, such as Nix 2.9.0 released:
nix/<git-tag>#nix.doc
=> this pre-Nix 2.9 syntax, but couldn’t find how to add references to git tags/branches, but apparently it works. Or the period in nix.doc
- what is the period? For post-Nix 2.9 it looks like nix^doc
- why the change from period to caret?
path:/path/to/where/exactly#nix.doc
- path to flake.nix
? I also didn’t see mentioning that relative paths work too; e.g., path:.#nix^doc
TODO: definitely look at the source (at different tags…) to properly document the evolution and also what else is possible (e.g., builtins.fetchGit
also takes a file path but it was never documented)
https://discourse.nixos.org/t/how-to-build-the-nix-manual-not-the-nix-man-pages/20508
=> NobbZ recommended the Nix manual’s “7.5.1.” section (Installables) to start decipher the ...#..^..
string, but it is very incomplete. The part before #
is referred to as flakeRef
and it can be a “git URL”, but not sure where the full docs are for referring to branches and not just tags, or how to switch to the cloned repos remote e.g., nixos/nix
will seek that repo, but what if I forked it so I would like use a flakeRef
to toraritte/nix
?.. Right now .#nix^doc
works to show local changes (I think; can’t confirm it yet.)
This is of utmost necessity! Guides, blog posts, man pages, manual sections etc. teem with ambiguities. Any new material should be started with a clean slate.
attribute set Just the most recent post I found: https://discourse.nixos.org/t/attribute-set-or-set/14253
package set (e.g., https://nixos.wiki/wiki/Alternative_Package_Sets)
Justification:
https://github.com/NixOS/nix.dev/issues/290#issuecomment-1201862547 One could argue that Nix “core” and Nixpkgs are separate as well: Nix “core” works with alternatiive package sets, and Nixpkgs also works with alternate implementations of the Nix core functionality (e.g., hnix).
make a separate manual for Nix CLI commands (isn’t that’s what man pages are for?), or at least don’t mix the two: Nix “core” is a reference/gentle-ish intro that don’t depend on Nixpkgs (it’s a set of conventions built on top of Nix “core”) and Nix CLI (… lost my momentum here, because how much do Nix CLI commands depend - if at all - on Nixpkgs? Maybe not at all, because how would alternate package sets be used?)
See this Discourse thread first.
important file: nix.dev/CONTRIBUTING.md
Make prominent that there are explicit requirements for contributing, and for anything else, contributors may only expect a best effort from the community
fricklerhandwerk Ah, that makes total sense. Actually I strongly empathize with that stance.
We should at least state the relevant skills as prerequisites (e.g. git and GitHub workflow in the prerequisites for a guide to contribute to nixpkgs). A PR to the relevant manual section is highly welcome!
Finding and recommending good material is another can of worms, and much less important. We could try and say the Git project is responsible to onboard new people, and reference the relevant resource that appears to do this job.
Love this about being explicit about requirements needed to be able to “officially” contribute!
It might be prudent to add that we don’t discourage other ways, but we should set their expectations straight: non-PR/issue suggestions can only be expected to be resolved on a best effort basis (i.e., someone finds the time and effort “champion” these reports, or they buddy up with a more experienced member, etc.)
A case in point:
From the Matrix wiki channel:
- nixos-wiki-rcbot
- [[NixOS Wiki talk:Contributing]] https://nixos.wiki/wiki/index.php?diff=7848&oldid=2946 * Toraritte * (+297) Add TODO section for article
- toraritte
- the rust manual link is not valid and the Rust nightly overlay points to Mozilla’s nixpkgs fork
I have no clue which page and link in particular this refers to (because the linked log in the reply has no rust stuff), so encourage drive-by comments but define a process (for each documentation entity…) on where to track this progress (issues?)
Dissolve “Report an issue” section, and move parts to respective Nix* section
Re-design the 3 Nix* sections similar to how the manuals are represented on the nixos.org: Learn page (i.e., 3 columns that would fold under each other with respect to screen size)
Add steps on how to contribute to the nixos.org website (see section in NixOS/nixos-homepage
repo’s README)
Use this as a template for the others (as they generally lack detailed instructions)
explain how the NixOS homepage is constructed… E.g., I presumed that the “How to Contribute” section (contributing.html
) is located somewhere in the NixOS/nixos-homepage
repo, but it is actually in NixOS/nix.dev
- it is pulled in when built with nix-shell
using the input repos specified in flake.nix
. shell.nix
is quite short, but it is far from easy for me to understand.
nix build
& co. - where does it build? (out
dir?)
=> to a result
symlink, see there
Nix source - which standard is used? what coding conventions?
How to build the Nix manual? => https://discourse.nixos.org/t/how-to-build-the-nix-manual-not-the-nix-man-pages/20508
is it possible (and if not, is there a way) to build the Nix manual without compiling Nix from scratch? it takes ~20 mins in this machine…
When building the Nix manual, I just found two outputs with the same name (result-doc
) but different timestamps and at different places (one at nix/result-doc
, the other at nix/doc/manual/result-doc
- I presume the location of the result symlinks depend on where nix build
is called from.
`(new) Nix manual(s) ┌──────────────────────────────────────────────────────────────────────┐ │ │ │ │ │ ┌──────────────────────────┐ ┌─────────────────────────────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Nix core reference │ │ Nix CLI reference │ │ │ │ │ │ (a.k.a. man pages?) │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └──────────────┬───────────┘ └─────────────────┬───────────┘ │ │ │ │ │ └─────────────────┼─────────────────────────────────────┼──────────────┘ │ │ │ │ │ │ │ ┌───────────────────────────┐ │ │ │ │ │ └───► quick start guide ◄─────┤ ┌─────────────┐ │ │ │ ┌────────────┐ │ │ │ (parts of Nix manual │ │ │ │ │ NixOS │ │ already treated so) ◄─────┼────┤ Nixpkgs │ │ manual │ │ │ │ │ manual │ │ │ └───────────────────────────┘ │ │ │ └─────────┬───┘ │ │ │ │ │ └────┬───────┘ │ │ │ ┌──▼─────────────────────────────────────────────▼─────────▼───┐ │ │ │ │ │ guides, more in-depth intros, advanced material, etc. │ │ │ │ that do make the connections in-between manuals │ │ │ │ │ └──────────────────────────────────────────────────────────────┘
? ┌──────?──────┐ │ ? │ Should these manuals be split as well? │ Ni?OS │ ====================================== │ ma?ual │ There is certainly a lot of reference-y and │ ? │ guide-y stuff in both, resulting in a confusing └──────?──────┘ mix, making it hard to find what is needed
? ┌──────?──────┐ │ ? │ TODO: experiment with │ Nixp?gs │ │ manu?l │ 1. Nix/Nixpkgs/NixOS reference materials │ ? │ │ ? │ 2. Use the solid foundations of 1. create └──────?──────┘ the guides (as they will inevitably
? touch on the other parts of the eco-
system)
How to keep reference materials "pure"?
---------------------------------------
Nix manual
==========
Nix "core" doesn't depend either on NixOS or Nixpkgs, and there
is no reason to be mentioned there. The Nix CLI tools may be an
exception as they need an example package set to be worked on
sometimes.
Only the notion of "package set" is intrinsic to Nix "core" and
not to a specific implementation of it (with all the inevitable
idiosyncrasies that come with such an implementation).
TODO: Experiment with a "toy" package set specifically created
for Nix CLI references. From there, guides can use Nixpkgs
in examples to their heart's content.
(The "toy" package set idea may be a good one because
there could be a guide linked to show HOW to make one's
own package set as an added benefit!)
Of course, this entirely depends on:
┌──────────────────────────┐
│┼────────────────────────┼│
││ Nix "core" =/= Nix CLI ││ ... or something along these lines.
│┼────────────────────────┼│ Needs to be proven; see TODO below.
└──────────────────────────┘
TODO: understand
+ how to work with alternative package sets
+ how deeply coupled are Nix CLI tools with Nixpkgs
Nixpkgs manual
==============
The above section should(...) take care of Nix "core", and even
though Nixpkgs "houses" NixOS modules, that could be taken care
of with a link to the NixOS manual.
Another reason for removing NixOS references is because there
are other OSs that build on Nix "core" and package sets (maybe
even Nixpkgs). Examples include Triton, Spectrum-OS
Discussions that do require the mention of NixOS modules etc.
should definitely be in NixOS manual.Nix* manuals.
TODO Find a legitimate reason to ever mention NixOS besides that
link to the NixOS manual.
NixOS manual
============
This is a trickier one - or is it? What is Nix's relationship
with alternative package sets? NixOS is a truly Nix community
thing, although it wouldn't hurt to explain hnix and alt sets.
(However, that may be for the guides?..)``
@room Hey all, 👋
Just a friendly reminder that the next Lecture by jonringer about The Architecture and History of Nixpkgs will begin soon! https://discourse.nixos.org/t/jon-ringer-the-architecture-and-history-of-nixpkgs-son2022-public-lecture-series/20626?u=bjth
Jon Ringer - The Architecture and History of Nixpkgs (SoN2022 - public lecture series) - NixOS Discourse Hey all, 👋 @armijn Gave his lecture about the history of NIxOS last Tuesday, and I’m happy to announce the next Lecture! The next lecture will be about the architecture and history of Nixpkgs, given by @jonringer. We’ll go live on Tuesday, August 2, 2022 3:00 PM (UTC). As usual, don’t miss it. 😉 The lecture can be followed live on the following platforms: NixOS - YouTube LinkedIn Owncast Instance NixOS (@nixos_org) / Twitter Recordings of the broadcasts will be published on the Ni… Matthias Meschede changed the topic to “Owncast [https://summer.nixos.org/live/] or [https://live.nixos.org/] YouTube [https://youtu.be/TKgHazs3AMw] LinkedIn [https://www.linkedin.com/video/event/urn:li:ugcPost:6958498799543549952/] Twitter [on https://twitter.com/nixos_org come once it starts] “. Matthias Meschede As always: please post questions here during the talk (or on YouTube, Linkedin). We’ll go through them in the end. vdot0x23 joined the room mightyiam Q: do you feel the absence of static types in nixpkgs? Matthias Meschede Q: Do you see something in between mono-repo or breaking up everything into individual packages? E.g. would composing two or three repos of similar size than nixpkgs together work well and be useful with the current architecture? Q: How far is flakes support on nixpkgs? What remains to be done? Q: How far would you go with testing on nixpkgs? As much as possible? or not mightyiam ? 😓 mightyiam It’s “mighty I am” Bryan Honof Ah, both Matthias Meschede and I were wrong then 😅, sorry. mightyiam Q: how do multiple versions of packages work at all? a-kenji Thanks for the talk Jon! Q: What is the major feature that Hydra has, that other CI/CD’s don’t support. mightyiam Q: why are there occasionally failures on Hydra and how can those be eliminated or reduced? Collin Arnett Q: How would you improve the experience of python developers working with ML/Data science libraries in Nix? Eg. I have read your experience on onnxruntime Matthias Meschede Q: What resources do you need to run nixpkgs? Build machines, storage, …. Kranzes a-kenji Q: What is the major feature that Hydra has, that other CI/CD’s don’t support. Check out Hercules-CI! fufexan Q: is there anything you’d change if you were to start a Nixpkgs again? ctem (ctem can be pronounced “stem” :) Q: Assuming internationalization functionality in Nix tooling, in its current form, how hospitable do you feel Nixpkgs would be to localization? Bryan Honof Sorry for killing the names 😅 fufexan hey no problem 😄 also you can just call me “mihai” (pronounced me high) infinisil I recently started up the Nixpkgs Architecture Team, which will take a look at larger issues and design decisions in nixpkgs :D Matrix channel is #nixpkgs-architecture:nixos.org
Nixpkgs Architecture Team - GitHub Nixpkgs Architecture Team has 4 repositories available. Follow their code on GitHub. Kranzes Q: pwease rewview my pw-awre 🥺 infinisil Thanks for the shoutout :) vdot0x23 Q: What upcoming feature/change to nixpkgs are you most excited about in the near future? a-kenji Thanks jon, it was an awesome talk! billewanick Since Jon brought up reviewing PRs, what goes into reviewing a PR on Nixpkgs? What things should be done, what commands run, what to look for in code, etc? A guide on how to review PRs might go a long way to get more people involved. vdot0x23 billewanick Since Jon brought up reviewing PRs, what goes into reviewing a PR on Nixpkgs? What things should be done, what commands run, what to look for in code, etc? A guide on how to review PRs might go a long way to get more people involved. For common changes I have found this helpful https://nixos.org/manual/nixpkgs/stable/#chap-reviewing-contributions
NixOS - Nixpkgs 22.05 manual Nixpkgs Manual Version 22.05 Table of Contents 1. Preface I. Using Nixpkgs 2. Global configuration 3. Overlays 4. Overriding 5. Functions reference II. Standard environment 6. The Standard Environment
TODO: All the fetcher-stuff should be explained in a single place. This strucks a chord with 1b23ee60a9fb662792abd031d52317e866b94771
(standardize/make_uniform). How?
what does “fetch” mean in the context of Nix lang builtins? Does it literally copies upon invocation or just signals intention? E.g., builtins.fetchGit
return an attr set with an outPath
attribute - does it mean that whatever we tried to fetch is already in the store?
=> It does get copied into the store, just check outPath
with ls
Also there are builtin fetchers and one’s defined in Nixpkgs, all discussed in isolation without any comparison. The fetchgit
vs builtins.fetchGit
is very informative.
See also Why is fetchTarball not mentioned in “Chapter 11. Fetchers” of the Nixpkgs manual?
Another: https://ryantm.github.io/nixpkgs/builders/fetchers/
fetchGit
(and probably other git
-related) docs are wrong/misleadinghttps://discourse.nixos.org/t/rev-and-ref-attributes-in-builtins-fetchgit-and-maybe-flakes-too/20588
this sentiment may apply to https://nixos.org/manual/nix/stable/command-ref/new-cli/nix3-flake.html too
```text 0 [18:11:01] nix repl Welcome to Nix 2.10.3. Type :? for help.
shell.nixes
is main
) fetchGit path nix-repl> builtins.fetchGit {url=./.;} warning: Git tree '/home/toraritte/clones/nix' is dirty { lastModified = 1658169134; lastModifiedDate = "20220718183214"; narHash = "sha256-D0KvHm9rKOHb DciCshul7e3b2PoYRqWZRdbkyn/9Iao="; outPath = "/nix/store/pjkcjgj04nvxg8q87zbwm9axpc93c3yr-source "; rev = "0000000000000000000000000000000000000000"; revCount = 0; shortRev = "0000000"; submodu les = false; }
nix-repl> builtins.fetchGit {url=./.;} warning: Git tree ‘/home/toraritte/clones/nix’ is dirty { lastModified = 1658169134; lastModifiedDate = “20220718183214”; narHash = “sha256-Vw4lSkslmDIR cHQEO7uSiEV53vYJszVWXeHmFE4/Pww=”; outPath = “/nix/store/74b2zy6vrh463mrbr4p7mwrvjg75967b-source “; rev = “0000000000000000000000000000000000000000”; revCount = 0; shortRev = “0000000”; submodu les = false; }
nix-repl> builtins.fetchGit {url=”~/clones/nix”;} error: file:// URL ‘file://~/clones/nix’ has unexpected authority ‘~’
nix-repl> builtins.fetchGit “/home/toraritte/clones/nix” nix-repl> builtins.fetchGit “file:///home/toraritte/clones/nix” nix-repl> builtins.fetchGit {url=”/home/toraritte/clones/nix”;} nix-repl> builtins.fetchGit {url=”file:///home/toraritte/clones/nix”;} warning: Git tree ‘/home/toraritte/clones/nix’ is dirty { lastModified = 1658169134; lastModifiedDate = “20220718183214”; narHash = “sha256-Vw4lSkslmDIR cHQEO7uSiEV53vYJszVWXeHmFE4/Pww=”; outPath = “/nix/store/74b2zy6vrh463mrbr4p7mwrvjg75967b-source “; rev = “0000000000000000000000000000000000000000”; revCount = 0; shortRev = “0000000”; submodu les = false; }
shell.nixes
is main
) fetchGit path nix-repl> builtins.fetchGit /home/toraritte/clones/shell.nixes { lastModified = 1651372838; lastModifiedDate = "20220501024038"; narHash = "sha256-ejxD1ZjnbRBsvi5NJYhLPQ9FGgORFD/kH10boQxqjVI="; outPath = "/nix/store/x6zcxzmjc340n5ycmgqylvw1j2pg0jkn-source"; rev = "f9af46639a9bb5fb22705ebdfd25783866e22c0f"; revCount = 36; shortRev = "f9af466"; submodules = false; }
shell.nixes
is lynx
) fetchGit path nix-repl> builtins.fetchGit ~/clones/shell.nixes { lastModified = 1619560320; lastModifiedDate = "20210427215200"; narHash = "sha256-xEgHQPHIrpeTZ7tyTBQuyOAnXqwao4jdvfXPyaE+qME="; outPath = "/nix/store/09066xpin73wxvh1cip5acvd3ajs5x0v-source"; rev = "db8f5696874640d7e905dfb77c7b91da75325a22"; revCount = 23; shortRev = "db8f569"; submodules = false; }
shell.nixes
is lynx
) fetchGit {url = <path>;} nix-repl> builtins.fetchGit {url="/home/toraritte/clones/shell.nixes";} { lastModified = 1619560320; lastModifiedDate = "20210427215200"; narHash = "sha256-xEgHQPHIrpeTZ7tyTBQuyOAnXqwao4jdvfXPyaE+qME="; outPath = "/nix/store/09066xpin73wxvh1cip5acvd3ajs5x0v-source"; rev = "db8f5696874640d7e905dfb77c7b91da75325a22"; revCount = 23; shortRev = "db8f569"; submodules = false; }
shell.nixes
is lynx
) fetchGit {url = <path>; ref=<branch>;} nix-repl> builtins.fetchGit {url="/home/toraritte/clones/shell.nixes"; ref="main"; } { lastModified = 1619560320; lastModifiedDate = "20210427215200"; narHash = "sha256-xEgHQPHIrpeTZ7tyTBQuyOAnXqwao4jdvfXPyaE+qME="; outPath = "/nix/store/09066xpin73wxvh1cip5acvd3ajs5x0v-source"; rev = "f9af46639a9bb5fb22705ebdfd25783866e22c0f"; revCount = 23; shortRev = "db8f569"; submodules = false; }
ref
as documnetation to selfshell.nixes
is lynx
) fetchGit {url = <path>; ref=<branch>; rev;} nix-repl> builtins.fetchGit {url="/home/toraritte/clones/shell.nixes"; ref="lynx"; rev="477c852";} error: hash '477c852' has wrong length for hash type 'sha1'
ref
as documnetation to selfrev
is not part of the “lynx” branch at all, so ref
in this case can even be misleading
shell.nixes
is lynx
) fetchGit {url = <path>; ref=<branch>; rev;} nix-repl> builtins.fetchGit {url="/home/toraritte/clones/shell.nixes"; ref="lynx"; rev="477c852d dd3875913063aed86ca38130b1a7f02f";} { lastModified = 1633137713; lastModifiedDate = "20211002012153"; narHash = "sha256-T6xyyIKDKWsQ/L28DTIG3Hwmd1CMXf6znt9ciLfwL8c="; outPath = "/nix/store/r7ynyabyvlsxy6z3jisip26m40lb9m38-source"; rev = "477c852ddd3875913063aed86ca38130b1a7f02f"; revCount = 32; shortRev = "477c852"; submodules = false; }
fetchGit URL nix-repl> builtins.fetchGit "https://github.com/toraritte/shell.nixes/" { lastModified = 1651372838; lastModifiedDate = "20220501024038"; narHash = "sha256-ejxD1ZjnbRBsvi5NJYhLPQ9FGgORFD/kH10boQxqjVI="; outPath = "/nix/store/x6zcxzmjc340n5ycmgqylvw1j2pg0jkn-source"; rev = "f9af46639a9bb5fb22705ebdfd25783866e22c0f"; revCount = 36; shortRev = "f9af466"; submodules = false; }
fetchGit { url; name; } nix-repl> builtins.fetchGit {url = "https://github.com/toraritte/shell.nixes/"; name = "balabab" { lastModified = 1651372838; lastModifiedDate = "20220501024038"; narHash = "sha256-ejxD1ZjnbRBsvi5NJYhLPQ9FGgORFD/kH10boQxqjVI="; outPath = "/nix/store/2m5v1pv74h3y75ma430vcl05c52qk8sl-balabab"; rev = "f9af46639a9bb5fb22705ebdfd25783866e22c0f"; revCount = 36; shortRev = "f9af466"; submodules = false; }
fetchGit { url; ref=<branch>; } nix-repl> builtins.fetchGit {url = "https://github.com/toraritte/shell.nixes/"; ref="lynx";} { lastModified = 1619560320; lastModifiedDate = "20210427215200"; narHash = "sha256-xEgHQPHIrpeTZ7tyTBQuyOAnXqwao4jdvfXPyaE+qME="; outPath = "/nix/store/09066xpin73wxvh1cip5acvd3ajs5x0v-source"; rev = "db8f5696874640d7e905dfb77c7b91da75325a22"; revCount = 23; shortRev = "db8f569"; submodules = false; }
fetchGit { url; ref=<branch>; rev; } nix-repl> builtins.fetchGit {url = "https://github.com/toraritte/shell.nixes/"; ref="lynx"; rev = "93eec99"; } error: hash '93eec99' has wrong length for hash type 'sha1'
fetchGit { url; ref=<branch>; rev; } nix-repl> builtins.fetchGit {url = "https://github.com/toraritte/shell.nixes/"; ref="lynx"; rev = "93eec99cfd7fe195a87294f844799f09ca7479b4"; } { lastModified = 1567342803; lastModifiedDate = "20190901130003"; narHash = "sha256-xVYRmth/pS4UTMVr7+5YYL5eNn70UhvHQgvwMcotsms="; outPath = "/nix/store/9spbll1al33y6a46s7fssgrv97a6dvis-source"; rev = "93eec99cfd7fe195a87294f844799f09ca7479b4"; revCount = 1; shortRev = "93eec99"; submodules = false; }
fetchGit { url; rev; } nix-repl> builtins.fetchGit {url = "https://github.com/toraritte/shell.nixes/"; rev = "93eec99cfd7fe195a87294f844799f09ca7479b4"; } { lastModified = 1567342803; lastModifiedDate = "20190901130003"; narHash = "sha256-xVYRmth/pS4UTMVr7+5YYL5eNn70UhvHQgvwMcotsms="; outPath = "/nix/store/9spbll1al33y6a46s7fssgrv97a6dvis-source"; rev = "93eec99cfd7fe195a87294f844799f09ca7479b4"; revCount = 1; shortRev = "93eec99"; submodules = false; }
fetchGit { url; ref=<branch>; } nix-repl> builtins.fetchGit {url = "https://github.com/toraritte/shell.nixes/"; ref="main";} { lastModified = 1651372838; lastModifiedDate = "20220501024038"; narHash = "sha256-ejxD1ZjnbRBsvi5NJYhLPQ9FGgORFD/kH10boQxqjVI="; outPath = "/nix/store/x6zcxzmjc340n5ycmgqylvw1j2pg0jkn-source"; rev = "f9af46639a9bb5fb22705ebdfd25783866e22c0f"; revCount = 36; shortRev = "f9af466"; submodules = false; }
fetchGit { url; ref=<tag>; } nix-repl> builtins.fetchGit {url = "https://github.com/nixos/nix/"; ref="refs/tags/2.5.0";} { lastModified = 1639426486; lastModifiedDate = "20211213201446"; narHash = "sha256-mht9vFZjtd5/6fntbj39zCts6MTr4Y+ct+fcsBgb1YM="; outPath = "/nix/store/h59v90iv2wm4q910zr5rzjg0in90az4r-source"; rev = "678fd180c2ed2946b7dc3b72717a2fef9d793517"; revCount = 11186; shortRev = "678fd18"; submodules = false; }
fetchGit { url; ref=<tag>; } nix-repl> builtins.fetchGit {url = "https://github.com/toraritte/nix/"; ref="2.5.0";} fetching Git repository 'https://github.com/toraritte/nix/'fatal: couldn't find remote ref refs/heads/2.5.0 error: program 'git' failed with exit code 128
fetchGit { url; ref=<tag>; } nix-repl> builtins.fetchGit {url = "https://github.com/toraritte/nix/"; ref="tags/2.5.0";} fetching Git repository 'https://github.com/toraritte/nix/'fatal: couldn't find remote ref refs/heads/tags/2.5.0 error: program 'git' failed with exit code 128
fetchGit { url; ref=<branch>; } nix-repl> builtins.fetchGit {url = "https://github.com/toraritte/shell.nixes/"; ref="main";} { lastModified = 1651372838; lastModifiedDate = "20220501024038"; narHash = "sha256-ejxD1ZjnbRBsvi5NJYhLPQ9FGgORFD/kH10boQxqjVI="; outPath = "/nix/store/x6zcxzmjc340n5ycmgqylvw1j2pg0jkn-source"; rev = "f9af46639a9bb5fb22705ebdfd25783866e22c0f"; revCount = 36; shortRev = "f9af466"; submodules = false; }
fetchGit { url; ref=<branch>; rev;} nix-repl> builtins.fetchGit {url = "https://github.com/toraritte/shell.nixes/"; ref="main"; rev="HEAD~2";} error: hash 'HEAD~2' has wrong length for hash type 'sha1'
fetchGit { url; ref=<branch>; rev;} nix-repl> builtins.fetchGit {url = "https://github.com/toraritte/shell.nixes/"; ref="main"; rev="~2";} error: hash '~2' has wrong length for hash type 'sha1'
fetchGit { url; ref=<branch>; } nix-repl> builtins.fetchGit { url = "https://github.com/nixos/nix.git"; ref = "1.11-maintenance"; } { lastModified = 1513097282; lastModifiedDate = "20171212164802"; narHash = "sha256-ADdqRhaDnbfz5zG2focW23XzO/drNhF8njiigkD38ew="; outPath = "/nix/store/ikvsz4nrkmn6lf4cxy6zw5hjhcfjk2l1-source"; rev = "33d58a19041b77f9b9d11719c679b4cbff162a57"; revCount = 4533; shortRev = "33d58a1"; submodules = false; }
fetchGit { url; ref=<branch>; rev; } nix-repl> builtins.fetchGit { url = "https://github.com/nixos/nix.git"; ref = "1.11-maintenance"; rev = "841fcbd04755c7a2865c51c1e2d3b045976b7452"; } { lastModified = 1047475944; lastModifiedDate = "20030312133224"; narHash = "sha256-pQpattmS9VmO3ZIQUFn66az8GSmB4IvYhTTCFn6SUmo="; outPath = "/nix/store/0ccnxa25whszw7mgbgyzdm4nqc0zwnm8-source"; rev = "841fcbd04755c7a2865c51c1e2d3b045976b7452"; revCount = 1; shortRev = "841fcbd"; submodules = false; }
fetchGit { url; rev; } nix-repl> builtins.fetchGit { url = "https://github.com/nixos/nix.git"; rev = "841fcbd04755c7a2865c51c1e2d3b045976b7452";} { lastModified = 1047475944; lastModifiedDate = "20030312133224"; narHash = "sha256-pQpattmS9VmO3ZIQUFn66az8GSmB4IvYhTTCFn6SUmo="; outPath = "/nix/store/0ccnxa25whszw7mgbgyzdm4nqc0zwnm8-source"; rev = "841fcbd04755c7a2865c51c1e2d3b045976b7452"; revCount = 1; shortRev = "841fcbd"; submodules = false; }
nix-repl>
nix-repl> builtins.fetchGit { url = “https://github.com/nixos/nix.git”; rev = “841fcbd”; }
error: hash ‘841fcbd’ has wrong length for hash type ‘sha1’
nix-repl>