Skip to content

Upgrade project configuration and QA tools#20

Open
dvp2015 wants to merge 35 commits into
travleev:masterfrom
MC-kit:test/deps
Open

Upgrade project configuration and QA tools#20
dvp2015 wants to merge 35 commits into
travleev:masterfrom
MC-kit:test/deps

Conversation

@dvp2015

@dvp2015 dvp2015 commented Apr 19, 2026

Copy link
Copy Markdown

The numjuggler package configuration needs updating. There are problems with creating a debugging environment with modern libraries.

The project doesn't use any linting, formatting, typing and other QA tools, without which contribution is if not possible, but can be too risky or produce a lot of changes to review.

To my opinion, the project is a great work, it took a lot of efforts in the past and it is still valuable. But the project needs some update.

In this change I have:

  • dropped support of Python2 in favor of using newest libraries
  • allowed Python 3.11..14 (as the recent numpy does)
  • tested on Python 3.14
  • moved configuration and setup from setup files to pyproject.toml
  • changed layout to src-layout to comply with recent recomendations
  • reimplemented GitHub Acion to test an all the Python versions, now GHA is based on uv and pyproject.toml
  • fixed tests and added one new for the bug I've found recently (XFAIL for now, will be fixed later)
  • add dependencies for code QA: ruff, ty, pylint
  • added justfile for some routine development task.

The travis tests now are implemented as simple pytest tests.

I used uv with this project. It's really efficient and quite simple in use. In 99% of cases one only need to know only the following commands:

uv venv
uv sync 
uv pip 
uv add/remove
uv run

If you use direnv there's also appropriate .envrc in the project root to automatically activate the venv.

dvp added 7 commits April 21, 2026 21:20
@dvp2015

dvp2015 commented Apr 21, 2026

Copy link
Copy Markdown
Author

The old travis tests are reimplemented in pytest. The tests found some bugs on Windows which require to test and revise the parser module. The test coverage increased from 20% to 30%. Should be at least 80% for (never safe) refactoring. One more advantage: now the tests can be debugged.

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