LoopPerfect / buckaroo

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

File-system dependencies #115

Open njlr opened 7 years ago

njlr commented 7 years ago

Suppose we have a network drive that hosts some source-code:

+ network-drive
+--+ packages/
   +--+ mathutils/
      +--+ v1.0.0/
         + ...
      +--+ v2.0.0/
         + ...

Then the user could specify a dependency with this information:

{
  name = 'mathutils', 
  path: '//network-drive/packages/mathutils', 
  version: '*'
}

Then Buckaroo would read the file-system to get the folders v1.0.0, v2.0.0, and so on. If the folders match some version name then we can read them as recipe versions.

The lock file would contain the full-path and hash of the code.

This would be particularly useful for companies with legacy VCS, or no VCS at all.

This could also work for URL schemes: https://www.example.com/packages/mathutils/v1.0.0.zip

In the URL case, the user might have to supply a template: https://www.example.com/packages/mathutils/$VERSION.zip. Different formats for semantic-versions could be a problem.

gbmhunter commented 6 years ago

Being able to point to local dependencies (e.g. git repos in folders/network drives which have a valid buckaroo.json file) would be a huge benefit! This aids/speed up development and also works for people who can't host the dependency on the big three (GitHub, GitLab, BitBucket) for confidentiality reasons.

njlr commented 5 years ago

This should be supported via an alias system (https://github.com/LoopPerfect/buckaroo/issues/166)

njlr commented 5 years ago

Should note that Buckaroo Redux will support Git dependencies that are not hosted on The Big Three. These are internally referred to as "AdHoc" dependencies.

njlr commented 5 years ago

(Same for HTTP)

njlr commented 2 years ago

I think this was implemented? @nikhedonia