Updated readme.md

This commit is contained in:
robojerk 2025-08-03 18:14:49 +00:00
parent c276a5a25a
commit 50ad12fc55
2 changed files with 66 additions and 27 deletions

1
.gitignore vendored
View file

@ -17,3 +17,4 @@ htmlcov/
.venv .venv
.kdev4/ .kdev4/
pungi.kdev4 pungi.kdev4
tumbi-assembler-dev-docs

View file

@ -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 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:
- RPMs
- repodata
- comps
- (bootable) ISOs
- kickstart trees
- anaconda images
- images for PXE boot
- **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 ## Architecture
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.
*Pungi* itself does not actually do that much. Most of the actual work is Tumbi-Assembler maintains Pungi's phase-based architecture while adapting it for the Debian ecosystem:
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.
- **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 ## Links
- Documentation: https://docs.pagure.org/pungi/ - **Original Pungi**: https://pagure.io/pungi/
- Upstream GIT: https://pagure.io/pungi/ - **ParticleOS**: [ParticleOS Project]
- Issue tracker: https://pagure.io/pungi/issues - **Development Documentation**: See `tumbi-assembler-dev-docs/` directory
- Questions can be asked in the *#fedora-releng* IRC channel on irc.libera.chat
or in the matrix room ## License
[`#releng:fedoraproject.org`](https://matrix.to/#/#releng:fedoraproject.org)
This project is based on Pungi and maintains compatibility with its licensing terms.