Skip to content
Open
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
32 changes: 32 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: bug
assignees: ''

---

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Environment**
- OS:
- Python version:
- Package version:

**Additional context**
Add any other context about the problem here.
23 changes: 23 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
name: Feature request
about: Suggest an idea or enhancement
title: ''
labels: enhancement
assignees: ''

---

**Feature Description**
Describe the feature or enhancement.

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.
10 changes: 10 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Overview

## Related Issue

## Additional Information

## Checklist

- [ ] Code adheres to the project's style guidelines.
- [ ] All automated checks have passed.
97 changes: 97 additions & 0 deletions .github/workflows/package.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
name: package

on:
push:
branches:
- feature
- feature/**
- develop
- main
tags:
- v*.*.*

pull_request:
branches:
- feature
- feature/**
- develop
- main

permissions:
contents: read

jobs:
ci:
if: github.event_name == 'pull_request' || startsWith(github.ref, 'refs/heads/')
runs-on: ubuntu-latest

strategy:
fail-fast: false
matrix:
python-version:
- "3.10"
- "3.11"
- "3.12"

steps:
- uses: actions/checkout@v6

- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
cache: pip

- name: Install tooling
run: |
pip install hatch ruff

- name: Ruff Check
run: ruff check .

- name: Ruff Lint
run: ruff format --check .

- name: Run tests
run: hatch run test:test-q

publish:
if: startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-latest

environment: release

permissions:
id-token: write
contents: read

steps:
- uses: actions/checkout@v6

- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.11"
cache: pip

- name: Install Hatch
run: pip install hatch

- name: Verify tag matches project version
run: |
TAG_VERSION="${GITHUB_REF_NAME#v}"
PROJECT_VERSION="$(hatch version)"

echo "Tag version: ${TAG_VERSION}"
echo "Project version: ${PROJECT_VERSION}"

if [ "${TAG_VERSION}" != "${PROJECT_VERSION}" ]; then
echo "Tag ${GITHUB_REF_NAME} does not match project version ${PROJECT_VERSION}"
exit 1
fi

- name: Build package
run: hatch build

- name: Publish package distributions to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
71 changes: 0 additions & 71 deletions .github/workflows/publish-pypi.yml

This file was deleted.

71 changes: 71 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [v0.1.3] - 2026-01-21

### Added

- `__init__(self, **kwargs)` constructor added to `ExecutionHandler` with automatic attribute assignment for `job_id`, `outputs`, and `results`
- New `set_job_id(job_id)` method on `ExecutionHandler` for runtime job ID assignment

### Changed

- Package version is now dynamically retrieved from package metadata instead of being hardcoded in `__init__.py`
- Graceful fallback to `"unknown"` if package metadata is unavailable

## [v0.1.2] - 2026-01-19

### Added

- Created `zoo_runner_common/` package directory with proper `__init__.py` and explicit exports

### Changed

- Moved all modules (`base_runner.py`, `handlers.py`, `zoo_conf.py`, `zoostub.py`) into `zoo_runner_common/` package directory
- All imports updated to use package-style: `from zoo_runner_common import ...`
- Updated `pyproject.toml` with `setuptools.packages.find` configuration, switching from `py-modules` to package-based discovery

### Removed

- Root-level `__init__.py` removed for cleaner structure

## [v0.1.1] - 2026-01-18

### Added

- Added PyPI classifiers: Development Status (Beta), License, Python 3.10/3.11/3.12 support, Audience, Topic
- Added keywords: `zoo-project`, `cwl`, `runner`, `workflow`, `ogc`, `api`, `processes`
- Added project URLs for Homepage, Documentation, Issues, and Changelog
- Added Gérald Fenoy as co-author

### Changed

- License updated from BSD-3-Clause to Apache-2.0 for consistency across the ZOO-Project ecosystem

## [v0.1.0] - 2026-01-18

### Added

- Initial release of `zoo-runner-common` as a standalone Python package
- `BaseRunner` with 8+ shared methods: `get_workflow_id()`, `get_workflow_inputs()`, `get_max_cores()`, `get_max_ram()`, `get_volume_size()`, `assert_parameters()`, `get_processing_parameters()`, `get_namespace_name()`, `finalize()`
- New `ExecutionHandler` abstract class (`handlers.py`) with hooks: `pre_execution_hook()`, `post_execution_hook()`, `get_secrets()`, `get_pod_env_vars()`, `get_pod_node_selector()`, `handle_outputs()`, `get_additional_parameters()`
- `ZooConf` improvements: support for complex types (arrays, OGC bbox), NULL value handling, multiple file formats, CWL v1.2 parsing, scatter operation support
- `ZooStub` extended with all ZOO status codes (ACCEPTED, STARTED, PAUSED, DEPLOYED, etc.) and structured logging via `loguru`
- `loguru>=0.7.0` added as a dependency
- MkDocs Material documentation site with getting started guide, user guide, API reference, and developer guide
- GitHub Actions workflow for automatic documentation deployment to GitHub Pages
- GitHub Actions workflow for automated PyPI publishing on release with Trusted Publishing support
- `ruff.toml` configuration for linting (pycodestyle, pyflakes, isort, pyupgrade)
- Complete `.gitignore` for Python projects

[Unreleased]: https://github.com/ZOO-Project/zoo-runner-common/compare/v0.1.3...HEAD
[v0.1.3]: https://github.com/ZOO-Project/zoo-runner-common/compare/v0.1.2...v0.1.3
[v0.1.2]: https://github.com/ZOO-Project/zoo-runner-common/compare/v0.1.1...v0.1.2
[v0.1.1]: https://github.com/ZOO-Project/zoo-runner-common/compare/v0.1.0...v0.1.1
[v0.1.0]: https://github.com/ZOO-Project/zoo-runner-common/releases/tag/v0.1.0
4 changes: 4 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Code of Conduct
===============

Contributors to ZOO-Project are expected to act respectfully toward others in accordance with [the OSGeo Code of Conduct](https://www.osgeo.org/resources/osgeo-code-of-conduct/).
Loading