Example Origins
Example origins are small assignment repositories that show how authored source files and Divekit configuration work together. Use this guide to choose a starting point, inspect the repository it generates, and identify which parts you must adapt before a real course rollout.
The source repositories live in the public Divekit example origins group. They are not copied into this documentation site.
Choose an example
| Example | Best for | Demonstrates |
|---|---|---|
| Vehicle Workshop Origin | Learning the smallest useful Divekit workflow | One individualization axis, local validation, and a work-repository distribution |
| Shape and Color Origin | Comparing your result after the beginner course’s final exercise | Two independent individualization axes and consistent replacement in one file |
| Example Shop Origin | Exploring a more complete Maven assignment | Multiple related individualizations, work and eval repositories, an Evaluation Pipeline, tests, and plugin configuration |
Start with Vehicle Workshop when you want to understand the files in an origin repo and the effect of one placeholder. Use Shape and Color after completing the beginner course exercise and before moving to Example Shop’s paired work and eval setup.
Example Shop Origin
Example Shop is an available Maven assignment with several related variation values. A distribution changes Java package names, class names, documentation, and REST paths while keeping those choices consistent within each generated repository.
The example also contains:
- a
demodistribution with the Evaluation Pipeline enabled - separate authored files for work and eval repositories
- work-to-eval materialization with a
submission_copy_to_evalmarker and an explicitsrc/mainoverwrite rule - test and solution material excluded from the student-facing work repository
- PMD and Surefire plugin configuration
A successful distribution produces one individualized work repository and one linked eval repository for each configured group. Use this example to study a realistic repository layout, not as a ready-to-run course configuration. Its GitLab group, member input, permissions, and plugin pins need to be reviewed for your environment.
The source tree demonstrates both materialization forms. The submission_copy_to_eval marker removes its suffix in the generated work repository and merges newly added submission files into eval during setup while preserving existing eval files. The authored .divekit/eval-pipeline/materialization.json replaces the eval repository’s src/main directory with the current work version. See Work-To-Eval Materialization before adapting either rule.
Verified compatibility
The
pinned source snapshot at commit 93108ff
was verified with Divekit CLI v2.45.0 on 2026-08-18. divekit dev reported no
unresolved or invalid tokens, and a local distribution with one synthetic
group created paired work and eval repositories with the expected copy and
overwrite materialization rules. The project has
no release tag yet, so use that immutable commit rather than its
default branch
for the verified example.
Vehicle Workshop Origin
Vehicle Workshop turns the guided example from the Divekit CLI beginner course into a self-contained origin repo.
The example has deliberately narrow scope:
- one source placeholder,
$Vehicle$ - three possible values:
Car,Bike, andPlane - one distribution and one work repository per configured group
- enough configuration to demonstrate initialization, individualization, local validation, and a first distribution
- synthetic member identifiers only
The source was verified with Divekit CLI v2.44.0 on 2026-08-13. divekit dev
reported no unresolved or invalid tokens, and a local distribution with two
synthetic groups created two individualized work repositories.
Shape and Color Origin
Shape and Color is the completed reference for the beginner course’s final mini project. It is intended for comparison after the exercise, not as a replacement for completing it.
It adds one concept to Vehicle Workshop:
$Shape$and$Color$are selected independently- each axis offers three possible values
- both selections appear consistently in the Java file name, class name, and label
- the
WS1distribution produces one work repository per configured group
The source was verified with Divekit CLI v2.44.0 on 2026-08-13. The compatibility
check covers a clean divekit dev scan and a two-repository local distribution.
Adapt an example safely
An example origin demonstrates structure and behavior. It does not provide production settings for your GitLab instance.
Before using one for a course:
Select a tagged release or immutable source snapshot with a compatibility record.
Review the distribution config and replace its host, target group, repository naming, and permissions with values for your environment.
Keep real member input outside the origin repo. Public examples must contain synthetic identifiers only.
Run
divekit devand inspect all reported placeholders.Generate a local distribution before making remote changes:
divekit distribute -d <distribution> --provider localInspect the generated repositories, then read the distribution plan before approving a real rollout.
For the complete commands and generated state, see Distribution. For individualization concepts and validation, see Individualization.