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
|
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.
|
||||||
@@ -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
@@ -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).
|
||||||
Reference in new issue
Block a user