I know licenses are the issue more than lines of code. I’m not a fan of submodules, but if licensing comes through, it might make sense to add goose and its deps as git submodules.
One other thing to discuss :-) > On May 1, 2017, at 2:04 PM, Dan Kirkwood <dang...@gmail.com> wrote: > > 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 >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>> >>>>> >>>