This repository has been archived by the owner. It is now read-only.

Deprecation of homebrew-science #6365

Closed
iMichka opened this Issue Sep 29, 2017 · 74 comments

Comments

Projects
None yet
@iMichka
Copy link
Contributor

iMichka commented Sep 29, 2017

Since #6348 we do not accept new formulae anymore. We also already migrated the most important formulae to core, and we have a list of other formulae that are being migrated: #6331

This is due to the fact that homebrew-science will loose OS X buildbot support / homebrew-core maintainer support around end of December.

I would like to discuss what happens with the rest of formulae and with homebrew-science in general after that date. There will be a massive amount of formulae that will not have been migrated.

I would like to have this discussion here, and be as transparent as possible about our plans.

@Homebrew/science @MikeMcQuaid

@iMichka iMichka changed the title Deprecation of homebrew-science: what happens with the formulae? Deprecation of homebrew-science Sep 29, 2017

@iMichka iMichka referenced this issue Sep 29, 2017

Closed

Siconos 4.0.0 (new formula) #3755

5 of 5 tasks complete
@tdsmith

This comment has been minimized.

Copy link
Contributor

tdsmith commented Sep 29, 2017

What kind of options are under consideration? Splitting off into a separate organization? Closing shop and directing contributors to complementary efforts like conda-forge?

This is difficult in part because a lot of important scientific software has poor code quality and is difficult to package; build systems are not prioritized by tenure committees. :) Thanks to everyone who's fought to keep these tools building.

@iMichka

This comment has been minimized.

Copy link
Contributor

iMichka commented Sep 29, 2017

I think that some formulae could be hosted in private taps, maybe sorted by topic. There are a lot of formulae that have less than 10/20 downloads in the last 90 days, so these are really "low traffic" formulae.

This would allow to shift the maintenance effort to some users that really want to focus on a bunch of formulae and keep them working, while we provide a backbone of high-quality core formulae and dependencies.

@sjackman

This comment has been minimized.

Copy link
Contributor

sjackman commented Sep 29, 2017

When looking at download statistics, keep in mind that number of downloads in some time period doesn't indicate how many people installed the tool once ages ago have been using it ever since. Useful formula that are venerable and are no longer updated may not see recent downloads, even though they're still actively being used. That's one advantage that Debian Popularity Contest (Popcon) has over Homebrew Analytics. It reports the number of packages that are currently installed. Looking at the flux of package (number of new installations in a time period) is heavily biased toward formulae that were updated during that window.

@sjackman

This comment has been minimized.

Copy link
Contributor

sjackman commented Sep 29, 2017

@MikeMcQuaid How do you feel about testing each formula in Homebrew/science, and keeping only those formulae that pass brew audit, brew install, brew test, and brew linkage? Note that I'm excluding brew audit --online for GitHub notability. If it were notable and passed all four tests, it would have been moved to Homebrew/core.

@MikeMcQuaid

This comment has been minimized.

Copy link
Member

MikeMcQuaid commented Sep 29, 2017

I would suggest that Homebrew/homebrew-science gets moved to another organisation or user and we just make use of GitHub's redirection feature. That said, all these formulae will remain in Git history forevermore for users who want to pull them out and start maintaining them. Regardless, at the end of that time period the tap will either be moved (like dunn/homebrew-emacs) or marked as deprecated (like homebrew/homebrew-apache) and have all formulae removed.

Let's be brutally honestly here for a moment: one of the reasons this whole thing is happening is that Homebrew/homebrew-science is not consistently maintained at a quality that reflects well on the Homebrew organisation. There's been a proliferation of options, personal tweaks and Linux support added rather than fixing user issues, resolving audits and keeping formulae maintained and up-to-date. Open source is a volunteer effort so that's not a critique of anyone but I think we need to be open about the fact many of the current formulae aren't maintained and there's no silver bullet that's going to fix that so it's better to users to delete them (remembering the Git history) rather than keep them going in hope they'll get fixed.

@sjackman

This comment has been minimized.

Copy link
Contributor

sjackman commented Sep 29, 2017

My suggestion is to set a new threshold of quality for Homebrew/science, and ensure that all formulae in the tap pass brew audit, brew install, brew test, and brew linkage. Any formulae that don't pass these standards will be deleted.

@MikeMcQuaid

This comment has been minimized.

Copy link
Member

MikeMcQuaid commented Sep 29, 2017

As I've mentioned: either this tap is migrated to another user or organisation or everything is deleted regardless. What happens if it is migrated I personally don't have any opinions on.

@sjackman

This comment has been minimized.

Copy link
Contributor

sjackman commented Sep 29, 2017

I wonder whether we could build bottles for macOS on TravisCI. I haven't yet found a secure way to transfer bottles from a pull request build to Bintray and GitHub without exposing those credentials. https://docs.travis-ci.com/user/reference/osx/

@sjackman

This comment has been minimized.

Copy link
Contributor

sjackman commented Sep 29, 2017

