Dub as tool chain installer
Bastiaan Veelo
Bastiaan at Veelo.net
Fri Jun 18 22:42:27 UTC 2021
On Friday, 18 June 2021 at 06:14:03 UTC, Martin Nowak wrote:
> Maybe we could recruit someone to replace the dated NSIS
> installer with a native msi installer.
> https://issues.dlang.org/show_bug.cgi?id=15375
> https://en.wikipedia.org/wiki/List_of_installation_software#Windows
>
> Don't have much of a clue about Windows nowadays, maybe there
> are more suitable alternatives.
What would be the most suitable alternative in my eyes is for
dub, based on [tool chain
requirements](https://dub.pm/package-format-json.html#toolchain-requirements) specified in `dub.json`, to install and select compilers. Cross platform and cross vendor. I know there are compiler version managers, but I think since dub can check versions of packages and install packages, and can check compiler versions, it is only natural that it should also be able to install compilers.
Above all, it would be just so convenient. This way a compiler
upgrade becomes part of your commit history. You can test (beta)
compiler releases in a separate branch, resolve deprecations
comfortably, have your CI run all tests, all without interfering
with main development. You push the change and all team members
upgrade their compilers automatically without even noticing it,
and certainly without surprises. And any number of years in the
future, when you pick up an old project that has been dormant, it
still compiles flawlessly because dub downgrades the compiler
automatically.
Come to think of it, maybe there should be an additional package
category that provides build tools that can be run by dub without
`dub run`, such as `dfmt`, `dpp`, `pegged`, and compilers and
linters.
— Bastiaan.
More information about the Digitalmars-d-announce
mailing list