Level 8 / Project 12 - Release Readiness Evaluator¶
Home: README
Learn Your Way¶
| Read | Build | Watch | Test | Review | Visualize | Try |
|---|---|---|---|---|---|---|
| — | This project | — | — | Flashcards | — | — |
Focus¶
- Weighted scoring with configurable criteria and weights
- Strategy pattern for pluggable evaluation functions
- Three-tier readiness: GO, CONDITIONAL, NO_GO
- Required criteria that force NO_GO regardless of score
- Structured reporting with per-criterion pass/fail detail
Why this project exists¶
Shipping software requires checking many gates: test coverage, linting, security scans, documentation, and changelog entries. A manual checklist is error-prone and slows down releases. This project builds a configurable readiness evaluator that scores a release candidate against weighted criteria and produces a go/no-go decision — the same pattern used in CI/CD release gates at companies like Google, GitHub, and Spotify.
Run (copy/paste)¶
Expected terminal output¶
Expected artifacts¶
- Console JSON output with readiness evaluation
- Passing tests
- Updated
notes.md
Alter it (required)¶
- Add a
documentation_criterionfactory that checks if README/CHANGELOG are updated. - Change the
EvaluatorConfigthresholds to be configurable via CLI flags. - Add a
--verboseflag that prints each criterion's score and pass/fail status.
Break it (required)¶
- Add a criterion with
weight=0— does the weighted score calculation handle it? - Set
go_thresholdlower thanconditional_threshold— what readiness level results? - Pass no criteria at all — does
evaluate()return a valid report?
Fix it (required)¶
- Validate that
go_threshold >= conditional_thresholdinEvaluatorConfig. - Add a guard for
total_weight == 0to avoid division by zero. - Add a test for overlapping threshold values.
Explain it (teach-back)¶
- How does weighted scoring differ from simple pass/fail gating?
- Why are some criteria marked
required=True— what does that override? - What is the difference between GO, CONDITIONAL, and NO_GO readiness levels?
- How do real CI/CD pipelines implement release gates similar to this evaluator?
Mastery check¶
You can move on when you can: - explain weighted scoring and how criterion weights affect the overall score, - add a new criterion factory end-to-end (definition + evaluation + test), - describe the three readiness levels and when CONDITIONAL is appropriate, - design a release gate for a real project with appropriate criteria and weights.
Related Concepts¶
| ← Prev | Home | Next → |
|---|---|---|