On 24/02/18 04:05 PM, Maxim Ivanov wrote:
I am replying mostly to https://resea rch.swtch.com/vgo-import article.
...
IMHO right solution vgo should promote is to apply semver trick described here: https://github.com/dtolnay/semver-trick/blob/master/README.md . In a nutshell it suggests that "oauth/v1" imports "oauth/v2" and type aliases all common types visible in API. Then "moauth" doesn't need a new semver release at all, it stops being viral and whole dependency chain becomes much much simpler.
This is one of the two approaches that the Multics folks used when they ran into the version-skew problem in a heavily versioned collection of shared libraries.

They wrote "updaters" and "downdaters", that respectively took an old call and called the new code, or took a new call and mapped it into old code.

Also used in Solaris and inside Linux glibc, so we've independently re-invented it at least four times (;-))

Go community is going to to do pretty much whatever Russ tells them with imminent vgo release, if smever trick indeed solves this viral problem, it should be encouraged from day 0.

I think the mechanics of doing multiple versions deserves a blog article, as it's been touched on in the group a couple of times.

--dave
[I also think Russ was just using Mo writing extra libraries as an illustration] [see also "Dependency hell is NP-complete" at https://research.swtch.com/version-sat and “DLL Hell”, and avoiding an NP-complete problem, at https://leaflessca.wordpress.com/2017/02/12/dll-hell-and-avoiding-an-np-complete-problem/ ]

--
David Collier-Brown,         | Always do right. This will gratify
System Programmer and Author | some people and astonish the rest
dav...@spamcop.net           |                      -- Mark Twain

--
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to