Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
83 commits
Select commit Hold shift + click to select a range
3bedd19
Refactor pyproject.toml: Update dependencies and remove poetry sections
saicheranb Sep 4, 2025
c4a3248
Update workflow references to use DEVOPS-584 for static analysis and …
saicheranb Sep 4, 2025
5cde5ec
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Sep 4, 2025
f656361
updated pyproject.toml
saicheranb Sep 4, 2025
c4c8ad4
Update test command to use pytest directly
saicheranb Sep 4, 2025
c91c12d
Add 'dev-git' feature dependencies and update default environment fea…
saicheranb Sep 4, 2025
da65429
Update workflow references to use 'main' for static analysis and pytest
saicheranb Sep 4, 2025
6730376
Update pytest and pytest-cov versions in pyproject.toml
saicheranb Sep 4, 2025
71bd6c5
Update GitHub Actions workflows and dependencies in pyproject.toml an…
saicheranb Sep 5, 2025
f6ae3f7
Remove PyPI package references for 'uv' from pixi.lock
saicheranb Sep 5, 2025
937b973
testing Devops-584
saicheranb Sep 5, 2025
1d122f1
Update reusable workflow references to use 'main' branch for static a…
saicheranb Sep 5, 2025
408d040
Refactor environment configurations in pyproject.toml to support mult…
saicheranb Sep 5, 2025
2a64612
Add Python version dependencies for features py310, py311, and py312 …
saicheranb Sep 5, 2025
5057fe6
Update pydantic dependency version to >=2.7.0,<3.0.0 in pyproject.toml
saicheranb Sep 5, 2025
6a36222
Update content hash in poetry.lock after dependency changes
saicheranb Sep 5, 2025
d3a00cd
Update pyproject.toml
saicheranb Sep 5, 2025
ba84251
Update dependency specifications in pyproject.toml as per suggestion
saicheranb Sep 5, 2025
5cd3d2f
poetry.lock after dependency changes
saicheranb Sep 5, 2025
c6bd523
Add jinja2 dependency and update feature group for documentation
saicheranb Sep 5, 2025
5fe0954
Remove jinja2 dependency from pyproject.toml and refactor version ret…
saicheranb Sep 5, 2025
4810b62
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Sep 5, 2025
1737d3e
Remove poetry.lock in favor of pixi.lock; drop --lock from pre-commit…
saicheranb Sep 5, 2025
4333f7c
Merge branch 'develop' into DEVOPS-693
sebhmg Sep 12, 2025
c0ae38f
remove pylint entry wronlgy added to non-dev depencies
sebhmg Sep 12, 2025
aebcd2d
Refactor ReadTheDocs configuration to use Pixi for environment setup …
saicheranb Sep 12, 2025
e37bda2
Update ReadTheDocs configuration and pyproject.toml for improved docu…
saicheranb Sep 12, 2025
1483518
Update ReadTheDocs and Pixi configuration for improved documentation …
saicheranb Sep 12, 2025
761ce21
Fix indentation in ReadTheDocs configuration and ensure Python versio…
saicheranb Sep 12, 2025
c232698
Refactor Git LFS installation in ReadTheDocs configuration to skip sm…
saicheranb Sep 12, 2025
05f2ff3
Add sphinxcontrib-googleanalytics to dependencies and update pixi.lock
saicheranb Sep 12, 2025
d2ae046
[DEVOPS-693] remove irrelevant entries from gitattribute
sebhmg Sep 13, 2025
ab14905
[DEVOPS-693] re-apply recommendations by pixi for lock file
sebhmg Sep 13, 2025
a06ba7c
[DEVOPS-693] allow commit of .pixi/config.toml if any
sebhmg Sep 13, 2025
946b4d5
fixes and adjustments in pixi config
sebhmg Sep 13, 2025
cce7fb1
add geoh5 to keywords
sebhmg Sep 13, 2025
941aaf1
Merge branch 'DEVOPS-693' into DEVOPS-693-RTD
sebhmg Sep 13, 2025
a1480aa
move doc tasks near doc feature
sebhmg Sep 13, 2025
dd04bb0
remove unused feature from pixi config
sebhmg Sep 13, 2025
0367cb9
move doc tasks near doc feature
sebhmg Sep 13, 2025
ef3e8d4
[DEVOPS-693] move dependencies from docs/environment.yml to pixi config
sebhmg Sep 13, 2025
0b2187d
[DEVOPS-693] restore usual installation steps of git-lfs on RTD
sebhmg Sep 13, 2025
b62388f
[DEVOPS-693] introduce prebuild-docs task
sebhmg Sep 13, 2025
d6a18d7
[DEVOPS-693] adjust build-docs commend in RTD
sebhmg Sep 13, 2025
46f5f63
[DEVOPS-693] adjust output location for building the docs
sebhmg Sep 13, 2025
8d6767a
[DEVOPS-693] execute pixi in "frozen" mode on RTD
sebhmg Sep 13, 2025
f859604
[DEVOPS-693] pre-install python 3.10 on RTD
sebhmg Sep 13, 2025
2c124bb
[DEVOPS-693] Merge branch 'DEVOPS-693-RTD' into DEVOPS-693
sebhmg Sep 13, 2025
1149ca1
[DEVOPS-693] poetry check with plugins works if not check poetry.lock
sebhmg Sep 13, 2025
eff007f
[DEVOPS-693] move pixi config to its own file
sebhmg Sep 13, 2025
233af36
[DEVOPS-693] aesthetics
sebhmg Sep 14, 2025
609b7c1
[DEVOPS-693] add keywords and classifiers troves
sebhmg Sep 14, 2025
6bee2c2
[DEVOPS-693] pixi lock again
sebhmg Sep 14, 2025
5095a35
[DEVOPS-693] fix doc warnings
sebhmg Sep 15, 2025
86d4c05
[DEVOPS-693] rename local extension to avoid confusion with autodoc
sebhmg Sep 15, 2025
7baad7c
[DEVOPS-693] remove unused sphinx local extension
sebhmg Sep 15, 2025
972ab1c
[DEVOPS-693] use jupyter-book build instead of sphinx build
sebhmg Sep 15, 2025
1c7bca9
[DEVOPS-693] hacking around to fix warning on np.ndarray
sebhmg Sep 15, 2025
6931672
[DEVOPS-693] remove my hacking around - give up on warnings
sebhmg Sep 15, 2025
018e30e
[DEVOPS-693] do not fail doc on warnings
sebhmg Sep 15, 2025
74311da
[DEVOPS-693] ColorMapping as Enum is better for doc, but failing mypy
sebhmg Sep 15, 2025
4ddf0ec
[DEVOPS-693] try custom conf.py
sebhmg Sep 15, 2025
e61086e
[DEVOPS-693] apply albaster then and dynamic config
sebhmg Sep 15, 2025
8e96e58
[DEVOPS-693] try fixing git-lfs
sebhmg Sep 15, 2025
9539a9c
[DEVOPS-693] pull googleanalytics_id from env
sebhmg Sep 16, 2025
9834e56
[DEVOPS-693] use pixi to run pylint in pre-commit
sebhmg Sep 16, 2025
e79351f
[DEVOPS-693] configure toto and issue sphinx extensions
sebhmg Sep 16, 2025
67e33e9
[DEVOPS-693] disable google analytics if ID is not set
sebhmg Sep 16, 2025
f8debb9
[DEVOPS-693] debug logging in RTD
sebhmg Sep 22, 2025
e488c40
[DEVOPS-693] fix googleanalytics_id config
sebhmg Sep 22, 2025
7fa2f47
[DEVOPS-693] adjust output location for docs
sebhmg Sep 22, 2025
eff201e
[DEVOPS-693] move generated html to expected RTD output folder
sebhmg Sep 22, 2025
bc8eae3
[DEVOPS-693] try fixing garbled output because of ANSI code
sebhmg Sep 22, 2025
65b4d20
[DEVOPS-693] NO_COLOR has no effect. Now pipe to sed
sebhmg Sep 22, 2025
da68a53
[DEVOPS-693] Merge remote-tracking branch 'upstream/develop' into DEV…
sebhmg Oct 9, 2025
82b173f
[DEVOPS-693] pass possibly extra args to jupyter-book
sebhmg Oct 9, 2025
606cc51
[DEVOPS-693] Merge remote-tracking branch 'upstream/develop' into DEV…
sebhmg Oct 15, 2025
40cbdef
[DEVOPS-693] Merge branch 'develop' into DEVOPS-693
sebhmg Oct 24, 2025
67b1d9a
[DEVOPS-693] Merge remote-tracking branch 'upstream/develop' into DEV…
sebhmg Oct 24, 2025
c1405bd
[DEVOPS-693] fix removal of ANSI color out of pixi
sebhmg Oct 24, 2025
be4fd70
[DEVOPS-693] for RTD, pre-install env and run with explicit env name
sebhmg Oct 25, 2025
ce100a0
[DEVOPS-693] add a direct jupyter-book-build task
sebhmg Oct 25, 2025
e4ad753
[DEVOPS-693] only need matplotlib-base for doc
sebhmg Oct 25, 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
@@ -1,3 +1,6 @@
# Shell scripts
*.sh eol=lf
*.gif 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: 'geoh5py'
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
10 changes: 9 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -145,5 +145,13 @@ dmypy.json
# geoh5 locks
*.geoh5.lock

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

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

