Instrument and improve incremental workspace checks
Profile source capture, Nix evaluation/realization, resource/query checking, and implementation builds without putting timings into immutable outputs. Keep modular repositories; bound independent capture work, snapshot jj once per observation, and retain final concurrent-edit and Git completeness checks. Compose exact resource/closure/frontend/toolchain checks as memoized Nix derivations. Preserve whole-workspace validation and the full compiler path when no checked dependency is supplied. Share canonical Nixpkgs by content, index workspace build contexts once, and narrow lock/driver/compiler inputs with conservative complete-source fallback. Batch React witness checks only when distinct source closures cannot share ambient declarations; otherwise run the original independent TypeScript checks. Seed local authoring toolchains with exact canonical fetch identities when they match the selected inputs; retain store-path inputs for overrides. Add generic correctness checks rather than permanent Reader timing/content fixtures. Verify actual Reader edits and rejection/recovery in a private workbench, preserving the original user's workbench and runtime. Query checking currently caches at resource/closure boundaries, not individual query semantic dependency boundaries. Template helper pins and reproducible fixture snapshots follow in a separate publication change.
This commit is contained in:
@@ -847,6 +847,40 @@ let
|
||||
in
|
||||
{
|
||||
mkCaminoReactPackage = import ./react-package.nix;
|
||||
# Share the composition's package set only for the same exact Nixpkgs source,
|
||||
# system and default import arguments. Config/overlay/cross-build choices use
|
||||
# ordinary Nixpkgs evaluation. No package implementation is substituted.
|
||||
packageSet =
|
||||
args@{
|
||||
nixpkgs,
|
||||
system,
|
||||
context ? { },
|
||||
...
|
||||
}:
|
||||
let
|
||||
authoredArgs = builtins.removeAttrs args [
|
||||
"nixpkgs"
|
||||
"context"
|
||||
];
|
||||
importArgs = {
|
||||
config = { };
|
||||
overlays = [ ];
|
||||
}
|
||||
// authoredArgs;
|
||||
environment = context.buildEnvironment or null;
|
||||
in
|
||||
if
|
||||
builtins.attrNames authoredArgs == [ "system" ]
|
||||
&& environment != null
|
||||
&& environment.system == system
|
||||
&& (
|
||||
environment.nixpkgsSource == toString nixpkgs
|
||||
|| ((nixpkgs.narHash or null) != null && nixpkgs.narHash == (environment.narHash or null))
|
||||
)
|
||||
then
|
||||
environment.pkgs
|
||||
else
|
||||
import nixpkgs importArgs;
|
||||
mkCaminoReactContracts = import ./react-contracts.nix;
|
||||
mkCaminoYarnDependencies = import ./yarn-dependencies.nix;
|
||||
mkCaminoYarnShell = import ./yarn-shell.nix;
|
||||
|
||||
Reference in New Issue
Block a user