The decentralized package manager for C++ and friends 🏝️

Overview

Buckaroo

Buckaroo

The decentralized package manager for C++ and friends.

Why Buckaroo?

Package managers like Yarn and Cargo have shown how productive developers can be when they can easily integrate a large ecosystem of projects. Buckaroo fills this gap for C++.

The Buckaroo workflow looks like this:

# Create your project file
$ buckaroo init

# Install dependencies
$ buckaroo add github.com/buckaroo-pm/[email protected]=master

# Run your code
$ buck run :my-app

We have an FAQ.

Package Registries

Pull dependencies directly from GitHub, BitBucket, GitLab, hosted Git and HTTP. How?

Package Registries

IDE Integrations

Support for major IDEs and tools. Integration guides can be found in the docs.

IDE Integrations

Features

C++ has unique requirements, so Buckaroo is a highly sophisticated piece of software.

  • Pull dependencies directly from GitHub, BitBucket, GitLab, hosted Git and HTTP
  • Fully reproducible builds and dependency resolution
  • Completely decentralized - there is no central server or publishing process
  • Allows any build configuration (even on a package-by-package basis)
  • Private and public dependencies to avoid "dependency hell"
  • Multiple libraries per package, so tools like Lerna are unnecessary
  • Pull individual packages out of mono-repos
  • Full support for semantic versioning (but only when you want it!)
  • Live at head! Move fast by depending directly on Git branches, but in a controlled way
  • Blazing fast resolution using clever heuristics
  • Version equivalency checks to reduce dependency conflicts
  • TOML configuration files for convenient editing by computers and humans
  • Works offline (with a populated cache)
  • Enable Upgrade Bot to keep everything up-to-date with a single click

Get Started

Please refer to the Wiki for installation instructions! ✌️

Quick Install

Buckaroo is shipped as a self-contained executable, so all you need to do is download the bundle from the releases page.

Linux
$ wget https://github.com/LoopPerfect/buckaroo/releases/download/v2.2.0/buckaroo-linux -O buckaroo
$ chmod +x ./buckaroo
$ ./buckaroo
macOS

With Homebrew:

$ brew install loopperfect/lp/buckaroo

Or without Homebrew:

$ wget https://github.com/LoopPerfect/buckaroo/releases/download/v2.2.0/buckaroo-macos -O buckaroo
$ chmod +x ./buckaroo
$ ./buckaroo
Windows

You can use the Chocolatey package:

choco install buckaroo

Or, download buckaroo.exe from the releases page.

How Buckaroo Works

The Buckaroo model is very simple. Packages live in source-control, and a manifest file is used to describe dependencies. This points to further manifests to create a dependency graph. Buckaroo works directly over Git and HTTP.

Buckaroo

Head over to the Wiki for more detailed information.

Attribution

SVG graphics in diagrams are made by Freepik from www.flaticon.com and are licensed by Creative Commons BY 3.0.

