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:
1 parent
d32b03c87f
commit
a78754d909
3 files changed
+61
-6
No files matched your search
@@ -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
|
||||
full LLVM source spans to merge generic branch instantiations without lowering
|
||||
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.
|
||||
@@ -33,6 +33,23 @@
|
||||
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
@@ -1,21 +1,41 @@
|
||||
# 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
|
||||
|
||||
From the repository root, in that shell or an equivalent Flutter environment:
|
||||
|
||||
```sh
|
||||
cd ground_suite
|
||||
flutter pub get
|
||||
flutter pub get --enforce-lockfile
|
||||
flutter run -d linux
|
||||
```
|
||||
|
||||
On NixOS, enter `nix shell nixpkgs#flutter` first.
|
||||
For web, use `flutter run -d chrome`.
|
||||
For web, run `flutter run -d chrome` from `ground_suite/` with Chrome available.
|
||||
|
||||
## Check
|
||||
|
||||
Run from `ground_suite/` after the locked dependency fetch above:
|
||||
|
||||
```sh
|
||||
dart format --output=none --set-exit-if-changed lib
|
||||
flutter analyze
|
||||
flutter build web
|
||||
flutter build linux
|
||||
dart analyze
|
||||
flutter analyze --no-pub
|
||||
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).
|
||||
Reference in new issue
Block a user