News for hackers. Stuff that matters.
Re:A Proposal for Package Versioning in Go by nemothekid on Monday March 26, 2018 @01:31PM (#16680732)
>when Google's main languages (Python, Java, C++) all have solved dependency management for their own use cases.

Huh? Of those three, I would only consider Java "solved", and both Maven & Ant are far from the panacea of package management.

virtualenv is a community project (much like dep), is pretty new in the grand scheme of things, and isn't completely standardized (some projects use tox, some list out requirements.txt (rarely version pinned), and others vendor.

As for C++, almost everyone does something a bit different so I don't see how that is at all relatable.

Re:A Proposal for Package Versioning in Go by codetrotter on Monday March 26, 2018 @01:38PM (#16680799)
> virtualenv is a community project (much like dep)

virtualenv was a community project but based on that venv was created and has been part of the official Python distribution since Python 3.3, released in 2012.

https://docs.python.org/3/library/venv.html

Re:A Proposal for Package Versioning in Go by developer12 on Monday March 26, 2018 @03:54PM (#16681936)
>virtualenv is a community project (much like dep)

It doesn't stop there either I've seen python projects using nothing, virtualenv, venv, pip-tools, and pipenv.

I finally feel like pipenv is the true solution and it seems very new. All that said and Python is quite old relative to Go.

Re:A Proposal for Package Versioning in Go by Rotareti on Monday March 26, 2018 @09:14PM (#16684297)
Python is slowly catching up. For example in JS/Elm/Rust you have a clean approach with:

* a central package registry

* a file to describe dependencies

* a command line tool to install, build and publish packages

In Python things are more fragmented. You have:

* a central package registry

* a file to store some of your dependencies (Pipfile)

* a command line tool to install packages (Pipenv)

* a file called setup.py in which you need to specify your dependencies again (in another format). You can execute this file to build/publish packages.

It think it would allow for a much nicer user experience if pipenv/pipfile would handle packaging/building/publishing as well..

Re:A Proposal for Package Versioning in Go by saturn_vk on Tuesday March 27, 2018 @01:46AM (#16685619)
With all the bad press npm has had, I would not put it in the clean approach bag.
Re:A Proposal for Package Versioning in Go by bhaak on Monday March 26, 2018 @01:56PM (#16680958)
For java, I would look at gradle, not maven.

Of course, gradle hooks into the whole maven ecosystem but that is one of its advantages. Everybody in Java land understands Maven packages but how you generate doesn't matter.

Re:A Proposal for Package Versioning in Go by nvarsj on Monday March 26, 2018 @04:43PM (#16682400)
Gradle degraded the dependency experience significantly from maven. Maven had a deterministic, sensible (and selectable) way of dealing with conflicts - gradle just defaults to "largest version wins". Similarly, gradle chucked the whole idea of being able to manage common sets of dependencies across multiple projects easily (the maven super pom). I mean, it's all programmable in gradle, but it pretty much ignored the excellent work maven had done except to use its repos.
Re:A Proposal for Package Versioning in Go by pjmlp on Monday March 26, 2018 @03:44PM (#16681835)
Android builds have renewed by love for Maven.

If it wasn't for Android, I wouldn't bother 1 second to learn Gradle.

But I guess Groovy needs some project to keep it alive, now that no one remebers the days JSF beans would be written in Groovy or JUGs were holding Grails talks month after month.

Re:A Proposal for Package Versioning in Go by kuschku on Monday March 26, 2018 @04:49PM (#16682458)
Don’t worry, Gradle is moving to kotlin for build scripts already. Groovy will soon be a (failed) thing of the past.
Re:A Proposal for Package Versioning in Go by vorg on Monday March 26, 2018 @03:49PM (#16681882)
Seems like every other site is converting its Gradle builds into Bazel.