Issues
  • Windows path issue

    Windows path issue

    Wasn't able to install packages on windows

    Description

    PS C:\Users\test\apache-pulsar-demo> buckaroo install
    LibGit2Sharp.LibGit2SharpException: invalid escape at Users\test\Documents\.buckaroo\cache\https-github-com-buckaroo-pm-apache-pulsar-git-a68ec2d684e0c601
       at LibGit2Sharp.Core.Ensure.HandleError(Int32 result)
       at LibGit2Sharp.Core.Proxy.git_repository_open(String path)
       at LibGit2Sharp.Repository..ctor(String path, RepositoryOptions options, RepositoryRequiredParameter requiredParameter)
       at <StartupCode$buckaroo>[email protected](Unit _arg20) in C:\projects\buckaroo\buckaroo\GitLib.fs:line 161
       at Microsoft.FSharp.Control.AsyncPrimitives.CallThenInvokeNoHijackCheck[a,b](AsyncActivation`1 ctxt, FSharpFunc`2 userCode, b result1)
       at Microsoft.FSharp.Control.Trampoline.Execute(FSharpFunc`2 firstAction)
    

    Possible Fix

    remap paths during windows execution

    Version

    2.0.0

    windows 
    opened by aahmed-se 13
  • support multi install targets

    support multi install targets

    This PR is aimed to support that install command accepts a list.(https://github.com/LoopPerfect/buckaroo/issues/51)

    The output of running this pull request is the following. It accepts multi install targets as list.

    $buckaroo install eigen/eigen ar90n/msgpack11  0.0.7
    Adding dependency on eigen/eigen,ar90n/[email protected]
    Done.
    Installing dependencies...
    Installing eigen/[email protected]
    Installing ar90n/[email protected]
    Success!
    

    Unfortunately, I am not familiar with Java. So it may have a lot of undesirable codes. If so, please tell me them. I'll fix it promptly.

    opened by ar90n 9
  • Failed to install dependency from GitHub

    Failed to install dependency from GitHub

    Description

    When I'm trying to install dependency from GitHub, I get user authentication fail. Tried with buckaroo install github+loopperfect/neither and with my own library.

    Expected Behavior

    Successful installation of dependency.

    Actual Behavior

    buckaroo install github+loopperfect/neither returns: Error! com.loopperfect.buckaroo.sources.RecipeFetchException: Could not fetch github+lo opperfect/neither [email protected]:loopperfect/neither.git: USERAUTH fail

    Possible Fix

    Use https to clone instead of ssh.

    Steps to Reproduce

    1. mkdir test && cd test
    2. buckaroo quickstart
    3. buckaroo install github+loopperfect/neither

    Your Environment

    • Version used: 1.3.1
    • Operating System and Architecture: Linux, Ubuntu 16.04 amd64
    bug 
    opened by 3mbd3v 8
  • Port commonly used libraries

    Port commonly used libraries

    We should provide a small cookbook of commonly used libraries, including:

    • json11
    • Boost
    • range-v3
    • rapidjson
    • rxcpp
    • poco
    • openssl
    • Eigen
    • Open CV
    • Tensorflow
    • observable
    • Caffe
    • json
    • protobuf
    • Bitcoin
    • linenoise (C++)
    • Mars
    • Albert
    • leveldb
    • imagemagick
    • imgui
    • CNTK
    opened by njlr 8
  • is this repo dead?

    is this repo dead?

    I liked the idea and was planning to use it in a project but as per github, the last commit is from 4 months ago and I wonder if the development has ceased tks

    opened by mathiasgrimm 7
  • Currently unable to build on windows

    Currently unable to build on windows

    Heyo!

    I'm new to buck and buckaroo so bear with me.

    Starting by following the instructions for building buckaroo on your homepage I get the following result: BUILD FAILED: Must specify at least one build target

    Reading over the BUCK file I realize I can try again and specify //:buckaroo-cli. Great stuff starts happening but then quickly fails with the following error:

    C:\projects\buckaroo>..\buck\bin\buck build //:buckaroo-cli
    [-] PARSING BUCK FILES...FINISHED 0.0s
    
    C:\projects\buckaroo\buck-out\gen\jgit-jar-fixed__srcs>cp buck-out/gen/jgit-jar/jgit-4.5.0.jar C:\projects\buckaroo\buck-out\gen\jgit-jar-fixed\jgit-4.5.0-fixed.jar   && zip -d C:\projects\buckaroo\buck-out\gen\jgit-jar-fixed\jgit-4.5.0-fixed.jar META-INF/*.RSA META-INF/*.SF META-INF/*.MF
    
    'cp' is not recognized as an internal or external command,
    operable program or batch file.
    
    BUILD FAILED: //:jgit-jar-fixed failed with exit code 1:
    genrule
    stderr: 'cp' is not recognized as an internal or external command,
    operable program or batch file.
    
    [-] BUILDING...FINISHED 0.5s [100%] (24/27 JOBS, 1 UPDATED, 1 [3.7%] CACHE MISS)
    [-] DOWNLOADING... (0.00 B/S AVG, TOTAL: 0.00 B, 0 Artifacts)
    
    bug windows 
    opened by photex 7
  • Features (WIP).

    Features (WIP).

    An ability to pass parameters (features) to dependencies and to use them in BUCK configs. Features comes with condition system allowing to disable dependencies based on dependencies.

    Description

    Features can be set for each dependency. Here is an example:

    [[dependency]]
    package = "github.com/buckaroo-pm/glfw"
    version = "branch=master"
    
      [[dependency.feature]]
      name = "profile"
      value = "core"
    
      [[dependency.feature]]
      name = "api"
      value = { gl = "3.2", gles = "" }
    
      [[dependency.feature]]
      name = "extensions"
      value = [
        "GL_EXT_framebuffer_multisample",
        "GL_EXT_texture_filter_anisotropic"
      ]
    

    GLAD library itself has a generator script which can be called using gen_rule from BUCK. So, features will allow to configure the script.

    Feature types

    Current implementation will have these types:

    • boolean
    • integer
    • string
    • dict - associative container with string key and any value of plain types
    • list - list of any plain values

    Conditions

    Conditions are the way to disable some of dependencies based on passed features. Example:

    [[dependency]]
    package = "github.com/buckaroo-pm/host-pthread"
    version = "branch=master"
    condition = "use_threads"
    

    condition field can be array, then the dependency will be enabled when at least one of conditions are true.

    Condition text is python-like expression, but with very limited syntax.

    Condition evaluation

    If a feature used in condition is not specified, the condition will be false. List of operators:

    condition = "feature1" # for boolean features
    condition = "feature >= 5" # for integers/versions
    condition = "feature = 'abc'" # for previous ones/strings
    condition = "feature contains 'something'" # for arrays (has value)/dicts (has key)
    condition = "feature contains ['something', 'something']" # the same, but a few operands (all should satishfy the condition)
    condition = "feature = 'abc > 5 and abc < 10'"
    condition = "feature = 'abc > 5 or def > 10'"
    condition = "feature = 'abc > 5 or (abc > 2 and def > 10)"
    

    Also, there can be single not prefix which inverts the result of condition evaluation. Example:

    condition = "not 'something' in feature"
    

    Related Issue

    Closes #344

    Motivation and Context

    It is very useful feature to pass some parameters to universal dependencies. This is very common in C++ code, especially in cross-platform libraries.

    Useful links:

    • https://doc.rust-lang.org/cargo/reference/manifest.html#the-features-section

    How Has This Been Tested?

    Still WIP

    Types of changes

    • [ ] Bug fix (non-breaking change which fixes an issue)
    • [x] New feature (non-breaking change which adds functionality)
    • [ ] Breaking change (fix or feature that would cause existing functionality to change)

    Checklist:

    • [x] My code follows the code style of this project.
    • [x] My change requires a change to the documentation.
    • [ ] I have updated the documentation accordingly.
    • [x] I have read the CONTRIBUTING document.

    Progress:

    • [x] Feature parsing.
    • [x] Condition parsing.
    • [x] Feature value passing.
    • [ ] Condition checking.
    opened by Tarik02 6
  • build failure

    build failure

    On a mac with the latest buck, buckaroo fails to build. I avoid using brew, so this is a problem for me. Tested on javac 1.8.0_31 and 1.8.0_144.

    BUILD FAILED: //:buckaroo failed with exit code 1:
    javac
    stderr: /Users/toulouse/code/Tools/buckaroo/src/main/java/com/loopperfect/buckaroo/Either.java:38: error: incompatible types: inferred type does not conform to upper bound(s)
            return join(Optional::of, x -> Optional.empty());
                       ^
        inferred: java.util.Optional<? extends java.lang.Object>
        upper bound(s): java.util.Optional<L>,java.lang.Object
    /Users/toulouse/code/Tools/buckaroo/src/main/java/com/loopperfect/buckaroo/Either.java:42: error: incompatible types: inferred type does not conform to upper bound(s)
            return join(x -> Optional.empty(), Optional::of);
                       ^
        inferred: java.util.Optional<? extends java.lang.Object>
        upper bound(s): java.util.Optional<R>,java.lang.Object
    /Users/toulouse/code/Tools/buckaroo/src/main/java/com/loopperfect/buckaroo/MoreObservables.java:-1: note: Some input files use unchecked or unsafe operations.
    
    /Users/toulouse/code/Tools/buckaroo/src/main/java/com/loopperfect/buckaroo/MoreObservables.java:-1: note: Recompile with -Xlint:unchecked for details.
    
    Errors: 2. Warnings: 0.
    
    bug 
    opened by toulouse 6
  • v0.1.2 Update command throws NullPointerException

    v0.1.2 Update command throws NullPointerException

    The UpdateCommand class returns null from the routine() method where it should return IO.println("Not Implemented yet!")

    Due to this there is a null pointer exception which is not helpful.

    to reproduce this error add the following test to v1.1.2

      @Test
        public void testUpdateParserNiy() throws Exception {
            final CLICommand updateCommand = CLIParsers.commandParser.parse("update");
            updateCommand.routine().run(IOContext.fake());
            assertTrue("Should Reach here", true);
        }
    
    bug wontfix 
    opened by voldyman 6
  • Quickstart fail

    Quickstart fail

    Description

    Quickstart fails at step of adding a dependency: buckaroo install ericniebler/range-v3

    Expected Behavior

    I quote

    Buckaroo will have downloaded the range-v3 source-code from GitHub and installed it locally in your project folder. We can now use the library in a sample application!

    Actual Behavior

    :boom:

    $ buckaroo install ericniebler/range-v3                              
    Read the lock file.                                                                             
    Stats: 6s 0kb 6 events                                                                          
    WARNING: An illegal reflective access operation has occurred                
    WARNING: Illegal reflective access by okhttp3.internal.Platform (file:/usr/local/Cellar/[email protected]/cli/libexec/buckaroo-cli.jar) to field sun.security.ssl.
    SSLSocketFactoryImpl.context                                                                 
    WARNING: Please consider reporting this to the maintainers of okhttp3.internal.Platform  
    Error!                                                                          ive access operations
    java.lang.NullPointerException                                                                       
    Get help at https://github.com/loopperfect/buckaroo/issues                     
    The stacktrace was written to buckaroo-stacktrace.log.
    

    Ok then

    $ cat buckaroo-stacktrace.log
    2017-12-20T22:35:48.322027Z: 
    com.loopperfect.buckaroo.EvenMoreFiles.lambda$switchFileSystem$1(EvenMoreFiles.java:198)
    java.base/java.util.stream.ReduceOps$1ReducingSink.accept(ReduceOps.java:80)
    java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
    java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
    java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
    java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
    java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
    java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
    java.base/java.util.stream.ReferencePipeline.reduce(ReferencePipeline.java:486)
    com.loopperfect.buckaroo.EvenMoreFiles.switchFileSystem(EvenMoreFiles.java:196)
    com.loopperfect.buckaroo.EvenMoreFiles$CopyFileVisitor.preVisitDirectory(EvenMoreFiles.java:181)
    com.loopperfect.buckaroo.EvenMoreFiles$CopyFileVisitor.preVisitDirectory(EvenMoreFiles.java:147)
    java.base/java.nio.file.Files.walkFileTree(Files.java:2720)
    java.base/java.nio.file.Files.walkFileTree(Files.java:2785)
    com.loopperfect.buckaroo.EvenMoreFiles.copyDirectory(EvenMoreFiles.java:141)
    com.loopperfect.buckaroo.EvenMoreFiles.unzip(EvenMoreFiles.java:123)
    com.loopperfect.buckaroo.tasks.CommonTasks.lambda$unzip$10(CommonTasks.java:137)
    io.reactivex.internal.operators.single.SingleFromCallable.subscribeActual(SingleFromCallable.java:35)
    io.reactivex.Single.subscribe(Single.java:2703)
    io.reactivex.internal.operators.single.SingleSubscribeOn$SubscribeOnObserver.run(SingleSubscribeOn.java:89)
    io.reactivex.Scheduler$DisposeTask.run(Scheduler.java:452)
    io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:61)
    io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:52)
    java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:299)
    java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
    java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
    java.base/java.lang.Thread.run(Thread.java:844)
    

    Steps to Reproduce

    1. Follow installation steps
    2. Follow quickstart steps
    3. ???
    4. :boom:

    Context

    Really interested in the idea of a C++ package manager, seems like a major missing part of the "developer experience" of the language. I installed Java on my machine specifically to try out Buckaroo, welp.

    Your Environment

    • Version used: 1.3.1
    • Operating System and Architecture:
    $ uname -a
    Darwin Bens-MacBook.local 17.3.0 Darwin Kernel Version 17.3.0: Thu Nov  9 18:09:22 PST 2017; root:xnu-4570.31.3~1/RELEASE_X86_64 x86_64 i386 MacBook9,1 Darwin
    

    System Version: macOS 10.13.2 (17C88) Kernel Version: Darwin 17.3.0

    (edit to remove irrelevant system info)

    opened by bmcorser 5
  • Failed to install buckaroo

    Failed to install buckaroo

    Description

    Buckaroo installation fails on Arch Linux.

    Expected Behavior

    Buckaroo installs correctly.

    Actual Behavior

    https://gist.github.com/Adiqq/c0f5ba4b5813e38654510df5ea4b00ad

    Possible Fix

    Steps to Reproduce

    1. Clone https://github.com/Adiqq/buckaroo
    2. Ensure docker is installed. Run docker build -t buckaroo .

    Context

    Cannot use backaroo. Trying to install it.

    Your Environment

    • Version used:
    • Operating System and Architecture: Docker base/archlinux and actual Arch Linux
    opened by Adiqq 5
  • Bump Newtonsoft.Json from 11.0.2 to 13.0.1 in /buckaroo-tests

    Bump Newtonsoft.Json from 11.0.2 to 13.0.1 in /buckaroo-tests

    Bumps Newtonsoft.Json from 11.0.2 to 13.0.1.

    Release notes

    Sourced from Newtonsoft.Json's releases.

    13.0.1

    • New feature - Add JsonSelectSettings with configuration for a regex timeout
    • Change - Remove portable assemblies from NuGet package
    • Change - JsonReader and JsonSerializer MaxDepth defaults to 64
    • Fix - Fixed throwing missing member error on ignored fields
    • Fix - Fixed various nullable annotations
    • Fix - Fixed annotations not being copied when tokens are cloned
    • Fix - Fixed naming strategy not being used when deserializing dictionary enum keys
    • Fix - Fixed serializing nullable struct dictionaries
    • Fix - Fixed JsonWriter.WriteToken to allow null with string token
    • Fix - Fixed missing error when deserializing JToken with a contract type mismatch
    • Fix - Fixed JTokenWriter when writing comment to an object

    12.0.3

    • New feature - Added support for nullable reference types
    • New feature - Added KebabCaseNamingStrategy
    • Change - Package now uses embedded package icon
    • Fix - Fixed bug when merging JToken with itself
    • Fix - Fixed performance of calling ICustomTypeDescriptor.GetProperties
    • Fix - Fixed serializing Enumerable.Empty and empty arrays on .NET Core 3.0
    • Fix - Fixed deserializing some collection types with constructor
    • Fix - Fixed deserializing IImmutableSet to ImmutableHashSet instead of ImmutableSortedSet
    • Fix - Fixed deserializing IImmutableDictionary to ImmutableDictionary instead of ImmutableSortedDictionary
    • Fix - Fixed deserializing into constructors with more than 256 parameters
    • Fix - Fixed hang when deserializing JTokenReader with preceding comment
    • Fix - Fixed JSONPath scanning with nested indexer
    • Fix - Fixed deserializing incomplete JSON object to JObject
    • Fix - Fixed using StringEnumConverter with naming strategy and specified values

    12.0.2

    • New feature - Added MissingMemberHandling to JsonObjectAttribute and JsonObjectContract
    • New feature - Added constructor to JTokenReader to specify initial path
    • New feature - Added JsonProperty.IsRequiredSpecified
    • New feature - Added JsonContract.InternalConverter
    • Change - Moved embedded debug symbols in NuGet package to a symbol package on NuGet.org
    • Fix - Fixed deserializing nullable struct collections
    • Fix - Fixed memory link when serializing enums to named values
    • Fix - Fixed error when setting JsonLoadSettings.DuplicatePropertyNameHandling to Replace

    12.0.1

    • New feature - Added NuGet package signing
    • New feature - Added Authenticode assembly signing
    • New feature - Added SourceLink support
    • New feature - Added constructors to StringEnumConverter for setting AllowIntegerValue
    • New feature - Added JsonNameTable and JsonTextReader.PropertyNameTable
    • New feature - Added line information to JsonSerializationException
    • New feature - Added JObject.Property overload with a StringComparison
    • New feature - Added JsonMergeSettings.PropertyNameComparison
    • New feature - Added support for multiple Date constructors with JavaScriptDateTimeConverter
    • New feature - Added support for strict equals and strict not equals in JSON Path queries

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • No usable version of the libssl was found

    No usable version of the libssl was found

    Description

    When following the quickstart tutorial. buckaroo quickstart throws an error that a usable version of libssl cannot be found. This error also occurs when adding the range-v3 package.

    Error messages

    buckaroo quickstart

    Please enter a project name (alphanumeric + underscores + dashes):
    hello
    Writing project files...
    info Resolve start: 2022-02-05T16:51:57
    info Resolving dependencies using quick strategy...
    info Resolve end: 2022-02-05T16:51:57
    info Resolve time: 00:00:00.1752186
    success A solution to the constraints was found.
    No usable version of the libssl was found
    

    buckaroo add github.com/buckaroo-pm/[email protected]=master

    warning Using the Buck build-system since a .buckconfig file was found. Set BUCKAROO_USE_BAZEL to override this or BUCKAROO_USE_BUCK to hide this warning. 
    info Adding dependency on github.com/buckaroo-pm/ericniebler-range-v3 at branch=master
    [git] info Fetching refs from https://github.com/buckaroo-pm/ericniebler-range-v3.git
    No usable version of the libssl was found
    

    Fix Attempts

    I've tried reinstalling and install openssl1.0 and the dotnet (some places said the the dotnet framework was having issues with this).

    Your Environment

    • Version used: I've used the newest version of buckaroo.
    • Operating System and Architecture: WSL2 Ubuntu 20.04 on Windows 11 main hardware
    opened by oraqlle 0
  • README optimized for dark mode

    README optimized for dark mode

    Currently the Buckaroo logo as well as the How Buckaroo Works image aren't optimized for dark mode in the README. A possible solution for this would be to include an svg instead of a png and to add something like this:

    <style>
      path {
        fill: #000;
      }
      @media (prefers-color-scheme: dark) {
        path {
          fill: #fff;
        }
      }
    </style>
    

    See https://www.reddit.com/r/github/comments/knb6c6/comment/gizm69r/?utm_source=share&utm_medium=web2x&context=3

    opened by oberrich 0
  • Bump sharpcompress from 0.22.0 to 0.29.0 in /buckaroo

    Bump sharpcompress from 0.22.0 to 0.29.0 in /buckaroo

    Bumps sharpcompress from 0.22.0 to 0.29.0.

    Release notes

    Sourced from sharpcompress's releases.

    0.29.0 - minor behavior change and fixes

    Two minor fixes from contributors and a behavior fix for extraction. Now the destination directory has to exist before extracting will be allowed.

    More good fixes!

    Minor bug fixes

    Two issues found and squashed

    Recursive call fix

    More fixes!

    Fixes

    Improvements

    GZip usage bugfix

    Fix for Rewindable stream when using a gz file that isn't a tar

    Updates.

    New Features:

    Fixes:

    Encoding changes

    Breaking changes

    ... (truncated)

    Commits
    • ea5c8dc Merge pull request #614 from adamhathcock/ensure-dest-dir-exists
    • 0209d00 Minor updates and prep for 0.29
    • a8d065d Ensure destination directory exists
    • 7bd9711 Merge pull request #610 from cyr/master
    • 61802ea Merge branch 'adamhathcock:master' into master
    • b425659 Merge pull request #611 from Thunderstr1k3/fix-zipheader-seeking
    • 3e32e3d Allowing to seek empty zip files
    • 1b661c9 Fixed bug where large (int32+ file size) adds an additional 512 bytes of padd...
    • 54fc26b Update build and mark for 0.28.3
    • 161f99b Merge pull request #601 from salvois/master
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Failed to install buckaroo on mac with homebrew

    Failed to install buckaroo on mac with homebrew

    Hello. I tried to install the utility with this command (brew install loopperfect/lp/buckaroo) from getting started section, but the installation failed with these errors:

    Error: Invalid formula: /usr/local/Homebrew/Library/Taps/loopperfect/homebrew-lp/[email protected]
    [email protected]: Calling depends_on :java is disabled! Use "depends_on "[email protected]", "depends_on "[email protected]" or "depends_on "openjdk" instead.
    
    Error: Cannot tap loopperfect/lp: invalid syntax in tap!
    

    I have no idea what to do, please help.

    This is brew version:

    Homebrew 2.7.0
    Homebrew/homebrew-core (git revision 47333; last commit 2020-12-23)
    Homebrew/homebrew-cask (git revision 312569; last commit 2020-12-24)
    

    And macos is 10.15.6

    opened by lovely-error 9
Releases(v3.0.2)
Owner
LoopPerfect
C++ Dev Tools Company
LoopPerfect
PMM - The C++ Package Manager Manager

PMM - The Package Manager Manager PMM is a module for CMake that manages... package managers. Wha- Why? People hate installing new software. Especiall

Edgar 12 Jun 28, 2022
BakePKG is a package archive that can install itself without without a package manager.

BakePKG A bad way of packaging applications. Introduction BakePKG is a package archive that can install itself without without a package manager. The

bread 4 Aug 16, 2021
📦 CMake's missing package manager. A small CMake script for setup-free, cross-platform, reproducible dependency management.

Setup-free CMake dependency management CPM.cmake is a CMake script that adds dependency management capabilities to CMake. It's built as a thin wrapper

CPM.cmake 1.3k Aug 8, 2022
CMake driven cross-platform package manager for C/C++.

Hunter CMake driven cross-platform package manager for C/C++. Linux, Windows, macOS, iOS, Android, Raspberry Pi, etc. Documentation: https://hunter.re

null 456 Jul 25, 2022
Conan - The open-source C/C++ package manager

Conan Decentralized, open-source (MIT), C/C++ package manager.

Conan.io 6.1k Aug 5, 2022
C++ Library Manager for Windows, Linux, and MacOS

Vcpkg: Overview 中文总览 Español 한국어 Français Vcpkg helps you manage C and C++ libraries on Windows, Linux and MacOS. This tool and ecosystem are constant

Microsoft 16.3k Jul 31, 2022
C++ package retrieval

cget Cmake package retrieval. This can be used to download and install cmake packages. The advantages of using cget are: Non-intrusive: There is no ne

Paul Fultz II 411 Jul 20, 2022
✔️The smallest header-only GUI library(4 KLOC) for all platforms

Welcome to GUI-lite The smallest header-only GUI library (4 KLOC) for all platforms. 中文 Lightweight ✂️ Small: 4,000+ lines of C++ code, zero dependenc

null 6.3k Jul 31, 2022
Spack is a package manager, and package managers should be trivial to install.

?? Spack with batteries included (linux/x86_64) Spack is a package manager, and package managers should be trivial to install. This repo offers a sing

Harmen Stoppels 14 Jun 6, 2022
PMM - The C++ Package Manager Manager

PMM - The Package Manager Manager PMM is a module for CMake that manages... package managers. Wha- Why? People hate installing new software. Especiall

Edgar 12 Jun 28, 2022
BakePKG is a package archive that can install itself without without a package manager.

BakePKG A bad way of packaging applications. Introduction BakePKG is a package archive that can install itself without without a package manager. The

bread 4 Aug 16, 2021
Extra CMake Modules for YARP and friends

YCM Extra CMake Modules for YARP and friends Documentation Online documentation is available

Robotology 41 Mar 30, 2022
Decentralized pool for Monero mining

Monero P2Pool Decentralized pool for Monero mining. NOTE This is a highly experimental and untested software. I did some extensive testing locally, bu

null 525 Aug 3, 2022
Simple C++ script that will move the mouse pointer lighthly on the screen, perfect to prank your friends.

tembleke Simple script written in C++ that when it is executed, the mouse pointer moves lighthly above the screen. I have made this script in order to

viic 1 Oct 28, 2021
Onix is a decentralized blockchain project built on Bitcoin's UTXO model

What is Onix? Onix is a decentralized blockchain project built on Bitcoin's UTXO model, with support for Ethereum Virtual Machine based smart contract

Onix CryptoCurrency Development 4 Dec 16, 2021
Decentralized architecture for loss tolerant semi-autonomous robotics

gestalt-arch Decentralized architecture for loss tolerant semi-autonomous robotics Objective We demonstrate a decentralized robot control architecture

null 4 Dec 18, 2021
(bad) decentralized chat app

ircreborn what is this well. ircreborn was created because i felt that all the good platforms had too many paywalled features. (also because discord h

X 9 Apr 1, 2022
FFF is a decentralized blockchain based on IPFS/RIPPLE, which integrates lua virtual machine-based smart contracts.

FFF is a decentralized blockchain based on IPFS/RIPPLE, which integrates lua virtual machine-based smart contracts. It is also a software platform designed to help coordinate voluntary free market operations amongst a set of social actors.

gen2600 5 May 31, 2022
RPC++ is a tool for Discord RPC (Rich Presence) to let your friends know about your Linux system

RPC++ RPC++ is a tool for Discord RPC (Rich Presence) to let your friends know about your Linux system Installing requirements Arch based systems pacm

grialion 4 Jul 6, 2022
This is our take on the digitalisation of the board game "b00le0", where you can play versus our AI, or against one of your friends in an online match.

This is our take on the digitalisation of the board game "b00le0", where you can play versus our AI, or against one of your friends in an online match.

valko purzalko 22 Jul 3, 2022
"Sigma File Manager" is a free, open-source, quickly evolving, modern file manager (explorer / finder) app for Windows, MacOS, and Linux.

"Sigma File Manager" is a free, open-source, quickly evolving, modern file manager (explorer / finder) app for Windows, MacOS, and Linux.

Aleksey Hoffman 898 Aug 7, 2022
Examples of using Hunter package manager to build and run Android application.

Examples of using Hunter package manager to build and run Android application. Requirements Android NDK Go to download page and choose NDK for your pl

null 34 Mar 13, 2022
C++ front-end package manager for embedding and redistributing with native applications

Pacm Simple C++ package manager Homepage: https://sourcey.com/pacm Documentation: https://sourcey.com/libsourcey/api-pacm/ Dependencies: LibSourcey (b

Sourcey 84 Jun 5, 2022
CMake wrapper for Xrepo C and C++ package manager

xrepo-cmake CMake wrapper for Xrepo C and C++ package manager. Supporting the project Support this project by becoming a sponsor. Your logo will show

xmake-io 19 May 13, 2022
A simple and straightforward package manager for games.

SimplyPack v1.0 by: Wassimulator A very simple and straightforward package manager for games, written in C. Use SimplyPack.exe or compile sim

Wassim Alhajomar 8 Jul 4, 2022
C package manager-ish

clib(1) Package manager for the C programming language. Installation Expects libcurl to be installed and linkable. With homebrew: $ brew install clib

clibs 4.4k Aug 6, 2022
C++ Package Manager

CPM Note CPM is not being actively maintained. I plan on keeping the website active but don't plan on making further modifications to the codebase. If

James 717 Jul 25, 2022
📦 CMake's missing package manager. A small CMake script for setup-free, cross-platform, reproducible dependency management.

Setup-free CMake dependency management CPM.cmake is a CMake script that adds dependency management capabilities to CMake. It's built as a thin wrapper

CPM.cmake 1.3k Aug 8, 2022
CMake driven cross-platform package manager for C/C++.

Hunter CMake driven cross-platform package manager for C/C++. Linux, Windows, macOS, iOS, Android, Raspberry Pi, etc. Documentation: https://hunter.re

null 456 Jul 25, 2022