Read the Docs is a Django-based web application for building, hosting, and serving documentation from version control repositories (GitHub, GitLab, Bitbucket). It supports Sphinx, MkDocs, and other documentation generators, with automated builds triggered by webhooks, versioning (semver, calver, custom), custom domains, subprojects, translations, and a full-text search powered by Elasticsearch. The platform includes a multi-tenant organization system with teams, invitations, and Stripe-based subscriptions for commercial features like concurrent builds and private documentation. Architecturally, it is a monolithic Django application with multiple apps (projects, builds, search, analytics, oauth, embed, proxito, etc.) communicating via Celery task queues for async operations (builds, indexing, email). It exposes REST APIs (v2 and v3) for programmatic access, and serves documentation through a custom proxito middleware that handles domain resolution, caching, redirects, and CDN integration. The codebase demonstrates strong engineering practices with extensive use of mixins, class overrides via SettingsOverrideObject, structured logging with structlog, and a comprehensive test suite. Key features include OAuth-based repository synchronization, automation rules for version management, an embed API for content fragments, file tree diff for pull request previews, audit logging, and spam detection. The system is designed for extensibility, with many components replaceable through Django settings, and relies on external services like AWS S3 for storage, Elasticsearch for search, and Stripe for payments.
This repository serves as the central documentation and community hub for the AboutCode family of open-source projects focused on software composition analysis (SCA). It hosts the documentation, contributing guidelines, release notes, and links to the actual code repositories for tools such as ScanCode Toolkit, VulnerableCode, DejaCode, and others. The repository is structured to build and maintain a static documentation site using Sphinx, integrated with Read the Docs for automated hosting. The codebase primarily consists of documentation source files (reStructuredText), Sphinx configuration, and standard project setup files (Makefile, configure scripts, etc.). It does not contain the functional code of the SCA tools themselves but provides the necessary infrastructure for documentation generation and community engagement. The project emphasizes clear contribution processes, code of conduct, and issue templates to facilitate collaboration. Despite being a documentation repository, it follows good software engineering practices with automated documentation builds, style checking (Doc8), and linting (Ruff) configured via GitHub workflows. The minimal actual code (setup scripts and configuration) is functional and maintainable, though it lacks highly reusable components beyond standard documentation project boilerplate. The repository is actively maintained, as evidenced by recent commits and ongoing workflow executions.
This repository is the content generation and build system for the interactive textbook *Mathematics in Lean*. It is a hybrid project: primarily a set of Python scripts and a Lean 4 project that together produce the textbook in multiple formats (Sphinx RST/HTML/PDF), as well as a separate user repository with exercise stubs and solutions. The core pipeline parses Lean source files annotated with custom directives (`TEXT`, `EXAMPLES`, `SOLUTIONS`) via `scripts/mkdoc.py` to generate textbook prose and Lean exercise files. A Sphinx build then produces the final HTML/PDF documentation. The Lean source files themselves cover mathematics from basic arithmetic to measure theory, heavily leveraging the Mathlib library. The repository includes CI/CD workflows (GitHub Actions), developer environments (Devcontainers, Gitpod), and testing scripts that verify the generated Lean files compile. While not a traditional application, it functions as a specialized toolchain for creating and deploying formal mathematics educational content.