build(ground-suite): add a separate pinned Flutter shell

Provide a separate Flutter development shell from the existing locked
Nix input and document the application build commands.

Validation: locked environment/version probe; no native application
qualification is claimed.
This commit is contained in:
Onur Özkan committed 2026-11-07 18:12:11 +03:00
1 parent d32b03c87f
commit a78754d909
3 files changed
+61 -6

No files matched your search

+18
View File
@@ -52,3 +52,21 @@ The strict gate requires 100% line and branch coverage for `kaptan-math`,
core package's coverage artifacts, unions LCOV source-line records, and uses core package's coverage artifacts, unions LCOV source-line records, and uses
full LLVM source spans to merge generic branch instantiations without lowering full LLVM source spans to merge generic branch instantiations without lowering
the gate. the gate.
## Ground suite builds
The separate locked shell supplies Flutter, Dart and desktop dependencies:
```sh
nix develop .#ground-suite
cd ground_suite
flutter pub get --enforce-lockfile
dart format --output=none --set-exit-if-changed lib
dart analyze
flutter analyze --no-pub
flutter build web --release --no-pub
flutter build linux --release --no-pub
```
The app currently has no widget-test suite. Windows and macOS need their native
build and runtime checks.
+17
View File
@@ -33,6 +33,23 @@
pkgs.python3 pkgs.python3
]; ];
}; };
ground-suite = pkgs.mkShell {
packages = [
(pkgs.flutterPackages.v3_41.override {
supportedTargetFlutterPlatforms = [
"universal"
"web"
"linux"
];
})
pkgs.clang
pkgs.cmake
pkgs.ninja
pkgs.pkg-config
pkgs.gtk3
];
CMAKE_BUILD_PARALLEL_LEVEL = "2";
};
} }
); );
}; };
+26 -6
View File
@@ -1,21 +1,41 @@
# Kaptan Ground Suite # Kaptan Ground Suite
## Environment
From the repository root, optionally enter the app development shell pinned by
`flake.lock`:
```sh
nix develop .#ground-suite
```
This shell supplies Flutter 3.41.9, Dart 3.11.5 and Linux desktop build
dependencies. The default firmware shell does not include these tools.
## Run ## Run
From the repository root, in that shell or an equivalent Flutter environment:
```sh ```sh
cd ground_suite cd ground_suite
flutter pub get flutter pub get --enforce-lockfile
flutter run -d linux flutter run -d linux
``` ```
On NixOS, enter `nix shell nixpkgs#flutter` first. For web, run `flutter run -d chrome` from `ground_suite/` with Chrome available.
For web, use `flutter run -d chrome`.
## Check ## Check
Run from `ground_suite/` after the locked dependency fetch above:
```sh ```sh
dart format --output=none --set-exit-if-changed lib dart format --output=none --set-exit-if-changed lib
flutter analyze dart analyze
flutter build web flutter analyze --no-pub
flutter build linux flutter build web --release --no-pub
flutter build linux --release --no-pub
``` ```
There is currently no `test/` directory or widget test suite. Web and Linux
builds do not verify the Windows or macOS runners. See the central
[development guide](../docs/src/development.md#ground-suite-builds).