Pinboard (jm)
https://pinboard.in/u:jm/public/
recent bookmarks from jmWe’ll Never Know Whether Monorepos Are Better2019-01-04T11:00:50+00:00
https://redfin.engineering/well-never-know-whether-monorepos-are-better-2c08ab9324c0
jmAbout six months after the project was declared “done” (but there was always more to do, more improvements to make to our homegrown dependency management solution), we had a retrospective meeting. The same engineers who had taken sides, for and against the project, were again assembled to discuss how it went.
One of the main opponents went first.
“Thank goodness we’re finally having this retrospective,” he said. “I think we can all see that this experiment has been a colossal failure and that it’s time for us to change course and roll back to monorepo.”
“What do you mean?” one of the main multirepo advocates replied. “This was one of the best decisions we’ve ever made!”
This really shocked me. We had access to all of the data you could possibly want to evaluate the decision. The same engineers working with the same codebase had seen what it was like in the monorepo model and the multirepo model. We knew exactly how much it had actually cost to switch. We had lived with the advantages and disadvantages of both models. But still we couldn’t come to an agreement.
That retrospective taught me to be humble in my ambitions to “improve” engineering productivity. There’s no way to measure productivity in software, so there’s no way to know whether controversial, expensive “productivity enhancing” projects actually deliver on their promise, even in hindsight.
]]>monorepo productivity dev engineering coding polyrepohttps://pinboard.in/https://pinboard.in/u:jm/b:8ec25ad622e1/Goodbye Microservices: From 100s of problem children to 1 superstar · Segment Blog2018-07-11T10:51:32+00:00
https://segment.com/blog/goodbye-microservices/
jmarchitecture microservices monolith git monorepohttps://pinboard.in/https://pinboard.in/u:jm/b:ee7d4848d848/Towards true continuous integration – Netflix TechBlog – Medium2017-05-02T10:35:22+00:00
https://medium.com/netflix-techblog/towards-true-continuous-integration-distributed-repositories-and-dependencies-2a2e3108c051
jmUsing the monorepo as our requirements specification, we began exploring alternative approaches to achieving the same benefits. What are the core problems that a monorepo approach strives to solve? Can we develop a solution that works within the confines of a traditional binary integration world, where code is shared? Our approach, while still experimental, can be distilled into three key features:
Publisher feedback — provide the owner of shared code fast feedback as to which of their consumers they just broke, both direct and transitive. Also, allow teams to block releases based on downstream breakages. Currently, our engineering culture puts sole responsibility on consumers to resolve these issues. By giving library owners feedback on the impact they have to the rest of Netflix, we expect them to take on additional responsibility.
Managed source — provide consumers with a means to safely increment library versions automatically as new versions are released. Since we are already testing each new library release against all downstreams, why not bump consumer versions and accelerate version adoption, safely.
Distributed refactoring — provide owners of shared code a means to quickly find and globally refactor consumers of their API. We have started by issuing pull requests en masse to all Git repositories containing a consumer of a particular Java API. We’ve run some early experiments and expect to invest more in this area going forward.
What I find interesting is that Amazon dealt effectively with the first two many years ago, in the form of their "Brazil" build system, and Google do the latter (with Refaster?). It would be amazing to see such a system released into an open source form, but maybe it's just too heavyweight for anyone other than a giant software company on the scale of a Google, Netflix or Amazon.]]>brazil amazon build microservices dependencies coding monorepo netflix google refasterhttps://pinboard.in/https://pinboard.in/u:jm/b:15b95b901f34/Let a 1,000 flowers bloom. Then rip 999 of them out by the roots2015-09-29T15:28:39+00:00
http://www.gigamonkeys.com/flowers/
jmSomewhere along the way someone decided that it would be easier to convert the Birdcage to use Pants which had since learned how to build Scala and to deal with a maven-style layout. However at some point prior Pants been open sourced in throw it over the wall fashion and picked up by a few engineers at other companies, such as Square and Foursquare and moved forward. In the meantime, again because there weren’t enough people who’s job it was to take care of these things, Science was still on the original internally developed version and had in fact evolved independently of the open source version. However by the time we wanted to move Birdcage onto Pants, the open source version had moved ahead so that’s the one the Birdcage folks chose.
(cries)]]>tech-debt management twitter productivity engineering monorepo build-systems war-stories devhttps://pinboard.in/https://pinboard.in/u:jm/b:2f1762f93715/Advantages of Monolithic Version Control2015-08-10T16:52:01+00:00
http://danluu.com/monorepo/
jmmonorepo git mercurial versioning source-control coding dependencieshttps://pinboard.in/https://pinboard.in/u:jm/b:33ea04f52f61/repo2015-05-14T13:09:39+00:00
https://code.google.com/p/git-repo/
jmkludges git monorepo monorepi google android aosp repo coding version-control dvcshttps://pinboard.in/https://pinboard.in/u:jm/b:5ffb20587c5e/Stu Hood and Brian Degenhardt, Scala at Twitter, SF Scala @Twitter 201502172015-03-17T00:08:10+00:00
http://functional.tv/post/113709266154/stu-hood-and-brian-degenhardt-scala-at-twitter
jmmonorepo talks scala sfscala stu-hood twitter pants history repos build projects compilation gradle maven sbthttps://pinboard.in/https://pinboard.in/u:jm/b:5f41b6052f6f/Travis Brown on Twitter: ".@stuhood walks us through the tiny print of his "most controversial slide". #SFScala"2015-02-18T23:09:24+00:00
https://twitter.com/travisbrown/status/567887549672263680/photo/1
jmmonorepo git repository dependencies libraries codinghttps://pinboard.in/https://pinboard.in/u:jm/b:2f77f3b56ddc/