Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
f7d1dbd
DEVOPS-693 :: Refactor pyproject.toml to streamline dependencies and …
saicheranb Sep 10, 2025
791aced
Refactor pyproject.toml: Consolidate Sphinx dependency and remove red…
saicheranb Sep 10, 2025
04d86b4
Refactor get_conda_recipe_version function to read and render YAML te…
saicheranb Sep 10, 2025
2d41fd9
Refactor get_conda_recipe_version function to improve readability and…
saicheranb Sep 10, 2025
5eb1a6a
Add Sphinx documentation dependencies and update environment configur…
saicheranb Sep 10, 2025
4edd31a
Update Python version requirement and Sphinx dependency constraints
saicheranb Sep 10, 2025
17ba586
Add Sphinx documentation build task to pyproject.toml
saicheranb Sep 10, 2025
e325d5f
Fix version retrieval in conf.py and enhance version consistency test
saicheranb Sep 10, 2025
b279901
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Sep 10, 2025
64f8b28
Fix version consistency check in test_version_is_consistent
saicheranb Sep 10, 2025
9191a56
Fix version consistency check in test_version_is_consistent function
saicheranb Sep 10, 2025
b72b8f3
Fix version consistency check in test_version_is_consistent to handle…
saicheranb Sep 10, 2025
cb51d20
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Sep 10, 2025
e3bb6d2
Update Sphinx dependency to allow any version in pyproject.toml
saicheranb Sep 10, 2025
71ed38e
Update Sphinx dependency to version range >=5.3,<6.0 in pyproject.toml
saicheranb Sep 10, 2025
77be258
Refine dependency specifications in pyproject.toml
saicheranb Sep 10, 2025
f5f56b8
Add testpaths configuration for pytest in pyproject.toml
saicheranb Sep 10, 2025
acda283
Refactor test documentation task configuration in pyproject.toml
saicheranb Sep 11, 2025
6ee6a65
Define test-doc task with enforced Pixi environment for documentation…
saicheranb Sep 11, 2025
da3e2e4
[DEVOPS-693] re-apply recommendations by pixi for lock file
sebhmg Sep 12, 2025
9e8bf36
[DEVOPS-693] remove irrelevant entries from gitattribute
sebhmg Sep 12, 2025
cfb00a6
[DEVOPS-693] allow commit of .pixi/config.toml if any
sebhmg Sep 12, 2025
18d28d9
[DEVOPS-693] finalize changes
sebhmg Sep 13, 2025
5c00bb2
[DEVOPS-693] fix indirect dependency versions
sebhmg Sep 13, 2025
2a9f28a
[DEVOPS-693] add more keywords in package meta info
sebhmg Sep 13, 2025
855dcfd
[DEVOPS-693] aesthetics: reorder trove classifiers
sebhmg Sep 13, 2025
0227d41
[DEVOPS-693] also resolve doc environment with solve-group default
sebhmg Sep 13, 2025
e9fd5fc
[DEVOPS-693] relock pixi
sebhmg Sep 13, 2025
44496d1
[DEVOPS-693] poetry check with plugins works if not check poetry.lock
sebhmg Sep 13, 2025
1d498f2
[DEVOPS-693] move pixi config to its own file
sebhmg Sep 13, 2025
99b4da0
[DEVOPS-693] aesthetics
sebhmg Sep 14, 2025
b9c353a
[DEVOPS-693] add keywords and classifiers troves
sebhmg Sep 14, 2025
56b8a5e
[DEVOPS-693] pixi lock again
sebhmg Sep 14, 2025
bc5db51
[DEVOPS-693] use pixi to run pylint from pre-commit
sebhmg Sep 16, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,6 @@
#*.geoh5 filter=lfs diff=lfs merge=lfs -text
#/assets/** filter=lfs diff=lfs merge=lfs -text
#*.h5 filter=lfs diff=lfs merge=lfs -text

# SCM syntax highlighting & preventing 3-way merges
pixi.lock merge=binary linguist-language=YAML linguist-generated=true
4 changes: 2 additions & 2 deletions .github/workflows/python_analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,14 +26,14 @@ jobs:
name: Static analysis
uses: MiraGeoscience/CI-tools/.github/workflows/reusable-python-static_analysis.yml@main
with:
package-manager: 'poetry'
package-manager: 'pixi'
app-name: 'omf'
python-version: '3.10'
call-workflow-pytest:
name: Pytest
uses: MiraGeoscience/CI-tools/.github/workflows/reusable-python-pytest.yml@main
with:
package-manager: 'poetry'
package-manager: 'pixi'
python-versions: '["3.10", "3.11", "3.12"]'
os: '["ubuntu-latest", "windows-latest"]'
cache-number: 1
Expand Down
9 changes: 8 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -142,5 +142,12 @@ dmypy.json
# geoh5 locks
*.geoh5.lock

#version ignore
# auto-generated version file
omf/_version.py

# not using poetry to lock, but pixi
poetry.lock

# pixi environments
.pixi/*
!.pixi/config.toml
3 changes: 1 addition & 2 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ repos:
rev: 2.1.3
hooks:
- id: poetry-check
args: [--lock, --no-plugins]
- repo: https://github.com/hadialqattan/pycln
rev: v2.5.0
hooks:
Expand Down Expand Up @@ -79,7 +78,7 @@ repos:
hooks:
- id: pylint
name: pylint
entry: poetry run pylint
entry: pixi run --locked pylint
language: system
require_serial: true # pylint does its own parallelism
types: [python]
Expand Down
6 changes: 5 additions & 1 deletion docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,11 @@
# built documents.

# The full version.
release = version("mira-omf")
try:
from importlib.metadata import version
release = version("mira-omf")
except Exception:
from omf import __version__ as release
# The base X.Y.Z version.
version = Version(release).base_version

Expand Down
4,555 changes: 4,555 additions & 0 deletions pixi.lock

Large diffs are not rendered by default.

108 changes: 108 additions & 0 deletions pixi.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
[workspace]
requires-pixi = ">=0.54"
channels = ["https://repo.prefix.dev/conda-forge"]
platforms = ["win-64", "linux-64"]

[dependencies]
# dependencies resolved from conda
## direct dependencies:
#----------------------
numpy = "1.26.*"
properties = "0.6.*"
pypng = "0.20220715.*"
six = ">=1.16.0, 1.*"
vectormath = "0.2.*"

## indirect dependencies from remaining pip packages:
#----------------------------------------------------
h5py = ">=3.2.1, 3.*"
pillow = "10.3.*"
pydantic = ">=2.7, 2.*"

[pypi-dependencies]
mira-omf = {path = ".", editable = true}

[environments]
#prod-py310 = {features = ["py310", "mirageo"], solve-group = "prod-py310"}
#prod-py311 = {features = ["py311", "mirageo"], solve-group = "prod-py311"}
#prod-py312 = {features = ["py312", "mirageo"], solve-group = "prod-py312"}
#test-prod-py310 = {features = ["py310", "mirageo", "test"], solve-group = "prod-py310"}
#test-prod-py311 = {features = ["py311", "mirageo", "test"], solve-group = "prod-py311"}
#test-prod-py312 = {features = ["py312", "mirageo", "test"], solve-group = "prod-py312"}

py310 = {features = ["py310", "mirageo-git", "test"], solve-group = "default"}
py311 = {features = ["py311", "mirageo-git", "test"]}
py312 = {features = ["py312", "mirageo-git", "test"]}

default = {features = ["py310", "mirageo-git", "test", "dev"], solve-group = "default"}
docs = {features = ["py310", "mirageo-git", "doc"], solve-group = "default"}
test-docs = {features = ["py310", "mirageo-git", "test", "doc"], solve-group = "default"}

[feature.py310.dependencies]
python = "3.10.*"

[feature.py311.dependencies]
python = "3.11.*"

[feature.py312.dependencies]
python = "3.12.*"

#[feature.mirageo.dependencies]
#geoh5py = ">=0.12.0a1, 0.12.*"

[feature.mirageo-git.pypi-dependencies]
geoh5py = { git = "https://github.com/MiraGeoscience/geoh5py.git", rev = "develop" }

[feature.dev.dependencies]
Pygments = '*'
ipython = "*"

[feature.dev.tasks]
repl = "ipython"

[feature.test.dependencies]
packaging = "*"
pylint = "*"
pytest = "*"
pytest-cov = "*"
pyyaml = "*"

[feature.test.tasks]
test = "pytest tests --cov --cov-report=xml"
_pytest-docs = "pytest docs"

[feature.test.tasks.test-local]
args = [{ arg = "packages", default = "geoh5py" }]
depends-on = [
{task = "use-local-deps", args = [ "{{ packages }}" ]},
{task = "show-pip-source", args = [ "{{ packages }}" ]},
{task = "test"}
]

[feature.doc.dependencies]
sphinx = ">=5.3, 5.*"

[feature.doc.tasks]
build-docs = "sphinx-build -nW -b html docs docs/_build"
linkcheck-docs = "sphinx-build -nW -b linkcheck docs docs/_build"

[tasks.test-docs]
depends-on = [{task = "_pytest-docs", environment = "test-docs"}]

[tasks.show-pip-source]
args = [{ arg = "packages", "default" = "geoh5py" }]
cmd = "uv pip show {{packages}}"

[tasks.use-local-deps]
args = [{ arg = "packages", default = "geoh5py" }]
cmd = """
uv pip install --no-deps --force-reinstall \
{% for package in packages | split %} -e ../{{ package | trim }}{% endfor %}
"""

[tasks.test-pyvers]
depends-on = [
{task = "test", environment = "py310"},
{task = "test", environment = "py311"},
{task = "test", environment = "py312"},
]
Loading
Loading