Skip to content

Create DragonFly BSD Ports Development Coordination System #1504

@tuxillo

Description

@tuxillo

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

  1. 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
  2. Local Development Support

    • Developers use their own local environments
    • Provide overlay scripts to prepare working trees
    • Maintain compatibility with existing workflows
  3. PR Submission & Tracking

    • Developers submit PRs with their fixes
    • System tracks PRs and associates them with specific ports
    • Integration with GitHub for seamless workflow
  4. 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:

  1. ✅ Core backend APIs for port locking and PR tracking
  2. ✅ Basic UI for port selection and status viewing
  3. ✅ GitHub Actions integration for build triggering
  4. ✅ 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

  1. Design and implement Go backend APIs
  2. Create database schema and migrations
  3. Build frontend UI components
  4. Set up GitHub Actions workflows
  5. Create overlay scripts for local development
  6. 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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions