Live data from Hacker News

Baseline Mac OS X Support merged into FreeBSD package manager

github.com

41–50 of 61 posts

Re: Baseline Mac OS X Support merged into FreeBSD package manager

#41
post #9

This pull request is a thing of beauty. Each commit is a little slice of (mostly) independent awesome. The project nerd in me just did a little dance.

How the fuck do people do this with git? I loved doing pretty commits with mercurial's patch queue. Git is awesome but it seems like the only option for pretty commits is rebase (ew). All the git patch queue implementations are basically dead or unmaintained. :(

Yes, one trick I use a lot is interactive rebase. I do a lot of commits with "WORK IN PROGRESS" then git rebase -I HEAD~X to improve the history before pushing.

IMHO mercurial is superior to git in a lot of aspects, but there is main philosophical difference in the usage. Mercurial is more about indelible history while git people love to edit the history of the commits.

Re: Baseline Mac OS X Support merged into FreeBSD package manager

#42
post #28
post #23

Earlier quoted context omitted.

>MacPorts feels opaque and isolated in comparison What does this even mean? If it means "uncool" then, yeah, I get it. If you are comfortable with Ruby, then it is easier to build packages for Homebrew, and since it isn't centrally managed like MacPorts, things generally get packaged quicker for Homebrew. On the other hand, MacPorts has a long track record and has generally been bombproof for me across 3 or 4 OS upda…

I switched to Homebrew a long time ago, when MacPorts had a large advantage in number of packages, freshness, stability etc. For me, MacPorts' main mistake was to go all in with the "storage is cheap, CPU is cheap" canard just as everyone was abandoning desktops for laptops. MacPorts decided to build its own copy of almost everything that the OS distribution provides, to avoid having to deal with version differences…

> to say nothing of the hours it would take to build them.

FWIW, nowadays (for a few years?) macports has binary packages, so that is not as big an issue as it used to be, i.e. installing ImageMagick would take hours, now it just usually gets all of the packages and dependencies as binaries.

I think used space is not a huge problem either (I have 130 packages and it uses 1GB), the real issue is that it's anti-intuitive that macports does not remove inactive stuff and does not autoclean, so you end up with a lot of wasted space for stuff you had no interest in keeping.

Re: Baseline Mac OS X Support merged into FreeBSD package manager

#43

Earlier quoted context omitted.

IMHO, Homebrew offers a lot of advantages over traditional package management tools. It's simple to use, offers a really easy way to add your own packages, and contributing upstream is quite painless. MacPorts has always been reminiscent (to me, anyways) of the FreeBSD Ports Collection...it might even be based on it I'm not sure. So this seems like a prelude to a possible sunsetting of the MacPorts project in favor o…

I've stayed away from Homebrew because of its insistence on taking over /usr/local. I understand the reasoning, but I use /usr/local for my own installs and Homebrew doesn't play nicely in that kind of mixed environment. I would use it if it defaulted to /opt/homebrew or something similar. I'm looking forward to this new package manager alternative.

Isn't there a way to have Homebrew monitor a "make install" operation so that Homebrew can manage (or at least be aware of) your own installs?

Re: Baseline Mac OS X Support merged into FreeBSD package manager

#44
post #9

This pull request is a thing of beauty. Each commit is a little slice of (mostly) independent awesome. The project nerd in me just did a little dance.

How the fuck do people do this with git? I loved doing pretty commits with mercurial's patch queue. Git is awesome but it seems like the only option for pretty commits is rebase (ew). All the git patch queue implementations are basically dead or unmaintained. :(

These are actually the raw commits as I wrote them; I try to structure my work to build on itself in this way.

Re: Baseline Mac OS X Support merged into FreeBSD package manager

#45

Earlier quoted context omitted.

Most of the standard stuff in homebrew is available in bottled form. Which isn't to say Homebrew doesn't have its problems— setting up your own bottling infrastructure is difficult/impossible, and basic stuff like caching dependencies isn't there (cf. https://github.com/Homebrew/homebrew/issues/27457 ).

It's also worth noting that what you've mentioned about "caching dependencies" isn't caching them on disk (we do that already and extensively) but instead being able to cache it in memory to make dependency resolution faster. I don't think that's basic stuff and most users don't seem to have a problem with the speed of such things.

The current arrangement works great for relatively shallow dependency trees; since that's what most homebrew packages have, it's not a big deal.

