Skip to content
This repository was archived by the owner on Apr 14, 2026. It is now read-only.
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
47 changes: 47 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: Bug Report
description: This is a template for reporting a bug.
# If you want to enable automatic linking to projects,
# uncomment the following line and replace the project ID
# with the ID of your project.
# projects: ["childmindresearch/1"]
title: 'Bug: '
labels: [bug]
body:
- type: textarea
id: description
attributes:
label: Description
description: Please provide a clear and concise description of the bug.
placeholder: Describe the bug here
validations:
required: true
- type: textarea
id: steps-to-reproduce
attributes:
label: Steps to Reproduce
description: Please provide detailed steps to reproduce the bug.
placeholder: Describe the steps to reproduce the bug here.
validations:
required: true
- type: textarea
id: expected-results
attributes:
label: Expected Results
description: Please describe what you expected to happen.
placeholder: Describe the expected results here.
validations:
required: true
- type: textarea
id: actual-results
attributes:
label: Actual Results
description: Please describe what actually happened.
placeholder: Describe the actual results here.
validations:
required: true
- type: textarea
id: additional-notes
attributes:
label: Additional Notes
description: Add any additional notes or context here.
placeholder: Add additional notes here.
32 changes: 32 additions & 0 deletions .github/ISSUE_TEMPLATE/development_task.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Development Task
description: This is a template for a development task
# If you want to enable automatic linking to projects,
# uncomment the following line and replace the project ID
# with the ID of your project.
# projects: ["childmindresearch/1"]
title: 'Task: '
labels: [task]
body:
- type: textarea
id: description
attributes:
label: Description
description: What is the task about? Why is it needed? What is the current state, if any?
placeholder: Describe the task here
validations:
required: true
- type: textarea
id: tasks
attributes:
label: Tasks
description: What are the concrete (sub-)tasks that need to be performed?
placeholder: Describe the tasks here.
value: '- [ ] Task 1'
validations:
required: true
- type: textarea
id: freeform-notes
attributes:
label: Freeform Notes
description: Add any additional notes here.
placeholder: Add notes here.
47 changes: 47 additions & 0 deletions .github/ISSUE_TEMPLATE/support_request.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: Support Request
description: This is a template for submitting a support request.
# If you want to enable automatic linking to projects,
# uncomment the following line and replace the project ID
# with the ID of your project.
# projects: ["childmindresearch/1"]
title: 'Support: '
labels: [question]
body:
- type: textarea
id: issue-description
attributes:
label: Issue Description
description: Please provide a clear and concise description of the issue you are facing.
placeholder: Describe the issue here
validations:
required: true
- type: textarea
id: environment-details
attributes:
label: Environment Details
description: Please provide details about your environment, including system specifications, software versions, etc.
placeholder: Describe your environment details here.
validations:
required: false
- type: textarea
id: attempted-solutions
attributes:
label: Attempted Solutions
description: Describe any steps you have already taken to resolve the issue.
placeholder: Describe any attempted solutions here.
validations:
required: false
- type: textarea
id: reproduction-steps
attributes:
label: Reproduction Steps
description: If applicable, provide steps to reproduce the issue.
placeholder: Describe the steps to reproduce the issue, if applicable.
validations:
required: false
- type: textarea
id: additional-notes
attributes:
label: Additional Notes
description: Add any other context or screenshots about the support request here.
placeholder: Add additional notes or screenshots here.
18 changes: 18 additions & 0 deletions .github/dependabot.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Please see the documentation for all configuration options:
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates

version: 2
updates:
- package-ecosystem: pip
directory: /
schedule:
interval: monthly
groups:
production-dependencies:
dependency-type: production
development-dependencies:
dependency-type: development
- package-ecosystem: github-actions
directory: /
schedule:
interval: monthly
61 changes: 61 additions & 0 deletions .github/workflows/docs.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
name: Build and publish docs

permissions:
contents: read
pages: write
id-token: write

concurrency:
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
group: pages
cancel-in-progress: false

on:
workflow_run:
workflows: [Python Tests]
types:
- completed
branches:
- main
workflow_dispatch:

jobs:
build-and-publish-docs:
if: ${{ github.event.workflow_run.conclusion == 'success' }}
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- uses: actions/checkout@v5
- name: Install uv
uses: astral-sh/setup-uv@v7
with:
enable-cache: true
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version-file: pyproject.toml
- name: Install the project
run: uv sync --only-group docs
- name: Build docs
run: |
APP_MODULE_NAME=$(ls src -U | head -1) # Get the first module name in the src directory
uv run pdoc src/"$APP_MODULE_NAME" -o docs_build -t docs/pdoc-theme --docformat google
- name: Setup Pages
uses: actions/configure-pages@v5
- name: Upload artifact
uses: actions/upload-pages-artifact@v4
with:
path: ./docs_build
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
- name: Deploy to Cloudflare Pages
id: cloudflare-deployment
uses: cloudflare/wrangler-action@v3
with:
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
command: pages deploy docs_build/ --project-name=styxpodman --branch=main
35 changes: 35 additions & 0 deletions .github/workflows/publish-pypi.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: Publish to PyPi

permissions:
actions: write

on:
push:
tags:
- '*'

jobs:
pypi-release:
name: PyPi Release
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v5

- name: Setup uv
uses: astral-sh/setup-uv@v7
with:
enable-cache: true

- name: Install dependencies and build
run: |
uv sync --frozen --no-dev --no-install-project
uv build

- name: Publish to PyPi
id: pypi_publish
uses: pypa/gh-action-pypi-publish@release/v1
with:
user: __token__
password: ${{ secrets.PYPI_TOKEN }}
verbose: true
63 changes: 63 additions & 0 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
name: Python Tests

on:
push:
branches:
- main
pull_request:

jobs:
unit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5

- name: Setup uv
uses: astral-sh/setup-uv@v7
with:
enable-cache: true

- name: Run tests
id: run-tests
run: >
uv run --frozen pytest \
--junitxml=pytest.xml \
--cov-report=term-missing:skip-covered \
--cov-report=xml:coverage.xml \
--cov=src tests \
--log-level=DEBUG \
--verbose

- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
verbose: true

ruff:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5

- name: Setup uv
uses: astral-sh/setup-uv@v7
with:
enable-cache: true

- name: Ruff format
run: uv run ruff format --check

- name: Ruff check
run: uv run ruff check

mypy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5

- name: Setup uv
uses: astral-sh/setup-uv@v7
with:
enable-cache: true

- run: uv run mypy .
Loading