Migration uv ci#88
Open
raederan wants to merge 15 commits into
Open
Conversation
Replace the pyscaffold/setuptools build with hatchling + hatch-vcs (git-tag versioning preserved) and overhaul dev tooling, CI, and docs. No public API or runtime behavior changes. Build: - Rewrite pyproject.toml to [project] + hatchling + hatch-vcs; migrate runtime deps, UI extras, and dev/test tooling - Remove setup.py, setup.cfg, .isort.cfg, .coveragerc Tooling: - Add Makefile (with benchmark target), ruff pre-commit config, uv-based tox.ini (with benchmark env), .devcontainer/, Dockerfile, comprehensive .gitignore CI: - Add setup-python-env action; main.yml with 3.10-3.14 matrix, ported benchmark job, codecov, and zensical docs check - on-release-main.yml uses uv build/publish + Pages; drop sed version step (hatch-vcs derives version) - Add validate-codecov-config.yml + codecov.yaml; remove ci.yml/docs.yml Docs: - Migrate mkdocs -> zensical (zensical.toml); rewrite dev.md for uv/make Meta: - Update README badges (build/codecov, OO-LD org); add CONTRIBUTING.md Code fixes to pass gates: - Remove unused imports; simplify 8 collapsible-if/ternary cases - Fix missing-assert test bug; resolve B018 unused-expression - Modernize Optional -> | None; drop redundant logging.exception arg - ValueError -> TypeError; pin specific type: ignore codes Lint/type config (justified inline): - Relax RUF012 (pydantic), TRY003/C901 (avoid destructive refactors), A001/A002 (keep property/id/input per rollback), test/example security rules; deptry ignores for runtime-only UI extras - Downgrade ty dynamic-pattern rules (unresolved-attribute, not-subscriptable, etc.): 440 -> 0 errors; unresolved-import stays active for core code Verified: make check (exit 0), make test (95 passed, 3 skipped), uv build (wheel + sdist), zensical build -s (no issues). Note: ty check emits 11 non-fatal warnings (unsupported-base in tests, possibly-missing-submodule); left unsuppressed (exit 0 unaffected). pretty-format-json reindented some .json/.ipynb on first run; tests pass.
…ings deptry emitted advisory warnings (not errors — it already exited Success) for optional UI extras not installed in the lint/type env (jupyter_bokeh, anywidget, ipykernel, traitlets, nicegui). When a declared dependency isn't installed, deptry can't introspect its real import-module name and falls back to guessing, producing the notices. Add explicit [tool.deptry.package_module_name_map] entries in pyproject.toml so deptry uses the stated module names instead of guessing (also maps ipython -> IPython).
When working_dir_path is set, the generator writes JSON schemas back to the source directory. It used indent=4 while the pretty-format-json pre-commit hook expects 2-space indentation, and json.dumps omits a trailing newline that end-of-file-fixer requires. Both caused make test to dirty tracked files, breaking make check on every run. Change indent to 2 and append \n when writing schema files.
Rebuild the entire docs site using Zensical with a structured nav, richer content, and consistent make/without-make command coverage. New pages: get-started, how-to (codegen, object-graph-mapping, backends, rdf-export, controller), architecture (Mermaid diagrams), contributing, api (replaces oold.md stub). CONTRIBUTING.md and docs/contributing.md now stay in sync — same sections and commands, docs version adds Zensical tabs for make vs. bare uv. Add CITATION.cff and citation sections to README and docs/index.md, attributed to OO-LD Contributors with Zenodo DOI 10.5281/zenodo.8374237
Contributor
📊 Benchmark ResultsClick to see benchmark comparisonThreshold: 1.3x (30% slower triggers a regression warning) Note: Benchmarks are informational only and won't fail the build. 💡 Tip: Download the |
Contributor
📊 Benchmark ResultsClick to see benchmark comparisonThreshold: 1.3x (30% slower triggers a regression warning) Note: Benchmarks are informational only and won't fail the build. 💡 Tip: Download the |
The benchmark job switches branches mid-run to collect baseline metrics (git checkout main → run → git checkout back), which mutates uv.lock on disk. The setup-uv post-step then tries to save cache against a changed workspace state and fails, marking the whole job as failed even though all benchmark steps succeeded. Add an `enable-cache` passthrough input to the setup-python-env composite action (default: true, no change to other jobs) and pass false for the benchmark job where branch-switching makes uv caching unreliable.
Contributor
📊 Benchmark ResultsClick to see benchmark comparisonThreshold: 1.3x (30% slower triggers a regression warning) Note: Benchmarks are informational only and won't fail the build. 💡 Tip: Download the |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
UV migration as baseline for further OO-LD development in general
Additional Project Management References
Affecting enhancement tasks: #23 | #49 | #52 | #60 | #78 | #82