-
Notifications
You must be signed in to change notification settings - Fork 53
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merge SuiteSparse into SparseArrays to prepare for excision from base #95
Conversation
Codecov Report
@@ Coverage Diff @@
## main #95 +/- ##
===========================================
- Coverage 89.06% 44.04% -45.03%
===========================================
Files 7 11 +4
Lines 5679 7039 +1360
===========================================
- Hits 5058 3100 -1958
- Misses 621 3939 +3318
📣 Codecov can now indicate which changes are the most critical in Pull Requests. Learn more |
What's the best way to test this? Remove SuiteSparse from the Julia build entirely and |
I believe this should now work; I've tested against a local 1.9 build. Although I will do more rigorous tests once I'm home Wednesday of next week. @ViralBShah |
I think it would be best to completely empty Suitesparse and just have it load SparseArrays.SuiteSparse so that things are non breaking. IIUC this is what has been done here. |
I did flatten things somewhat, so rather than |
There's a docs error - which should be easy to fix. After that let's merge and empty out SuiteSparse.jl as discussed above (so that it just loads SparseArrays.SuiteSparse). |
@Wimmerer We need to empty out the SuiteSparse package too at the same time, so that we merge and bump both simultaneously. |
There's an equivalent PR for SS |
How do you want to handle JuliaSparse/SuiteSparse.jl#67? The diff seems simple enough that we can pull it in here after merging this. This has been given enough thought. Let's merge in both repos. |
Note that upon excision from base, we probably want to use v1.0.0 for SparseArrays (when registering in General) in order to signal seriousness about API stability. |
We'll probably just have @SobhanMP remake the PR here right? It's simple enough to move. Before we merge this I do want to check with you to be sure that flattening the module hierarchy was ok. We went from SuiteSparse.{CHOLMOD | UMFPACK | SPQR} -> SparseArrays.{CHOLMOD | UMFPACK | SPQR} rather than SparseArrays.SuiteSparse.{CHOLMOD | UMFPACK | SPQR}. It felt unnecessarily deep to go with the last option. |
We need to use the module hierarchy that will not break existing Julia packages from Julia 1.0 onwards. |
SuiteSparse will still be exactly the same, this is about entirely new hierarchy for SparseArrays. |
It seems fine to me (and we have enough time for 1.9 to figure out what to fix in case something needs to be done differently). |
Okay merging |
The SuiteSparse docs are not yet showing up in the SparseArray docs. |
I probably neglected to transfer them. I will do that now. |
This is a very simple copy-paste attempt to solve JuliaLang/julia#44247 while I'm away from the office/home (I'm also not 100% sure it's all working; I don't have a good dev set up on this device).
What exactly should go in SuiteSparse to avoid breaking changes is an open question. A re-export doesn't really make sense since SuiteSparse didn't do any exporting. The only package I know of that might mess with SuiteSparse directly is LinearSolve.jl which I can update.
We could do the following with the SuiteSparse.jl stdlib
lib
andgen
in SuiteSparse.jl.Note: this is being done because currently the dependency chain is SparseArrays->SuiteSparse. However, by removing SparseArrays and SuiteSparse from the sysimage we lose the ability to do
/
onSparseMatrixCSC
withoutusing SuiteSparse
. The simplest solution is to combine SuiteSparse and SparseArrays.E: Still need to copy tests