a nim distribution
The idea here is to curate a "batteries included" ecosystem of modules that interoperate and form a broadly useful basis for projects. Ideally, the distribution is so successful that we can move modules from the compiler's standard library into the distribution.
There's a little more detail in this Fusion RFC comment.
Each branch of the distribution will correspond to a version of the Nim compiler. Some effort will be made towards forward compatibility, but little effort will be made for backward compatibility -- check out the version of the distribution that (at least) matches your compiler!
Now compatibility of your project can be tied to specific compiler versions and a monorepo of supporting software that should work together with that version of Nim. No combinatorial explosion of dependency interoperability calculation is necessary, and such calculations and tests may be shared by all users.
We'll start with the compiler's test suite of so-called important packages and consider additional packages which help to test the distribution or add broadly useful functionality.
The easiest way to use the distribution is via gitnim:
https://github.com/nim-works/gitnim or https://gitnim.com/
$ git nim
$ git clone --depth 1 https://github.com/nim-works/dist
$ cd dist
$ git submodule update --init .
$ cd ../project
$ echo "--path=../dist" >> nim.cfg
$ nim c project.nim
$ cd ../dist
$ git pull
$ cd ../dist
$ git log
$ cd ../dist
$ git checkout 1.5.1
$ cd ../dist
$ git tag -a works_with_myproject
$ cd ../dist
$ git checkout works_with_myproject
MIT