Skip to content

[staff-cli] Allow custom checkout/merge strategies #3

@nwalters512

Description

@nwalters512

It should be possible to specify the way in which assignment files are checked out and merged with student files. This will be necessary to support a broader variety of use cases. For example, in 225, we want to check out a specific directory from our assignment monorepo and then merge specific subdirectories in that together before finally merging in student code. However, 241 wants to checkout their entire monorepo, checkout all student files, and then handle them inside its own grader.

We could use the existing course-level config.yml to specify this. There are a few options:

  • Declare behaviors as npm packages and then have Zephyr dynamically install them on the fly if needed. This makes things extremely flexible and prevents us from having to bundle every possible behavior with the CLI, but I can forsee versioning being an issue (it'd be possible to accidentally be on an old version without knowing it).
  • Bundle all strategies with Zephyr. Makes versioning easy, but could bloat the CLI as more are added.

This same kind of decision will need to be made for how to handle different graders. The same solution should probably be used in both places.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions