-
Notifications
You must be signed in to change notification settings - Fork 15
feat!: update iOS installation to hyperledger #56
feat!: update iOS installation to hyperledger #56
Conversation
@JamesKEbert Thanks for the updates 👍 Hermes is actually not needed if set I'm not sure if it's a good idea to put binary files into the repo with source code 🤔 🤷♂️ If we add Android libs It might bloat the size of the repo to almost 50 MB and that might grow with eventual updates of those libraries (I'm not sure how GitHub handles incremental updates for binary files now). Does Hyperledger have some shareable storage for such cases? |
Hey @jakubkoci, thanks for the review & comments! I didn't quite follow on your comment surrounding Hermes, based off of what you mentioned in the linked thread,
Let me know what I'm missing though.
I do agree on this, but I don't think we need to add the Android libs, as the existing CI/CD referenced for Android installation works fine for Android, it's just iOS it's broken with as the last version available is 1.8.2.
Given the frequency of updates is low--the last release, 1.16.0, was released in February of 2021, I don't expect the amount of storage required to be immense here. We've had a community issue of not having a consistent location at which the Indy.Framework file has been made available, which has contributed to reducing the ease of use of indy-sdk-react-native. I am okay if we have a different place in mind for the Indy.Framework, but using the Hyperledger Github seemed like the least controversial location, but I'm definitely not set on it.
@TimoGlastra do you have any insight here?
This did make me realize that the zip file should likely have a version in the name, that way we don't override it or break backwards compatibility with any future indy releases. -- I would definitely like to hear additional thoughts on the above though! Thank you :) |
Not sure. Jakub and I have been disagreeing on this for a long time. In my opinion we should first focus on ease of use (so adding it to the repo) and later focus on reducing repo / package size. We're now just using expo for everything with the indy-sdk-expo-plugin meaning we're not affected by this issue ourselves anymore. That repo has the binaries stored in the repo / npm package / plugin itself. |
I told you @JamesKEbert , this was a hot topic some time ago and you revamped it 😛. While I agree with both sides, I'm a bit curious about why this IndySdk.zip cannot be uploaded to the repo from where it came from (indy-sdk or the sovrin releases). I feel that it would be more 'trustable' a binary stored in repo.sovrin (even if it was uploaded manually) than a repo in github. I'm sure there is a good story behind this: I'll be happy to hear it 😄 |
@JamesKEbert Ah, it works when it's set to Regarding the binaries :) To me knowledge the removing binary files from git is not an easy task: I did it for our Absa React Native wallet repo when it has 300 MB and I was lucky that we were just 2 developers and I could push to a newly created repo on Github. If our argument is easy-to-use, then we’re good with the current setup, aren’t we? If the problem is that Absa is hosting it, which can be an issue when Absa goes out of business or decides to remove it or restrict access, then I 100 % agree with you. But I’m sorry I’m a bit hesitant about an approach when we try to solve it the easiest way for us now without worrying about future developers and maintainers. |
I've been thinking, and what if we add the indy-sdk binary to the release on github. You can add multiple assets, and that way we can download it from the HL github, but it is not actually in the repo. I've added it as an example to the 0.2.2 release:
For now we can just reference the 0.2.2 release binary, and whenever a new binary is created we attach it to the latest release and hardcode that in the podspec file. |
The approach I've been meaning to pursue was to ask Ry if there are any build hosting resources that Hyperledger has available (which I can still do if we want to). Your solution seems an elegant approach to me though @TimoGlastra! |
So then we can change the |
💯 👍 |
chore: updated podspec sources, added podspec for indy 1.16.0 Signed-off-by: James Ebert <jamesebert.k@gmail.com>
42b5642
to
c46acc4
Compare
I've updated the PR as discussed in the AFJ Call 10-13-22. |
Looks like we will also have to rename the existing |
Will the latest podspec automatically be used? |
s.source = { :http => "https://github.com/hyperledger/indy-sdk-react-native/releases/download/0.2.2/ios-indy-sdk-1.15.zip" } | ||
s.framework = "Indy" | ||
s.source_files = "**/*.h" | ||
s.vendored_frameworks = "IndySdk/Indy.framework" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does this need to change now that we renamed the zip file?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shouldn't it be 1.15.0 to standardise?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I ended up creating a 1.15.0 and a 1.16.0 podspec (as it seemed Absa may have needed 1.15.0 specifically).
Shouldn't it be 1.15.0 to standardise?
Android was actually updated to 1.16.0 recentlyish, so I think we'd like to standardize on 1.16.0 (especially since it's the most recent version of Indy available).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome, I added the build from Berend. Did you test it with new urls? I've seen raw.githuberusercontent urls before, so want to make sure this is not a user download link that will break with pod install
Any further update on this, or can the change be merged and released? |
Just want to get confirmation that it actually works with the new url when you do a pod install / add it to a project. If someone can test this, we can merge it and create a new release |
I've confirmed no raw.githuberusercontent urls are present--unfortunately the Happy to help as needed 👍 |
Yes--since we don't specify a version for Indy in the indy-sdk-react-native.podspec it should use the most recent version. |
This PR expands upon @niallshaw-absa's efforts in #54, and places the IndySDK framework file and podspec within this Hyperledger repo. I've left the podspec author under @niallshaw-absa, as you performed the majority of the work, but I'd be happy to change this if desired. Again, thank you to your efforts @niallshaw-absa!
Additionally, this PR updates:
If any testing is desired, an essentially identical setup is available using
I've marked this as a breaking change, as noted by @TimoGlastra in #54 (comment)