[BE] Remove the UNSTABLE markers from the CBE APIs

オープン 初心者向け
#922 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
2/5
見積もり時間
1〜3時間
初心者へのやさしさ
68/100
issue の種類
ドキュメント
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
python
領域
api

調査の方向性

コンピテンシー基準機能の作業が完了したら、openedx-core と openedx-platform で CBE コードの UNSTABLE マーカーを検索します。openedx-core では、まず src/openedx_learning/applets/cbe/api.py、src/openedx_learning/applets/cbe/rest_api/v1/serializers.py、src/openedx_learning/applets/cbe/rest_api/v1/views.py を確認し、新しいマーカーが追加されている場合に備えて openedx-platform も検索してください。マーカーの段落だけを削除し、各 docstring 全体を維持して、CBE マーカーが残っていないことと、既存のテストが変更なしで通ることを確認します。

索引モデルが issue の本文から書いたものです。

説明

User Story

As a developer of openedx-platform or a community plugin, I want the CBE APIs in openedx-core and openedx-platform to carry no UNSTABLE marker once the competency criteria work is complete, in order to rely on them as stable contracts that change only through the DEPR process.

Description

openedx-core's README states the convention: an API marked UNSTABLE may change at any time, and every other API is stable, with breaking changes announced through the community DEPR process. While the competency criteria work was in progress, the CBE applet's public functions, REST serializers, and REST views were marked UNSTABLE. Once the last feature PR of this epic merges, this code is complete for the release, and this ticket removes their markers so the functions read as the stable contracts they now are.

The definition of done is that no UNSTABLE marker of any CBE code remains anywhere in openedx-core or openedx-platform, found by searching the code at implementation time. The counts and locations in Technical Details are what a search found on the day this ticket was written. They are a starting point, not an inventory: a marker that was missed that day, or added after it, is in scope all the same.

Context

  • This ticket runs after the last feature PR of this epic merges. Removing a marker commits the function to DEPR for any later breaking change, so it is the last change before release.
  • #SP10-TBD confirms that there are still no UNSTABLE markers once the Student Progress work completes.

Acceptance Criteria

There is no manual QA path. Acceptance is determined by a PR reviewer verifying the following against the code:

  • Searching openedx-core and openedx-platform for UNSTABLE finds no marker on any CBE code: nothing under src/openedx_learning/applets/cbe/ in openedx-core, its REST API included, and nothing in the CBE code openedx-platform holds. Markers not listed in Technical Details count the same as the ones that are.
  • Every docstring that held a marker still reads as a complete contract description without it: no dangling "so its shape may change" clause and no empty paragraph.
  • No behavior changes: each PR touches docstrings and comments only, and the existing tests pass unchanged.
Technical Details

This is a suggested approach, not the source of truth. The User Story, Description, and Acceptance Criteria define what must be true when the work is done.

Approach

  1. Run a repo-wide search for UNSTABLE in openedx-core over src/, docs/, and README.rst, and in openedx-platform over the CBE code it holds. The search result at implementation time is the inventory.
  2. Delete the UNSTABLE paragraph from each docstring the search finds on CBE code. Leave the rest of each docstring as it is.
  3. Re-read each edited docstring once, so the sentence before the removed paragraph still ends the thought.
  4. One PR per repo. The openedx-platform PR exists only if the search there finds a marker.

Starting point, from a search of upstream main in openedx-core and upstream master in openedx-platform on 2026-10-31:

Repo Markers Files
openedx-core 17 src/openedx_learning/applets/cbe/api.py (12), src/openedx_learning/applets/cbe/rest_api/v1/serializers.py (3), src/openedx_learning/applets/cbe/rest_api/v1/views.py (2)
openedx-platform 0 The two UNSTABLE hits in the platform are in code unrelated to CBE and stay.

Additional context

  • The README's one sentence on the convention stays as it is. No file under docs/ mentions the markers, and openedx-core keeps no changelog file, so no documentation changes with this ticket.
  • #SP10-TBD repeats the search once the Student Progress work completes, since that work merges after this ticket and may add entry points with markers of their own.
主要言語
Python
スター
10
フォーク
35
平均マージ
3日 8時間
マージ済み PR(30日)
30

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

openedx/openedx-core のほかの issue

openedx/openedx-core の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。