Skip to content

Bring the CI modernization into master - #10

Merged
adimajo merged 10 commits into
masterfrom
chore/modernize-ci-master
Oct 31, 2026
Merged

adimajo merged 10 commits into
masterfrom
chore/modernize-ci-master

Conversation

@adimajo

@adimajo adimajo commented Oct 31, 2026

Copy link
Copy Markdown
Owner

Master's CI is red: it still runs the old workflow on Python 3.7 and 3.8,
which cannot be installed anymore. The modernization (#9) never reached
master: it was merged into fix/keras3-nn after #8 had already been merged
into master.

This brings those 5 commits (pyproject.toml, .flake8, new workflow, removal
of Travis/Pipenv/tox, README) into master. The merge conflicts only on
Pipfile.lock, modified by the Dependabot PRs and deleted here; it is removed,
since pyproject.toml replaces the Pipfile. The resulting tree is identical to
the one tested in #9 (93 tests pass locally on Python 3.12).

The new workflow runs for the first time on this PR (Python 3.10 to 3.12).

adimajo and others added 10 commits October 29, 2026 16:10
setup.py declared no dependency (install_requires was empty), pinned
the supported versions to 3.7 and 3.8 and shipped the example scripts
as executables. Describe the project in pyproject.toml instead, with the
runtime dependencies that the code imports, Python >= 3.10, and test,
docs and release extras. The version still comes from glmdisc.__version__.
The lint options only lived in tox.ini next to a py37-py310 environment
list that CI never used. Move them to .flake8, which both the workflow
and a local run read, and remove tox.ini.
The workflow ran on Python 3.7 and 3.8, which actions/setup-python can
no longer install, so it never started. Test on 3.10 to 3.12 with
checkout v4 and setup-python v5, install with pip from pyproject.toml
instead of pipenv, lint in its own job, and build and check the
distributions in a third job. Coverage goes to Codecov from one job.
Travis is no longer used (the GitHub workflow replaced it), and the
Pipfile and its lock pinned old dependencies that pyproject.toml now
declares, including versions flagged by Dependabot.
Drop the Travis badge, list the supported Python versions of the
workflow and replace the pipenv and tox instructions with an editable
pip install and the flake8 configuration.
PR 9 was merged into the Keras 3 branch after that branch had gone to
master, so master kept the Python 3.7 workflow. Bring the commits in; the
Dependabot bumps of Pipfile.lock are dropped with the file, which
pyproject.toml replaces.
scikit-learn 1.8 removed the multi_class argument of LogisticRegression,
so every SEM fit with a continuous feature raised TypeError. The newton-cg
solver already fits a multinomial model when there are more than two
classes, which is what multi_class='multinomial' asked for.
LabelEncoder.transform returns a one-element array and int() on it is
deprecated since NumPy 1.25, an error with the NumPy 2.4 that CI now
installs. Index the element, and make pytest fail on this warning so it
cannot come back unnoticed.
The SEM fit used np.in1d to find the quantization levels that vanished
from the training rows, and CI now installs a NumPy without it. Use
np.isin, which behaves the same, and make pytest fail on the in1d
deprecation warning so older NumPy versions catch it too.
@adimajo
adimajo merged commit a636c5c into master Oct 31, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant