• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

tjcsl / tin / 21087843462
59%

Build:
DEFAULT BRANCH: master
Ran 17 Jan 2026 03:40AM UTC
Jobs 1
Files 52
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

17 Jan 2026 03:38AM UTC coverage: 58.91% (+0.3%) from 58.654%
21087843462

push

github

web-flow
Allow choosing custom versions of python for graders (#92)

## Motivation
* Sets us up for supporting Java (notably this DOES NOT add official
Java support)
* Allows us to offer higher versions of python, without breaking
backwards compatibility with graders relying on python 3.10 behavior

This PR also does not add a warning banner if an assignment is using a
deprecated version of a language, in order to reduce the already large
and complex diff. This would be better as a "good first issue".

## Implementation
This adds a new model, `Language`, which stores information about the
language, binary path, and more. The field `Assignment.language` has
been moved inside said model. All the information about the specific
language is stored in a dictionary called `info`.

The `info` dictionary must contain a `version` key that is sortable. For
the `python` grader language, it must also contain the key `python3`
which has the absolute path to a python executable.
The addition of another language to Tin can then consist of simply
adding other keys to the `info` dictionary as needed.

> [!IMPORTANT]
> Custom migrations were written in order to facilitate this transition
with minimal problems.

The rest is just some restructuring:
* Changes the `run_submission` task to use the assignments executable
* Filters the edit assignment/create venv to only show non-deprecated
language options.
* Changes the `create_venv` task to use the correct executable

470 of 969 branches covered (48.5%)

Branch coverage included in aggregate %.

59 of 82 new or added lines in 12 files covered. (71.95%)

1 existing line in 1 file now uncovered.

1745 of 2791 relevant lines covered (62.52%)

0.63 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
1
60.16
1.0% tin/apps/assignments/forms.py
1
38.89
-4.35% tin/apps/venvs/tasks.py
1
41.18
0.88% tin/apps/venvs/views.py
2
57.67
-0.07% tin/apps/assignments/views.py
2
12.92
-0.17% tin/apps/submissions/tasks.py
2
83.33
-16.67% tin/apps/venvs/forms.py
7
81.92
-3.05% tin/apps/assignments/admin.py
7
63.76
-0.01% tin/apps/assignments/models.py

Uncovered Existing Lines

Lines Coverage ∆ File
1
63.76
-0.01% tin/apps/assignments/models.py
Jobs
ID Job ID Ran Files Coverage
1 Pyenv Unit Tests - 21087843462.1 17 Jan 2026 03:40AM UTC 52
58.91
Source Files on build 21087843462
  • Tree
  • List 52
  • Changed 12
  • Source Changed 0
  • Coverage Changed 12
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • 1d4e99b2 on github
  • Prev Build on master (#21087787327)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc