exanauts / ColPack.jl

A Julia interface to the C++ library ColPack for graph and sparse matrix coloring.
https://exanauts.github.io/ColPack.jl/
MIT License
6 stars 0 forks source link

Big refresh, slightly breaking #11

Closed gdalle closed 1 month ago

gdalle commented 1 month ago

Hey there @michel2323!

This PR fixes #9 by modernizing and cleaning up the package, in the hope of getting it the appreciation it deserves. I tried to apply the current best practices in terms of package structure, as described in my blog https://modernjuliaworkflows.github.io/. I also added a lot of documentation, and a few breaking changes which I feel make sense (see below). However, the basic functionalities were not altered.

These changes affect ADNLPModels.jl (ping @amontoison) but the fixes are easy to apply so I'll take care of them if you accept.

Source code

Strictly speaking, since nothing was documented, these changes could be considered non-breaking, because in Julia the docs is the API ;)

Documentation

Tests

Example

Esthetics

Compat

CI

michel2323 commented 1 month ago

LGTM (besides the missing new line in the yml files). As per the discussion with @amontoison I'd move the package to the Exanauts org if you don't mind. I added you to this repository so you can push the branch and the CI runs.

gdalle commented 1 month ago

Cool, thanks! I'll finish the PR tomorrow. I'm also writing a pure Julia version so we'll be able to compare speed 😊

amontoison commented 1 month ago

@gdalle Can you update the Julia wrappers to use the macro @ccall?

codecov-commenter commented 1 month ago

Welcome to Codecov :tada:

Once you merge this PR into your default branch, you're all set! Codecov will compare coverage reports and display results in all future pull requests.

Thanks for integrating Codecov - We've got you covered :open_umbrella:

gdalle commented 1 month ago

LGTM (besides the missing new line in the yml files).

To have passing tests I had to fix the source of randomness generating the sparse matrix (otherwise the results you get depend on the version of Julia). I also had to modify the number of colors accordingly for some coloring algorithms. @michel2323 can you check that it still looks okay? Then I think we're good to merge.

@gdalle Can you update the Julia wrappers to use the macro @ccall?

@amontoison it's done but I've never written a line of C so please double-check

gdalle commented 1 month ago

@michel2323 should we merge?