LoopPerfect / buckaroo

The decentralized package manager for C++ and friends 🏝️
https://buckaroo.pm
MIT License
933 stars 33 forks source link

Dependencies without a buckaroo.toml can't be used #358

Open rdeusser opened 4 years ago

rdeusser commented 4 years ago

Description

Adding this

[[location]]
package = "gabime/spdlog"
git = "git@github.com:gabime/spdlog"

[[dependency]]
package = "gabime/spdlog"
version = "branch=master"

to my buckaroo.toml and running buckaroo resolve ends up giving me this error: error The package gabime/spdlog at branch=master is unresolvable.

Expected Behavior

I expect that when adding a dependency that doesn't have a buckaroo.toml, it should add it anyway and let me specify the necessary rules in my BUCK file to properly build it.

Actual Behavior

I get this error: error The package gabime/spdlog at branch=master is unresolvable.`

Possible Fix

Not sure of a good way to solve this.

Steps to Reproduce

Steps in the description.

Context

Building a cpp project that relies on projects that either only build with Bazel or CMake.

Your Environment

njlr commented 4 years ago

The reason that it works this way is that we don't want to resolve on versions that have not been made to work with Buckaroo. The intended usage is to add buckaroo.toml files directly to the package you want to use, or create a fork and add them there.

However, in the next version (currently being reviewed https://github.com/LoopPerfect/buckaroo/pull/357) we will add support for Bazel. In Bazel mode, we will be able to resolve any package that has a WORKSPACE file.

We could revisit this decision and allow packages without any metadata files to resolve, but I think it would make defining the correct version constraints more difficult.

njlr commented 4 years ago

Although this issue is general, I started a port of spdlog: https://github.com/buckaroo-pm/gabime-spdlog

buckaroo add github.com/buckaroo-pm/gabime-spdlog