1) You can write tasks in nimscript, which you can use to automate various things, included building. This is more frequently done in nimble files (which are written in nimscript as well)
3) If you use nimble, you can run `nimble tasks` to see the lists of existing tasks, and `nimble taskName` to run `taskName`. Also, a task is not `used to provide new arguments to nim`. You can use it for this, but also for any other build task that you may want to automate, e.g. [generating bindings from header files](https://github.com/unicredit/nimcuda/blob/master/nimcuda.nimble#L72) 5) I am not sure what you mean, but you can use nimble to run tests, see for instance [these tasks](https://github.com/unicredit/linear-algebra/blob/master/linalg.nimble) Also, I don't understand > once my Nim library is installed, consumers of my library are on their own You don't install libraries, you depend on them using a `requires` clause in your nimble files. See [this](https://forum.nim-lang.org/t/2954) and [this](https://github.com/nim-lang/Nim/issues/5776) discussions 6) I don't understand neither the question nor the answer: can you explain what you mean by > a good idea is to provide a nimscript with my installed library, so that > consumers can include that I think you want to provide tasks to install foreign deps but I am not sure