# pixi environments
.pixi/*
!.pixi/config.toml
/docs/conf.py
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 @@ -74,7 +73,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: [text]
Expand Down
49 changes: 22 additions & 27 deletions .readthedocs.yml
Original file line number Diff line number Diff line change
@@ -1,42 +1,37 @@
version: 2

# Set the version of Python and other tools you might need
build:
os: "ubuntu-22.04"
os: ubuntu-24.04
tools:
python: "mambaforge-22.9"
python: "3.10" # pre-install for the py310 environment of pixi
jobs:
post_checkout:
- echo "[RTD] Configure Git LFS"
# Download and uncompress binary for the desired version of Git LFS
- |
set -e
# Update version of Git LFS as needed here:
LFS_VERSION="3.4.0"
wget "https://github.com/git-lfs/git-lfs/releases/download/v${LFS_VERSION}/git-lfs-linux-amd64-v${LFS_VERSION}.tar.gz"
tar xzf "git-lfs-linux-amd64-v${LFS_VERSION}.tar.gz" --strip-components=1 "git-lfs-${LFS_VERSION}/git-lfs"
rm "git-lfs-linux-amd64-v${LFS_VERSION}.tar.gz"
- |
set -e
git_lfs_path="$(pwd)"
git config filter.lfs.process "$git_lfs_path/git-lfs filter-process"
git config filter.lfs.smudge "$git_lfs_path/git-lfs smudge -- %f"
git config filter.lfs.clean "$git_lfs_path/git-lfs clean -- %f"
- |
set -e
./git-lfs install
./git-lfs fetch
./git-lfs checkout
# Modify LFS config paths to point where git-lfs binary was downloaded
- git config filter.lfs.process "$(pwd)/git-lfs filter-process"
- git config filter.lfs.smudge "$(pwd)/git-lfs smudge -- %f"
- git config filter.lfs.clean "$(pwd)/git-lfs clean -- %f"
# Make LFS available in current repository
- ./git-lfs install
# Download content from remote
- ./git-lfs fetch
# Make local files to have the real content on them
- ./git-lfs checkout

pre_build:
# Generate on-the-fly Sphinx configuration from Jupyter Book's _config.yml
- "jupyter-book config sphinx docs/"
- "pip install . --no-deps"
create_environment:
- asdf plugin add pixi
- asdf install pixi latest
- asdf global pixi latest

# Build documentation in the docs/ directory with Sphinx
sphinx:
builder: html
configuration: docs/conf.py
fail_on_warning: false
install:
- pixi install -e docs

conda:
environment: docs/environment.yml
build:
html:
- pixi run --frozen -e docs build-docs html $READTHEDOCS_OUTPUT
37 changes: 33 additions & 4 deletions docs/_config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@
# Learn more at https://jupyterbook.org/customize/config.html

title: Geoh5py
author: Mira Geoscience
author: Mira Geoscience Ltd.
copyright: "2025"
logo: images/geoh5py_logo.png

# Force re-execution of notebooks on each build.
Expand All @@ -13,10 +14,38 @@ execute:

sphinx:
extra_extensions:
- 'sphinx.ext.autodoc'
- sphinx.ext.autodoc
- sphinx.ext.intersphinx
- sphinx.ext.todo
- sphinx_issues
- sphinxcontrib.googleanalytics
#- sphinx.ext.autosummary # TODO: restore? for now, tons of error
#- sphinx.ext.viewcode # TODO: restore? for now, tons of error
local_extensions:
dynamic_config: _ext/
recursive_update: true
config:
suppress_warnings : ["etoc.toctree"]

project: geoh5py
html_static_path:
- _static/custom.css
html_theme: alabaster
autodoc_typehints: signature
autodoc_typehints_format: short
suppress_warnings:
- etoc.toctree
intersphinx_mapping:
# use None to auto‑fetch objects.inv
numpy:
- https://numpy.org/doc/1.26/
- null
python:
- https://docs.python.org/3/
- null
todo_include_todos: true
issues_github_path: mirageoscience/geoh5py
autodoc_type_aliases:
np.ndarray: numpy.ndarray
UUID: uuid.UUID

# Define the name of the latex output file for PDF builds
latex:
Expand Down
28 changes: 0 additions & 28 deletions docs/_ext/Add2Build.py

This file was deleted.

4 changes: 0 additions & 4 deletions docs/_ext/__init__.py

This file was deleted.

146 changes: 0 additions & 146 deletions docs/_ext/autodoc.py

This file was deleted.

37 changes: 37 additions & 0 deletions docs/_ext/dynamic_config.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
import logging
import os

from datetime import datetime
from importlib.metadata import version as get_version
from packaging.version import Version


dated_copyright = f"{datetime.now().strftime('%Y, Mira Geoscience Ltd')}"

def get_copyright_notice():
return f"Copyright {dated_copyright}."


def setup(app):
# The full version, including alpha/beta/rc tags.
release = get_version("geoh5py")
# The shorter X.Y.Z version.
version = Version(release).base_version

app.config.project_copyright = f"{dated_copyright}"
app.config.release = release
app.config.version = version
app.config.html_theme_options = {
"description": f"version {release}",
"fixed_sidebar": True,
"logo_name": "Geoh5py",
"show_relbars": True,
}
app.config.rst_epilog = f"\n.. |copyright_notice| replace:: {get_copyright_notice()}\n"

app.config.googleanalytics_id = os.environ.get("GOOGLE_ANALYTICS_ID", "")
if not app.config.googleanalytics_id:
logging.warning("Environment variable GOOGLE_ANALYTICS_ID is not set")
app.config.googleanalytics_enabled = False

return {"version": "0.1", "parallel_read_safe": True}
Loading