It's not a trivial problem. Yes -- we could include the source -- goose itself is actually fairly small and MIT licensed. Its dependencies have licenses that would need to be vetted, so vendoring is also not trivial -- no matter how many lines of code are involved.
We could potentially compile goose and distribute within the rpm -- I've also suggested that before. Unfortunately, we have a migration written in go, which requires a go installation at run time. That means the requirement of a go installation is not avoidable without rewriting that as .sql. There are alternatives we could use that may not suffer from the same issues. I suggest we sit down together at the Summit and decide where to go with this.. -dan On Mon, May 1, 2017 at 10:37 AM, Robert Butts <robert.o.bu...@gmail.com> wrote: > +1 on Vendoring. I don't see a difference if it's 375,000 lines or > 10,000,000 lines. What does it matter if it's 375k lines in someone else's > repo or our own? It does matter from a security standpoint. It means we're > now vulnerable if their repo is compromised. We shouldn't be pulling > _anything_ from the internet at install time. > > Question for the Apache Gurus: If we include the Goose source, can we also > include a binary built from that source? I don't see a legal or > philosophical reason we shouldn't be able to, if we include a hash of the > binary and the LICENSE file. That lets us avoid requiring Go as a > dependency, which is difficult since few package managers have a modern Go > package. Goose is MIT, > https://www.apache.org/dev/licensing-howto.html#binary suggests we can, yes? > > > On Mon, May 1, 2017 at 8:31 AM, Dan Kirkwood <dang...@gmail.com> wrote: > >> ughh.. I'd forgotten I'd done that in all this.. >> >> Again -- catch-22. >> >> >> >> On Sun, Apr 30, 2017 at 10:20 PM, Mark Torluemke <mtorlue...@apache.org> >> wrote: >> > On Sun, Apr 30, 2017 at 7:05 PM, Gelinas, Derek < >> derek_geli...@comcast.com> >> > wrote: >> > >> >> +1 on both of these. >> >> >> >> > On Apr 30, 2017, at 8:50 PM, Eric Friedrich (efriedri) < >> >> efrie...@cisco.com> wrote: >> >> > >> >> > Assuming we stick with goose, why not bundle goose source into the >> >> traffic ops RPM? This will pin the version for us and prevent users from >> >> needing to run go get >> >> >> > >> > Dan had put in a PR to add the Goose source: >> > https://github.com/apache/incubator-trafficcontrol/pull/157 >> > >> > We ended up closing it, as 375,000 lines felt a bit excessive... >> > >> > >> > >> >> > >> >> > We are allowed to bundle code with the MIT license into our releases. >> >> > >> >> > As for the go installation, what about modifying the RPM spec file to >> >> list GoLang as a dependency of the traffic ops RPM? >> >> > >> >> > —Eric >> >> > >> >> > >> >> > >> >> > >> >> > >> >> >> On Apr 28, 2017, at 4:46 PM, Dewayne Richardson <dewr...@gmail.com> >> >> wrote: >> >> >> >> >> >> They are, but makes the tooling easier if we are all in Golang >> >> >> >> >> >>> On Fri, Apr 28, 2017 at 1:44 PM, Dave Neuman <neu...@apache.org> >> >> wrote: >> >> >>> >> >> >>> I don't see why re-writing the APIs in something like golang would >> mean >> >> >>> that we also need to re-write the database admin script. I think >> >> those two >> >> >>> things are mutually exclusive, right? >> >> >>> >> >> >>> On Fri, Apr 28, 2017 at 12:29 PM, Dewayne Richardson < >> >> dewr...@gmail.com> >> >> >>> wrote: >> >> >>> >> >> >>>> I had that thought, as well as there are more recent versions like >> >> >>>> https://github.com/mattes/migrate. The question becomes if we >> ever >> >> get >> >> >>>> around to rewriting TrafficOps APIs in golang, will the Perl >> version >> >> then >> >> >>>> become obsolete? >> >> >>>> >> >> >>>>> On Fri, Apr 28, 2017 at 11:58 AM, Dave Neuman <neu...@apache.org> >> >> wrote: >> >> >>>>> >> >> >>>>> Maybe it's time we take a look at what goose really buys us and >> >> >>> consider >> >> >>>>> writing our own database migration tool. We already have >> admin.pl, >> >> it >> >> >>>>> could probably fit in with that? >> >> >>>>> >> >> >>>>> On Fri, Apr 28, 2017 at 11:45 AM, Eric Friedrich (efriedri) < >> >> >>>>> efrie...@cisco.com> wrote: >> >> >>>>> >> >> >>>>>> Hey Dew- >> >> >>>>>> What calls this script? >> >> >>>>>> >> >> >>>>>> If its called from the Traffic Ops Spec file, then this will >> cause >> >> >>> some >> >> >>>>>> pain for those of us that need to install without internet >> access. >> >> >>>>>> >> >> >>>>>> —Eric >> >> >>>>>> >> >> >>>>>>> On Apr 28, 2017, at 12:41 PM, Dewayne Richardson < >> >> >>> dewr...@gmail.com> >> >> >>>>>> wrote: >> >> >>>>>>> >> >> >>>>>>> I'm working toward a more streamlined installation process for >> >> >>>> Traffic >> >> >>>>>> Ops >> >> >>>>>>> (internally) and publicly. Of course, the same hiccups that >> >> >>> everyone >> >> >>>>> else >> >> >>>>>>> runs into I am as well. Installation of Golang (proper version) >> >> >>> and >> >> >>>>>>> installation of Goose. Goose has been the most challenging for >> >> >>>> several >> >> >>>>>>> reasons. The maintainer hasn't made any real changes since >> 2015, >> >> >>> and >> >> >>>>> has >> >> >>>>>>> not "branched" his code to allow for explicit version download. >> >> >>> Per >> >> >>>>> his >> >> >>>>>>> installation instructions "go get >> bitbucket.org/liamstask/goose/ >> >> >>>>>> cmd/goose" >> >> >>>>>>> >> >> >>>>>>> So I'm I'm proposing to write an installer script in bash to >> help >> >> >>>>>> automate >> >> >>>>>>> the Golang install as well as the Goose install. My only >> concern >> >> >>> (as >> >> >>>>>> well >> >> >>>>>>> as most of yours) is "go get" will grab the latest, but since no >> >> >>> real >> >> >>>>>>> changes have happened I'm left with no other option. >> >> >>>>>>> >> >> >>>>>>> Proposed: >> >> >>>>>>> >> >> >>>>>>> /opt/traffic_ops/install/bin/install_goose.sh >> >> >>>>>>> >> >> >>>>>>> - Install Golang (version 1.8.x) >> >> >>>>>>> - go get bitbucket.org/liamstask/goose/cmd/goose >> >> >>>>>>> >> >> >>>>>>> Thoughts? >> >> >>>>>>> >> >> >>>>>>> -Dew >> >> >>>>>> >> >> >>>>>> >> >> >>>>> >> >> >>>> >> >> >>> >> >> > >> >> >>