4 ms·
The Buckaroo workflow looks like this: # Create your project file $ buckaroo init # Install dependencies $ buckaroo add github.com/buc
by simfoo 8y ago
The Buckaroo workflow looks like this:
# Create your project file
$ buckaroo init
# Install dependencies
$ buckaroo add github.com/buckaroo-pm/boost-thread@branch=master
# Run your code
$ buck run :my-app
And yet another development tool that wants to hijack my workflow. No thanks
Conan.io already does decentralization right and is well on the way on becoming the defacto standard package manager for C++. And all of that without constraining my workflows
- rienbdj 8y agoConan requires a server so it is not decentralised (maybe things have changed since I last checked).
- simfoo 8y agoIt does not require a server. It supports arbitrary remotes (like git does) to exchange packages, but it works without one as well (just publishing packages to the local cache)
- entelechy 8y agoHow do I install a package from git directly? - and can that package depend on another package that lives in another git repository? Afaik this is not supported by conan
- simfoo 8y agoIt is supported. You create the packages using "conan create" from any place with a recipe, which puts the packages into your local conan data directory (called the cache). Any other recipe can then depend on any package that is already in the cache.
- adgasf 8y agoDoes this not assume the package is already on your system?
- simfoo 8y agoNo, conan create builds a package from a recipe. Provided you cloned sources form a git remote, you can locally build the conan package without conan ever hitting your network. You can even just export any recipes into your local cache without manually building the package and then let conan do the work when you require the package as a dependency (using --build all)
- adgasf 8y agoI didn't realize that a recipe was distinct from a package. In most systems there is only one concept: packages. So to see if I have this right: With Conan, to use a package from GitHub, I must download the recipe and add it to my local cache ("cache" seems like the wrong term here, maybe "registry" would be better?) and then I can install it? What about the transitive dependencies? Do I need to repeat the process for each of those?
- simfoo 8y agoThere are no conan packages on Github, usually you can find recipes along (or separate) the sources. Yeah, the term conan "cache" may be a bit misleading, as it is not only a cache but really your "local remote". As soon as a recipe is in your cache, you can depend on it from your own recipes/conan builds. The actual building of the package may happen during the registration of the recipe or during resolve time when you depend on a certain package configuration. Any transitive dependencies will be resolved and, in case of --build missing, the packages will be built automatically according to the recipe. So no, you do not need to build any dependency packages (including transitive dependencies)
- entelechy 8y agoBut all those dependency packages will be resolved against a conan server not against the origin eg. github. Furthermore I'd need to put every version of the package into the conan cache. This is impractical if a complex dependency graph as it would require the user to solve a SAT problem just to determine which packages and versions to put into the conan cache to avoid pulling from the conan server.