Documentation
¶
Overview ¶
Package internal contains the private application code for gommitlint. This package follows functional hexagonal architecture principles with pure functions, value semantics, and explicit dependencies.
Structure ¶
The internal package is organized into the following sub-packages:
- domain: Core business logic and entities (the hexagon center)
- adapters: External integrations (hexagon edges)
- integrationtest: End-to-end integration tests
Functional Hexagonal Architecture ¶
This package implements functional hexagonal architecture where:
- Domain logic uses pure functions with no external dependencies
- All dependencies are passed as explicit function parameters
- Adapters implement domain interfaces using value semantics
- Configuration flows through explicit parameters, never context
- No service objects or dependency injection frameworks
Core Principles ¶
- Pure Functions: Validation logic is implemented as pure functions
- Value Semantics: All data structures use value semantics for immutability
- Explicit Dependencies: Dependencies passed as parameters, never hidden
- Simple Composition: Complex operations built from simple function composition
For detailed architecture documentation, see docs/ARCHITECTURE.md
Directories
¶
| Path | Synopsis |
|---|---|
|
Package adapters contains the infrastructure adapters that implement domain interfaces.
|
Package adapters contains the infrastructure adapters that implement domain interfaces. |
|
cli
Package cli provides the command-line interface adapter for gommitlint.
|
Package cli provides the command-line interface adapter for gommitlint. |
|
config
Package config provides configuration loading and parsing adapters.
|
Package config provides configuration loading and parsing adapters. |
|
git
Package git provides Git repository adapters for gommitlint.
|
Package git provides Git repository adapters for gommitlint. |
|
logging
Package logging provides a simple logging adapter for gommitlint.
|
Package logging provides a simple logging adapter for gommitlint. |
|
output
Package output provides output formatting adapters for gommitlint.
|
Package output provides output formatting adapters for gommitlint. |
|
signing
Package signing provides cryptographic signature verification adapters.
|
Package signing provides cryptographic signature verification adapters. |
|
Package domain contains the core domain entities and interfaces.
|
Package domain contains the core domain entities and interfaces. |
|
config
Package config provides pure configuration types and defaults for gommitlint.
|
Package config provides pure configuration types and defaults for gommitlint. |
|
rules
SPDX-FileCopyrightText: 2025 itiquette/gommitlint <https://github.com/itiquette/gommitlint>
|
SPDX-FileCopyrightText: 2025 itiquette/gommitlint <https://github.com/itiquette/gommitlint> |
|
Package integrationtest contains end-to-end integration tests for gommitlint workflows.
|
Package integrationtest contains end-to-end integration tests for gommitlint workflows. |
Click to show internal directories.
Click to hide internal directories.