Krypton Toolkit Build System and Workflows Documentation
Overview
This document contains comprehensive developer documentation for the Krypton Toolkit build system, workflows, and development processes. The documentation is organized into focused topics, each in its own file.
Documentation Index
1. Build System Overview
Start here for an introduction to the build system.
- Build system architecture and components
- Configuration overview (Stable, Canary, Nightly, Debug, Installer)
- Target frameworks and multi-targeting
- Directory structure
- Build outputs and artifacts
- Prerequisites and requirements
- Common build tasks
2. MSBuild Project Files
Detailed documentation of .proj files.
- Project file structure and patterns
Scripts/Build/build.proj- Stable/Release buildsScripts/Build/canary.proj- Beta pre-releasesScripts/Build/nightly.proj- Alpha nightly buildsdebug.proj- Debug buildsinstaller.proj- Installer packages- Available targets (Clean, Restore, Build, Pack, Push, etc.)
- Archive generation (ZIP, TAR.GZ)
- Custom target execution
3. Build Scripts
Windows command scripts for building and maintenance.
build-stable.cmd- Stable release buildsbuild-canary.cmd- Canary release buildsbuild-nightly.cmd- Nightly release buildsbuildsolution.cmd- Interactive builderpurge.cmd- Clean build artifactspublish.cmd- Publish to NuGet- Visual Studio detection
- Logging and troubleshooting
4. Directory.Build Configuration
MSBuild property and target configuration.
- Root
Directory.Build.props- Global versioning - Component
Directory.Build.props- Component properties - Component
Directory.Build.targets- Component targets - Version calculation by configuration
- Conditional compilation symbols
- Assembly information
- NuGet package metadata
- Property inheritance
5. Version Management
Automated versioning strategy and implementation.
- Version format:
Major.Minor.Build.Revision[-Suffix] - Date-based semantic versioning
- Configuration-specific versioning
- Version properties (Assembly, File, Package)
- Version ordering and SemVer compliance
- Querying version information
- Best practices and troubleshooting
6. NuGet Package Creation and Publishing
Complete guide to NuGet packages.
- Package structure and variants
- Lite vs. full packages
- Configuration-specific packages (Stable, Canary, Nightly)
- Package creation workflow
- Package metadata and dependencies
- Publishing to NuGet.org
- Publishing to GitHub Packages
- Package verification
- Local package testing
- Troubleshooting
7. GitHub Actions CI/CD Workflows
Automated continuous integration and deployment.
build.yml- CI builds for PRs and branchesrelease.yml- Production releases for multiple branchesnightly.yml- Automated nightly builds with change detection- Security features and verification
- Required secrets and variables
- Workflow outputs and notifications
- Troubleshooting CI/CD issues
- Manual workflow execution
8. ModernBuild Tool
Interactive Terminal UI build tool.
- Installation and running
- User interface layout
- Ops Page - Build operations
- NuGet Page - Package publishing
- Controls and keyboard shortcuts
- Build logs and status
- Project file detection
- Troubleshooting ModernBuild
9. Troubleshooting Guide
Solutions to common issues.
- Build system issues
- Compilation errors
- NuGet package issues
- GitHub Actions issues
- Runtime issues
- Performance issues
- Getting help and reporting issues
Quick Start
New to the Project?
- Start with Build System Overview
- Try building with Build Scripts
Building the Toolkit?
- Review Build Scripts
- Understand MSBuild Project Files
- Learn about Version Management
Creating Packages?
- Read NuGet Package Creation and Publishing
- Understand Version Management
- Review Directory.Build Configuration
Setting up CI/CD?
- Study GitHub Actions CI/CD Workflows
- Understand Version Management
- Review NuGet Package Creation and Publishing
Troubleshooting?
- Check Troubleshooting Guide first
- Review relevant topic documentation
- Check GitHub Issues
Common Tasks
Build Debug Locally
dotnet build "Source/Krypton Components/Krypton Toolkit Suite 2022 - VS2022.sln" -c Debug
Build Release
cd Scripts
build-stable.cmd Build
See: Build Scripts
Create NuGet Packages
cd Scripts
msbuild build.proj /t:Build;Pack
See: NuGet Package Creation and Publishing
Publish to NuGet.org
cd Scripts
publish.cmd
See: NuGet Package Creation and Publishing
Clean Build Artifacts
cd Scripts
purge.cmd
See: Build Scripts
Run TestForm
dotnet run --project "Source/Krypton Components/TestForm/TestForm.csproj" -c Debug
Conventions
Code Examples
All code examples use:
- Windows Command Prompt syntax (not PowerShell or Bash)
- Absolute paths where needed for clarity
- Relative paths from repository root by default
Terminology
| Term | Meaning |
|---|---|
| TFM | Target Framework Moniker (e.g., net8.0-windows) |
| Configuration | Build configuration (Debug, Release, Canary, Nightly, Installer) |
| Channel | Release channel (Stable, Canary, Nightly) |
| Lite | Package variant with fewer frameworks (TFMs=lite) |
| All | Package variant with all frameworks (TFMs=all) |
| CI/CD | Continuous Integration / Continuous Deployment |
Contributing to Documentation
Updating Documentation
- Edit relevant
.mdfile inDocuments/Workflows/ - Follow existing formatting and structure
- Update cross-references if needed
- Update this README if adding new files
Adding New Documentation
- Create new file:
##-New-Topic.md - Add entry to Documentation Index
- Add to Quick Start if relevant
- Add cross-references in related documents
Documentation Standards
- Use Markdown formatting
- Include code examples for common tasks
- Provide troubleshooting tips where applicable
- Cross-reference related documentation
- Keep line length reasonable (80-120 characters preferred)
- Use tables for structured information
- Include command-line examples with expected outputs