I'm requesting input on the new Homebrew formulas that I have created for Nimrod and nimble. Specifically, I'm requesting input on the issues below, but I also welcome general comments and conversation on this.
Rationale
A lot of development is done on OS X, and on OS X Homebrew is the de facto standard package manager. If a developer needs a piece of software but has a lot of choices, the choices that don't have Homebrew formulas often lose out to the ones that do. I can attest to this, at work we eliminated a lot of NoSQL databases on the sole basis that they didn't have a Homebrew formula. It's not really about the fact that having a Homebrew formula makes installation a breeze, its the fact that Homebrew guards their mainline formula repository very carefully, and a formula being in the mainline repository implies a certain amount of stability and polish. Currently Homebrew includes a nimrod formula for 0.9.4, and no formula for nimble. The proposed pull request includes a nimrod formula that supplies 0.9.6, and a nimble formula.
RFC
There's two sticking points that the Homebrew maintainers have with the formula, so I need input on the following two points:
If you answered NO for #2, then nimble cannot be accepted into Homebrew as-is. This sparks another question:
Thanks for reading, fire away!
Hello and welcome to the forums.
Thank you for taking the time to create these Homebrew formulas.
RFC
- Nimrod: If I am understanding you correctly then the recommended way to install v0.9.6 on OS X is using the generated C code. Bootstrapping the compiler from Nim sources is not required unless you want to get the latest version of Nim from git. I'm assuming that you just want v0.9.6 though.
- Nimble: I'm not sure what your wrapper does but whatever it does I would rather make it possible for Nimble to be installed globally. Please create an issue on Github for this and keep Nimble away from Homebrew for now.
Thanks.
dom96 said: I'm assuming that you just want v0.9.6 though.
This is where it gets tricky, in Homebrew formulas you have to supply a stable version, which would be 0.9.6, but you can optionally choose to supply a HEAD version that uses the same install procedure but checks out the sources from a source control system. So most formulas provide a stable version and a HEAD version. However, the Homebrew maintainers want the formula to use the recommended installation method for OS X, so if that is the method that uses the generated C code, then I'll have to remove the HEAD version option.
dom96 said: Nimble: I'm not sure what your wrapper does but whatever it does I would rather make it possible for Nimble to be installed globally. Please create an issue on Github for this and keep Nimble away from Homebrew for now.
I'll create an issue on Github for it and drop nimble from the pull request. For educational value, you should take a look at the source for my wrapper. It's 51 lines of code and it does two things:
It's not as good as having a truly relocatable nimble, but it's a novel solution for the problem at hand.
I'll wait to make any changes for a couple of days, in case Araq or other members of the community want to comment.
This is where it gets tricky, in Homebrew formulas you have to supply a stable version, which would be 0.9.6, but you can optionally choose to supply a HEAD version that uses the same install procedure but checks out the sources from a source control system.
Well 0.9.6 is the last version of Nimrod, next version will be called Nim, so having 2 different homebrew formulas is fine. That said, 0.9.6 has an annoying regression and so people should use master instead. I think we really have to release 0.9.6.1 or 0.9.8. :-/
Well 0.9.6 is the last version of Nimrod, next version will be called Nim, so having 2 different homebrew formulas is fine. That said, 0.9.6 has an annoying regression and so people should use master instead. I think we really have to release 0.9.6.1 or 0.9.8.
I see you saw my comment on #1701. What regression are you talking about specifically? The Homebrew formula contains patches to work around #1701, #1705, and #1706. We don't necessarily need to wait for 0.9.6.1, but a 0.9.6.1 would be nice.