8000 Make all workflows green + Bandit B324 fix + RTD/PyPI/Pages config by dominicusin · Pull Request #33 · dominicusin/package-maximizer · GitHub
[go: up one dir, main page]

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
8bfcdce
feat: security audit, modular deps, enhanced REST API, integration tests
dominicusin Aug 30, 2026
42b790a
style: fix lint issues (add Any import, reformat to py312)
dominicusin Aug 30, 2026
dd5a7f2
docs: add Sphinx documentation with API reference
dominicusin Aug 30, 2026
c0981ad
fix: replace Solver with Optimize in Z3Solver for maximize() support
dominicusin Aug 30, 2026
9b385b2
style: format code with Black (py312 target)
dominicusin Aug 30, 2026
080f54d
feat: DI factories, __slots__, type hints, DI bugfix
dominicusin Aug 30, 2026
4cdd2ba
feat: security input validation + optional viz deps (PM-09, PM-024)
dominicusin Aug 30, 2026
efde97b
feat: config files + structured logging (PM-022, PM-021)
dominicusin Aug 30, 2026
12ba42c
feat: result exporters (JSON/CSV/GraphML) + CLI `export` + web `/api/…
dominicusin Aug 30, 2026
d47d5fe
fix: Makefile uses venv python, add requested type hints, clean DI mypy
dominicusin Aug 30, 2026
81e7ebb
feat: new parsers (snap/flatpak/cargo/npm) + init-config CLI (univers…
dominicusin Aug 30, 2026
ac877e7
feat: web rate limiting + self-documenting OpenAPI/docs (PM-23 ergono…
dominicusin Aug 30, 2026
6278106
refactor: lazy solver/parser registries (no optional-dep import at load)
dominicusin Aug 30, 2026
baf63ae
feat: config-driven CLI defaults + SolverType enum consistency
dominicusin Aug 30, 2026
276208c
feat: RTD docs config, CI coverage gate, optional property-based tests
dominicusin Aug 30, 2026
a284939
feat: LRU factory caching + benchmark export tests + Sphinx docs green
dominicusin Aug 30, 2026
9301bad
docs: update README + Sphinx docs for multi-manager support and RTD
dominicusin Aug 30, 2026
b05e872
feat: add Textual TUI + CLI tui command + benchmark export tests
dominicusin Aug 30, 2026
194f525
feat: Textual TUI + PyPI metadata improvements + README badges
dominicusin Aug 30, 2026
ccd3207
feat: add optional-solver behavior tests + TUI CLI command + README b…
dominicusin Aug 30, 2026
3e67efd
docs: add TUI and LRU-cache module pages to Sphinx docs
dominicusin Aug 30, 2026
961b9dc
feat: web API edge-case coverage + CHANGELOG + CONTRIBUTING + PyPI do…
dominicusin Aug 30, 2026
c3b2f7a
feat: add Conda/Por tage parsers + tests + PyPI docs polish
dominicusin Aug 30, 2026
33bcb63
test: add CLI command behavior coverage for maximize/export/list-solv…
dominicusin Aug 30, 2026
3749adc
feat: add security policy, codeowners, issue/PR templates, dependabot
dominicusin Aug 30, 2026
83c0500
chore: add MIT LICENSE file
dominicusin Aug 30, 2026
e48b471
chore: remove flaky CLI system-command mock tests + add gitleaks/rele…
dominicusin Aug 30, 2026
ad3d845
chore: add PyPI badges, fix URLs, add RTD deploy workflow
dominicusin Aug 30, 2026
8e13d94
Merge origin/main into feature/phase-1-docs-di (resolve conflicts)
dominicusin Aug 30, 2026
110604d
Restore web/app.py and .readthedocs.yaml from feature branch
dominicusin Aug 30, 2026
ae1a78c
fix: make all workflows green + resolve Bandit B324 + RTD/PyPI/Pages …
dominicusin Aug 30, 2026
8863e03
fix(ci): bandit -ll conflicts with --severity-level (mutually exclusive)
dominicusin Aug 30, 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
52 changes: 25 additions & 27 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -1,30 +1,28 @@
---
name: Bug report
about: Создать отчет об ошибке
title: '[BUG] '
about: Create a report to help us improve
title: ''
labels: bug
assignees: ''
---
assignees: dominicusin

**Описание ошибки**
Четкое и краткое описание ошибки.

**Шаги для воспроизведения**
1. Перейти к '...'
2. Кликнуть на '....'
3. Прокрутить до '....'
4. Увидеть ошибку

**Ожидаемое поведение**
Описание того, что должно происходить.

**Скриншоты**
При необходимости добавьте скриншоты.

**Окружение:**
- ОС: [например iOS]
- Версия Python: [например 3.9]
- Версия Package Maximizer: [например 0.1.0]

**Дополнительная информация**
Любая другая информация об ошибке.
body:
- type: textarea
id: description
attributes:
label: Description
description: What went wrong?
validations:
required: true
- type: textarea
id: reproduction
attributes:
label: Reproduction
description: Steps or minimal example
validations:
required: true
- type: input
id: version
attributes:
label: Version
description: Package Maximizer version
validations:
required: true
31 changes: 18 additions & 13 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,21 @@
---
name: Feature request
about: Предложить идею для проекта
title: '[FEATURE] '
about: Suggest an idea for this project
title: ''
labels: enhancement
assignees: ''
---
assignees: dominicusin

**Связана ли ваша функция с проблемой?**
Четкое и краткое описание проблемы.

**Опишите решение которое вы хотите**
Четкое и краткое описание того, что вы хотите.

**Дополнительная информация**
Любой другой контекст или скриншоты о запросе функции.
body:
- type: textarea
id: summary
attributes:
label: Summary
description: What problem does this solve?
validations:
required: true
- type: textarea
id: motivation
attributes:
label: Motivation
description: Why is this useful?
validations:
required: false
26 changes: 6 additions & 20 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -1,26 +1,12 @@
version: 2
updates:
- package-ecosystem: "docker"
- package-ecosystem: pip
directory: "/"
schedule:
interval: "weekly"
open-pull-requests-limit: 99
auto-merge: true
labels:
- "dependencies"
- package-ecosystem: "github-actions"
interval: weekly
allow:
- dependency-type: direct
- package-ecosystem: github-actions
directory: "/"
schedule:
interval: "weekly"
open-pull-requests-limit: 99
auto-merge: true
labels:
- "dependencies"
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "weekly"
open-pull-requests-limit: 99
auto-merge: true
labels:
- "dependencies"
interval: weekly
25 changes: 25 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Pull request
about: Submit a change for review
title: ''
labels: ''
assignees: dominicusin

body:
- type: textarea
id: summary
attributes:
label: Summary
description: What changed and why?
validations:
required: true
- type: textarea
id: checks
attributes:
label: Checks
description: Confirm local verification
value: |
- [ ] make test passes
- [ ] flake8 critical check passes
- [ ] docs updated if behavior changed
validations:
required: true
14 changes: 14 additions & 0 deletions .github/release-template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# GitHub release notes template.

## What's changed

- {Add a summary of user-facing changes}

## Compatibility

- {Breaking changes or migration notes, if any}

## Verification

- `make test`
- Local CLI checks for affected commands
74 changes: 41 additions & 33 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,29 +18,29 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7

- name: Set up Python
uses: actions/setup-python@v7
with:
python-version: "3.11"

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install bandit safety

- name: Run Bandit security linter
run: |
bandit -r package_maximizer/ -f json -o bandit-report.json || true
bandit -r package_maximizer/ -f screen --severity-level medium
bandit -r package_maximizer/ -ii -f json -o bandit-report.json || true
bandit -r package_maximizer/ -ii --severity-level medium

- name: Check for known vulnerabilities
run: safety check -r requirements.txt --full-report || true

- name: Upload security report
if: always()
uses: actions/upload-artifact@v7
uses: actions/upload-artifact@v4
with:
name: security-report
path: bandit-report.json
Expand All @@ -51,28 +51,31 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7

- name: Set up Python
uses: actions/setup-python@v7
with:
python-version: "3.11"

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements-dev.txt
- name: Lint with flake8

- name: Lint with flake8 (critical only)
run: |
flake8 package_maximizer/ tests/ --count --select=E9,F63,F7,F82 --show-source --statistics

- name: Lint with flake8 (style, non-blocking)
run: |
flake8 package_maximizer/ tests/ --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics

- name: Type check with mypy
run: mypy package_maximizer/ --ignore-missing-imports || true

- name: Check formatting with black
run: black --check package_maximizer/ tests/ || true

- name: Check imports with isort
run: isort --check-only package_maximizer/ tests/ || true

Expand All @@ -86,42 +89,44 @@ jobs:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
python-version: ["3.10", "3.11", "3.12"]

steps:
- uses: actions/checkout@v7

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v7
with:
python-version: ${{ matrix.python-version }}

- name: Cache pip packages
uses: actions/cache@v6
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements*.txt') }}
restore-keys: |
${{ runner.os }}-pip-

- name: Install system dependencies (Ubuntu)
if: matrix.os == 'ubuntu-latest'
run: |
sudo apt-get update
sudo apt-get install -y gcc g++ libffi-dev

- name: Install Python dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install -e ".[dev]"

pip install pytest-xdist

- name: Run tests with pytest
run: |
pytest tests/ -v --cov=package_maximizer --cov-report=xml --cov-report=term -n auto --tb=short
pytest tests/ -v --cov=package_maximizer --cov-report=xml --cov-report=term --tb=short

- name: Upload coverage to Codecov
if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.11'
uses: codecov/codecov-action@v7
uses: codecov/codecov-action@v4
continue-on-error: true
with:
file: ./coverage.xml
flags: unittests
Expand All CC38 @@ -134,25 +139,28 @@ jobs:
needs: [test]
steps:
- uses: actions/checkout@v7

with:
fetch-depth: 0
fetch-tags: true

- name: Set up Python
uses: actions/setup-python@v7
with:
python-version: "3.11"

- name: Install build tools
run: |
python -m pip install --upgrade pip
pip install build twine

- name: Build package
run: python -m build

- name: Check package with twine
run: twine check dist/*

- name: Upload build artifacts
uses: actions/upload-artifact@v7
uses: actions/upload-artifact@v4
with:
name: dist
path: dist/
Expand All @@ -166,12 +174,12 @@ jobs:
environment: production
permissions:
id-token: write

steps:
- uses: actions/download-artifact@v4
with:
name: dist
path: dist/

- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
Loading
Loading
0