Having this support in freebsd/pkg may make it a better choice for distributing software on OS X with dependency resolution needs more along the lines of what apt and yum are able to provide.

Re: Baseline Mac OS X Support merged into FreeBSD package manager

#46

Earlier quoted context omitted.

How the fuck do people do this with git? I loved doing pretty commits with mercurial's patch queue. Git is awesome but it seems like the only option for pretty commits is rebase (ew). All the git patch queue implementations are basically dead or unmaintained. :(

I haven't used it much so please forgive my ignorance, but what is wrong with git rebase?

Rewrites history. Also, Mercurial allows you to version control your patch queue (WIP commits).

Re: Baseline Mac OS X Support merged into FreeBSD package manager

#47

Earlier quoted context omitted.

IMHO, Homebrew offers a lot of advantages over traditional package management tools. It's simple to use, offers a really easy way to add your own packages, and contributing upstream is quite painless. MacPorts has always been reminiscent (to me, anyways) of the FreeBSD Ports Collection...it might even be based on it I'm not sure. So this seems like a prelude to a possible sunsetting of the MacPorts project in favor o…

I've stayed away from Homebrew because of its insistence on taking over /usr/local. I understand the reasoning, but I use /usr/local for my own installs and Homebrew doesn't play nicely in that kind of mixed environment. I would use it if it defaulted to /opt/homebrew or something similar. I'm looking forward to this new package manager alternative.

You can install Homebrew in a different place if you want. I have an install inside my home directory.

Re: Baseline Mac OS X Support merged into FreeBSD package manager

#48

Earlier quoted context omitted.

I haven't used it much so please forgive my ignorance, but what is wrong with git rebase?

Rewrites history. Also, Mercurial allows you to version control your patch queue (WIP commits).

How is this different from the information stored in `git reflog`, which allows you to rollback to commits before their rebase? You can just as easily revert back to the old version, since it never goes anywhere.

Besides, the need to perfectly preserve history in most cases is totally overblown AFAICS, especially local history nobody else sees. I don't care if a person who submitted patches to me made 20 separate minor commits to fix minor things in some case like a code review (e.g. "fix spelling", "fix 80 column violations", "rename this thing", "clean up code a bit and make it shorter re: code review"); those are superfluous and add no meaning to the actual work itself and can be rebased/squashed away in almost all cases. If they submit 20 minor commits that are each independent of one another and isolated, that's another story.

The alternative seems to just be 'have an ugly history littered with these commits' if "rewriting history" is so incredibly dangerous/terrible like it is always implied (which it is not, because you can always recover from it with the reflog until you push). But I'd rather keep my project history clean and clear; a tidy history is just as important as tidy code IMO. FWIW, I think the OP's set of patches are clear and do not constitute an ugly history.

The actual way to 'stop rewriting history' is to disable --force pushes, which does unilaterally rewrite history for all downstream consumers. This is also true for Mercurial. Rebase does not do this, or anything close to it.

As someone who reads and writes a lot of patches, this is an exceedingly common workflow. How is Mercurial any better in this situation where I don't want all that useless information?

Re: Baseline Mac OS X Support merged into FreeBSD package manager

#49
post #47

Earlier quoted context omitted.

I've stayed away from Homebrew because of its insistence on taking over /usr/local. I understand the reasoning, but I use /usr/local for my own installs and Homebrew doesn't play nicely in that kind of mixed environment. I would use it if it defaulted to /opt/homebrew or something similar. I'm looking forward to this new package manager alternative.

You can install Homebrew in a different place if you want. I have an install inside my home directory.

How does it work in practice? I tried it about a year ago and it still stomped on /usr/local for some packages. If I remember correctly, that was due in part to the package not making it easy to install elsewhere, but Homebrew didn't handle it well.

Re: Baseline Mac OS X Support merged into FreeBSD package manager

#50

Earlier quoted context omitted.

I've stayed away from Homebrew because of its insistence on taking over /usr/local. I understand the reasoning, but I use /usr/local for my own installs and Homebrew doesn't play nicely in that kind of mixed environment. I would use it if it defaulted to /opt/homebrew or something similar. I'm looking forward to this new package manager alternative.

Isn't there a way to have Homebrew monitor a "make install" operation so that Homebrew can manage (or at least be aware of) your own installs?

Possibly. I'll check it out again when I have a chance. Perhaps there have been improvements in the past year.
Post reply on HN