Skip to content

Investigate splitting apart Submitty into separate repositories per component #965

@MasterOdin

Description

@MasterOdin

Right now, we have most of the code in one monolithic repo (with analysis tools and samples in other repos). However, while the code serves for one continuous e2e pipeline (submission -> autograder -> grading -> rainbow grades), they don't share a strict linkage and could be tested (and are) independently.

We should investigate the usage of git submodules/subtrees to allow us to split all pieces apart into their own repos and then have this repo act a container. Each repo would have unit/e2e tests that would test just the components of that repo.

We would then have Travis run tests on this repo regularly as a cron job that pulls from master on all other repos to ensure the pipeline keeps working.

Advantages would be smaller/quicker testing of each component, disadvantage would be more confusing git workflow.

The proposed "subrepos" would be:

  1. PHP Website (site/)
  2. Autograder code (grading/)
  3. Rainbow Grades (RainbowGrades/)
  4. Tutorial (already in own repo)
  5. AnalysisTools (already in own repo)

Each would have its own internal structure of:
src/
tests/
Vagrantfile (if applicable)
.travis.yml
README.md

and then have their own set of requirements. That means that PHP Website would have a composer.json (instead of having a global one), Autograder and AnalysisTools have make, etc.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions