Comments (8)
Hi, this is an interesting addition and totally possible. I will look into it.
There is no assumption that all the contents are on the S3 cache as downloading a frameworks package can fail and rome will continue trying the next one in the list.
from rome.
Opened branch https://github.com/blender/Rome/tree/feature/list
Proposed command and modifiers:
$ rome list
Alamofire v3.2.1 ✔︎
APIClient c07a98aa38a9be8d47104f4e8c3dea75ec652368 ✘
Swiftz v0.0.5 ✘
$ rome list --missing
APIClient Swiftz
$ rome list --present
Alamofire
from rome.
Awesome, thanks! A little more context on our setup:
We'd like our CI machine to be the sole producer of all precompiled binaries. This prevents developers from uploading a bad binary that could potentially be used in a production build (e.g. from a beta Xcode version, an in-progress artifact from development on an internal dependency etc.). As such, whenever a developer does an update locally, they'll ideally be able to pull down the cached dependencies and then build the remaining ones locally. When doing so, we'd want only rebuild the necessary dependencies so that our local carthage bootstrap
doesn't take any longer than it needs to.
Once the developer integrates their changes into master
, we'd like the CI machine to build any new frameworks and then upload them to the cache so that it's available to all subsequent developers.
We're currently accomplishing this in part with https://github.com/guidomb/carthage_cache, but unfortunately its cache is keyed by the entirety of the Cartfile.resolved
, so in the case of a cache miss you're forced to do a full carthage bootstrap
, which can be quite time consuming.
Thinking a little more about it—we'd need one additional piece of functionality: a command that is able to evaluate whether or not all dependencies are available in the cache to prevent invoking carthage build
with no parameters (in the case of all dependencies being available). It would likely look something like:
rome download && rome is-cache-complete || carthage build `rome unavailable`
Unfortunately I don't have any familiarity with Haskell, or else I'd be willing to take a shot at implementing this.
from rome.
Ah—didn't see that you replied while I was typing out this response—it should be totally possible to implement the rome is-cache-complete
command in terms of rome list --missing
. It should just be a matter of parsing whether or not there is not any output.
Thanks again for taking a shot at this!
from rome.
You will probably need to write a small script to do so. If xargs
on mac supported --no-run-if-empty
flag it would have worked out of the box.
from rome.
@erichoracek please check if this pre-release meets your needs https://github.com/blender/Rome/releases/tag/v0.3.0.1
from rome.
Updated pre-release: https://github.com/blender/Rome/releases/tag/v0.3.0.2
from rome.
This seems to be working as intended in this release as well. Thanks!
from rome.
Related Issues (20)
- Xcode version specific upload/download HOT 4
- Concurrent downloads for remote cache HOT 1
- Nexus as example engine HOT 4
- [Question] Framework produces both static and dynamic output HOT 4
- Losing debug capability when using cached builds downloaded by Rome HOT 2
- Static folder isn't uploaded to remote server on Xcode 12 HOT 4
- Rome won't upload all downstream re-built frameworks HOT 3
- Rome sometimes printing partial output HOT 1
- Rome not failing when engine exit code is not zero HOT 1
- Issues running Rome with --no-skip-current HOT 6
- Needs to be updated to support XCFrameworks. HOT 13
- When using currentMap its not possible to reuse the generated binaries HOT 3
- Rome crashes when downloading dependencies HOT 1
- Skip bcsymbolmaps and dsyms when uploading/downloading a framework HOT 4
- Issues with Rome for xcframeworks HOT 24
- Failed to install latest ROME in MAC HOT 1
- using rome download --concurrently with --use-xcframeworks leads to io error: openBinaryFile: resource busy (file is locked)
- Add Rome arm64 release artifact HOT 3
- Error if carthage cache and rome cache have a file and directory with the same name
- Build failure with ghc 9.6.2
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 rome.