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 .