xcode-install
xcode-install copied to clipboard
[Discussion] Is it time to sunset this project? 🌆
Overview
The more time goes by, the more I believe this project has already provided the community the value it needed, and has become obsolete. I believe it's time to officially sunset this project, and guide its users to use a more modern (and maintained) tool.
The Pitch
xcode-install (originally a @neonichu's project, which got transferred to @KrauseFx, which got transferred to the @xcpretty GitHub organization), has been around since April 2015, back when there were no other good options to manage multiple versions of Xcode.
Fast forward to Feb 2019, xcodes is born to provide a more user friendly experience. It bases itself off of xcode-install to figure out the complex Xcode downloading logic, but has since then been actively maintained and new features are incorporated into it on a regular basis. To name a few, that are not present in xcode-install:
- GUI (via
Xcodes.app) - Support to
aria2(which has been requested in https://github.com/xcpretty/xcode-install/issues/425 but we never got to implement it), which uses up to 16 connections to download Xcode 3-5x faster - Support to
unxip, providing unxipping up to 70% faster - New in Xcode 14: Sessionless downloads, just announced by @xcodesapp: https://twitter.com/xcodesapp/status/1570991082359627779?s=46&t=qVETxqxGI7ZZsFLLrledIg, available in https://github.com/RobotsAndPencils/XcodesApp/releases/tag/v1.8.0b16
These features, plus the fact that this project is pretty much dead in terms of community support/contributions, make me believe that it's time to sunset this project. I did some contributions in 2021 and @KrauseFx was kind enough to invite me to become the maintainer of this project, and I have been since then, but only from an admin standpoint. Unfortunately I haven't had the appetite to implement new features and fix bugs, just review others' PRs and release new versions 😔
How can we transition xcode-install's users seamlessly to Xcodes CLI?
If we wanted to make the most out of the sunsetting of this project, IMO this is what we'd need, ideally:
- First and foremost, encourage users to migrate from
xcode-installtoXcodes.- This has the added benefit of increasing Xcode's community, which is exponentially positive for the longevity of that project. A project used by many is more likely to be maintained, and a project being maintained is more likely to be used by many — it's a virtuous cycle.
- Pin a GitHub Issue to this repo, documenting these changes, and pointing users to a migration guide.
- Add deprecation reminders across
xcode-install's footprint, e.g.: a yellow log-only warning when runningxcode-installCLI/action, archiving this GitHub repo, add a note to the header of this repo's README file, etc.
- To be able to "convince" users to migrate from one tool to the other, we need to support them, for instance by creating a bridge between the tools.
- This bridge should include the most common (if not all) use cases, e.g.:
- Allow
xcode_installaction to useXcodes, or create a new action that uses it.- This can be tricky since
Xcodesisn't a Ruby gem. But it's doable :) there are tons of fastlane plugins doing this all the time for all sorts of CLI tools.
- This can be tricky since
- Allow
Xcodesto consume a.xcode-versionfile. - Raise with the community what are other features that
xcode-installprovides thatXcodesdoesn't. Not sure if there's anything that wasn't mentioned above, in this list. Evaluate their implementation inXcodes.
- Allow
- Create a migration guide documenting the process so users' learning curve is reduced.
- This bridge should include the most common (if not all) use cases, e.g.:
Ultimately, if we just ghosted issues/PRs in this project and archived it, it'd work. But I care about the users of this repo and would like to leverage its community to make Xcodes better, even more popular and
Are there other actions you think that could be added to this list?
Conclusion
I think it's time. But I think this can be a community decision as well. There are still things to be investigated (e.g. fastlane action and .xcode-version file support), but overall I think Xcodes will provide us with better and more productive tooling, and it's more well maintained. xcode-install served its purpose to be the state of the art tool back in 2015 until 2019, and it inspired Xcodes, so we should all be thankful for, and proud of its history. ❤️
Shout Outs & Mentions
Huge S/O to @neonichu @KrauseFx @mrcljx @jpsim and @timsutton for the work you put into this project! It advanced the state of the art in its field and the developers community benefitted a lot from it! 💟
I'd like to invite you all to this discussion, but also everyone else that uses xcode-install 🙏 Please weight in with your thoughts 💭
Thank you all! ✨
Thanks for this write-up, and yes, this looks good from my end. The only thing I wanna be sure is that xcodes has an integration with fastlane somehow like you mentioned in your post, so that people who use the xcode_install can easily migrate over. Once that's the case, I think we'd have all the pieces needed to sunset xcode-install
Thanks for your input @KrauseFx! I'll make that my #1 priority 💪
Hi, thanks for providing this wonderful tool, sad to see it's sunsetting. By the way does Xcodes also support creating simulators via the command-line? Just like xcversion simulators does.
Hi @EricAtomic ! Thanks for bringing this up, I had forgotten about xcversion simulators 😬
It doesn't look like Xcodes supports simulators 😞 But giving a glimpse in this repo, there are 24 unsolved issues related to simulators 😬 https://github.com/xcpretty/xcode-install/issues?q=is%3Aissue+is%3Aopen+simulators so not sure if this feature really works (specially when installing simulators for the latest version, as it seems to be most common use case and it seems to not be working properly).
I'll reach out to Xcodes maintainers and see what we can do about this 🤗 Thanks once again!
An initial version of the MIGRATION.md was put here: https://github.com/xcpretty/xcode-install/blob/master/MIGRATION.md as well as an initial version of xcodes, a new fastlane action: https://github.com/fastlane/fastlane/pull/20672
Hey everybody - I'll totally do what I can to help out with this transition. Xcodes would not be here without the code and work from xcode-install before it.