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.mddocuments 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.24as the current package/workspace discipline hardening slice. - Glagol is versioned as
1.0.0-beta.24. compiler/tests/package_workspace_discipline_beta24.rscovers the focused package manifest/dependency diagnostics and a positive local dependency workspace.scripts/release-gate.shruns the focused beta24 test.
Suggested Gates
git diff --check
cargo fmt --check
cargo test --test package_workspace_discipline_beta24