provisioning/tools/README.md

156 lines
3.8 KiB
Markdown
Raw Normal View History

2025-10-07 11:12:02 +01:00
# Development Tools
Development and distribution tooling for provisioning.
## Tool Categories
### Build Tools (`build/`)
2025-10-07 11:12:02 +01:00
Build automation and compilation tools:
2025-10-07 11:12:02 +01:00
- Nushell script validation
- KCL schema compilation
- Dependency management
- Asset bundling
**Future Features**:
2025-10-07 11:12:02 +01:00
- Automated testing pipelines
- Code quality checks
- Performance benchmarking
### Package Tools (`package/`)
2025-10-07 11:12:02 +01:00
Packaging utilities for distribution:
2025-10-07 11:12:02 +01:00
- Standalone executables
- Container images
- System packages (deb, rpm, etc.)
- Archive creation
**Future Features**:
2025-10-07 11:12:02 +01:00
- Multi-platform builds
- Dependency bundling
- Signature verification
### Release Tools (`release/`)
2025-10-07 11:12:02 +01:00
Release management automation:
2025-10-07 11:12:02 +01:00
- Version bumping
- Changelog generation
- Git tag management
- Release notes creation
**Future Features**:
2025-10-07 11:12:02 +01:00
- Automated GitHub releases
- Asset uploads
- Release validation
### Distribution Tools (`distribution/`)
2025-10-07 11:12:02 +01:00
Distribution generators and deployment:
2025-10-07 11:12:02 +01:00
- Installation scripts
- Configuration templates
- Update mechanisms
- Registry management
**Future Features**:
2025-10-07 11:12:02 +01:00
- Package repositories
- Update servers
- Telemetry collection
## Tool Architecture
### Script-Based Tools
2025-10-07 11:12:02 +01:00
Most tools are implemented as Nushell scripts for consistency with the main system:
2025-10-07 11:12:02 +01:00
- Easy integration with existing codebase
- Consistent configuration handling
- Native data structure support
### Build Pipeline Integration
2025-10-07 11:12:02 +01:00
Tools integrate with common CI/CD systems:
2025-10-07 11:12:02 +01:00
- GitHub Actions
- GitLab CI
- Jenkins
- Custom automation
### Configuration Management
2025-10-07 11:12:02 +01:00
Tools use the same configuration system as the main application:
2025-10-07 11:12:02 +01:00
- Unified settings
- Environment-specific overrides
- Secret management integration
## Usage Examples
```nushell
# 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
2026-01-12 04:43:06 +00:00
```
## Directory Structure
```plaintext
provisioning/tools/
├── README.md # This file
├── build/ # Core build tools (Rust + Nushell)
│ ├── README.md
│ ├── compile-platform.nu # Compile Rust binaries
│ ├── bundle-core.nu # Bundle Nushell libraries
│ └── check-system.nu # Validate build environment
├── dist/ # Build output directory (generated)
│ ├── README.md
│ ├── core/ # Nushell bundles
│ ├── platform/ # Compiled binaries
│ └── config/ # Configuration files
├── distribution/ # Distribution generation
│ ├── README.md
│ └── generate-distribution.nu # Create installable packages
├── package/ # Package outputs (generated)
│ └── README.md
├── release/ # Release management (generated)
│ └── README.md
├── scripts/ # Utility and setup scripts
│ ├── *.nu files # Nushell utilities
│ └── *.sh files # Shell scripts
└── [Other utility scripts] # Standalone tools
2026-01-12 04:43:06 +00:00
```
See individual README.md files in each subdirectory for detailed information.
2025-10-07 11:12:02 +01:00
## 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:
2025-10-07 11:12:02 +01:00
- Main provisioning system
- Extension system
- Configuration management
- Documentation generation
- CI/CD pipelines (GitHub Actions, GitLab CI, Jenkins)