I use NixOS, and I have various janky scripts for Racket development
on NixOS.  They aren't great or beautiful -- I basically wrote the
minimal amount to get things working and I hack on them every time
something goes wrong.  At this point they seem to work for me.  I use
these scripts to get environments for building Racket in my home
directory, using the official installers in my home directory, and
doing package development using a Racket built or installed in my home
directory.  They are not for building an actual NixOS package.  It
might be nice to do Racket package development using a Racket in the
nix-store, but it's frustrating that Racket's documentation setup
stage wants to mutate documents that end up in the nix-store, thus
giving errors each time you try to set up a package you are
developing.  Either the Nix package build or Racket's build process
needs to be changed to play nicely there, and I haven't bothered
looking into it.  Anyway, my workflow is to use the NixOS Racket
package as the stable Racket installation I use for non-development
purposes (eg. to run my Rash scripts or other programs that have made
it into my day-to-day workflow outside of hacking on Racket) and these
script environments for hacking on packages and Racket itself.

The scripts are in my dotfiles repo on github.  I'll highlight some
pertinent parts that may help you.

The core stuff is in the `nixos` subdirectory of the repo:

https://github.com/willghatch/dotfileswgh/tree/master/nixos

It has a nix-shell environment with the packages needed to build
Racket, and a script to run as the nix-shell command that sets some
needed environment variables for things like openssl to work.

I tie that all together with a racket-dev-environment.sh script:

https://github.com/willghatch/dotfileswgh/blob/master/commands/racket-dev-environment.sh

And then I also have some convenience wrappers for it: `rpdev` for
package development, `rcdev` for working on Racket itself, and `rdev`
for an environment for testing multiple versions of Racket together.
Each just sets some useful environment variables to set my path and
helpful display in my shell prompt:

https://github.com/willghatch/dotfileswgh/blob/master/commands/rpdev


I'll also note that there is a `racket2nix` project for building
Racket packages as NixOS packages.  It's been a while since I've
looked at it, but I'm hopeful that it will eventually make it trivial
for Racket packages to become NixOS packages.

https://github.com/fractalide/racket2nix

--
You received this message because you are subscribed to the Google Groups "Racket 
Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-dev/20201005212704.GA28540%40conspirator.

Reply via email to