Files
aeonview/.github/CONTRIBUTING.md
Ismo Vuorinen 2b68767f0d refactor: modernize to Python 3 with OOP structure and comprehensive tests (#2)
* feat: full upgrade to python3, tests, etc.

* chore: saving the wip state

* chore(lint): fixed pyright errors, tests

* chore(ci): install deps

* chore(lint): fix linting

* chore(lint): more linting fixes

* chore(ci): upgrade workflows

* fix(test): fix tests, tweak editorconfig

* test: add helper path test and stub requests (#4)

* fix: update paths and workflow (#5)

* fix: update python version and improve cross-platform paths (#6)

* fix: resolve MegaLinter YAML and markdown lint failures (#7)

* fix: implement all CodeRabbit review comments (#8)

* fix: apply CodeRabbit auto-fixes

Fixed 3 file(s) based on 3 unresolved review comments.

* fix: resolve MegaLinter editorconfig and pylint/pyright failures (#9)

* feat: migrate to uv-managed project (#10)

* feat: migrate to uv-managed project

* fix: align Python version in pyproject.toml and CI setup-uv config

* fix: ignore uv.lock in editorconfig, disable PYTHON_PYLINT/PYRIGHT in mega-linter, use uv for dep install (#11)

* fix: ignore uv.lock in editorconfig and disable PYTHON_PYLINT/PYRIGHT in mega-linter

* fix: update outdated comment in mega-linter config

* fix: use uv instead of pip to install deps in mega-linter config

* chore(deps): upgrade workflows

* chore(ci): mega-linter config tweaks

* chore(ci): mega-linter config tweaks

* feat(deps): add pyright and pylint with non-overlapping config

Add pyright>=1.1.0 and pylint>=3.0.0 as dev dependencies. Configure
pyright for basic type checking (py3.13) and refine pylint message
disables to avoid overlap with ruff's enabled rule sets.

* feat(ci): re-enable pyright and pylint in mega-linter

Remove PYTHON_PYLINT and PYTHON_PYRIGHT from DISABLE_LINTERS so
mega-linter runs all three linters: ruff, pyright, and pylint.

* fix: resolve pyright/pylint findings and apply ruff formatting

Add encoding="utf-8" to read_text() calls in tests (pylint W1514).
Apply ruff-format double-quote style consistently across both files.

* chore(hooks): add editorconfig-checker and fix lines exceeding 80 chars

Add editorconfig-checker pre-commit hook to catch line-length
violations locally. Shorten docstrings in aeonview.py and
aeonview_test.py that exceeded the 80-character editorconfig limit.
Remove double-quote-string-fixer hook that conflicted with ruff-format.

* fix(ci): configure mega-linter to use project configs for pyright/pylint

Point mega-linter at pyproject.toml for both linters so they use our
config instead of mega-linter's defaults. Add venvPath/venv to pyright
so it resolves imports from the uv-created .venv. Disable pylint
import-error since import checking is handled by pyright.
2026-03-13 15:31:04 +02:00

1.7 KiB

Contributing to aeonview

Thanks for your interest in contributing to aeonview! This guide will help you get started.

🛠 Project Setup

  1. Clone the repository:

    git clone https://github.com/ivuorinen/aeonview.git
    cd aeonview
    
  2. Set up your environment:

    uv sync --all-groups
    
  3. Install pre-commit hooks:

    uv run pre-commit install
    

Development Workflow

  • Make sure your changes are well-tested.
  • Use make check to run linting and tests.
  • Follow the existing coding style (Ruff will enforce it).
  • All new features must include documentation.

🧪 Running Tests

make test

🧹 Formatting & Linting

make format   # auto-format code
make lint     # check for lint errors

Submitting a Pull Request

  1. Create a feature branch:

    git checkout -b feature/my-new-feature
    
  2. Commit your changes:

    git add .
    git commit -m "feat: add support for X"
    
  3. Push and open a pull request:

    git push origin feature/my-new-feature
    
  4. Follow the PR template and link any relevant issues.

📋 Commit Message Guidelines

Use Conventional Commits:

Examples:

  • feat: add monthly video generation
  • fix: handle invalid date error
  • docs: update usage instructions

🙏 Code of Conduct

We expect contributors to follow our Code of Conduct.

Questions?

Feel free to open an issue or start a discussion!

Thanks for helping make Aeonview better 💜