News for hackers. Stuff that matters.
Re:Brad Fitzpatrick on the future of Go by kator on Tuesday October 14, 2014 @09:03AM (#8453195)
Any clue as to what they do use internally?
Re:Brad Fitzpatrick on the future of Go by skj on Tuesday October 14, 2014 @09:57AM (#8453401)
Google has an internal build system that builds everything, and it's language independent. Sort of like a distributed make.
Re:Brad Fitzpatrick on the future of Go by ithkuil on Tuesday October 14, 2014 @10:31AM (#8453543)
Re:Brad Fitzpatrick on the future of Go by sqs on Tuesday October 14, 2014 @09:06AM (#8453208)
Yeah, check the comments at http://www.reddit.com/r/golang/comments/2j65lb/go_qa_at_dotg... (specifically the blogspot link and Andrew Gerrand's (enneff's) comment).
Re:Brad Fitzpatrick on the future of Go by jameskilton on Tuesday October 14, 2014 @10:26AM (#8453528)
They vendor everything.
Re:Brad Fitzpatrick on the future of Go by willnorris on Tuesday October 14, 2014 @11:59AM (#8454007)
Yes, we do vendor everything, in that we have a snapshot of all of our dependencies in our source control system. But we do it across the entire codebase, not per project. That is, we typically only ever have a single version of a library for the entire company (with a few exceptions). If a project needs to update to a later version, they basically update everyone using that library. For widely used packages, this can sometimes be a time consuming process, but we've found it to be preferable to the alternative of having version conflicts all over the place. This is generally true not just for Go, but all languages. So the idea of a project needing to pin to a very specific version of a dependency and never update doesn't really fly.
Re:Brad Fitzpatrick on the future of Go by Touche on Tuesday October 14, 2014 @04:19PM (#8455540)
That sounds like a wildly unproductive way to work. Discourages ever changing anything.
Re:Brad Fitzpatrick on the future of Go by wmf on Tuesday October 14, 2014 @04:57PM (#8455768)
It sounds similar to the Linux kernel. If all the providers and consumers of an API are in the same repository, then you can change an API at any time as long as you update all consumers of the API at the same time.
Re:Brad Fitzpatrick on the future of Go by ninkendo on Wednesday October 15, 2014 @04:29AM (#8457596)
It also results in having a huge version control repo. From what I've heard, Google can't move to git because of this... they're stuck with Perforce because it's the only VCS that can support a repo of their size.
Re:Brad Fitzpatrick on the future of Go by skybrian on Tuesday October 14, 2014 @11:48PM (#8457085)
It does discourage upgrading until you really need it. On the other hand, if one person decides to do the work then everyone benefits.
Re:Brad Fitzpatrick on the future of Go by noselasd on Wednesday October 15, 2014 @06:32AM (#8457812)
That sounds quite implausible. Sure, one person can go and upgrade the library.

But I find it hard to believe that one person can go and fix up all the projects he's hardly ever heard of that depends on that library.

Re:Brad Fitzpatrick on the future of Go by skybrian on Wednesday October 15, 2014 @10:59AM (#8458745)
We have good tools for this. A Googler can create a patch that upgrades a library and run tests for all projects to see what breaks. The project owners review the changes. Of course, some upgrades are easier than others.

In some ways this is similar to what Linux distros do, but sharing common source control, build system, and test runner makes it easier.

Re:Brad Fitzpatrick on the future of Go by solipsism on Tuesday October 14, 2014 @02:10PM (#8454800)
I'm going to guess you're a Rubyist. I had to look up what "vendor everything" referred to. There's a reasonably well referenced blog post by a Rubyist -- but only referenced by other Rubyists. I see that the Bundler tool looks for a 'vendor' subdirectory, so I'm going to guess that's how it became a part of the Ruby lexicon.

Anyway, just wanted to point out that it's possible you're using Ruby lingo and not general-purpose tech terms. I could be wrong, maybe I just missed the boat.

I think "bundle everything" might make sense to everybody, including Rubyists.

Re:Brad Fitzpatrick on the future of Go by jleader on Tuesday October 14, 2014 @02:52PM (#8455044)
I remember reading about "vendor" branches in the cvs documentation (probably in the early 2000s), which if I recall correctly were trying to solve a similar problem to sub-modules in git. So I don't think the Rubyists invented the term.
Re:Brad Fitzpatrick on the future of Go by djur on Tuesday October 14, 2014 @03:44PM (#8455317)
The Subversion book covers the concept of vendor branches extensively:

http://svnbook.red-bean.com/en/1.7/svn.advanced.vendorbr.htm...

That's where I first read the term, but it predates svn. As far as I know, it's been the common term for committing external dependencies to your own VCS for as long as there's been such a thing as a VCS.

Re:Brad Fitzpatrick on the future of Go by lavamantis on Tuesday October 14, 2014 @09:40PM (#8456807)
We are Nodeists (not nudists - to the best of my knowledge) - we like to use the term "shrinkwrap."
Re:Brad Fitzpatrick on the future of Go by jacques_chester on Tuesday October 14, 2014 @11:11PM (#8457014)
Shrinkwrap isn't quite the same. npm install --save seems to be the closest equivalent, based on discussions I've had with people.

Vendoring means having the physical source code on hand. Not version numbers, not SHAs -- actual checked-out code.

Re:Brad Fitzpatrick on the future of Go by spacemanmatt on Tuesday October 14, 2014 @10:41AM (#8453600)
"Vendor everything" was my conclusion to solving dependencies as generally as possible, while trying to knit PostgreSQL modules (locally produced schema chunks) and extensions with a base of versioned Rails apps.