mirror of
https://github.com/semantica-agi/semantica.git
synced 2026-09-03 04:00:18 +00:00
Distribution and trust-signal infrastructure to make pip install semantica
frictionless in downstream CI, and to bring the release pipeline in line
with mature OSS practice.
- .github/actions/setup-semantica: reusable composite action other repos
can call to install + verify semantica in one step
- install-matrix.yml: verifies the published package installs and imports
cleanly across Ubuntu/macOS/Windows x Python 3.9-3.12, weekly and on
release; backs a new README badge
- scorecard.yml: OpenSSF Scorecard analysis, weekly and on push to main,
backing a new README badge
- release.yml: twine check gate before publish, catching a broken PyPI
long-description render before it ships
- CITATION.cff: enables GitHub's native "Cite this repository" button
- examples/ci/: copy-paste GitHub Actions, GitLab CI, and CircleCI
templates for projects adopting semantica
- GROWTH.md: tracked checklist of distribution channels, what's done vs
outstanding, with guardrails against inflating metrics artificially
Fixes folded in along the way:
- Re-pinned softprops/action-gh-release to the immutable v3.0.3 tag
instead of the floating v3, after verify-action-pins.sh caught the
mutable tag had drifted to a newer commit
- setup-semantica now passes extras/version through env vars instead of
interpolating ${{ inputs.* }} directly into the bash script, closing
a script-injection vector for callers deriving these from event data
- install-matrix now triggers on the Release workflow's completion
(workflow_run) instead of release: published, since the GitHub release
is created before the PyPI upload runs and the old trigger could race
the publish
- The workflow_run path derives the expected version from the triggering
tag and passes it into setup-semantica's version input, so pip
installs and verifies the exact release instead of whatever's latest
on PyPI at the time
- setup-semantica's pip caching is now opt-in (default disabled), since
actions/setup-python errors out with cache: 'pip' enabled when the
caller repo has no requirements.txt/pyproject.toml to key on
- examples/ci/github-actions.yml pins actions/checkout and
actions/setup-python to verified commit SHAs instead of mutable tags
- examples/ci templates guard the requirements.txt install step with
-f requirements.txt and call out pyproject.toml/Poetry/Pipenv as
alternatives, since not every project has a requirements.txt
9.2 KiB
9.2 KiB
Growth & Distribution Playbook
North star: 10,000 developers who actually use Semantica in real projects, not a raw PyPI download number. Downloads are a lagging indicator of distribution, not a target to optimize directly.
GitHub stars → Website visitors → PyPI installs → Weekly active users → Production deployments → Enterprise customers
The last two matter far more than the download count.
Guardrails — do not do this
- No fake/looping CI jobs that repeatedly
pip install semanticapurely to inflate the graph. It's detectable, it produces zero real users, and it damages credibility with anyone doing diligence (investors, enterprise buyers, security reviewers). - No package-splitting purely to multiply install counts — only split into
semantica-*packages when there's a real architectural reason. - No meaningless Docker pulls or notebook launches with no real content behind them.
- Every item below should get someone from "installed it" to "used it for something real." If a channel can't do that, it's not worth building.
30-day priority sprint
Ordered by leverage-to-effort ratio; do these first.
| # | Initiative | Target |
|---|---|---|
| 1 | ✅ GitHub Actions example + reusable setup-semantica composite action + install-matrix badge |
done |
| 2 | Google Colab notebooks | 10 |
| 3 | Docker images (RAG, Graph, Agent, API) | 4-5 |
| 4 | Hugging Face Spaces demos | 3-4 |
| 5 | LangChain integration + example | 1 |
| 6 | LlamaIndex integration + example | 1 |
| 7 | Vector/graph DB integrations (Qdrant, Weaviate, Neo4j) | 3 |
| 8 | MCP server + example | 1 (already have mcp/ — package as a distributable example) |
| 9 | Production-quality starter repos (FastAPI, Streamlit, Gradio) | 3 |
| 10 | awesome-rag / awesome-llm / awesome-knowledge-graph list submissions |
3+ PRs |
Push everything through: GitHub → Discord (sV34vps5hH) → X (@BuildSemantica) → GitHub Discussions → Reddit → Hacker News → relevant newsletters.
Full channel checklist
CI/CD (highest-intent distribution — installs tied to real pipelines)
- GitHub Actions example in
examples/ci/github-actions.yml - Reusable composite GitHub Action —
.github/actions/setup-semantica, modeled onactions/setup-python; usable by any repo asuses: semantica-agi/semantica/.github/actions/setup-semantica@main - "pip install" status badge in the README, backed by
.github/workflows/install-matrix.yml— verifies the published package installs cleanly on Ubuntu/macOS/Windows across Python 3.9-3.12, weekly + on every release - GitLab CI template —
examples/ci/gitlab-ci.yml - CircleCI template —
examples/ci/circleci-config.yml - Jenkins, Azure DevOps, Bitbucket Pipelines, Buildkite, Travis CI equivalents
Release pipeline hardening (already had Trusted Publishing/OIDC + SLSA attestation — this rounds it out to match top-tier OSS release practice)
twine checkgate in.github/workflows/release.ymlbefore publish — catches a broken PyPI long-description render before it goes live instead of after (a malformed README on the live PyPI page is a silent conversion killer)CITATION.cff(see Academic & research below)- OpenSSF Scorecard (see Discoverability below)
- Considered and deliberately skipped: Release Drafter / auto-generated changelogs — this repo hand-curates
CHANGELOG.mdwith far more detail (PR numbers, contributors, phase-1 limitations) than a bot would produce. Don't introduce this without checking with maintainers first. - Renovate / Dependabot config templates that auto-bump the
semanticaversion in downstream repos — real recurring CI runs on real adopters - Nightly scheduled workflow template that tests a downstream project against
semantica@latest
Containers & dev environments
- Official Docker images: RAG, Graph, Agent, API,
+Postgres,+Neo4j,+Qdrant docker-composeexamples (repo already hasdocker-compose.dev.yml/docker-compose.ymlas a base).devcontainer/devcontainer.jsonfor one-click "Reopen in Container"- GitHub Codespaces-ready config
- Gitpod config
- "Use this template" GitHub repo button so new projects start with
semanticainrequirements.txt
Notebooks & hosted demos
- 10-20 Google Colab notebooks (Graph RAG, agent memory, entity resolution, semantic search, document intelligence)
- Kaggle Notebooks/Kernels
- Binder / mybinder.org config for instant repo launch
- SageMaker Studio Lab / Databricks Community Edition / Paperspace Gradient examples
- Hugging Face Spaces (Streamlit/Gradio) demos with
semanticainrequirements.txt - Public hosted playground (source on GitHub, install visible)
Framework & data-store integrations
- LangChain integration —
integrations/langchain/(SemanticaRetriever,SemanticaVectorStore,SemanticaKGTool/SemanticaDecisionTool),pip install semantica[langchain], shipped in 0.6.7 - LlamaIndex integration + example
- LangGraph example
- Neo4j integration/example (docs already list it as a supported graph store — turn into a runnable example repo)
- Vector DB examples: Qdrant, Weaviate, Milvus, Pinecone, Chroma, FAISS, pgvector, OpenSearch/Elasticsearch (FAISS/Pinecone/Weaviate/Qdrant/Milvus/PgVector already supported per
docs/community-projects.md— package each as a standalone example) - LLM provider quickstarts: OpenAI, Anthropic, Gemini, Groq, Ollama, HuggingFace, DeepSeek, LiteLLM (already-supported providers per docs — each gets its own copy-paste quickstart)
- CrewAI / Agno integration examples (already documented under
docs/integrations/) — promote as standalone repos, not just docs pages
Package managers & installers
- conda-forge feedstock
- Homebrew formula for the CLI
- Nix/nixpkgs packaging
- Chocolatey / Scoop (Windows)
- Document
uv add semanticaandpoetry add semanticaexplicitly alongsidepip install
Downstream packages & CLI
- Genuinely useful
semantica-*packages only where warranted (e.g.semantica-rag,semantica-connectors) — each pullssemanticaas a real dependency - Make sure
semantica init / ingest / index / query / serveCLI flows are the default onboarding path in every tutorial - VS Code extension wrapping the CLI (scaffold + run commands from the command palette)
- JetBrains plugin equivalent
Templates & starters
- Cookiecutter templates:
cookiecutter-semantic-rag,cookiecutter-ai-agent,cookiecutter-enterprise-rag - Starter repos: FastAPI, Streamlit, Gradio, Next.js frontend + Semantica backend
- Cloud deploy templates: AWS, GCP, Azure, Modal, Railway, Render, Fly.io (repo already has
deploy/azure,deploy/gcp,deploy/fly,deploy/railway,deploy/render,deploy/kubernetes,deploy/helm— link these prominently from the README/quickstart, they're already-built distribution surface) - Terraform / Pulumi / Helm modules published to their respective registries
Discoverability & curation
- Submit to
awesome-rag,awesome-llm,awesome-knowledge-graph,awesome-python - Pitch newsletters with engaged Python/AI audiences (Python Weekly, Import AI, TLDR AI, etc.)
- PyPI trove classifiers/keywords and
project.urls(Homepage/Docs/Repository/Changelog/Bug Tracker) — already complete inpyproject.toml - Get listed on Papers With Code for any retrieval/graph-RAG benchmark work
- OpenSSF Scorecard badge + weekly workflow (
.github/workflows/scorecard.yml) — a concrete trust signal security/procurement teams check before greenlighting adoption, which gates real (non-CI-bot) install growth at enterprises
Academic & research
CITATION.cffat repo root — enables GitHub's native "Cite this repository" button, feeds Google Scholar/academic tooling; complementsdocs/citation.md(still needs a real Zenodo DOI to replace theXXXXXXXplaceholder in both places once one is minted)- arXiv paper if there's real architectural novelty to describe
- Zenodo DOI for citability (
docs/citation.mdalready exists — make sure it points to a real DOI) - Workshop/tutorial sessions at PyData/ODSC-style events with hands-on install steps
- University course material / bootcamp adoption outreach
Content
- Reproducible benchmark repos (Graph RAG vs vector RAG, retrieval@k, enterprise-scale retrieval) with
pip install semantica && python benchmark.py - 20-30 real-world example applications (RAG, enterprise document intelligence, financial entity graphs, code knowledge graphs, research discovery, agent memory)
- Blog/tutorial posts on Dev.to, Medium, personal blogs — always with runnable code, not just prose
- Contribute integrations/PRs to other projects building RAG/agents/knowledge graphs — "I implemented Semantica support" beats "please use Semantica"
Tracking
Don't just watch the raw PyPI number — use download analytics (e.g. PePy) to separate CI/bot traffic from real installs, and track the funnel above end-to-end where possible (stars → site visits → installs → weekly actives).