I've e-mailed CircleCI to request early access to their CircleCI 2.0 macOS builds.
https://discuss.circleci.com/t/os-x-macos-ios-support-on-circleci-2-0/16430

@MikeMcQuaid

This comment has been minimized.

Copy link
Member

MikeMcQuaid commented Sep 30, 2017

@sjackman If you figure out a way to do that it'd be great for all third-party taps. It's possible on Travis today if you can get people to submit PRs to a branch and then make your own PR from that branch on the main repo (not fork) but obviously that's a pain.

@sjackman

This comment has been minimized.

Copy link
Contributor

sjackman commented Sep 30, 2017

Opening the PR could be automated using AWS Lambda or a similar service. Yes, a bit of a pain though.

@schoeps

This comment has been minimized.

Copy link
Contributor

schoeps commented Oct 1, 2017

did you guys considered the concept of maintainers to increase the quality of the formulae?

@schoeps

This comment has been minimized.

Copy link
Contributor

schoeps commented Oct 1, 2017

Ii would be happy to take care of a few formulae that I regularly use (octave, getdp, gmsh and some of their dependencies). I could do that in a separate repository but that would be considerably less visible.
In conclusion, if somebody sets up a new science repository (for linux and mac?) then I am happy to contribute. Sorry, I have not the experience to do that on my own but maybe @sjackman and @dpo could start the first initiative?

@MikeMcQuaid

This comment has been minimized.

Copy link
Member

MikeMcQuaid commented Oct 1, 2017

@schoeps That may be an option for third-party taps but not really for core. I think increasing the visibility would be a better idea than having repositories where some formulae are maintained by some people and others are not (which ends up with some being unmaintained).

@iMichka

This comment has been minimized.

Copy link
Contributor

iMichka commented Oct 1, 2017

concept of maintainers

Like debian/macports? Not really the philosophy of homebrew I think. I like the fact that formulae in core "belong" to everybody. For low-usage formulae taps are fine though, were one dedicated maintainer can keep a bunch of formulae up to date.

octave, getdp, gmsh

These are probably worth migrating to core (not everything is in the list, but you can add formulae that are not hosted on GitHub at the end of the list)

We could also update the readme here with a selection of links to private taps once the formulae are gone here. This is not much work to maintain and would help for the visibility of private taps.

@MikeMcQuaid

This comment has been minimized.

Copy link
Member

MikeMcQuaid commented Oct 1, 2017

Like debian/macports? Not really the philosophy of homebrew I think.

And worth adding to that: unlike Debian our formulae don't just keep working indefinitely. We're too dependent on Apple's changes so formulae need kept up to date.

We could also update the readme here with a selection of links to private taps once the formulae are gone here. This is not much work to maintain and would help for the visibility of private taps.

This seems like a good idea 👍

@sjackman

This comment has been minimized.

Copy link
Contributor

sjackman commented Oct 1, 2017

And worth adding to that: unlike Debian our formulae don't just keep working indefinitely. We're too dependent on Apple's changes so formulae need kept up to date.

Linuxbrew formulae should keep working indefinitely, since it does not use dependencies provided by the host. Untested in practice, but at least in principle. It's more likely in my experience that a formula will stop working because the url disappears. The bottle stays around forever though.

@mkhorton

This comment has been minimized.

Copy link
Contributor

mkhorton commented Oct 3, 2017

Very sad to see this. Homebrew-science has been truly useful for both myself and colleagues... I'm sure no one here needs to be reminded how truly terrible installing/compiling a lot of scientific software is, and though it may be imperfect, it's been far better than the alternative, so thank you all for getting it to this stage!

