Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
4ae1398
Migrate project to `pyproject.toml` and update module structure.
Borda Jan 8, 2026
598e0ab
Integrate `pre-commit` for streamlined code quality checks
Borda Jan 8, 2026
fa512ff
Switch to `ruff` for linting and formatting
Borda Jan 8, 2026
5ef4127
Remove Makefile and update README to reflect changes...
Borda Jan 8, 2026
74901f5
Update project metadata to reflect Roboflow ownership
Borda Jan 8, 2026
a666a15
Enhance linting rules, update docstrings, and upgrade pre-commit depe…
Borda Jan 8, 2026
4ccb28f
Add `mdformat` pre-commit hook and minor README formatting adjustments
Borda Jan 8, 2026
fccb8bf
Add `validate-pyproject` and `pyproject-fmt` pre-commit hooks, update…
Borda Jan 8, 2026
a4b1970
Add `codespell` pre-commit hook and fix typo in README
Borda Jan 8, 2026
1748b87
Remove `welcome.yml` GitHub Actions workflow for first interactions
Borda Jan 8, 2026
092f7b4
Add `.github/CODEOWNERS` file to define code ownership
Borda Jan 8, 2026
853c64c
Add `.github/dependabot.yml` for automated dependency updates
Borda Jan 8, 2026
f8aba6a
Update `publish.yml` workflow: refine steps, use updated actions, and…
Borda Jan 8, 2026
1376c77
Update `test.yml` workflow: expand Python version matrix, upgrade act…
Borda Jan 8, 2026
d87c184
Update `.gitignore` to include JetBrains IDE files
Borda Jan 8, 2026
d897347
Update formatting rules, expand pre-commit hooks, and refine test wor…
Borda Jan 8, 2026
7fed9ab
Expand `.pre-commit-config.yaml` with additional hooks, comments, and…
Borda Jan 8, 2026
04925ad
Add GitHub templates for PRs, bug reports, and feature requests
Borda Jan 8, 2026
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
13 changes: 13 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# CODEOWNERS
#
# This file specifies which people or teams own code in this repository.
# Directives are specified using one of the following forms:
#
# * @org/team-name # entire repo
# /path/to/file @user-name # specific file
# /docs/** @team-name # all files in docs folder
# *.js @js-owner # all JS files
#
# See https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners
#
# Order is important; the last matching pattern takes precedence.
Copy link

Copilot AI Jan 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The CODEOWNERS file is created but contains only comments and no actual ownership assignments. This means no code owners are specified for any files in the repository. Consider adding actual owner assignments or remove this file if it's not needed yet.

Suggested change
# Order is important; the last matching pattern takes precedence.
# Order is important; the last matching pattern takes precedence.
* @org/team-name

Copilot uses AI. Check for mistakes.
28 changes: 28 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: "Bug Report"
description: Report a bug
title: "[Bug]: "
labels: ["bug", "triage"]
body:
- type: textarea
id: bug
attributes:
label: Bug description
description: Expected vs. actual behavior.
validations:
required: true
- type: textarea
id: steps
attributes:
label: Steps to reproduce
description: Minimal steps.
placeholder: |
1. ...
2. ...
See error.
validations:
required: true
- type: textarea
id: environment
attributes:
label: Environment (optional)
description: OS, Python, toolchain.
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: "Feature Request"
description: Suggest a feature
title: "[Feature]: "
labels: ["feature", "triage"]
body:
- type: textarea
id: problem
attributes:
label: Problem
description: What problem does it solve?
placeholder: I'm frustrated when...
validations:
required: true
- type: textarea
id: solution
attributes:
label: Solution
description: Describe the feature.
validations:
required: true
46 changes: 46 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Dependabot configuration file
# Enables automated dependency updates for pip (individual PRs) and GitHub Actions (grouped PR).
# Full documentation: https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file

version: 2

updates:
# Pip dependencies from pyproject.toml ([project].dependencies and [dependency-groups])
- package-ecosystem: pip
directory: "/"
target-branch: "main"
schedule:
interval: "weekly"
# day: "monday" # Optional: Restrict to specific weekday
open-pull-requests-limit: 5 # Limit number of open PRs
rebase-strategy: "auto" # Options: auto, safe, noop
labels:
- "dependencies"
versioning-strategy: "increase" # lockfile-only, increase, increase-if-necessary
# Useful: Ignore outdated/unwanted packages
# ignore:
# - dependency-name: "legacy-package"
# Useful: Periodically update lockfile even without dep changes (requires lockfile)
# lockfile-maintenance:
# enabled: true

# GitHub Actions in .github/workflows/*.yml
- package-ecosystem: "github-actions"
directory: "/" # Root; scans .github/**/workflow yml files
target-branch: "main"
schedule:
interval: "monthly"
# day: "monday"
open-pull-requests-limit: 5
rebase-strategy: "auto"
labels:
- "CI"
groups:
gha-updates:
patterns:
- "*" # Groups ALL GitHub Actions updates into single PR

# Additional notes:
# - Pip updates: Individual PRs per package (no group).
# - Reviews: Uses .github/CODEOWNERS automatically.
# - Automerge: Enable via branch protection rules or 'automerge: true' (experimental).
13 changes: 13 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# PR Checklist

