You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
classifier-reborn is designed to work with or without
[GSL](https://www.gnu.org/software/gsl/) support.
https://github.com/jekyll/classifier-reborn/blob/99d13af5adf040ba40a6fe77dbe0b28756562fcc/docs/index.md?plain=1#L68
If GSL is installed, classifier-reborn will detect it and use it. If GSL
is not installed, classifier-reborn will fall back to a pure-ruby
implementation. The mechanism for doing so is in `lsi.rb`:
https://github.com/jekyll/classifier-reborn/blob/99d13af5adf040ba40a6fe77dbe0b28756562fcc/lib/classifier-reborn/lsi.rb#L7-L17
I think it's important to test the classifier-reborn gem with GSL
support in CI. One of my goals is to add similar support using Numo,
and I'd like that to be tested in CI as well. Also, I want to make sure I
don't do anything along the way that could break existing GSL support.
As far as I can tell, GSL support was never tested in CI before now
(though it was previously discussed
[here](jekyll#46 (comment))).
In this PR, I'm expanding our text matrix to test with and without GSL
enabled. When the matrix has GSL enabled, we install the `gsl` gem
(which is not included in our Gemfile since it's optional). Lucky for
us, GitHub already [includes libgsl as pre-installed
software](https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2004-Readme.md#installed-apt-packages),
so we don't need to do anything special for the apt package. Our gem
already has everything needed to build & install. When `matrix.gsl` is
false, we won't install the gem and tests will run the native Ruby
implementation. When `matrix.gsl` is true, we'll install the gem tests
will run the GSL implementation.
Currently, GSL only works with Ruby 2.7. (One of the main reasons I want
to add support for Numo is because GSL is becoming difficult to
support.) As such, I've excluded other versions of ruby in our test
matrix for now. They'll still be tested with GSL disabled, but not with
it enabled.
While working on this, I noticed some tests in the LSI spec that return
early when `$GSL` is not enabled. It would be better for those tests to
report as skipped when GSL is not enabled (and this matches the pattern
of the redis tests, that report as skipped if redis isn't available).
0 commit comments