Comments (1)
question about the syntax here... In Homebrew's model, it's a "rolling update" model in which you can only upgrade to the latest and greatest, so there's no such thing as installing a given tag. You can switch back and forth between prior versions you've installed before, but you can't "pin" to a newer version unless you've installed it before.
Given the idea that we want to reference tags, how do we want to architect the repository hosting the bundles such that we can allow users to point at a particular version of a bundle?
We could go about it a few ways:
- Homebrew's model with a flat tree structure (this may conflict with #52 since the filename takes on the name of the bundle itself):
bundles/
my_bundle.json
yo_bundle.json
your_bundle.json
- Cargo's model with a segmented tree structure:
bundles/
my/
my_bundle.json
yo/
yo_bundle.json
your_bundle.json
- Store ALL THE VERSIONS in git as separate files:
bundles/
my_bundle/
0.1.0/
bundle.json
signature.prov
0.2.0/
bundle.json
your_bundle/
0.1.0/
bundle.json
- variant of option 3, using a slightly flatter tree structure
bundles/
my_bundle/
bundle-0.1.0.json
signature-0.1.0.prov
bundle-0.2.0.json
your_bundle/
bundle-0.1.0.json
- variant of options 2 and 3, using cargo-style segmented indexing:
bundles/
my/
my_bundle/
0.1.0/
bundle.json
signature.prov
0.2.0/
bundle.json
yo/
your_bundle/
0.1.0/
bundle.json
- variant of option 1 and 2, using cargo-style segmented indexing with a rolling release:
bundles/
my/
my_bundle/
bundle.json
signature.prov
yo/
your_bundle/
bundle.json
If we're allowing users to specify tags rather than a "rolling release" style of package management, I'm leaning towards option 5 as it gives us a little bit of flexibility. However, if we're leaning towards Homebrew's rolling release update model then options 1 or 6 would be the best choices.
See https://github.com/fishworks/fish-food/issues/1 for why we should consider a cargo-style model.
Scoooooooope?
from duffle.
Related Issues (20)
- SKIP_DOCKER=true make lint fails spectacularly with go 1.13 HOT 1
- Duffle should insert bundle.json at /cnab/bundle.json
- status command should support relocation mapping
- Improve how relocation mappings are applied
- linting sometimes passes in CI when it fails locally
- Start using "v" prefix for tags HOT 2
- Duffle should only use information in claim when running non-stateless custom actions HOT 1
- duffle relocate should preserve tag when writing to a tagged and digested image reference
- Duffle should validate each bundle completely when it is loaded HOT 1
- Making the duffle store transportable HOT 2
- How to point duffle on windows to remote docker engine? HOT 1
- Improve image relocation UX for registries that use self-signed TLS certs HOT 7
- Misleading warning about CLEANUP_CONTAINERS env var being set to an empty string
- Updates in the Claims spec must be implemented
- Duffle driver documentation - prepending 'duffle-' HOT 2
- `SKIP_DOCKER=true make build` still attempts to use Docker for Darwin build HOT 1
- building master fails for me, pointers? HOT 1
- Mount socket path in duffle.json HOT 2
- duffle relocate unzip files in /tmp which is occupying the entire space left HOT 1
- Project will be archived
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from duffle.