- [ ] Tests pass
- [ ] Docs if needed
- [ ] pre-commit passes

## Changes

Brief description.

## Related

Closes #
39 changes: 19 additions & 20 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,31 +2,30 @@ name: Publish WorkFlow

on:
release:
types: [created]
types: [published]

jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [3.8]
steps:
- name: 🛎️ Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: 🐍 Set up Python
uses: actions/setup-python@v5
with:
ref: ${{ github.head_ref }}
- name: 🐍 Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: 🦾 Install dependencies
run: |
python -m pip install --upgrade pip
pip install ".[dev]"
- name: 🚀 Publish to PyPi
env:
PYPI_USERNAME: ${{ secrets.PYPI_USERNAME }}
PYPI_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
PYPI_TEST_PASSWORD: ${{ secrets.PYPI_TEST_PASSWORD }}
python-version: "3.10"
cache: "pip"
- name: 🦾 Install build dependencies
run: |
make publish -e PYPI_USERNAME=$PYPI_USERNAME -e PYPI_PASSWORD=$PYPI_PASSWORD -e PYPI_TEST_PASSWORD=$PYPI_TEST_PASSWORD
python -m pip install --upgrade pip build
- name: 📦 Build package
run: python -m build
- name: Upload to release
uses: AButler/[email protected]
with:
files: "dist/*"
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: 🚀 Publish to PyPI
uses: pypa/[email protected]
Copy link

Copilot AI Jan 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The pypa/gh-action-pypi-publish action version v1.1.0 is outdated. The current stable version is v1.12.2 (as of late 2024). Using an outdated version may lack important security fixes and features. Consider updating to the latest version.

Suggested change
uses: pypa/gh-action-pypi-publish@v1.1.0
uses: pypa/gh-action-pypi-publish@v1.12.2

Copilot uses AI. Check for mistakes.
with:
password: ${{ secrets.PYPI_PASSWORD }}
19 changes: 7 additions & 12 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,22 +9,17 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [3.7, 3.8, 3.9]
python-version: ["3.9", "3.10", "3.11", "3.12"]
Copy link

Copilot AI Jan 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The test workflow only tests Python versions 3.9-3.12, but pyproject.toml declares support for Python 3.13 and 3.14. Either remove the unsupported versions from pyproject.toml classifiers or add them to the test matrix to ensure compatibility.

Suggested change
python-version: ["3.9", "3.10", "3.11", "3.12"]
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]

Copilot uses AI. Check for mistakes.
steps:
- name: 🛎️ Checkout
uses: actions/checkout@v3
with:
ref: ${{ github.head_ref }}
uses: actions/checkout@v4
- name: 🐍 Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: 🔧 Set up uv
uses: astral-sh/setup-uv@v5
- name: 🦾 Install dependencies
run: |
python -m pip install --upgrade pip
pip install ".[dev]"
- name: 🧹 Lint with flake8
run: |
make check_code_quality
run: uv sync --dev
- name: 🧪 Test
run: "python -m pytest ./test"
run: uv run pytest test/ src/
16 changes: 0 additions & 16 deletions .github/workflows/welcome.yml

This file was deleted.

3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -127,3 +127,6 @@ dmypy.json

# Pyre type checker
.pyre/

# JetBrain IDE
.idea/
57 changes: 57 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# .pre-commit-config.yaml
#
# Pre-commit configuration for:
# - Local git hooks: `pre-commit install` & `pre-commit run --all-files`
# - pre-commit.ci bot: PR checks, auto hook updates, etc.
#
# Docs: https://pre-commit.ci/
#
ci:
autoupdate_schedule: monthly # Monthly bot PRs to update hook revs
submodules: true # Include git submodules in checks
autofix_commit_msg: |
[pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci # Custom commit message for bot autofixes
skip: [~draft, ~WIP] # Skip bot on PRs with these labels (regex prefix match)

repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
# Basic file checks/fixes: whitespace, EOF, YAML/TOML validation, large files, security, symlinks
rev: v6.0.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
- id: check-toml
- id: check-added-large-files
- id: check-ast
- id: check-docstring-first
- id: detect-private-key
- id: check-symlinks
- repo: https://github.com/astral-sh/ruff-pre-commit
# Python linter (ruff --fix) & formatter (ruff-format)
rev: v0.14.10
hooks:
- id: ruff
args: [ --fix ]
- id: ruff-format
- repo: https://github.com/hukkin/mdformat
# Markdown formatter (mdformat)
rev: 1.0.0
hooks:
- id: mdformat
- repo: https://github.com/abravalheri/validate-pyproject
# Validate pyproject.toml schema/content
rev: v0.23
hooks:
- id: validate-pyproject
- repo: https://github.com/tox-dev/pyproject-fmt
# Format pyproject.toml
rev: v2.9.0
hooks:
- id: pyproject-fmt
- repo: https://github.com/codespell-project/codespell
# Spell checker for code, comments, docs
rev: v2.4.1
hooks:
- id: codespell
22 changes: 0 additions & 22 deletions Makefile

This file was deleted.

Loading
Loading