-
Notifications
You must be signed in to change notification settings - Fork 33
Open
Labels
Description
DragonFly BSD Ports Development Coordination System
Problem Statement
Developers need to fix broken DragonFly BSD ports, but face several challenges:
- Large dports tree makes builds slow and resource-intensive
- Duplicated effort when developers work on different but related ports
- No central coordination for tracking progress, monitoring builds, or managing work assignments
- Manual and time-consuming build/test workflows
Proposed Solution
Create a coordinating admin panel and minimal backend system that enables:
Core Features
-
Port Selection & Locking System
- Developers can select broken ports from a shared list
- System locks ports to prevent duplicate work
- Clear visibility into who is working on what
-
Local Development Support
- Developers use their own local environments
- Provide overlay scripts to prepare working trees
- Maintain compatibility with existing workflows
-
PR Submission & Tracking
- Developers submit PRs with their fixes
- System tracks PRs and associates them with specific ports
- Integration with GitHub for seamless workflow
-
Build Triggering & Monitoring
- GitHub Actions workflows triggered for each PR
- Real-time build status tracking
- Centralized logging and progress monitoring
- UI displays current build progress per port/PR/developer
Technical Implementation
Backend (Go)
- Port locking API - Manage port assignments and prevent conflicts
- PR registration system - Track submitted pull requests
- Build webhook receiver - Process GitHub Actions notifications
- Status APIs - Provide data for the frontend UI
- Database integration - Store ports, locks, PRs, and build statuses
Frontend UI
- Port dashboard - Display all known broken ports with lock status
- Developer portal - Allow developers to lock/unlock ports
- PR/build status viewer - Real-time monitoring of submissions and builds
- Progress tracking - Visual indicators for work status
Database Schema
- Ports table - Store port information and metadata
- Locks table - Track port assignments and developer ownership
- PRs table - Manage pull request submissions and associations
- Builds table - Store build statuses, logs, and results
Minimal Implementation Scope
For the initial release, we will focus on:
- ✅ Core backend APIs for port locking and PR tracking
- ✅ Basic UI for port selection and status viewing
- ✅ GitHub Actions integration for build triggering
- ✅ Manual development environment setup (automation comes later)
Benefits
- Reduced duplicate work through central coordination
- Faster development cycles with automated build monitoring
- Better visibility into port fixing progress
- Scalable foundation for future automation enhancements
Next Steps
- Design and implement Go backend APIs
- Create database schema and migrations
- Build frontend UI components
- Set up GitHub Actions workflows
- Create overlay scripts for local development
- Test with initial group of developers
This system will provide a solid foundation for coordinating DragonFly BSD ports development while maintaining flexibility for future enhancements.
servizig