The Future Of Osx-64 In Conda-Forge: A Discussion
Hey guys! Today, we're diving deep into a crucial topic for the conda-forge community: the accelerating bitrot of osx-64 and its falling download numbers. This is a conversation about the future of osx-64 support within conda-forge, and it's super important for all of us who rely on this platform.
The Contentious Nature of Dropping Support
Dropping support for any platform, especially one with a dedicated user base, is always a tough decision. In conda-forge, we take these discussions seriously. We've historically been cautious about sunsetting older architectures, as evidenced by our extended timelines for migrating to newer standards like cos7 and macOS 10.13. Even discussions around ppc support have been ongoing. This deliberate approach reflects our commitment to inclusivity and ensuring that we don't leave users behind prematurely. However, there's a delicate balance to strike. We need to be pragmatic and recognize when maintaining support for a platform becomes unsustainable due to dwindling user numbers or an inability to ensure a baseline level of quality, including bug fixes and security updates. This balance is something we are always trying to achieve, and it needs to be maintained. The decision isn't an easy one, and we need to ensure we are doing the right thing for the community. Weighing user needs against resource constraints can lead to tough choices. Sometimes, the right path involves difficult departures, ensuring a focus on progress and the broader community's well-being.
Signs of Decline for osx-64
Honestly, I didn't think we'd be talking about osx-64 so soon, but the signs are becoming hard to ignore. Anaconda already dropped Intel Mac support earlier this year, and many other major packages, like upstream PyTorch, did so long ago. We're even facing challenges with PyTorch v2.9 due to this. While we've managed to work around issues with non-core packages, the recent news about cryptography dropping osx-64 support in their next release is a major red flag. Cryptography is a critical security library. Losing the ability to provide security updates on a platform is a serious issue. It signals a point where continued support becomes untenable. Even though osx-64 remains a tier-2 platform in Rust (the backbone of cryptography), this development serves as a clarion call. If we can't guarantee the timely delivery of security-critical updates, we need to seriously consider declaring the platform end-of-life. This isn't just about convenience; it's about the security and stability of the entire ecosystem.
Key Data Points to Consider
Let's look at some key data points to get a clearer picture:
- Hardware Sales: The last pre-M1 Macs were sold in 2020, which means the hardware is getting older.
- macOS Support:
osx-64is supported up to macOS 26 (Tahoe), which will likely be the last version to support Intel Macs. - End-of-Life: macOS 26 is expected to reach its end-of-life in September 2028, following Apple's typical support patterns.
- CI Infrastructure: Microsoft is deprecating
osx-64CI agents, which means we'd have to switch to cross-compiling fromosx-arm64. While we've done this in reverse for years, the scale of conda-forge might introduce unforeseen challenges. This shift in CI infrastructure could add complexity and potential points of failure to our build processes. Cross-compilation introduces its own set of quirks and debugging challenges, and doing it at scale for a project like conda-forge is a different beast altogether. We need to thoroughly assess the impact of this change and ensure we have the expertise and resources to manage it effectively.
These points highlight the shrinking window of viable support for osx-64. The hardware base is aging, software support is waning, and our infrastructure is facing changes that could make maintenance more difficult. We need to weigh these factors carefully against the needs of our users.
Download Numbers: A Telling Trend
Download numbers tell a compelling story. The graph from the cryptography maintainers (as a proxy, recognizing its limitations) shows a significant drop in osx-64 downloads over the past year. This decline suggests a shrinking user base, which further strengthens the argument for considering deprecation. It's important to note that conda-forge's own download data is skewed by CI downloads, making it harder to get a clear picture. However, the cryptography data provides valuable insights into real-world usage patterns. This downward trend in downloads isn't just a number; it represents real users migrating away from the platform. We need to understand the reasons behind this migration and factor it into our decision-making process. Are users moving to newer hardware? Are they switching operating systems? Understanding these trends is crucial for making informed decisions about the future of osx-64 support.
The Road Ahead for osx-64
So, where does this leave us? Realistically, we could probably squeeze another 2-4 years out of osx-64 if everything builds without major issues. This assumes the cross-compilation switch goes smoothly and key packages remain compilable with minimal patching. However, we need to be honest about the long-term sustainability of this approach. We can't ignore the writing on the wall. The declining user base, the increasing maintenance burden, and the security implications all point towards an eventual sunsetting of osx-64. The question is not if but when and how we make that transition. We need a clear roadmap, a well-communicated timeline, and a plan to support our users through this change. This isn't a decision we can make in isolation. We need to involve the community, gather feedback, and address concerns. A collaborative approach will ensure a smoother transition and minimize disruption for our users. This is a conversation we need to have openly and honestly, weighing the benefits and drawbacks of each option before us.
Let's Discuss!
I wanted to document my findings and start this conversation. What are your thoughts? Do you have other data points or opinions on the future of osx-64 in conda-forge? Let's discuss in the comments below!
This is a conversation, and I want to hear from you guys. Your insights, experiences, and concerns are invaluable as we navigate this complex issue. Let's work together to ensure the long-term health and sustainability of conda-forge for all its users. This is an excellent chance for us to connect, share ideas, and shape the future of the conda-forge community. So, please, let's start talking and figure this out together! 🚀✨💬