Fix pre-existing PII annotation debt and add pii_check to CI
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 68/100
Hướng nghiên cứu
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.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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.
- Ngôn ngữ chính
- Python
- Star
- 10
- Fork
- 33
- Merge trung bình
- 2 ngày 18 giờ
- Pull request đã merge (30 ngày)
- 28
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của openedx/openedx-core
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
openedx/openedx-core#831 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
openedx/openedx-core#827 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
discovery
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 15/100
openedx/openedx-core#908 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Follow-up BE] Hide archived tagging records in edx-platform's content_tagging appCó thể đã có người làm @tbain đã nhận 3 ngày trước. Đang mở
openedx/openedx-core#903 · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Follow-up - BE] Block dominance conflicts on taxonomy re-importCó thể đã có người làm @alezconsultant đã nhận 2 ngày trước. Đang mở
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 15/100
openedx/openedx-core#902 · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của openedx/openedx-core
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 67/100
pydot/pydot#601 · 4 bình luận ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
letsencrypt/cp-cps#361 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
-
CI: startup_failure because callers grant fewer permissions than ledger-app-workflows@v1 declaresCó thể đã có người làm @maykonmichel đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
LedgerHQ/app-boilerplate-rust#227 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
linuxmint/mintupdate#1107 ·