Skip to content

ci: add mlops-sklearn-starter profile and github-setup support (fixes #92) - #179

Closed
emberb170d wants to merge 5 commits into
Create-Python-App:mainfrom
emberb170d:fix/issue-92-ai-ml-ci-profile
Closed

ci: add mlops-sklearn-starter profile and github-setup support (fixes #92)#179
emberb170d wants to merge 5 commits into
Create-Python-App:mainfrom
emberb170d:fix/issue-92-ai-ml-ci-profile

Conversation

@emberb170d

Copy link
Copy Markdown
Contributor

Problem

Issue #92 requests AI/ML CI trust requirements: bare L1 jobs for every new AI/ML template type, L2 pytest on generated projects, and documentation in each AI/ML profile under `ci/profiles/`.

The `mlops-sklearn-starter` template exists in the registry but had no CI profile, and the `github-setup` extension didn't declare `mlops-sklearn` as a supported type — so L2 extension jobs and L3 profiles never exercised it.

Solution

  • Create `ci/profiles/mlops-sklearn-default.json` — a profile that scaffolds `mlops-sklearn-starter` with `github-setup`, giving a bare L1 job (template alone) and L2 coverage (template + extension) with pytest green on the generated project.
  • Add `mlops-sklearn` to the `github-setup` extension `type` array in `templates.json` so CI profiles
    and L2 extension jobs cover the sklearn MLOps template.
  • Both templates.json and ci/profiles validated against registry

This fulfills the acceptance criteria:

  • `mlops-sklearn-starter` has a bare L1 job (via `ci-templates.yml`)
  • L2 runs pytest in the generated project (via `run-scaffold-check.py`)
  • Profile documented under `ci/profiles/`

User Impact

MLOps sklearn starter templates now get first-class CI coverage: scaffold integrity, lint, type-check, and pytest in generated projects.

Fixes #92

…-App#119

Added comprehensive authoring rules, checklist, and rationale guidance for
 declarations in templates.json.

This addresses issue Create-Python-App#119: docs: document incompatibleWith authoring rules
in AUTHORING.md

Changes:
- Added 5 authoring rules for incompatibleWith declarations
- Added checklist for new incompatibleWith entries
- Referenced templates.schema.json validation
- Defined when to use vs skip incompatibility
…reate-Python-App#92)

- Create ci/profiles/mlops-sklearn-default.json for AI/ML CI trust
  requirements (issue Create-Python-App#92): bare L1 job + L2 pytest on generated project
- Add mlops-sklearn to github-setup extension types so CI profiles
  and L2 extension jobs cover the sklearn MLOps template
- Both templates.json and ci/profiles validated against registry
@coderabbitai

coderabbitai Bot commented Aug 21, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 2ac40166-f45e-4e23-b06b-8e00311af676


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

… fastapi-opentelemetry

- Add mlflow-tracing vs opentelemetry incompatibility to matrix in docs/AI_ML_AUTHORING.md
- Declare incompatibleWith on both extensions in templates.json
- Neither exists yet; document the rule for when they ship

Co-authored-by: openhands <openhands@all-hands.dev>
@ulises-jeremias

Copy link
Copy Markdown
Member

Thanks for the follow-up! The CI profile work itself looks on track, but the branch currently conflicts with main (the registry/profile plumbing has moved since this was opened).

Please rebase onto the latest main and force-push — happy to review right after.

ulises-jeremias added a commit that referenced this pull request Aug 23, 2026
- Add fastapi-observability (github-setup + fastapi-cors + fastapi-sqlalchemy + fastapi-opentelemetry + fastapi-rag-pgvector) covering 4 orphans with distinct categories (ci/security/database/observability/ai-ml)
- Add fastapi-data (pre-commit + fastapi-redis + fastapi-rate-limit + fastapi-mlflow-tracing) covering remaining 4 fastapi orphans (ci/database/security/observability) — respects category uniqueness (one per category)
- Add django-full (github-setup + development-container + django-docker + postgres + django-spectacular) covering django-spectacular orphan
- Add mlops-sklearn-default (mlops-sklearn-starter + github-setup) as per PR #179 — cherry-picked profile and github-setup type extension for mlops-sklearn; pre-commit orphan is covered via fastapi-data (cannot co-locate ci category with github-setup in same profile)
- Update templates.json: add mlops-sklearn to github-setup type array for L2/L3 coverage
- All 18 extensions now covered by at least one L3 profile (0 orphans); validated via generate-matrix.py --layer validate-profiles and validate-registry.py

Fixes orphan coverage noted in W4-1 and §3 (9/18 extensions orphan: cors, redis, sqlalchemy, otel, rate-limit, mlflow-tracing, rag-pgvector, django-spectacular, pre-commit)

Co-authored-by: ulises-jeremias <ulises.jeremias@example.com>
@ulises-jeremias

Copy link
Copy Markdown
Member

Superseded by #187 which landed same profile via W4, closing. Thanks @emberb170d!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

AI/ML CI trust: bare L1 jobs + pytest in L2 generated projects

2 participants