# darna — full documentation Source: https://github.com/darccio/darna/tree/d32f5c364a586e00729d3730cede0660ec311a8d/docs License: Apache-2.0 (https://dario.cat/darna/LICENSE.txt). Each section identifies its Markdown URL for resolving relative links. --- Source: https://dario.cat/darna/index.md # darna Darna checks whether staged Go files form an atomic commit: every referenced symbol must be defined in the staged changeset or in already-committed code. It reports dependencies on unstaged or untracked files before they break a commit. ## Install ```sh go install dario.cat/darna/cmd/darna@latest ``` Darna requires Go 1.24 or newer and `git` on `PATH`. ## Validate a commit Stage the files that belong together, then run: ```sh darna ``` An exit code of zero means the staged changes are atomic. An exit code of one reports missing dependencies. To find the next independent file and its direct dependants before staging, run: ```sh darna --committable --dependants ``` For partial staging, Darna reads the indexed file contents so the analysis reflects the changes that will be committed. ## More information - [Full CLI documentation](https://github.com/darccio/darna#usage) - [Source repository](https://github.com/darccio/darna) - [Architecture decisions](https://github.com/darccio/darna/tree/main/docs/decisions) - [Report a bug](https://github.com/darccio/darna/issues) - [Sponsor maintenance](https://github.com/sponsors/darccio) ## License Darna and these docs are distributed under the [Apache License 2.0](LICENSE.txt).