The scala world takes a step towards source dependencies.https://twitter.com/propensive/status/1028612858156920832 …
-
0:23Show this thread -
Replying to @posco
Not sure they’re going to solve anyone’s problem. They don’t address diamond dependency issues, not to talk about source rather than binary compatibility issues…
3 replies 0 retweets 1 like -
Replying to @alxarchambault
this is not true. Source deps completely eliminate binary runtime errors: a whole class of errors removed. Next, it never requires publishing: a whole class of project management task removed. It does not solve source incompatibility, but that is easier to reason about that bin.
2 replies 0 retweets 5 likes -
Replying to @posco @alxarchambault
Secondly, if you have source incompatibility, you definitely find it in CI, not at runtime trying to find versions that don't throw exceptions in test or prod.
1 reply 0 retweets 1 like -
Replying to @posco @alxarchambault
To play devils advocate: you will always need publishing because you cannot assume your users use your build tool, though. And note that source errors >>>> binary errors, and the likelihood of a binary error that is not caught by tests is pretty under 5%.
2 replies 0 retweets 0 likes -
Replying to @jvican @alxarchambault
I find it amazing how skeptical scala devs are of source deps, but rust, haskell and many other communities seem to use them just fine.
2 replies 0 retweets 2 likes -
Replying to @posco @alxarchambault
I’m pretty much on board, but it’s important to be precise. Publishing will not go away unless you’re working in a silo company that has no need to share artifacts with the rest of the world (which is pretty exceptional).
1 reply 0 retweets 2 likes -
Replying to @jvican @alxarchambault
I don't think so. Builds are usually simple. I think we could easily design a standard way to describe dependencies and compilation flags other than sharing compiler output. Approximately zero effort has been expended on this compared to the effort on sharing binary artifacts.
1 reply 0 retweets 2 likes -
Replying to @posco @alxarchambault
I challenge your assumption that builds are simple. Builds are incredibly complicated, especially in the Scala world, because we’re used to move all the infrastructure/checks/release management to the build tool side. This doesn’t happen in other communities, but it does in ours.
3 replies 0 retweets 3 likes -
My hope for fury (cc
@propensive) is that it is possible to use it as a relatively simple "source package definition", and then other tools are able to consume fury "packages" by applying the definition (or invoking fury) to build them from source.1 reply 0 retweets 2 likes
Yes, this is my intention too. The CLI currently has commands for outputting details of the build in a minimal "raw" format which would be easy for shell scripting (or anything, really), but I could definitely look at providing other formats too.
-
-
Replying to @propensive @jvican and
If the tool is sufficiently small, people will be less uncomfortable invoking it as a library. But I do wonder whether if a `fury export` type command is necessary to interpret the config, the config is already too complex...
1 reply 0 retweets 0 likes -
It wouldn't be unreasonable to provide that same information via a library which just has Fury's config ADT. It's not especially complex, though a different (even simpler) format might be more appropriate, for this purpose.
0 replies 0 retweets 1 like
End of conversation
New conversation -
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.