Isolate generated artifacts
This commit is contained in:
@@ -20,17 +20,11 @@ Blocked by: none
|
|||||||
|
|
||||||
## HMX-M03 — Isolate artifact emission and diagnostics
|
## HMX-M03 — Isolate artifact emission and diagnostics
|
||||||
|
|
||||||
|
Outcome: generated artifacts and contract diagnostics are privately owned without byte, ordering, fingerprint, or diagnostic drift.
|
||||||
Outcome: generated Rust, metadata, lowering tables, and contract diagnostics are emitted through one private boundary behind the public builder.
|
|
||||||
Delta: architecture/003 assurance/001
|
Delta: architecture/003 assurance/001
|
||||||
Path: validated template and Rust facts -> stable IDs/metadata -> generated files -> downstream compilation diagnostics.
|
Checks: exact generated API/diagnostic/fingerprint/no-op fixtures; package checks; Redgate; diff check; fresh review.
|
||||||
Build: move artifact assembly and diagnostic formatting as one responsibility; keep public entry points and no-op write behavior in place.
|
State: Done
|
||||||
Risk: byte, ordering, fingerprint, or diagnostic drift breaks downstream builds despite compiling locally.
|
Blocked by: none
|
||||||
Checks: `cargo test -p hemx-build`; exact generated API/diagnostic/fingerprint fixtures; no-op rewrite check; package archive checks; `redgate check`.
|
|
||||||
Non-goals: a new IR, new serialization, public API changes, or formatting-only rewrites.
|
|
||||||
Residual risk: this is the broadest movement slice and requires fresh-context review after integrated proof.
|
|
||||||
State: Draft
|
|
||||||
Blocked by: HMX-M02
|
|
||||||
|
|
||||||
## HMX-M04 — Localize Axum interaction forms
|
## HMX-M04 — Localize Axum interaction forms
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,5 @@
|
|||||||
use super::*;
|
use super::*;
|
||||||
|
use crate::artifact::{event_tokens, static_attr, unkeyed_generated_target_diagnostic_for_scope};
|
||||||
|
|
||||||
pub(super) fn reject_selector_target_attrs(
|
pub(super) fn reject_selector_target_attrs(
|
||||||
path: &Path,
|
path: &Path,
|
||||||
|
|||||||
+6
-1442
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,5 @@
|
|||||||
use super::*;
|
use super::*;
|
||||||
|
use crate::artifact::rust_ident;
|
||||||
|
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
pub(super) struct RustStructFact {
|
pub(super) struct RustStructFact {
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ cargo test -p hemx-build emits_generated_resources_from_heml --lib # spec: assur
|
|||||||
cargo test -p hemx-build unkeyed_generated_target_diagnostic_is_structured --lib # spec: assurance/001 check
|
cargo test -p hemx-build unkeyed_generated_target_diagnostic_is_structured --lib # spec: assurance/001 check
|
||||||
test -f hemx-build/src/authoring.rs && grep -q '^mod authoring;$' hemx-build/src/lib.rs && ! grep -Eq '^fn (reject_selector_target_attrs|reject_unknown_hemx_attrs|known_hemx_attr|reject_invalid_hemx_attr_values|reject_invalid_hemx_attr_placement|reject_unkeyed_loop)\(' hemx-build/src/lib.rs # spec: architecture/001 check
|
test -f hemx-build/src/authoring.rs && grep -q '^mod authoring;$' hemx-build/src/lib.rs && ! grep -Eq '^fn (reject_selector_target_attrs|reject_unknown_hemx_attrs|known_hemx_attr|reject_invalid_hemx_attr_values|reject_invalid_hemx_attr_placement|reject_unkeyed_loop)\(' hemx-build/src/lib.rs # spec: architecture/001 check
|
||||||
test -f hemx-build/src/rust_source.rs && grep -q '^mod rust_source;$' hemx-build/src/lib.rs && ! grep -Eq '^fn (context_type_for_heml_path|nearest_dir_with|rust_struct_facts_in|collect_rust_struct_facts|compact_tokens|loop_locals_for_surface|h_for_local_and_self_field|vec_element_type)\(' hemx-build/src/lib.rs # spec: architecture/002 check
|
test -f hemx-build/src/rust_source.rs && grep -q '^mod rust_source;$' hemx-build/src/lib.rs && ! grep -Eq '^fn (context_type_for_heml_path|nearest_dir_with|rust_struct_facts_in|collect_rust_struct_facts|compact_tokens|loop_locals_for_surface|h_for_local_and_self_field|vec_element_type)\(' hemx-build/src/lib.rs # spec: architecture/002 check
|
||||||
|
test -f hemx-build/src/artifact.rs && grep -q '^mod artifact;$' hemx-build/src/lib.rs && ! grep -Eq '^fn (insert_resource|make_resource|generated_targets|unkeyed_generated_target_diagnostic|stable_id|rust_ident|write_if_changed|render_generated|render_symbols)\(' hemx-build/src/lib.rs # spec: architecture/003 check
|
||||||
cargo test -p hemx-build no_op_build_preserves_generated_artifact_timestamps --lib # spec: build/003 check # spec: resource/005 check
|
cargo test -p hemx-build no_op_build_preserves_generated_artifact_timestamps --lib # spec: build/003 check # spec: resource/005 check
|
||||||
cargo test -p hemx-build changed_template_refreshes_generated_artifacts --lib # spec: resource/005 check
|
cargo test -p hemx-build changed_template_refreshes_generated_artifacts --lib # spec: resource/005 check
|
||||||
cargo test -p hemx-derive --test surface surface_macro_preserves_inline_module_with_generated_file -- --exact # spec: derive/001 check
|
cargo test -p hemx-derive --test surface surface_macro_preserves_inline_module_with_generated_file -- --exact # spec: derive/001 check
|
||||||
|
|||||||
Reference in New Issue
Block a user