(As for future contributions... 3 of the now-closed PRs were mine, I had a 4th ready to submit too. I'm happy to make a private materials science tap if necessary, but would be very glad to contribute elsewhere if homebrew-science finds a new home.)

@sjackman

This comment has been minimized.

Copy link
Contributor

sjackman commented Oct 3, 2017

One possibility is to transfer Homebrew/science to the Linuxbrew/ organization. Building Linux bottles is no problem. I'm looking into build macOS bottles with CircleCI. It may or may not be possible, or may require money to keep up with the load. If it's not possible to build macOS bottles on Linuxbrew/, does it still make sense to move Homebrew/science to the Linuxbrew/ organization? We would continue to support installing the formulae from source on macOS.

Note that all notable formulae are being moved to Homebrew/core. We're only talking about the remaining non-notable formulae here.

@sjackman

This comment has been minimized.

Copy link
Contributor

sjackman commented Oct 3, 2017

@mkhorton Sorry to hear about your closed pull requests, Matthew. Please do submit them to Homebrew/core if they pass brew audit --online.

@MikeMcQuaid

This comment has been minimized.

Copy link
Member

MikeMcQuaid commented Dec 11, 2017

Note: I will be archiving this repository, disabling CI and removing all formulae on or shortly after 1st January 2018 (less than a month away). Please migrate any formulae to other taps before that point.

@audy

This comment has been minimized.

Copy link
Contributor

audy commented Dec 13, 2017

Does someone mind posting the analytics report (# of downloads by formula)? There are a few bioinformatics formula that I consider essential but didn't make the cut. I'd like to try to move over to homebrew/core (blast, cd-hit and maybe some others).

Also, (@sjackman) what commands are you using to move formula over while preserving contributor history? Is it this?

@sjackman

This comment has been minimized.

Copy link
Contributor

sjackman commented Dec 13, 2017

Also, (@sjackman) what commands are you using to move formula over while preserving contributor history?

Yes, I was planning on use git filter-branch.

@sjackman

This comment has been minimized.

Copy link
Contributor

sjackman commented Dec 13, 2017

Does someone mind posting the analytics report (# of downloads by formula)?

The following tables include the number of installations on macOS is in the last 90 days as of 2017-12-13. I also have installations for Linux, not included here. The GitHub Notable column is as of 2017-10-11. I plan to update this column with current data.

Bioinformatics

https://gist.github.com/sjackman/d1db0d73597b674bb23b51221a2914cd#file-metrics-bioinformatics-macos-tsv

All of Homebrew/science

https://gist.github.com/sjackman/d1db0d73597b674bb23b51221a2914cd#file-metrics-science-macos-tsv

@sjackman

This comment has been minimized.

Copy link
Contributor

sjackman commented Dec 13, 2017

@audy I'd love your help in migrating formulae from Homebrew/science to Homebrew/core! ❤️

@goxberry

This comment has been minimized.

Copy link
Contributor

goxberry commented Dec 16, 2017

@iMichka This is terrible news! I think trying to maintain a software stack without the benefit of a package manager is the height of stupidity, so whenever I have to write software with stable dependencies, I try to contribute packages for those pieces of software, or update them, when I can.

I'll second the observation that

this is difficult in part because a lot of important scientific software has poor code quality and is difficult to package; build systems are not prioritized by tenure committees. :)

As an infrequent contributor (I'm #25 right now), I'm willing to pitch in and migrate some formula (probably along the lines of mfem, hypre, and sundials, maybe some others) over to core. My Ruby is abysmal, but if the Homebrew core maintainers are willing to work with me on that point, I'm happy to submit a few PRs to help.

I looked at the download statistics and noticed these packages don't get many install events -- my guess is that users of these packages are being directed instead to github.com/LLNL/spack if they want to use a package manager. Although I like spack a lot, the main drawback for me is that spack can be like macports, and will download, e.g., gcc unless you configure it not to. PETSc's build system also includes a mini-package manager that will download and install a bunch of dependencies, and the general advice to users has been to download from the git repo instead (for reasons probably not worth getting into), which probably draws more users away.

@sjackman

This comment has been minimized.

Copy link
Contributor

sjackman commented Dec 16, 2017

Thanks for your help migrating, Geoffrey! It's much appreciated.

@sjackman sjackman referenced this issue Dec 20, 2017

Closed

pocl 1.0 #6503

7 of 8 tasks complete
@MikeMcQuaid

This comment has been minimized.

Copy link
Member

MikeMcQuaid commented Dec 22, 2017

I would suggest that Homebrew/homebrew-science gets moved to another organisation or user and we just make use of GitHub's redirection feature.
marked as deprecated (like homebrew/homebrew-apache) and have all formulae removed.

I would like to contradict myself here: I no longer think moving this repository and redirecting to another organisation is a good option because of the security implications. People will be automatically tapped to the new repository with new admins and security procedures and I don't think that's a safe and reasonable assumption when it's been migrated to non-Homebrew maintainers. After some private discussion with @ilovezfs I think Homebrew/science should have formulae removed and tap_migrations point only to Homebrew/core migrations and the BrewSci organisation can import any formulae they choose but won't have people automatically migrated over from an official Homebrew tap. This is slightly different to Homebrew/nginx and Homebrew/emacs but these were much newer taps that lived for far longer outside the Homebrew organisation.

Given this is my change of heart I'm prepared to offer a slight extension if it's needed.

@MikeMcQuaid

This comment has been minimized.

Copy link
Member

MikeMcQuaid commented Jan 1, 2018

This tap has been deprecated and will shortly be archived.

If you wish to migrate other widely used formulae to Homebrew/homebrew-core please submit a pull request there.

@sjackman

This comment has been minimized.

Copy link
Contributor

sjackman commented Jan 12, 2018

The formulae in Homebrew/science have been archived at https://github.com/brewsci/homebrew-science. I've created a new tap for bioinformatics formulae at https://github.com/brewsci/homebrew-bio.
🍺 brew tap brewsci/bio
🍺 brew tap brewsci/science
💀 brew untap homebrew/science

@MikeMcQuaid

This comment has been minimized.

Copy link
Member

MikeMcQuaid commented Jan 12, 2018

Please note, though, that https://github.com/brewsci/homebrew-science is the same tap with the same issues that led to this one being deprecated/archived and is not endorsed in any way by the Homebrew project.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.