Meet the guiding lights of this journey:
- Till Kamppeter: Expert in CUPS and printer apps.
- Cristovao Cordeiro: Rockcraft specialist.
- Saurav Dharwadkar: Docker virtuoso.
The project embarked on an ambitious journey to encapsulate the Common Unix Printing System (CUPS) and various Printer Apps into OCI (Open Container Initiative) images using Rockcraft. This move is designed to simplify the deployment of these tools across diverse, immutable distributions, making them more accessible and easier to manage.
- Crafting OCI-Compliant Images: Forge official OCI images for CUPS and Printer Apps.
- Automating the Workflow: Develop automation scripts for smooth version control and dependency management.
- Ensuring Excellence: Conduct rigorous testing to guarantee reliability and performance.
-
Planned Deliverables:
- OCI images for CUPS and Printer Apps
- Automation scripts for maintenance and versioning
- Comprehensive testing and validation
- Detailed documentation for installation and usage
- Pushing the official OCI images of CUPS and Printer-Apps on container registry for easy access and distribution
-
Delivered Treasures:
- Fully functional OCI image for CUPS with detailed documentaion on installation and usage
- OCI images for various Printer Apps (ps-printer-app, hplip-printer-app, gutenprint-printer-app, ghostscript-printer-app)
- Automation scripts for managing dependencies and updates
- A GitHub CI pipeline for cups-rock to streamline processes
- GitHub workflows to automate the Rock build and image push to Docker Hub
- Initial documentation for installation and usage
-
Pending Adventures:
- In-depth testing and issue reporting for Printer Apps
- Expansion of documentation for Printer Apps
-
Tools of the Trade:
- Docker
- CUPS
- Printer Apps
- GitHub Actions
- Rockcraft
- Bash Scripting
-
Challenges and Triumphs:
One of the greatest hurdles was configuring dbus-daemon and avahi-daemon to work harmoniously within a Docker container and ensure proper printer discovery. Through persistent debugging and iterative problem-solving, this challenge was successfully overcome.
This project equips OpenPrinting to distribute CUPS and Printer Apps efficiently across immutable distributions. The implementation of GitHub Actions will reduce manual maintenance and streamline dependency updates, enhancing operational efficiency.
The journey through containerization and Docker was a profound learning experience. I developed skills in debugging, consistency, and community engagement, gaining valuable insights into project management and technical problem-solving.
Explore the codebases behind various printer apps:
- cups-rock: GitHub Repository
- ps-printer-app-rock: GitHub Repository
- hplip-printer-app-rock: GitHub Repository
- gutenprint-printer-app-rock: GitHub Repository
- ghostscript-printer-app: GitHub Repository
Check out these significant contributions and updates:
- Update Automation Extension: Pull Request Link
- Version Automation Extension: Pull Request Link
- Rock-Version Schema Addition: Pull Request Link
For a comprehensive guide on Rockcraft, visit the official documentation:
- Rockcraft Documentation: Explore Here
Journey through the weekly updates that shaped our project: Weekly Report
A heartfelt thank you to my mentors Till Kamppeter, Cristovao Cordeiro, and Saurav Dharwadkar for their guidance and support.
A special thanks goes out to Till Kamppeter. Without his guidance and leadership, this technical journey through code would have been directionless and silent.