Comments (3)
Wildcard Version
This poses many difficult challenges. The first is the algorithm that decides whether to build a given package. Currently, it takes information from the API database and the packages.tsv and (broadly speaking) diffs it. Any packages not in the database are built. A wildcard matching would require a complete list of versions for any package that appears in the packages.tsv with a wildcard.
This diffing is necessary since we can't get a complete list of tags and repositories in our Quay organization in O(1).
The second is the different behavior of package managers. Conda is already a special case in that it treats the revision number differently. I think this is not difficult to 'sell', since it's just a small feature that we can't provide with the others. How should Homebrew react if I give it an asterisk? Alpine?
I could imagine a tool that generates lines for a specific package name and pre-fills a PR. This is not that difficult to implement, and keeps the 'core' mulled easier to reason about.
Rebuilding
This is already supported, albeit a little bit hidden 😉 It directly follows from the diffing above: Just delete an image file from the API database and trigger a rebuild of master
in Travis.
The question we have to ask is this: Why do we need to rebuild? Is it because the image is damaged, i.e. something went wrong, or because we want to replace a (correct and working) image with something different? Don't we lose reproducibility?
from mulled.
Something in the style of: http://output.jsbin.com/gewaso/4
from mulled.
This poses many difficult challenges. The first is the algorithm that decides whether to build a given package. Currently, it takes information from the API database and the packages.tsv and (broadly speaking) diffs it. Any packages not in the database are built. A wildcard matching would require a complete list of versions for any package that appears in the packages.tsv with a wildcard.
This diffing is necessary since we can't get a complete list of tags and repositories in our Quay organization in O(1).
Why are you diffing against the database and not just rebuild/build all lines that have changed in the last git-commit? Assuming that everything that was not touched is already build.
The second is the different behaviour of package managers. Conda is already a special case in that it treats the revision number differently. I think this is not difficult to 'sell', since it's just a small feature that we can't provide with the others. How should Homebrew react if I give it an asterisk? Alpine?
This would be packager-specific feature. Currently, just for conda.
I could imagine a tool that generates lines for a specific package name and pre-fills a PR. This is not that difficult to implement, and keeps the 'core' mulled easier to reason about.
But it will overload at some point the tsv file and makes updating also challenging. If I want to add new bedtools in 1 year I need to do the diff and see which ones are already included in the tsv file.
The interface looks very nice and usable no matter what we decide here :)
The question we have to ask is this: Why do we need to rebuild? Is it because the image is damaged, i.e. something went wrong, or because we want to replace a (correct and working) image with something different? Don't we lose reproducibility?
This was in response to the idea to drop the conda build-number
. If we drop them we should build the latest release automatically. It was more about damaged or not fully working builds.
I just want to find a way to make it
- easier to insert a new release (+ every build number) in the tsv file but
- keep the tsv file short and readable
- have the latest version more or less automatically
Let's discuss the rest on Thursday.
from mulled.
Related Issues (15)
- RFC: Support singularity, runC HOT 4
- Galaxy Support? HOT 6
- Metadata API call fails for quay.io
- can't access mulled HOT 3
- moving mulled completely to biocontainers HOT 4
- https://mulled.github.io/mulled/ from repo description not working? HOT 3
- Make BioContainers Nextflow compatible HOT 13
- Push Mulled containers to ECR
- table layout needs to be fixed HOT 3
- Automatically delete repositories that are removed from packages.tsv
- We need a decision for packager-namespaces
- Conda: allow omission of build number
- Build-logs are not working
- Copy "Additional Files" into the Image
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 mulled.