feat: full upgrade to python3, tests, etc.

This commit is contained in:
2025-04-10 16:08:34 +03:00
parent 6aa17ba957
commit dd9f538bb4
18 changed files with 1200 additions and 240 deletions

57
.github/CODE_OF_CONDUCT.md vendored Normal file
View File

@@ -0,0 +1,57 @@
# Contributor Covenant Code of Conduct
## Our Pledge
We as members, contributors, and leaders pledge to make participation
in our community a harassment-free experience for everyone, regardless
of age, body size, visible or invisible disability, ethnicity, sex
characteristics, gender identity and expression, level of experience,
education, socio-economic status, nationality, personal appearance,
race, caste, color, religion, or sexual identity and orientation.
We pledge to act and interact in ways that contribute to an open,
welcoming, diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment:
- Demonstrating empathy and kindness
- Being respectful of differing opinions
- Gracefully accepting constructive feedback
- Focusing on what is best for the community
Examples of unacceptable behavior:
- The use of sexualized language or imagery
- Trolling, insulting or derogatory comments
- Harassment of any kind
- Publishing others private information
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our
standards and will take appropriate and fair corrective action in
response to any behavior they deem inappropriate.
## Scope
This Code of Conduct applies within all community spaces and also
applies when an individual is officially representing the project.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior
may be reported to the project owner @ivuorinen.
All complaints will be reviewed and investigated and will result in a
response that is deemed necessary and appropriate to the circumstances.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][cc],
version 2.1.
[cc]: https://www.contributor-covenant.org/version/2/1/code_of_conduct/
<!--
vim: ft=md sw=2 ts=2 tw=72 fo=cqt wm=0 et
-->

85
.github/CONTRIBUTING.md vendored Normal file
View File

@@ -0,0 +1,85 @@
# Contributing to aeonview
Thanks for your interest in contributing to **aeonview**! This guide will help you get started.
## 🛠 Project Setup
1. Clone the repository:
```bash
git clone https://github.com/your-username/aeonview.git
cd aeonview
```
2. Set up your environment:
```bash
python3 -m venv venv
source venv/bin/activate
pip install -r dev-requirements.txt
```
3. Install pre-commit hooks:
```bash
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
```bash
make test
```
## 🧹 Formatting & Linting
```bash
make format # auto-format code
make lint # check for lint errors
```
## ✅ Submitting a Pull Request
1. Create a feature branch:
```bash
git checkout -b feature/my-new-feature
```
2. Commit your changes:
```bash
git add .
git commit -m "feat: add support for X"
```
3. Push and open a pull request:
```bash
git push origin feature/my-new-feature
```
4. Follow the PR template and link any relevant issues.
## 📋 Commit Message Guidelines
Use [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/):
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](CODE_OF_CONDUCT.md).
## Questions?
Feel free to open an issue or start a discussion!
Thanks for helping make Aeonview better 💜
<!--
vim: ft=md sw=2 ts=2 tw=72 fo=cqt wm=0 et
-->

16
.github/renovate.json vendored Normal file
View File

@@ -0,0 +1,16 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"github>ivuorinen/renovate-config"
],
"packageRules": [
{
"managers": [
"github-actions"
],
"schedule": [
"daily"
]
}
]
}

29
.github/workflows/pr-lint.yml vendored Normal file
View File

@@ -0,0 +1,29 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json
name: PR Lint
# yamllint disable-line rule:truthy
on:
push:
branches: [master, main]
pull_request:
branches: [master, main]
permissions: read-all
env:
TRIVY_SEVERITY: CRITICAL,HIGH
DISABLE_LINTERS: GO_GOLANGCI_LINT
jobs:
Linter:
name: PR Lint
runs-on: ubuntu-latest
permissions:
contents: write # only for delete-branch option
issues: write
pull-requests: write
statuses: write
steps:
- uses: ivuorinen/actions/pr-lint@312c00f77fbd73948441c8b004607e098e40c97f # 25.4.8

35
.github/workflows/python-tests.yml vendored Normal file
View File

@@ -0,0 +1,35 @@
name: Python tests
on:
push:
branches: [ main, master ]
pull_request:
branches: [ main, master ]
permissions: read-all
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Set up Python
uses: actions/setup-python@65d7f2d534ac1bc67fcd62888c5f4f3d2cb2b236 # v4.7.1
- name: Install dependencies
shell: bash
run: |
python -m pip install --upgrade pip
pip install pytest pytest-cov ruff
- name: Run Ruff linting
shell: bash
run: ruff check .
- name: Run tests with coverage
shell: bash
run: |
pytest --cov=aeonview --cov-report=term-missing