Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
4 changes: 2 additions & 2 deletions .coveragerc
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[run]
include =
*/rok4/*
include =
*/src/*
omit =
*/__init__.py
command_line =
Expand Down
61 changes: 38 additions & 23 deletions .github/workflows/build-and-release.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Test, build and release artefacts, build documentation
name: Test, build and publish artefacts and documentation

on:
push:
Expand Down Expand Up @@ -55,45 +55,50 @@ jobs:
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
cache-dependency-path: '**/pyproject.toml'

- name: Install Poetry
uses: snok/install-poetry@v1
with:
virtualenvs-create: true
virtualenvs-in-project: true

- name: Configure Poetry
- name: Install system dependencies
run: |
poetry self add poetry-bumpversion
poetry version ${{ github.ref_name }}
sudo apt update
sudo apt -y install python3-rados python3-gdal

- name: Install python dependencies
run: |
poetry install --no-interaction --no-root -E doc
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install --upgrade build bump2version
bump2version --current-version 0.0.0 --new-version ${{ github.ref_name }} patch pyproject.toml src/rok4/__init__.py
pip install -e .
echo "/usr/lib/python3/dist-packages/" >.venv/lib/python${{ matrix.python-version }}/site-packages/system.pth

- name: Install system dependencies
- name: Run unit tests
if: "(${{ matrix.os }}=='ubuntu-20.04')&&(${{ matrix.python-version }}=='3.8')"
run: |
sudo apt update
sudo apt -y install python3-rados python3-gdal
cp site-packages/*.pth .venv/lib/python${{ matrix.python-version }}/site-packages/
poetry run python -c 'import sys; print (sys.path)'
source .venv/bin/activate
pip install -e .[test]
coverage run -m pytest
coverage report -m

- name: Run unit tests
- name: Build unit tests report
if: "(${{ matrix.os }}=='ubuntu-20.04')&&(${{ matrix.python-version }}=='3.8')"
run: |
poetry run coverage run -m pytest
poetry run coverage report -m
poetry run coverage html -d dist/tests/
source .venv/bin/activate
coverage html -d dist/tests/
rm dist/tests/.gitignore

- name: Build package
if: "(${{ matrix.os }}=='ubuntu-20.04')&&(${{ matrix.python-version }}=='3.8')"
run: poetry build
run: |
source .venv/bin/activate
python3 -m build

- name: Build documentation
if: "(${{ matrix.os }}=='ubuntu-20.04')&&(${{ matrix.python-version }}=='3.8')"
run: |
poetry run pdoc3 --html --output-dir dist/ rok4
source .venv/bin/activate
pip install -e .[doc]
pdoc3 --html --output-dir dist/ rok4
cp README.md CHANGELOG.md dist/

- name: Upload packages, tests results and documentation
Expand All @@ -106,7 +111,7 @@ jobs:
retention-days: 1

publish_artefacts:
name: Add built artefacts to release
name: Add built artefacts to release and PyPI
needs: [create_release, build_and_test]
if: "always()&&(needs.create_release.outputs.job_status=='success')&&(needs.build_and_test.outputs.job_status=='success')"
runs-on: ubuntu-latest
Expand Down Expand Up @@ -140,6 +145,16 @@ jobs:
asset_name: rok4-${{ github.ref_name }}.tar.gz
asset_content_type: application/zip

- name: Isolate wheel and tarball
run: |
mkdir to_publish
cp ./dist/rok4-${{ github.ref_name }}* to_publish/

- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
password: ${{ secrets.PYPI_API_TOKEN }}
packages_dir: to_publish/

commit_documentation:
name: Add documentation and unit tests results into gh-pages branch
Expand Down
10 changes: 5 additions & 5 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,9 @@
## Summary

Ajout de fonctionnalités de lecture de donnée d'une pyramide
Ajout de fonctionnalités de lecture de donnée d'une pyramide et suivi des recommandations PyPA pour la gestion du projet.

## Changelog

### [Changed]

* TileMatrixSet : quelque soit le système de coordonnées, on ne gère que un ordre des axes X,Y ou Lon,Lat. Cependant, les fonctions de calcul de ou à partir de bbox respectent l'ordre du système dans ces dernières.

### [Added]

* TileMatrix :
Expand All @@ -19,11 +15,15 @@ Ajout de fonctionnalités de lecture de donnée d'une pyramide
* Fonction de lecture binaire, complète ou partielle, d'un fichier ou objet S3 ou CEPH
* Exceptions : NotImplementedError permet de préciser qu'une fonctionnalité n'a pas été implémentée pour tous les cas. Ici, on ne gère pas la décompression des données raster pour les compressions packbit et LZW

* Ajout de la publication PyPI dans la CI GitHub

### [Changed]

* Storage :
* La lecture sous forme de chaîne s'appuie sur la lecture complète binaire. Aucun changement à l'usage.
* TileMatrixSet : quelque soit le système de coordonnées, on ne gère que un ordre des axes X,Y ou Lon,Lat. Cependant, les fonctions de calcul de ou à partir de bbox respectent l'ordre du système dans ces dernières.

* Passage de la configuration du projet dans le fichier `pyproject.toml`

<!--
### [Added]
Expand Down
Loading