Notes
-
@zmitchell: Created Add learning journey contribution guidelines by zmitchell · Pull Request #596 · NixOS/nix.dev · GitHub to write down what we discussed last time
- Some overlap with contributing guidelines, but good to have everything in one place
- Will share @maj’s document, PDF or something
- Regarding creating skeletons as discussed last time, this week, decide which tutorials to work on
- Let’s look at the knowledge graph thing to see what should come next
- …
-
@zmitchell: Tutorial idea: Could cover having a default.nix and shell.nix share their dependencies
-
@brianmcgee: default.nix is the entrypoint for building and co., shell.nix to get the build environment, maybe extra dev-only things
-
@infinisil: What about the other tutorials we discussed previously?
-
@zmitchell: Limbo, waiting for some feedback from @roberth, could consider in feedback phase
- Tutorial: Development shell with developer tooling, motivation for not just default.nix for
nix-build
, but also extra dev-only tooling
-
@brianmcgee: Making something concrete like building something like
ping
would be good
-
@infinisil: Maybe look at what tutorial is needed? But we are the learning journey so we should start at the beginning
-
@zmitchell: Tutorial idea: Packaging existing software without a Nix build
-
@brianmgcee: Modifying the repo or pulling source from github?
-
@infinisil: Almost the same, can cover both
-
@brianmgcee: Want to avoid overlap of tutorials
- Not too much overlap at least
-
@zmitchell: Reason is we haven’t covered what to do when it gets harder
- E.g. if we start with a simple Rust build, but then we need to depend on a system library
-
@brianmcgee: E.g. we use gradle, have to turn off sandbox, better build system but not easy to nixify
-
@infinisil: Bad practices though
-
@brianmcgee: Sometimes you have no choice though
-
@infinisil: Rustonomicon for Nix, with not great practices but if you need them
-
@zmitchell: Not exactly what I meant. Example: Rust has a dependency on libcurl, adding to Cargo.toml, tries to compile it, need libcurl dev version, need openssl too but only errors during the build, etc.
- Generally, what problems occur when you try to package something for Nix compared to other distros
- How to track down the correct Nix packages, correct outputs
-
@infinisil: Sounds good, need to teach reusable skills
-
@brianmcgee: nix-locate is useful, looking at existing examples in Nixpkgs too
-
@infinisil: nix-locate not official, might want to make it so
-
@j-k: Should really be official
-
@zmitchell: Maybe we could just document them anyways, pointing out that there’s no official guarantees
-
@brianmcgee: Under nix-community too
-
@brianmcgee: Tutorial idea: Introducing to binary caches
-
@zmitchell: Needed for beginners?
-
@brianmcgee: Allows avoiding rebuilds
-
@infinisil: Maybe a bit further down the road, CI, deployments, though not far from
shell.nix
-
@zmitchell: Avoiding rebuilds in general, put it in backlog though
-
@brianmcgee: Idea: Trivial builders, runCommand, writeScript, etc.
-
@infinisil: Maybe just link to reference?
-
@brianmcgee: Could interleave into existing tutorials
-
@j-k: Useful, needed when having flakes and creating wrappers for apps and co.
-
@infinisil: Maybe more guide-like, how to combine multiple derivations → symlinkJoin or buildEnv
-
@zmitchell: Could make a lesson out of this
-
@j-k: Could use multiple of these builders in a flake
-
@infinisil: Maybe not flakes, but can still have something for that
-
@zmitchell: Idea: mkDerivation phases, writing own phases, etc.
-
@infinisil: +1, very misunderstood topic
-
@j-k: Talk about phases generally or focus on mkDerivation?
-
@infinisil: mkDerivation implements the phases, so that
-
@j-k: Should also show how builders specify phases and interact with them
-
@zmitchell: Teaching how to tweak phases to fix problems
-
@j-k: How to get to tutorial when having a problem
- How to get feedback to these proposed tutorials?
-
@zmitchell: I’ll make a discourse post soon. How to frame?
- “as part of the new workflow, looking for feedback for these tutorials ideas, what should be covered in tutorials for these?”
-
@infinisil: Sounds good, give some examples, people can come up with related things that should be covered too
-
@zmitchell: Asynchronous work?
-
@infinisil: We can also think about the things to cover in these tutorials
-
@zmitchell: We also have a big PR backlog, ping people, review stuff, etc.
Action items
2 Likes
Hosted by Flying Circus.