Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
4c19687
Add info and error fields to CheckResults
lyubolp Dec 28, 2025
31df984
Move tests into separate subdirectories
lyubolp Dec 28, 2025
c0e1785
Add info for pylint, structure and tests check
lyubolp Dec 28, 2025
bf184be
Improve pylint messages
lyubolp Jan 8, 2026
d09888d
Add details to desktop
lyubolp Jan 8, 2026
13cdfed
Add 2025 projects config
lyubolp Jan 8, 2026
5fbe21d
Add more information when checks fail
lyubolp Jan 10, 2026
035f5ac
Update type hints check to include percentage in results and adjust t…
lyubolp Jan 11, 2026
7fe0f1c
Add error details to plain text results output
lyubolp Jan 11, 2026
2fd64bc
Refactor PylintCheck tests to assert actual score details instead of …
lyubolp Jan 11, 2026
643bc6d
Update coverage check to display formatted coverage percentage in res…
lyubolp Jan 11, 2026
13b5f29
Add TODO to pass exception information in Grader class error handling
lyubolp Jan 11, 2026
10b2b9b
Add Claude AI Assistant Guide for pygrader project
lyubolp Jan 11, 2026
cbd068a
Fix functional tests
lyubolp Jan 11, 2026
f24480b
Add useful message for requirements check fail
lyubolp Jan 11, 2026
1dde092
Add stdout for coverage check
lyubolp Jan 11, 2026
bbc4e52
When a check error is converted to a result, the info is kept
lyubolp Jan 11, 2026
3d0247c
Enhance result reporting with verbose option and update tests for mis…
lyubolp Jan 11, 2026
ae8d3af
Changelog & version bump
lyubolp Jan 11, 2026
1dff53a
Revert to 2024 pylintrc
lyubolp Jan 11, 2026
77afd1c
Add more files to clean
lyubolp Jan 11, 2026
97dd4c6
Change venv name
lyubolp Jan 12, 2026
3d72d73
Deleting existing venv is now optional
lyubolp Jan 12, 2026
bf6d744
Update CHANGELOG
lyubolp Jan 12, 2026
0a3a031
If a zip contains only the project as a subdirectory, use the subdir …
lyubolp Jan 12, 2026
04df5be
Add is_checking_install option to RequirementsCheck and update tests
lyubolp Jan 12, 2026
9b84be5
Update CHANGELOG
lyubolp Jan 12, 2026
69f245b
Refactor result handling in ResultsReporter for improved readability …
lyubolp Jan 12, 2026
ff706b5
Update Dockerfile and add entrypoint script for improved container ex…
lyubolp Jan 15, 2026
87daef6
Add changelog and version checks to PR workflow
lyubolp Jan 17, 2026
dad6b92
Enhance virtual environment management and reporting
lyubolp Jan 17, 2026
64481cb
Apply suggestions from code review
lyubolp Jan 17, 2026
775ac5c
lint and test actions now use the justfile
lyubolp Jan 17, 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
6 changes: 6 additions & 0 deletions .github/prompts/prompt.prompt.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
agent: agent
---
Define the task to achieve, including specific requirements, constraints, and success criteria.

Before proceeding with any implementation, align the plan with the user. Ask any clarification questions that will help with the successful implementation of the plan.
28 changes: 11 additions & 17 deletions .github/workflows/cicd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,17 +32,11 @@ jobs:
- name: Install the project
run: uv sync --locked --all-extras --dev

- name: pylint
run: uv run pylint grader desktop tests pygrader.py --fail-under 9

- name: mypy
run: uv run mypy grader desktop tests pygrader.py --ignore-missing-imports

- name: flake8
run: uv run flake8 grader desktop tests pygrader.py

- name: complexipy
run: uv run complexipy .
- name: Install just
run: apt install just

- name: Lint code
run: just lint
test:
runs-on: ubuntu-latest
needs: lint
Expand All @@ -60,15 +54,15 @@ jobs:
- name: Install the project
run: uv sync --locked --all-extras --dev

- name: Install just
run: apt install just

- name: Run the unit tests
run: |
find tests -type f -name "test_*.py" -not -name "test_functional.py" -not -path "*sample_project*" | xargs uv run -m unittest -v
shell: bash
run: just unit_tests

- name: Run the functional tests
run: |
uv run -m unittest discover -s tests -p "test_functional.py"
shell: bash
run: just functional_tests

docker:
needs: test
runs-on: ubuntu-latest
Expand Down
50 changes: 37 additions & 13 deletions .github/workflows/pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,18 +24,13 @@ jobs:

- name: Install the project
run: uv sync --locked --all-extras --dev

- name: Install just
run: apt install just

- name: pylint
run: uv run pylint grader desktop tests pygrader.py --fail-under 9
- name: Lint code
run: just lint

- name: mypy
run: uv run mypy grader desktop tests pygrader.py --ignore-missing-imports

- name: flake8
run: uv run flake8 grader desktop tests pygrader.py

- name: complexipy
run: uv run complexipy .
test:
runs-on: ubuntu-latest
needs: lint
Expand All @@ -52,13 +47,42 @@ jobs:

- name: Install the project
run: uv sync --locked --all-extras --dev

- name: Install just
run: apt install just

- name: Run the unit tests
run: just unit_tests

- name: Run the functional tests
run: just functional_tests

changelog-and-version:
runs-on: ubuntu-latest
needs: test
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Check if CHANGELOG.md is updated
run: |
find tests -type f -name "test_*.py" -not -name "test_functional.py" -not -path "*sample_project*" | xargs uv run -m unittest -v
git fetch origin main:main
if git diff --name-only origin/main...HEAD | grep -q "CHANGELOG.md"; then
echo "✓ CHANGELOG.md has been updated"
else
echo "✗ CHANGELOG.md has not been updated"
exit 1
fi
shell: bash

- name: Run the functional tests
- name: Check if version is changed
run: |
uv run -m unittest discover -s tests -p "test_functional.py"
git fetch origin main:main
if git diff origin/main...HEAD pyproject.toml | grep -q "^[+-]version = "; then
echo "✓ Version in pyproject.toml has been changed"
else
echo "✗ Version in pyproject.toml has not been changed"
exit 1
fi
shell: bash
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -183,4 +183,6 @@ docs/diagrams/out
.private
*.zip

**/.DS_Store
**/.DS_Store

.complexipy_cache
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# pygrader

## 1.8.0

- Check results now show useful info and error messages
- The venv created by pygrader is now with a non-standard name
- Deleting existing venv is now optional
- If a zip contains only the project as a subdirectory, use the subdir instead
- Requirements check can now check for project installation

## 1.7.1

- Subpackages are now properly exported
Expand Down
Loading
Loading