Fix pre-existing PII annotation debt and add pii_check to CI
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 68/100
調査の方向性
Start with .annotation_safe_list.yml, the model files under src/, and .github/workflows/ci.yml; run tox -e pii_check to reproduce the duplicate and uncovered-model failures. Review each listed model's data and add exactly one accurate annotation, remove the two redundant safelist entries, add pii_check to the CI matrix, and confirm the check passes with 100% coverage.
索引モデルが issue の本文から書いたものです。
説明
Background
make pii_check runs code_annotations against every Django model in openedx-core's own
tree and requires each one to carry a .. no_pii: (or .. pii:) annotation, either inline in
the model's docstring or as an entry in .annotation_safe_list.yml. tox.ini's envlist
already includes a pii_check environment, but .github/workflows/ci.yml's test matrix lists
toxenv: ["django52", "package", "quality", "docs"], which does not include it. CI never runs
pii_check, so nothing currently blocks a merge that breaks it, and two problems have
accumulated on main as a result, confirmed by running tox -e pii_check directly:
Two models are double-covered, which is a lint error, not a coverage gap.
openedx_content.Draft and openedx_content.PublishableEntityVersion each carry an inline
.. no_pii: annotation in their own docstring (src/openedx_content/applets/publishing/models/draft_log.py
and .../models/publishable_entity.py), and each also has a now-redundant entry in
.annotation_safe_list.yml. code_annotations treats a model with both as annotated twice and
fails with a lint error rather than a coverage number:
openedx_content.Draft is annotated, but also in the safelist.
openedx_content.PublishableEntityVersion is annotated, but also in the safelist.
Twenty models are uncovered, confirmed by removing those two stale safelist entries and
re-running tox -e pii_check: 67 models total, 47 annotated, 20 uncovered, 70.1% coverage
against a 100% target. The twenty:
- Seven
oel_*backcompat shim models:oel_collections.Collection,oel_components.Component,
oel_publishing.Container,oel_publishing.DraftChangeLog,oel_publishing.DraftChangeLogRecord,
oel_publishing.LearningPackage,oel_publishing.PublishableEntity - Two
openedx_catalogmodels:CatalogCourse,CourseRun - Three
openedx_contentmodels:ComponentVersionMedia,ContainerType,Media - Two models from the installed
edx-organizationspackage:organizations.HistoricalOrganization,
organizations.HistoricalOrganizationCourse - Six test-only models in
test_django_app:ContainerContainer,ContainerContainerVersion,
TestContainer,TestContainerVersion,TestEntity,TestEntityVersion
None of these twenty are models that #613 (the CBE competency models) adds, and none of #613's
own PRs touch them. This debt predates #613 and is unrelated to it.
What to do
- Remove the
openedx_content.Draftandopenedx_content.PublishableEntityVersionentries
from.annotation_safe_list.yml; both are already covered by their own inline annotation. - Annotate each of the twenty uncovered models above as
.. no_pii:or.. pii:, whichever is
accurate, either inline in the model's own docstring (for a model defined in this repo's
src/) or in.annotation_safe_list.yml(for a model defined in an installed package, such
as the twoorganizations.Historical*models). - Add
pii_checkto thetoxenvlist in.github/workflows/ci.yml's test matrix, so a future
PR that breaks PII coverage or introduces a double-covered model fails CI instead of only
failing silently for whoever happens to runmake pii_checklocally.
Acceptance criteria
-
tox -e pii_checkpasses locally with no lint error and 100% coverage. -
.github/workflows/ci.yml's test matrix includespii_checkintoxenv, and the CI run
on the pull request shows apii_checkjob that passes. - No model's annotation is both inline and in the safelist at once.
- Every one of the twenty models listed above carries exactly one annotation, inline or in
the safelist, accurately describing whether it stores personal data.
Out of scope
Anything in #613, #641, or #642: the CBE competency models, their own PII annotations, and the
openedx-platform safelist entries for them. This issue is unrelated to that work and does not
block or get blocked by it.
- 主要言語
- Python
- スター
- 10
- フォーク
- 33
- 平均マージ
- 2日 11時間
- マージ済み PR(30日)
- 22
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
openedx/openedx-core のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
openedx/openedx-core#831 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
openedx/openedx-core#827 ·
メンテナーはふだん 1 日以内に返信
-
難易度 3/5 1〜2日 初心者へのやさしさ 76/100
openedx/openedx-core#898 ·
メンテナーはふだん 1 日以内に返信
-
難易度 5/5 1週間以上 初心者へのやさしさ 20/100
openedx/openedx-core#895 ·
メンテナーはふだん 1 日以内に返信
-
openedx/openedx-core#894 ·
メンテナーはふだん 1 日以内に返信
openedx/openedx-core の issue をすべて見る
似ている issue
-
style: article/section 📝 system: cloud.rc ☁️ system: security 🔐
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
uabrc/uabrc.github.io#1262 ·
-
documentation
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
NCAR/miles-credit#526 ·
-
documentation
難易度 1/5 1〜3時間 初心者へのやさしさ 76/100
conda/conda-lock#957 ·
メンテナーはふだん 1 日以内に返信
-
Type: Bug
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
aws-samples/sample-per-model-bedrock#464 ·
メンテナーはふだん 1 日以内に返信