Drop Requires.jl dependency and use native Julia v1.10 extensions#94
Conversation
- Remove Requires.jl from dependencies in Project.toml - Update Julia compat to require v1.10 (new LTS) - Remove conditional extension loading code from src/Adapt.jl - Simplify extension modules to use standard imports - Update CI to test only Julia v1.10 and newer Julia v1.10 is now the LTS release, so we can drop support for older versions and remove the Requires.jl compatibility layer. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #94 +/- ##
==========================================
- Coverage 91.66% 88.60% -3.06%
==========================================
Files 7 7
Lines 84 79 -5
==========================================
- Hits 77 70 -7
- Misses 7 9 +2 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
This isn't "switching" to package extensions; we were already using them. The code this PR removes serves as backwards compatibility, as per the official Pkg.jl docs: https://pkgdocs.julialang.org/v1/creating-packages/#Backwards-compatibility Why is the Requires.jl dependency problematic? Adapt.jl being such a fundamental package, I'd rather maintain backwards compatibility as long as possible. |
|
This just bumps everything to LTS, and on LTS none of this is necessary. Whether it's merged now or not, this PR will need to be merged at some point because at some point you'll drop prior to LTS 😅. This was just some clean up along the way to figuring out what's going on with the minimum versions of the CUDA.jl stack just to eliminate any potential problems coming from here (though this and other tests of course pointed to CUDA.jl as having a very problematic Project.toml, which led to the other PR). This library is fine as-is but when you want to drop pre-LTS, here's a button that does it. Though I'm a bit surprised there is still a care for future Adapt.jl to support prior to LTS, there isn't any need to rush this particular one. |
Summary
Changes
Motivation
Julia v1.10 is now the LTS release, so we can drop support for older versions and remove the Requires.jl compatibility layer. This simplifies the codebase and removes an unnecessary dependency.
Test plan
✅ Tests pass locally on Julia v1.10
✅ Package extensions load correctly
✅ CI updated to test on v1.10, v1.11, and nightly
🤖 Generated with Claude Code