Roadmap for the migration to Python (and beyond)
Infrastructure:
-
Static checking with mypy -
Doctesting with pytest -
Continuous Integration
Fundamentals:
-
GitLab class and basic data classes -
basic test infrastructure -
GitLab.login: authentication/token management
API request utilities:
-
get -
put -
post -
del
Resource retrieval:
-
generic resource -
project -
group -
fork -
user
Resource creation:
-
generic resource -
project -
groupe -
fork
Resource configuration:
-
share project with group
Ensure resource existence and configuration
-
project -
group -
fork
Resource removal:
-
generic resource -
project -
group -
confirmation request with force option
Misc forge operations:
-
collect all forks -
doctests
-
Utilities:
-
reporting: error / warning / ... -
basic, with colors -
use indentation to highlight suboperations
-
-
travo run, with reporting (Doing) -
travo git (passing down credentials) -
Sanity checks: -
check_assignment -
check_student_group -
...
-
-
Command Line Interface (CLI) -
automatic Python API -> CLI adapter -
Support for optional and boolean arguments with --xxx
Use case: [script] fetch Semaine1 --force -
Support for more typed arguments -
Support for *args and **kwargs arguments
Use case: [script] forge git xxx yyy zzz
-
-
via dedicated course scripts -
via a generic travo script -
phase out legacy travo script -
CLI design -
support for single repo course/assignment (ongoing)
-
-
nicer error reporting: no traceback, usage information, tip -
push failure -
pull / merge failure -
...
-
-
bats tests
-
-
internationalization
Course description:
-
by course object -
by configuration file
Course / assignment operations:
-
fetch-git, fetch-zip -
personal assignment repo management (?) -
fetch -
doctests
-
-
fetch_errata -
method existence
-
-
submit -
doctests
-
-
release -
doctests
-
-
collect -
template configuration -
doctests
-
-
course creation -
setup (fetch configuration from a URL)
Edited by Nicolas Thiéry