slovo/.llm/BETA_24_PACKAGE_MANIFEST_IDENTITY_AND_DEPENDENCY_DISCIPLINE.md

2.9 KiB

1.0.0-beta.24 Package Manifest Identity And Dependency Discipline

Scope

1.0.0-beta.24 is a package/workspace discipline hardening slice for local manifest diagnostics. It tightens how package manifest identity and local dependency tables are reported when users write ambiguous or invalid manifest keys.

This release changes diagnostics only. It does not change the Slovo source language, typed core, runtime behavior, standard-library helper surface, compiler-known runtime names, package graph semantics, ABI/layout policy, or artifact/Markdown schema stability guarantees.

Contract

The beta package model remains a closed local workspace model:

  • package manifests declare [package] identity metadata and optional [dependencies] local path records
  • dependency keys name local packages and must match the target package name
  • dependency paths remain local path records under the existing workspace and package boundary checks

The beta24 diagnostic hardening makes these manifest errors explicit:

  • duplicate keys in package manifests report PackageManifestInvalid
  • invalid dependency keys report InvalidPackageDependencyName
  • duplicate dependency keys report DuplicatePackageDependencyName

These diagnostics are part of the beta package/workspace discipline surface. They do not promote a package manager, resolver, lockfile, registry, publish flow, or stable package ABI/layout.

Non-Scope

This scope does not add:

  • remote registry behavior
  • lockfiles
  • semantic-version solving
  • package publishing
  • optional, dev, target, or feature-gated dependencies
  • build scripts or package archives
  • stable package ABI/layout
  • stable package manager behavior
  • source-language syntax or semantics
  • runtime behavior or runtime C capabilities
  • standard-library helpers or stdlib behavior
  • compiler-known std.* runtime names
  • stable artifact-manifest or Markdown schema guarantees
  • performance claims

Acceptance Criteria

  • docs/language/PACKAGES.md documents duplicate package-manifest keys, invalid dependency keys, and duplicate dependency keys as explicit beta diagnostics.
  • Language and compiler release notes describe beta24 as package manifest identity/dependency diagnostic hardening only.
  • Language and compiler roadmaps record beta24 as a local package/workspace diagnostics slice with all registry, lockfile, semver, publishing, optional/dev/target dependency, ABI/layout, language, runtime, and stdlib work deferred.
  • README and the post-beta roadmap identify 1.0.0-beta.24 as the current package/workspace discipline hardening slice.
  • Glagol is versioned as 1.0.0-beta.24.
  • compiler/tests/package_workspace_discipline_beta24.rs covers the focused package manifest/dependency diagnostics and a positive local dependency workspace.
  • scripts/release-gate.sh runs the focused beta24 test.

Suggested Gates

git diff --check
cargo fmt --check
cargo test --test package_workspace_discipline_beta24