Homebrew-core: go_resource deprecation

Created on 16 Dec 2017  路  31Comments  路  Source: Homebrew/homebrew-core

This will serve as a tracking issue for the removal of the go_resource blocks from formulae.

  • [ ] [acmetool](https://github.com/Homebrew/homebrew-core/blob/master/Formula/acmetool.rb)
  • [ ] [aurora](https://github.com/Homebrew/homebrew-core/blob/master/Formula/aurora.rb)
  • [x] [boot2docker](https://github.com/Homebrew/homebrew-core/blob/master/Formula/boot2docker.rb) https://github.com/Homebrew/homebrew-core/pull/30349
  • [ ] [borg](https://github.com/Homebrew/homebrew-core/blob/master/Formula/borg.rb)
  • [ ] [charm](https://github.com/Homebrew/homebrew-core/blob/master/Formula/charm.rb)
  • [ ] [cig](https://github.com/Homebrew/homebrew-core/blob/master/Formula/cig.rb)
  • [ ] [cosi](https://github.com/Homebrew/homebrew-core/blob/master/Formula/cosi.rb)
  • [x] [devd](https://github.com/Homebrew/homebrew-core/blob/master/Formula/devd.rb) #22543
  • [x] [dockviz](https://github.com/Homebrew/homebrew-core/blob/master/Formula/dockviz.rb) https://github.com/justone/dockviz/issues/41 https://github.com/Homebrew/homebrew-core/pull/26862
  • [ ] [dockward](https://github.com/Homebrew/homebrew-core/blob/master/Formula/dockward.rb)
  • [ ] [gdm](https://github.com/Homebrew/homebrew-core/blob/master/Formula/gdm.rb)
  • [ ] [ghq](https://github.com/Homebrew/homebrew-core/blob/master/Formula/ghq.rb)
  • [x] [gitlab-runner](https://github.com/Homebrew/homebrew-core/blob/master/Formula/gitlab-runner.rb) #24835
  • [x] [goad](https://github.com/Homebrew/homebrew-core/blob/master/Formula/goad.rb) #24835
  • [ ] [gobuster](https://github.com/Homebrew/homebrew-core/blob/master/Formula/gobuster.rb)
  • [ ] [goofys](https://github.com/Homebrew/homebrew-core/blob/master/Formula/goofys.rb)
  • [ ] [gost](https://github.com/Homebrew/homebrew-core/blob/master/Formula/gost.rb)
  • [ ] [gron](https://github.com/Homebrew/homebrew-core/blob/master/Formula/gron.rb)
  • [ ] [gx-go](https://github.com/Homebrew/homebrew-core/blob/master/Formula/gx-go.rb)
  • [ ] [gx](https://github.com/Homebrew/homebrew-core/blob/master/Formula/gx.rb)
  • [ ] [jid](https://github.com/Homebrew/homebrew-core/blob/master/Formula/jid.rb)
  • [ ] [jvgrep](https://github.com/Homebrew/homebrew-core/blob/master/Formula/jvgrep.rb)
  • [x] [karn](https://github.com/Homebrew/homebrew-core/blob/master/Formula/karn.rb) #22167
  • [x] [lego](https://github.com/Homebrew/homebrew-core/blob/master/Formula/lego.rb) #28492
  • [ ] [mailhog](https://github.com/Homebrew/homebrew-core/blob/master/Formula/mailhog.rb)
  • [x] [megacmd](https://github.com/Homebrew/homebrew-core/blob/master/Formula/megacmd.rb) #21843
  • [ ] [mmark](https://github.com/Homebrew/homebrew-core/blob/master/Formula/mmark.rb)
  • [x] [modd](https://github.com/Homebrew/homebrew-core/blob/master/Formula/modd.rb) #22025
  • [x] [mongodb](https://github.com/Homebrew/homebrew-core/blob/master/Formula/mongodb.rb) #23214
  • [ ] [[email protected]](https://github.com/Homebrew/homebrew-core/blob/master/Formula/[email protected])
  • [ ] [[email protected]](https://github.com/Homebrew/homebrew-core/blob/master/Formula/[email protected])
  • [x] [[email protected]](https://github.com/Homebrew/homebrew-core/blob/master/Formula/[email protected]) #22593
  • [ ] [mpdviz](https://github.com/Homebrew/homebrew-core/blob/master/Formula/mpdviz.rb)
  • [x] [otto](https://github.com/Homebrew/homebrew-core/blob/master/Formula/otto.rb) #22567
  • [x] [packer](https://github.com/Homebrew/homebrew-core/blob/master/Formula/packer.rb) https://github.com/Homebrew/homebrew-core/pull/22017
  • [x] [percona-server-mongodb](https://github.com/Homebrew/homebrew-core/blob/master/Formula/percona-server-mongodb.rb) #23215
  • [x] [pilosa](https://github.com/Homebrew/homebrew-core/blob/master/Formula/pilosa.rb) #22528
  • [x] [pond](https://github.com/Homebrew/homebrew-core/blob/master/Formula/pond.rb) #22568
  • [x] [pup](https://github.com/Homebrew/homebrew-core/blob/master/Formula/pup.rb) https://github.com/Homebrew/homebrew-core/pull/22020
  • [x] [qpm](https://github.com/Homebrew/homebrew-core/blob/master/Formula/qpm.rb) #28023
  • [ ] [s-search](https://github.com/Homebrew/homebrew-core/blob/master/Formula/s-search.rb)
  • [x] [serf](https://github.com/Homebrew/homebrew-core/blob/master/Formula/serf.rb) #22019
  • [ ] [sift](https://github.com/Homebrew/homebrew-core/blob/master/Formula/sift.rb)
  • [x] [slackcat](https://github.com/Homebrew/homebrew-core/blob/master/Formula/slackcat.rb) #22026
  • [ ] [spaceinvaders-go](https://github.com/Homebrew/homebrew-core/blob/master/Formula/spaceinvaders-go.rb)
  • [x] [srclib](https://github.com/Homebrew/homebrew-core/blob/master/Formula/srclib.rb) #22158
  • [ ] [teleconsole](https://github.com/Homebrew/homebrew-core/blob/master/Formula/teleconsole.rb)
  • [ ] [termshare](https://github.com/Homebrew/homebrew-core/blob/master/Formula/termshare.rb)
  • [x] [terraform-docs](https://github.com/Homebrew/homebrew-core/blob/master/Formula/terraform-docs.rb) https://github.com/Homebrew/homebrew-core/pull/32799
  • [ ] [terraform-inventory](https://github.com/Homebrew/homebrew-core/blob/master/Formula/terraform-inventory.rb)
  • [ ] [terraform-provisioner-ansible](https://github.com/Homebrew/homebrew-core/blob/master/Formula/terraform-provisioner-ansible.rb)
  • [x] [terraform](https://github.com/Homebrew/homebrew-core/blob/master/Formula/terraform.rb)
  • [x] [textql](https://github.com/Homebrew/homebrew-core/blob/master/Formula/textql.rb) #22156
  • [x] [traefik](https://github.com/Homebrew/homebrew-core/blob/master/Formula/traefik.rb) #24835
  • [x] [vault](https://github.com/Homebrew/homebrew-core/blob/master/Formula/vault.rb) #22003
  • [x] [vaulted](https://github.com/Homebrew/homebrew-core/blob/master/Formula/vaulted.rb) #34526
  • [x] [vegeta](https://github.com/Homebrew/homebrew-core/blob/master/Formula/vegeta.rb) #28024
  • [x] [vultr](https://github.com/Homebrew/homebrew-core/blob/master/Formula/vultr.rb) #22027
  • [ ] [websocketd](https://github.com/Homebrew/homebrew-core/blob/master/Formula/websocketd.rb)
  • [ ] [wego](https://github.com/Homebrew/homebrew-core/blob/master/Formula/wego.rb)
  • [ ] [wellington](https://github.com/Homebrew/homebrew-core/blob/master/Formula/wellington.rb)
  • [ ] [wiki](https://github.com/Homebrew/homebrew-core/blob/master/Formula/wiki.rb)
go help wanted outdated

Most helpful comment

It took a long time, but we finally merged the go-bindata removal from gitlab-runner

https://gitlab.com/gitlab-org/gitlab-runner/merge_requests/831

gitlab-runner 11.1.0, will be the first release without go-bindata

All 31 comments

Clickable list. @ilovezfs feel free to copy paste this one into the top post and delete this one, if you鈥檇 like.

< list redacted >

@vitorgalvao done!

Vendored with other tools

charm - rogpeppe/godeps

docker-gen - robfig/glock

s-search - FiloSottile/gvt


gdm would probably have a similar bootstrapping issue to gx / gx-go


cosi has moved to https://github.com/dedis/cothority/tree/master/cosi


terraform - golang.org/x/tools/cmd/stringer


gotools are not included

[email protected]
[email protected]


Have vendoring, just not in a tagged release.

mailhog - https://github.com/mailhog/MailHog/issues/190


Existing open issues requesting vendoring.

lego - https://github.com/xenolf/lego/issues/420, https://github.com/xenolf/lego/issues/165

@ilovezfs Should I submit a go-bindata formula that builds from the most recent commit to take care of goad, gitlab-runner and traefik?

We'll need to get them to tag it.

Upstream hasn't been active for two years. https://github.com/jteeuwen/go-bindata/issues/134

I think he changed user names. You can CC @grobie in your issue ;)

Note also
https://github.com/jteeuwen/go-bindata/issues/165
https://github.com/Dr-Terrible/go-overlay/issues/76

So we should probably bring goad, gitlab-runner and traefik into those discussions too and figure out what to actually do here :)

@matteeyah @tmaczukin @To1ne Do you have any thoughts on the situation with jteeuwen/go-bindata development seeming to have stopped and the various forks such as tmthrgd/go-bindata? We're hoping not to have to vendor the gobindata resource in formulae (such as gitlab-runner) in perpetuity, and instead to have a formula for it, but that's going to require an active gobindata upstream (and a tag).

@ilovezfs rakyll/statik (pilosa) looks to be similar to go-bindata, do you want a formula for rakyll-statik (conflicts with statik) to remove the go_resource from pilosa or is that another that needs to be referred upstream?

@commitay the project looks like it would meet the notability requirements for a new formula so that should be fine. Not sure about the name though.

devd, mailhog and qpm have vendoring, just not in a tagged release.

@commitay do you mind requesting a new tag for those?

馃憤 I'll ask for new tags and start asking for vendoring with the others.

Not sure about the name though.

Any thoughts on this?

I guess go-statik or golang-statik
See https://packages.debian.org/sid/golang-statik

Probably go-statik since our Go package is go and Debian's is golang.

As for gitlab-runner goes we are in process of moving away from go-bindata to have these resources stored as files alongside the binary. It seems to be a pain to maintain prebuilts this way, given that these images only grow.

cc @nolith

(GitLab Runner Maintainer)

I can confirm, we are planning to remove go-bindata from gitlab-runner.

Thanks @ayufan and @nolith!

@commitay so we'll need to raise this with goad, otto and traefik upstreams to see how they want to handle it.

Not much more we can do with otto

https://github.com/hashicorp/otto#otto

Otto is no longer actively developed or maintained.

Time for otto to go to the glue factory https://github.com/Homebrew/homebrew-core/pull/22567

Two others you might want to 馃拃

boot2docker Latest commit 8a39996 on 21 Jan 2016

This project is officially deprecated in favor of Docker Machine. The code and documentation here only exist as a reference for users who have not yet switched over (but please do soon).

pond Latest commit 675020c on 25 May 2016

Pond is in stasis, and has been for several years. I hope that some of the ideas prove useful in the future, but people should use something better polished and reviewed. I've no plans to shutdown down the default server, but new users should look elsewhere.

pond had 3 installs in the last 30 days, so that can be removed: https://github.com/Homebrew/homebrew-core/pull/22568

Unfortunately, boot2docker had 824 installs in the last 30 days (746 install on request), so it seems upstream is having trouble getting everyone to move to Docker Machine. docker-machine does have an order of magnitude more installs, 9,317 (2,207 install on request), so it may be a matter of time before the rest switch over.

Just a message for someone else who decided to write a formula for Go app.

Many formulas (especially for apps written in Go) try to install package like this:

(buildpath/"src/github.com/xxxx/yyyy").install buildpath.children

Guess what happens if package repo contains src dir 馃槅
So, if your package does, slightly modify your formula:

tempdir = buildpath/"gopath"
tempdir.mkpath
(tempdir/"src/github.com/xxxx/yyyy").install buildpath.children - [tempdir]

ENV["GOPATH"] = tempdir

I stumbled across this ticket while searching for this error from brew audit:

`go_resource`s are deprecated. Please ask upstream to implement Go vendoring

Why are go_resources deprecated? It doesn't say anything about it in the documentation. What are we supposed to use instead? What is Go "vendoring?"

@ylluminarious Go "vendoring" is similar to any other "vendoring" and based on same principles: dependences are collected and stored within vendor folder in package root. On build, Go will use vendored sources instead of fetching them.

As of "why", the answer is simple: formula size. Some formulas have up to 10-15 Go dependencies, and it's something like 5 lines of code for each dep. In result we have formulas with almost 100 lines of deps.

I would like to help to this issue, but since I am a newbie, is there any tutorial or how-to for me to get started?

It took a long time, but we finally merged the go-bindata removal from gitlab-runner

https://gitlab.com/gitlab-org/gitlab-runner/merge_requests/831

gitlab-runner 11.1.0, will be the first release without go-bindata

@nolith @ayufan excellent. Can someone from upstream open a PR for the new version now that gitlab-runner 11.1.0 is out? The formula needs to be adjusted since it currently assumes go-bindata use and I'm not sure what that entails.

This pull request seems to be managed by the BrewTestBot. Nevertheless, let me give you the update that terraform-docs has just been freed from go_resource, see here.

Closing as @ilovezfs isn't around to maintain the list any more.

Was this page helpful?
0 / 5 - 0 ratings