Skip to content

Add cross-platform development setup documentation (macOS/Linux/Windows from source) #12

@parthdagia05

Description

@parthdagia05

Add Cross-Platform Development Setup Documentation

Summary

The current documentation primarily focuses on the Windows .exe installation workflow. There is no documented guide for running MUIO from source on macOS, Linux, or Windows (without using the packaged installer).

This creates onboarding friction for contributors and research teams working in mixed OS environments.


Current Situation

  • installation.rst documents the Windows executable workflow.
  • There is no documented process for:
    • Installing GLPK and CBC on macOS/Linux
    • Creating a Python virtual environment
    • Installing dependencies via pip install -r requirements.txt
    • Running the Flask server (python API/app.py)
  • The README does not reference any source-based development instructions.

As a result, new contributors must inspect the codebase and manually resolve:

  • Solver installation requirements
  • PATH configuration
  • Development server port (5002)
  • requirements.txt encoding considerations
  • Permission behavior of os.chmod(DATA_STORAGE, 0o777)

Proposed Improvement

Add a new "Development Setup" page under the "Getting Started" section covering:

  • macOS (Homebrew-based solver installation)
  • Ubuntu/Linux (APT-based solver installation)
  • Windows (from-source workflow)
  • Virtual environment setup
  • Running the Flask development server
  • Notes on solver detection and environment variable overrides
  • Notes on requirements.txt encoding
  • Notes on DataStorage permissions

Additionally:

  • Register the page in the Sphinx toctree.
  • Add a minimal link from the README pointing to the documentation.

Why This Matters

  • OG–CLEWS contributors and research teams operate on macOS and Linux environments.
  • Clear setup documentation reduces repeated onboarding friction.
  • Improves accessibility for open-source contributors.
  • Aligns with cross-platform development goals.
  • Has zero runtime risk (documentation-only change).

I would be happy to prepare a focused documentation PR if this direction is aligned with the project's expectations.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions