Description
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 Add support for aria2 for faster downloads #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-install
toXcodes
.- 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-install
CLI/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_install
action to useXcodes
, or create a new action that uses it.- This can be tricky since
Xcodes
isn'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
Xcodes
to consume a.xcode-version
file. - Raise with the community what are other features that
xcode-install
provides thatXcodes
doesn'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! ✨