internal

package
v0.0.0-...-5b20b62 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 20, 2025 License: EUPL-1.2 Imports: 0 Imported by: 0

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL