[PLACEHOLDER] Prepare Marathon for open-source release #127

Open
opened 2025-12-17 04:14:03 +00:00 by siennathesane · 0 comments
siennathesane commented 2025-12-17 04:14:03 +00:00 (Migrated from github.com)

Description

In order to open-source Marathon alongside the v0 technical demo,
as the Marathon developer,
I need to clean up the codebase, add proper documentation, establish licensing, and prepare the repository for public release.

Marathon is a multiplayer game engine designed for simulation games with highly-persistent "forever" worlds. Aspen is powered by Marathon.

Acceptance Criteria

Scenario: Repository is clean and public-ready
  Given the Marathon codebase
  When preparing for open-source release
  Then no secrets, credentials, or sensitive data remain
  And code quality passes clippy and formatting checks

Scenario: Documentation is comprehensive
  Given a new contributor discovers Marathon
  When they read the documentation
  Then they understand the architecture, how to contribute, and how to get started

Scenario: Legal requirements are met
  Given the MIT license choice
  When the repository goes public
  Then LICENSE file exists and all legal requirements are satisfied

Scenario: Repository infrastructure is ready
  Given GitHub repository settings
  When the repository goes public
  Then issue templates, CI, and community infrastructure work correctly

Deliverables

1. Code Cleanup

  • Remove any secrets/credentials from codebase and git history
  • Remove aspen-specific code (already moved to aspen repo)
  • Remove proprietary/sensitive comments
  • Run clippy and fix all warnings
  • Format all code with rustfmt
  • Clean up commented-out code and TODOs

2. Documentation

  • README.md: Overview, features, quick start, building/running
    • Emphasize simulation game focus
    • Highlight persistent world capabilities
  • CONTRIBUTING.md: How to contribute, development setup, PR guidelines
  • CODE_OF_CONDUCT.md: Community standards
  • docs/ARCHITECTURE.md: High-level architecture overview
  • docs/CRDT.md: Explanation of CRDT sync system
  • docs/PERSISTENCE.md: Persistence and SQLite architecture
  • docs/SESSION.md: Session lifecycle management
  • Inline API documentation (rustdoc)
  • Basic examples in examples/

3. Legal/Licensing

  • Add MIT LICENSE file
  • Add copyright headers to all source files (optional, but recommended)
  • No Contributor License Agreement needed for MIT
  • Document Marathon/Aspen relationship:
    • "Aspen, powered by Marathon."
    • Marathon is a multiplayer game engine for simulation games with highly-persistent "forever" worlds

4. Repository Setup

  • Issue templates ( already exist: bug, task, epic, feature, support)
  • PR template (create .github/pull_request_template.md)
  • GitHub Actions CI:
    • Rust tests
    • Clippy checks
    • Format checks
    • Build validation (desktop + iOS)
  • SECURITY.md: Security policy and vulnerability reporting
  • Optional: FUNDING.yml for sponsorship

5. Community Infrastructure

  • Decision: Discord/forum? (TBD)
  • Decision: Website/landing page? (TBD, can come later)
  • Decision: Social media? (TBD, can come later)

Technical Notes

  • Dependencies: #124-#125 (v0 demos working, devlog created)
  • Timing: Release simultaneously with v0 devlog video
  • License: MIT (permissive, industry standard for game engines)
  • Files affected:
    • New: LICENSE, CONTRIBUTING.md, CODE_OF_CONDUCT.md, various docs
    • New: .github/pull_request_template.md
    • New: .github/workflows/*.yml (CI)
    • Modify: README.md (comprehensive rewrite)
    • All source files: copyright headers (optional)

Production Steps

  1. Audit Phase

    • Scan for secrets/credentials (use git-secrets or similar)
    • Review all comments for sensitive info
    • Check git history for sensitive commits
  2. Cleanup Phase

    • Remove/redact sensitive content
    • Clean up code (clippy, rustfmt)
    • Remove dead code
  3. Documentation Phase

    • Write all documentation files
    • Generate rustdoc and verify it's complete
    • Create examples
  4. Legal Phase

    • Add MIT LICENSE
    • Add copyright headers (if desired)
  5. Infrastructure Phase

    • Set up CI workflows
    • Create PR template
    • Add SECURITY.md
  6. Review Phase

    • Final pass on all documentation
    • Test CI workflows
    • Verify builds work from scratch
  7. Release Phase

    • Make repository public
    • Publish announcement alongside v0 devlog
    • Monitor initial community response

Additional Context

Marathon is designed to be a forever engine for simulation games with highly-persistent worlds. It should be positioned as a robust, production-ready multiplayer engine that prioritizes persistence, synchronization, and long-term world stability for simulation-focused experiences.

The open-source release happens alongside the v0 technical demo to demonstrate that the core technology works and to invite community contributions.

## Description In order to open-source Marathon alongside the v0 technical demo, as the Marathon developer, I need to clean up the codebase, add proper documentation, establish licensing, and prepare the repository for public release. Marathon is a multiplayer game engine designed for simulation games with highly-persistent "forever" worlds. Aspen is powered by Marathon. ## Acceptance Criteria ```gherkin Scenario: Repository is clean and public-ready Given the Marathon codebase When preparing for open-source release Then no secrets, credentials, or sensitive data remain And code quality passes clippy and formatting checks Scenario: Documentation is comprehensive Given a new contributor discovers Marathon When they read the documentation Then they understand the architecture, how to contribute, and how to get started Scenario: Legal requirements are met Given the MIT license choice When the repository goes public Then LICENSE file exists and all legal requirements are satisfied Scenario: Repository infrastructure is ready Given GitHub repository settings When the repository goes public Then issue templates, CI, and community infrastructure work correctly ``` ## Deliverables ### 1. Code Cleanup - Remove any secrets/credentials from codebase and git history - Remove aspen-specific code (already moved to aspen repo) - Remove proprietary/sensitive comments - Run clippy and fix all warnings - Format all code with rustfmt - Clean up commented-out code and TODOs ### 2. Documentation - **README.md**: Overview, features, quick start, building/running - Emphasize simulation game focus - Highlight persistent world capabilities - **CONTRIBUTING.md**: How to contribute, development setup, PR guidelines - **CODE_OF_CONDUCT.md**: Community standards - **docs/ARCHITECTURE.md**: High-level architecture overview - **docs/CRDT.md**: Explanation of CRDT sync system - **docs/PERSISTENCE.md**: Persistence and SQLite architecture - **docs/SESSION.md**: Session lifecycle management - Inline API documentation (rustdoc) - Basic examples in `examples/` ### 3. Legal/Licensing - Add MIT LICENSE file - Add copyright headers to all source files (optional, but recommended) - No Contributor License Agreement needed for MIT - Document Marathon/Aspen relationship: - "Aspen, powered by Marathon." - Marathon is a multiplayer game engine for simulation games with highly-persistent "forever" worlds ### 4. Repository Setup - Issue templates (✅ already exist: bug, task, epic, feature, support) - PR template (create `.github/pull_request_template.md`) - GitHub Actions CI: - Rust tests - Clippy checks - Format checks - Build validation (desktop + iOS) - SECURITY.md: Security policy and vulnerability reporting - Optional: FUNDING.yml for sponsorship ### 5. Community Infrastructure - Decision: Discord/forum? (TBD) - Decision: Website/landing page? (TBD, can come later) - Decision: Social media? (TBD, can come later) ## Technical Notes - Dependencies: #124-#125 (v0 demos working, devlog created) - Timing: Release simultaneously with v0 devlog video - License: MIT (permissive, industry standard for game engines) - Files affected: - New: `LICENSE`, `CONTRIBUTING.md`, `CODE_OF_CONDUCT.md`, various docs - New: `.github/pull_request_template.md` - New: `.github/workflows/*.yml` (CI) - Modify: `README.md` (comprehensive rewrite) - All source files: copyright headers (optional) ## Production Steps 1. **Audit Phase** - Scan for secrets/credentials (use git-secrets or similar) - Review all comments for sensitive info - Check git history for sensitive commits 2. **Cleanup Phase** - Remove/redact sensitive content - Clean up code (clippy, rustfmt) - Remove dead code 3. **Documentation Phase** - Write all documentation files - Generate rustdoc and verify it's complete - Create examples 4. **Legal Phase** - Add MIT LICENSE - Add copyright headers (if desired) 5. **Infrastructure Phase** - Set up CI workflows - Create PR template - Add SECURITY.md 6. **Review Phase** - Final pass on all documentation - Test CI workflows - Verify builds work from scratch 7. **Release Phase** - Make repository public - Publish announcement alongside v0 devlog - Monitor initial community response ## Additional Context Marathon is designed to be a forever engine for simulation games with highly-persistent worlds. It should be positioned as a robust, production-ready multiplayer engine that prioritizes persistence, synchronization, and long-term world stability for simulation-focused experiences. The open-source release happens alongside the v0 technical demo to demonstrate that the core technology works and to invite community contributions.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: studio/marathon#127