Repo Overview¶
This document is a quick orientation to the Cinder repository layout. It is a map, not a substitute for the focused contributor documents linked from each section.
Root files and directories¶
HACKING.rstCinder coding style rules and Cinder-specific hacking check descriptions.
AGENTS.mdAgent routing index and policy.
.tmp/Gitignored local scratch directory for notes, plans, and ephemeral output.
tox.iniMain local test, lint, docs, release-note, and generated-file command entry point.
pyproject.tomlBuild system and static package metadata managed with
pbr..pre-commit-config.yamlLinting hooks used by
tox -e pep8.requirements.txt/test-requirements.txt/doc/requirements.txtRuntime, test, and documentation dependencies. See Dependencies.
bindep.txtBinary and operating-system package dependencies used by jobs.
api-ref/Block Storage API reference source.
doc/Cinder documentation source, including this contributor guide.
releasenotes/Reno release notes and release note documentation.
tools/Developer, validation, migration, and generated-file helper scripts.
etc/Example service configuration files and policy data.
playbooks/,roles/Ansible content used by jobs and project automation.
Service code¶
cinder/api/REST API implementation, request validation, policy enforcement, and API microversion handling. See API Microversions for API contract changes.
cinder/volume/Volume service manager, TaskFlow flows, driver interface code, and storage backend drivers. See Drivers and New Driver Review Checklist before changing driver behavior.
cinder/scheduler/Scheduling service, backend selection logic, filters, and weighers.
cinder/backup/Backup service code and backup target drivers.
cinder/db/Database API and migrations. See Database migrations and Upgrades before changing schema, data migrations, or upgrade compatibility behavior.
cinder/objects/Versioned objects used for RPC and upgrade compatibility. See Upgrades before changing object versions or RPC payloads.
cinder/policies/Policy definitions for API authorization.
cinder/cmd/Console script entry points for Cinder services and management commands.
cinder/common/Shared helpers used across services.
Tests¶
cinder/tests/unit/Unit tests. The default tox test environment runs these tests through stestr.
cinder/tests/functional/Functional tests for broader in-repository workflows.
cinder/tests/compliance/Compliance tests for driver and API behavior.
cinder/tests/hacking/Cinder-specific hacking checks used by lint jobs.
See Testing for test environment setup and invocation details.