openedx / openedx/openedx-platform

Enforcement for ADR 14

Open
#31,865 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
8.2k
Forks
4.4k
Avg merge
6d 18h
Merged PRs (30d)
42

Description

ADR 14 is a decision to require justification for the addition of any new app to edx-platform. However, it has proven difficult to socialize this decision well enough that people abide by it; usually they find out once it's in production and Arch-BOM comes asking about it (having learned of the app via instrumentation). We could have those discussions much sooner if we add GitHub Actions to check for new apps.

Acceptance criteria:

  • GitHub Action that fails if a new Django app is added that does not contain an ADR (details in OEP-49 shortly)
    • Trigger on PRs
    • Detect whether new directories have been added under the known Django apps directories, and check them
  • GitHub Action failure has an informative message that points to the ADR (use a job summary)
  • Optional: Consider making a reusable action that can be pointed at any directory and that checks as much of OEP-49 as possible; then use that from edx-platform

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading ADR 14 and OEP-49, then inspect the repository's existing GitHub Actions workflows and identify the known Django app directories referenced by the issue. Done means PRs detect newly added app directories, require an ADR, and produce a job summary linking to ADR 14; the reusable-action option is explicitly optional.

Written by the indexing model from the issue text.

Assessment

Tech stack
django, github-actions, python
Domain
backend, ci-cd
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.