feat: add community contribution folder - #37
Merged
Conversation
…scan, utf-8, escape table pipes Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Rename community/scripts -> community/_ci (maintainer/CI-only tooling; no longer collides with the top-level scripts/ bucket or invites contributors in) - Drop the contributor "regenerate the index" step from community/CONTRIBUTING.md - Remove the index-freshness gate from community-check.yml (PR gate is now just entry validation) - Add community-index.yml: regenerate community/README.md from meta.yaml on merge to main and commit it back if changed (path-excludes README.md to avoid re-trigger); build_index parses YAML only, never runs contributor code - Update RESERVED_DIRS and all path references Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #17.
What this adds
A new top-level
community/folder where the open-source community can showcase what they build with Opik — kept deliberately separate from the maintainer-verified buckets (integrations/,guides/,use-cases/,scripts/) so nothing here reads as verified reference material.Model (hybrid, showcase-first):
meta.yaml+README.mdwriteup +opik-proof.png— linking out to the contributor's own repo/blog/Colab.hosted: true), featured for the community forums.Every entry must prove genuine Opik usage (Comet cloud or self-hosted OSS), and human PR review is the gate for both listing and promotion.
How it works
community/templates/entry-template/tocommunity/<author>_<project>/, fill inmeta.yaml+README.md, drop inopik-proof.png, and open a PR.community/_ci/check_entry.py, wired as thecommunity-check.ymlhard gate oncommunity/**PRs). It never runs contributor code — it only validates statically:meta.yamlrequired fields + ≥1 link + validopik_platformTODO) — the anti-slop coreopik-proof.pngcommitted and referencedimport opik/@opik.track/ …).env/ hardcoded keys (incl.sk-,sk-proj-,sk-svcacct-)<author>_<project>community-index.ymlrunsbuild_index.pyon push tomainand commits the refreshedcommunity/README.mdback if it changed — no contributor or maintainer runs it by hand. (build_indexparses YAML only; it never executes contributor code.)community/is excluded from the verified-bucket CI (compliance/pr-test/test-notebooks/scheduledare all path-scoped and never matchcommunity/**) — so contributors aren't bound by the strictrun.sh/dry-run/litellm contract, and can use advanced models that maintainers review and run locally.community/_ci/(named so it clearly isn't community content and doesn't collide with the top-levelscripts/bucket). A relaxedcommunity/CONTRIBUTING.mdcarries the light contract; the root README gains a Community section and root CONTRIBUTING points to it..gitignoreun-ignorescommunity/**/*.png(the repo's global*.pngwould otherwise silently drop proof screenshots).Testing
community/_ci),ruff check/formatclean.Review notes
Each commit was reviewed independently, plus a whole-branch review and a focused review of the hardening commit. Findings applied:
discover_entriesflags a contributor folder missingmeta.yaml(previously it could slip the no-arg CI run); broadened secret scan to modern OpenAI key formats; escaped|in generated table cells.encoding="utf-8"on all contributor-file reads (so non-ASCII READMEs/meta don't crash the gate on a non-UTF-8 runner).Remaining known items are intentional lightweight-heuristic choices (substring placeholder matching; the secret scan as a best-effort scan with human review as the backstop).
Notes for reviewers
community/folder ships with no entries (empty-state index) — this PR is the contribution infrastructure, not content.community-index.yml's push-back tomain(commit-if-changed + the!community/README.mdloop-guard) can't be fully exercised locally; the first real entry merge is where it fires end-to-end.🤖 Generated with Claude Code