-
-
Notifications
You must be signed in to change notification settings - Fork 57
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Issues with Rome for xcframeworks #249
Comments
@deberle Thanks for reporting the issue. I didn't develop this feature myself. Probably @vikrem @evandcoleman or @mpdifran can pitch in here as they are they main authors. Feel free create a PR tho to fix the issues tho. I would start small. |
Thanks for logging, @vikrem and I will look into the issue. |
|
Hi! |
We'll take a look next week! |
@tmspzz Vikrem and I were able to fix the issues attempting to download dSYMs and BCSymbolMaps for XCFrameworks (which don't need to be explicitly cached since they live inside the XCFramework). We had a bit more trouble handling the platform flags due to the architecture of the codebase. Because the platform flag is passed into a lot of functions, there's a lot of code to refactor for XCFrameworks, which don't need to be stored in platform specific folders (the platform folders are located within the XCFramework). What's your recommendation for how we should proceed? As an example, we want to go from
to
|
if both: --use-xcframeworks are specified on CLI, just stop right away with an error (that's already the case) In the functions (I know the design is suboptimal), pass a flag for "isXCFramework" and in that case just skip all the platform specific stuff and/or shortcut the path to the correct one with something like
Also, I'm open to other design solutions. Obviously the "cleanest" solution would be to abstract the logic but I am afraid that's a longer deal. |
we already pass an another design idea would be to transform the type of the the longer term idea would be to do that, plus also lift all the functions into Reader monad to not need to thread so many arguments around the application, but it is a bit of a longer deal as you say :) |
Yeah... no. I hope by that time everyone will have moved on or younger more energetic minds than me will have come along. Also, if you are having specific trouble point me to the line of code and I will (or I will get) help. |
I just got a
@mpdifran @vikrem not sure if it's already been fixed by #248? If not, is there a way that we can ignore this symlink error and make it non-blocking? |
This is an unrelated issue. Off the top of my head I would say no, because this is how zip extraction works. It inflates the archive and when it encounters a symlink it recreates it. If I misunderstood please correct me. |
Just took a closer look at the log, and I think it's related to the old platform based cache folder structure
See that the cache was actually unzipped and copied to Carthage/Build correctly from the Although I think a better support for Let me know if it makes sense and love to hear your thoughts on how to fix it. |
Could this be solved by just forcing the zip deflating to overwrite symlinks? |
Yeah, that'll be enough for fixing our current problem, but I don't find zip providing the option to overwrite symlinks. Any reference on that? |
It isn't provided by the original library, and is a bug in any sense. I've upstreamed a patch to the |
I just tested locally with the master branch build and confirmed the |
Any update on this fix? |
Circling back here. Can we get a new release that includes the zip fix? @tmspzz |
Any chance of a release of this feature? |
Hi! my 5¢ although, it's a problem, overwriting isn't the best solution, it will work.
[ yeah, I'm also moving finally to xcframeworks 😅, only 100 to go! ] UPD: it's getting even worse if you have external binary dependency with maccatalyst 💥 |
Is there a workaround for this at the moment? I'm having issues updating deps for an app which uses Carthage + Rome, as I'm hitting this problem. |
@rhys-rantmedia try using Romefile with platform specifier, according to doc, it works differently as one you provide via command line.
we all waiting those fixes... ¯_(ツ)_/¯ |
Bug Report
Rome is not working for me when using the --use-xcframeworks option. My xcframeworks are not uploaded/downloaded as expected.
This is my setup:
I can reproduce the issue with the following steps:
A few notes:
Copied Alamofire.framework
is not correct, should beCopied Alamofire.xcframework
Regardless, when continuing the download path I get the following:
Notes:
createSymbolicLink
warning?Now to the actual problem. In the Carthage/Build folder I now see:
The file
.Alamofire.version
is now missing.Worse: I had cases where instead
Alamofire.xcframework
was missing.It seems like only the first object was restored, sometimes the dot file, sometimes the xcframework. This is hard to reproduce.
Why would the enhancement be useful to most users
This causes random errors locally and on the CI which should affect everyone using xcframeworks.
Rome version:
OS and version:
The text was updated successfully, but these errors were encountered: