Skip to content

Comments

Separate Android and Linux CI builds and add transport policy/capabilities#145

Draft
mortenboye wants to merge 31 commits intomasterfrom
codex/restructure-repo-into-mono-repo-with-melon
Draft

Separate Android and Linux CI builds and add transport policy/capabilities#145
mortenboye wants to merge 31 commits intomasterfrom
codex/restructure-repo-into-mono-repo-with-melon

Conversation

@mortenboye
Copy link
Contributor

@mortenboye mortenboye commented Feb 15, 2026

Motivation

  • Android and Linux use different host MIDI stacks (Android Media MIDI vs ALSA) and should be validated and evolved independently in CI.
  • Provide a clear runtime abstraction for which MIDI transports are supported or enabled so platform wrappers can be isolated and apps can opt transports in/out.
  • Prepare the repo for a monorepo migration with per-platform packages and Pigeon-based host/flutter contracts.

Description

  • Split the CI into dedicated jobs by adding .github/workflows/ci.yml with build_android and build_linux jobs and installing Linux native build dependencies before flutter build linux.
  • Introduce transport abstractions with lib/src/midi_transports.dart and wire them into lib/flutter_midi_command.dart to expose MidiCapabilities, MidiTransportPolicy, configureTransportPolicy(...), and transport-gated operations.
  • Add monorepo and codegen scaffolding including melos.yaml, pigeons/midi_api.dart, lib/src/pigeon/README.md, doc/architecture.md, and README updates describing the Android/Linux package split.
  • Add test/midi_transport_policy_test.dart covering MidiTransportPolicy and MidiCapabilities, and update pubspec.yaml to include melos and pigeon dev dependencies.

Testing

  • Ran git diff --check and reviewed the changed files and workflow syntax, which produced no issues.
  • Added unit tests in test/midi_transport_policy_test.dart to validate policy resolution and capability helpers, but they were not executed locally in this environment.
  • Local flutter/dart commands (flutter analyze / flutter test) were not run because the toolchain is not installed in the execution container, so CI will validate those steps on GitHub Actions.

@mortenboye mortenboye marked this pull request as draft February 15, 2026 21:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant