This project provides cross-platform packaging for Spry using DALEC (Declarative Application Lifecycle Engine for Containers). Spry is a declarative web application framework.
-
dalec-spry.yaml - DALEC specification file
- Defines package metadata, sources, build steps, and targets
- Supports Ubuntu, Debian, and Windows
-
spry.ts - Main TypeScript entry point for Spry
- CLI interface for Spry web application framework
-
import_map.json - Deno import map
- Downloaded from Spry repository
- Manages TypeScript dependencies
-
Makefile - Build automation commands
make build-all- Build all packagesmake build-jammy,make build-bookworm- Platform-specific buildsmake compile-local- Local Deno compilationmake build-windows- Windows package buildsmake clean- Clean build artifacts
-
docker-compose.yml - Docker Compose configuration
- Alternative build method using Docker Compose
- Separate services for each platform
-
scripts/release.sh - Release automation script
- Updates version numbers
- Creates git tags
- Prepares releases
-
.github/workflows/build.yml - Main build workflow
- Builds packages for all platforms (spry)
- Creates GitHub releases on version tags
- Uploads artifacts
-
.github/workflows/test.yml - Testing workflow
- Tests DEB packages
- Tests local Deno compilation on multiple OS
- Validates package contents
-
README.md - User-facing documentation
- Installation instructions for all platforms
- Quick start guide
- Links to resources
-
BUILD.md - Build instructions
- Detailed build process
- Prerequisites
- Troubleshooting
-
QUICKSTART.md - Quick start guide
- Fast installation for users
- Quick build for developers
- Common troubleshooting
-
ARCHITECTURE.md - Architecture documentation
- Design decisions
- Build flow
- Project structure
-
CONTRIBUTING.md - Contribution guidelines
- How to contribute
- Development setup
- Pull request process
-
LICENSE - MIT License
- Open source license
-
.gitignore - Git ignore rules
- Excludes build artifacts
- Excludes binaries
- ✅ Ubuntu 22.04 (Jammy)
- ✅ Debian 12 (Bookworm)
- ✅ Windows x64 (cross-compiled)
- ✅ macOS Intel & Apple Silicon (native compilation)
- DALEC Specification: Defines the package structure and build process
- Docker Buildx: Uses BuildKit to build packages for different targets
- Deno Compile: Compiles TypeScript to standalone binaries
- GitHub Actions: Automates building and releasing packages
- Package Managers: Distributes via DEB, RPM, and direct downloads
Source Code (TypeScript)
↓
Deno Compile
↓
Standalone Binary
↓
DALEC Packaging
↓
Platform-Specific Packages (DEB/RPM/ZIP)
↓
GitHub Releases
- 🐳 Docker-based builds - No complex toolchain setup
- 📦 Multi-platform - Single spec for all platforms
- 🚀 Automated CI/CD - GitHub Actions integration
- 🔒 Secure - Supply chain security with DALEC
- 📝 Well-documented - Comprehensive documentation
- 🛠️ Easy to use - Simple Makefile commands
- Download packages from GitHub Releases
- Install using your package manager
- Run
spry --help
- Clone the repository
- Run
make build-allto build packages - Run
make compile-localfor local development
- Read CONTRIBUTING.md
- Fork the repository
- Submit pull requests
The project has been tested with:
- ✅ Deno runtime execution
- ✅ Local compilation
- ⏳ DALEC package builds (requires Docker with BuildKit)
- ⏳ GitHub Actions workflows (will run on push)
- Spry Project: https://github.com/programmablemd/spry
- DALEC: https://github.com/project-dalec/dalec
- Deno: https://deno.land/
- Surveilr Packages (reference): https://github.com/surveilr/packages
packages/
├── .github/workflows/ # CI/CD workflows
├── scripts/ # Automation scripts
├── dalec-spry.yaml # DALEC spec
├── spry.ts # Spry TypeScript file
├── import_map.json # Deno dependencies
├── Makefile # Build automation
├── docker-compose.yml # Docker Compose config
└── *.md # Documentation files
✅ Complete - Project is ready for use!
All core functionality has been implemented:
- DALEC specification
- Build automation
- CI/CD workflows
- Comprehensive documentation
- Multi-platform support
MIT License - See LICENSE file for details