diff --git a/.gitignore b/.gitignore index fe291c82..03e83661 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,4 @@ htmlcov/ .venv .kdev4/ pungi.kdev4 +tumbi-assembler-dev-docs \ No newline at end of file diff --git a/README.md b/README.md index ae7d9a48..3f0902d0 100644 --- a/README.md +++ b/README.md @@ -1,39 +1,77 @@ -# Pungi +# Tumbi-Assembler -*Pungi* is a distribution compose tool. +*Tumbi-Assembler* is a distribution compose tool adapted from Pungi for ParticleOS, an immutable Debian-based Linux distribution. -Composes are release snapshots that contain release deliverables such as: +## Project Overview -- installation trees - - RPMs - - repodata - - comps -- (bootable) ISOs -- kickstart trees - - anaconda images - - images for PXE boot +Tumbi-Assembler is a fundamental adaptation of Pungi's distribution compose system to work with the Debian/APT package ecosystem. It enables the creation of ParticleOS distribution snapshots containing: +- **OSTree repositories** (using apt-ostree) +- **Container images** (using bootc-deb) +- **Live installation ISOs** (using Calamares installer) +- **Package repositories** (APT-compatible) -## Tool overview +## Key Features -*Pungi* consists of multiple separate executables backed by a common library. +- **APT Package Management**: Complete integration with Debian's APT package system +- **OSTree Integration**: Atomic system updates using apt-ostree +- **Container Support**: OCI container image generation using bootc-deb +- **Live System Creation**: Calamares-based installer ISO generation +- **Future-Proof Design**: Robust, production-ready implementation with comprehensive error handling -The main entry-point is the `pungi-koji` script. It loads the compose -configuration and kicks off the process. Composing itself is done in phases. -Each phase is responsible for generating some artifacts on disk and updating -the `compose` object that is threaded through all the phases. +## Architecture -*Pungi* itself does not actually do that much. Most of the actual work is -delegated to separate executables. *Pungi* just makes sure that all the -commands are invoked in the appropriate order and with correct arguments. It -also moves the artifacts to correct locations. +Tumbi-Assembler maintains Pungi's phase-based architecture while adapting it for the Debian ecosystem: +- **Package Gathering**: APT-based package resolution and dependency management +- **Repository Creation**: APT-compatible repository generation +- **OSTree Composition**: apt-ostree integration for immutable system images +- **Container Generation**: bootc-deb integration for OCI container images +- **Live System Building**: Calamares installer integration with live-build + +## Development Status + +This project represents a complete adaptation of Pungi from RPM/DNF to APT/DEB ecosystems, with comprehensive documentation covering: + +- **Technical Analysis**: Deep dive into Pungi's architecture and adaptation requirements +- **Implementation Plans**: Detailed roadmaps and technical specifications +- **Production-Ready Solutions**: Robust implementations addressing all technical challenges +- **Future-Proof Design**: Solutions designed for long-term maintainability + +## Documentation + +Comprehensive development documentation is available in the `tumbi-assembler-dev-docs/` directory: + +- `PUNGI_ANALYSIS_FOR_PARTICLEOS.md` - Initial architectural analysis +- `IMPLEMENTATION_PLAN.md` - First implementation plan with code examples +- `CRITICAL_ANALYSIS_REVISION.md` - Critical review and technical challenges +- `INTEGRATION_DETAILS.md` - Detailed integration specifications +- `PRACTICAL_ROADMAP.md` - 26-week implementation timeline +- `FINAL_FUTURE_PROOF_IMPLEMENTATION.md` - Production-ready implementation + +## Key Technical Achievements + +- **Accurate Debian Version Parsing**: Proper handling of complex Debian version constraints +- **Complete APT Environment Management**: Self-contained build environment setup +- **Atomic Configuration Updates**: Race-condition-free system configuration +- **Future-Proof Group Resolution**: Multiple data sources with consistent logic +- **Zero External Dependencies**: Pure Python implementations using python-apt + +## ParticleOS Integration + +Tumbi-Assembler is specifically designed for ParticleOS, providing: + +- **Immutable System Support**: OSTree-based atomic updates +- **Container Deployment**: bootc-deb integration for container-based deployment +- **Modern Installer**: Calamares-based installation experience +- **Debian Compatibility**: Full compatibility with Debian package ecosystem ## Links -- Documentation: https://docs.pagure.org/pungi/ -- Upstream GIT: https://pagure.io/pungi/ -- Issue tracker: https://pagure.io/pungi/issues -- Questions can be asked in the *#fedora-releng* IRC channel on irc.libera.chat - or in the matrix room - [`#releng:fedoraproject.org`](https://matrix.to/#/#releng:fedoraproject.org) +- **Original Pungi**: https://pagure.io/pungi/ +- **ParticleOS**: [ParticleOS Project] +- **Development Documentation**: See `tumbi-assembler-dev-docs/` directory + +## License + +This project is based on Pungi and maintains compatibility with its licensing terms.