provisioning/tools/README.md
2025-10-07 11:12:02 +01:00

2.2 KiB

Development Tools

Development and distribution tooling for provisioning.

Tool Categories

Build Tools (build/)

Build automation and compilation tools:

  • Nushell script validation
  • KCL schema compilation
  • Dependency management
  • Asset bundling

Future Features:

  • Automated testing pipelines
  • Code quality checks
  • Performance benchmarking

Package Tools (package/)

Packaging utilities for distribution:

  • Standalone executables
  • Container images
  • System packages (deb, rpm, etc.)
  • Archive creation

Future Features:

  • Multi-platform builds
  • Dependency bundling
  • Signature verification

Release Tools (release/)

Release management automation:

  • Version bumping
  • Changelog generation
  • Git tag management
  • Release notes creation

Future Features:

  • Automated GitHub releases
  • Asset uploads
  • Release validation

Distribution Tools (distribution/)

Distribution generators and deployment:

  • Installation scripts
  • Configuration templates
  • Update mechanisms
  • Registry management

Future Features:

  • Package repositories
  • Update servers
  • Telemetry collection

Tool Architecture

Script-Based Tools

Most tools are implemented as Nushell scripts for consistency with the main system:

  • Easy integration with existing codebase
  • Consistent configuration handling
  • Native data structure support

Build Pipeline Integration

Tools integrate with common CI/CD systems:

  • GitHub Actions
  • GitLab CI
  • Jenkins
  • Custom automation

Configuration Management

Tools use the same configuration system as the main application:

  • Unified settings
  • Environment-specific overrides
  • Secret management integration

Usage Examples

# Build the complete system
./tools/build/build-all.nu

# Package for distribution
./tools/package/create-standalone.nu --target linux

# Create a release
./tools/release/prepare-release.nu --version 4.0.0

# Generate distribution assets
./tools/distribution/generate-installer.nu --platform macos

Development Setup

  1. Ensure all dependencies are installed
  2. Configure build environment
  3. Run initial setup scripts
  4. Validate tool functionality

Integration

These tools integrate with:

  • Main provisioning system
  • Extension system
  • Configuration management
  • Documentation generation