loopperfect / buckaroo Goto Github PK
View Code? Open in Web Editor NEWThe decentralized package manager for C++ and friends ๐๏ธ
Home Page: https://buckaroo.pm
License: MIT License
The decentralized package manager for C++ and friends ๐๏ธ
Home Page: https://buckaroo.pm
License: MIT License
Instead of just picking the latest version, narrow down the set of acceptable versions by applying requirements.
We should investigate having a shared build folder so that builds can be shared between projects.
Removes:
.buckconfig.local
BUCKAROO_DEPS
buckaroo/
We should include some documentation in the CLI itself so that users can quickly figure out how things work.
MacBook-Pro-3:buckaroo myuser$ brew install --HEAD loopperfect/lp/buckaroo
==> Installing buckaroo from loopperfect/lp
==> Cloning [email protected]:loopperfect/buckaroo.git
Cloning into '/Users/myuser/Library/Caches/Homebrew/buckaroo--git'...
Warning: Permanently added the RSA host key for IP address '192.30.253.112' to the list of known hosts.
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Error: Failed to download resource "buckaroo"
Failure while executing: git clone --branch master [email protected]:loopperfect/buckaroo.git /Users/myuser/Library/Caches/Homebrew/buckaroo--git
If the user tries to install some-package
and both some-package
and some_package
are available, we should warn the user. Fake packages are a potential security risk.
e.g. Google Test
The project-level BUCKAROO_DEPS
file contains all resolved dependencies. It should only contain immediate dependencies.
NPM has a nice feature where you can depend on a version 3.*
, 1.2.*
, etc. We should support the same.
This may involve some changes to the tokenizer, since we already have versions and wildcard as tokens.
compare for example oktal/pistache git-version vs zip-version
Buckaroo install $org/$mod $ver will fail if folder $org/$mod/$ver already exists and is not a git controlled folder. However buckaroo complains that repository could not be fetched.
This happens if you touch $org/$mod/$ver before running install
error message:
java.io.IOException: java.io.IOException: org.eclipse.jgit.errors.RepositoryNotFoundException: repository not found: /home/gaetano/Projects/buckaroo-tests/test2/buckaroo/oktal/pistache/0.0.1
We put a config.json
file in the user's home directory, but we should also provide an option to have a project local config.json
.
Perhaps the easiest way is just to run buckaroo install
automatically.
This adds friction when writing recipes.
We should add a tracking URL to the config file. Users should be able to opt-out the first time they run Buckaroo.
We should support BUCK
that live outside of the source repo. This allows us to provide packages that we do not have commit access to.
Currently we print exceptions directly at the CLI. Instead, we should have a notion of "human-readable" exceptions, which can be shown to the user. We should leverage the type system to ensure that only human-readable exceptions are shown at the CLI.
For example when asking for a project name.
For example, the target of this recipe is :utf8
:
{
"name": "utfcpp",
"license": "BSL-1.0",
"url": "http://utfcpp.sourceforge.net/",
"versions": {
"2.1.0": {
"url": "[email protected]:njlr/utfcpp.git#2a13df14e883cc119e3b18c9fe5bf2e4d0e9295e",
"buck": {
"target": "utf8"
}
}
}
}
For example:
buckaroo install bost 1.3.0
There is no package called "bost".
Did you mean boost?
We should provide a small cookbook of commonly used libraries, including:
Tried buck a few months ago and cpp compilation on windows didn't work there yet.
We should provide aliases for common commands like NPM does:
npm install
and npm i
npm uninstall
and npm u
For example:
buckaroo version
We also need to add a version definition somewhere in source-control.
This allows us to match GitHub usernames more easily.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.