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
43 changes: 43 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: release

# Tag-triggered release: build sdist+wheel and publish to PyPI via Trusted
# Publishing (OIDC) — no API token stored. Configure a PyPI Trusted Publisher for
# project `harel-python` (repo fruwehq/harel-python, workflow release.yml,
# environment `pypi`) before the first tag-driven release.
on:
push:
tags: ["v*"]

jobs:
build:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.13"
- name: Build sdist + wheel
run: |
python -m pip install --upgrade build
python -m build
- name: Check metadata
run: |
python -m pip install --upgrade twine
python -m twine check dist/*
- uses: actions/upload-artifact@v4
with:
name: dist
path: dist/

publish:
needs: build
runs-on: ubuntu-24.04
environment: pypi
permissions:
id-token: write # OIDC for Trusted Publishing
steps:
- uses: actions/download-artifact@v4
with:
name: dist
path: dist/
- uses: pypa/gh-action-pypi-publish@release/v1
22 changes: 20 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,40 @@ requires = ["hatchling"]
build-backend = "hatchling.build"

[project]
name = "harel"
name = "harel-python"
version = "0.1.0"
description = "Python reference implementation of the harel statechart engine"
readme = "README.md"
requires-python = ">=3.11"
license = { file = "LICENSE" }
authors = [{ name = "Christian-Manuel Butzke" }]
keywords = ["statechart", "state-machine", "harel", "fsm", "hsm", "uml", "scxml"]
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Topic :: Software Development :: Libraries",
"Typing :: Typed",
]
dependencies = [
"pyyaml>=6",
"jsonschema>=4",
"cel-python>=0.1",
]

[project.urls]
Homepage = "https://github.com/fruwehq/harel-python"
Repository = "https://github.com/fruwehq/harel-python"
Specification = "https://github.com/fruwehq/harel"
Issues = "https://github.com/fruwehq/harel-python/issues"

[project.optional-dependencies]
dev = [
"pytest>=8",
"cel-python",
"ruff",
"mypy",
"types-PyYAML",
Expand Down
Empty file added src/harel/py.typed
Empty file.
Loading