====== FR-DEPC-002 — Preserve Dependencies in a Dependency Store ====== [[dido:02-crusible:99-annexes:annex-c-requirements:03-functional-requirements:03-10-dependency-capture-and-offline-transfer:start|Go to C.3.10 Dependency Capture and Offline Transfer]] ===== Statement ===== [[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]] SHALL preserve captured [[dido:99_annexes:annex-b-terms-and-definitions:b:build_dependency|Build Dependencies]] in a managed [[dido:99_annexes:annex-b-terms-and-definitions:d:dependency_store|Dependency Store]]. ===== Derived From ===== This requirement derives from: * Crucible System Requirements Specification, Version 1.1 Draft, Functional Requirements, FR-DEPC-002 The Original Requirement states: > //The system shall preserve captured dependencies in a managed dependency store.//[[dido:02-crusible:99-annexes:annex-b:cr-001|[C1]]] FR-DEPC-002: * Replaces **The system** with the defined system name [[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]] * Changes **shall** to the established uppercase normative form **SHALL** * Identifies the captured dependencies as [[dido:99_annexes:annex-b-terms-and-definitions:b:build_dependency|Build Dependencies]] * Links [[dido:99_annexes:annex-b-terms-and-definitions:d:dependency_store|Dependency Store]] to its controlling definition * Retains the direct behavior **preserve** No other substantive normalization is required. ===== Rationale ===== Preserving captured [[dido:99_annexes:annex-b-terms-and-definitions:b:build_dependency|Build Dependencies]] in a managed [[dido:99_annexes:annex-b-terms-and-definitions:d:dependency_store|Dependency Store]] makes the dependencies available for later build, packaging, and transfer operations. The Dependency Store provides a managed location for dependencies collected through [[dido:99_annexes:annex-b-terms-and-definitions:d:dependency_capture|Dependency Capture]]. Preservation allows Crucible to retain captured dependencies independently of the external repositories or services from which the dependencies originated. This capability contributes to repeatable operations in [[dido:99_annexes:annex-b-terms-and-definitions:d:disconnected_environment|Disconnected Environments]]. This requirement establishes preservation in a Dependency Store without prescribing: * A particular Dependency Store implementation * A particular storage technology * A particular repository format * A particular directory structure * A particular database * A particular dependency format * A retention period * A deduplication strategy * A replication strategy * Creation of a [[dido:99_annexes:annex-b-terms-and-definitions:t:transfer_bundle|Transfer Bundle]] * Population of an [[dido:99_annexes:annex-b-terms-and-definitions:o:offline_repository|Offline Repository]] Separate requirements, architecture specifications, storage profiles, and retention policies govern those subjects and behaviors. ===== Applies To ===== This requirement applies to: * [[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]] * Captured [[dido:99_annexes:annex-b-terms-and-definitions:b:build_dependency|Build Dependencies]] * [[dido:99_annexes:annex-b-terms-and-definitions:d:dependency_store|Dependency Stores]] * [[dido:99_annexes:annex-b-terms-and-definitions:d:dependency_capture|Dependency Capture]] results ===== Verification ===== Verification confirms that: - One or more captured [[dido:99_annexes:annex-b-terms-and-definitions:b:build_dependency|Build Dependencies]] are selected for testing - A managed [[dido:99_annexes:annex-b-terms-and-definitions:d:dependency_store|Dependency Store]] is selected for testing - [[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]] preserves the selected Build Dependencies in the Dependency Store - Each preserved Build Dependency can be identified in the Dependency Store - Each preserved Build Dependency remains available after the preservation operation completes - The preservation operation produces an observable result ===== Referenced By ===== The following pages reference this requirement: {{backlinks>.#dido:02-crusible}} ===== Implementation Status ===== Implemented and Verified ===== Requirement Status ===== Review and approve FR-DEPC-002 as a leaf requirement. ---- ===== Issues ===== Determine whether separate requirements define the identity, revision, source, provenance, and integrity information preserved with each Build Dependency. Determine whether separate requirements govern Dependency Store retention, replication, deduplication, and recovery. Determine whether separate requirements define how Crucible retrieves preserved Build Dependencies from a Dependency Store. ---- ===== Notes for Editors ===== This requirement page retains the stable requirement identifier ''FR-DEPC-002''. This page is a leaf requirement page and omits a trailing '':start'' from its namespace. The Statement uses the following controlling Terms and Definitions entries: * [[dido:99_annexes:annex-b-terms-and-definitions:b:build_dependency|Build Dependency]] * [[dido:99_annexes:annex-b-terms-and-definitions:d:dependency_capture|Dependency Capture]] * [[dido:99_annexes:annex-b-terms-and-definitions:d:dependency_store|Dependency Store]] The Statement addresses preservation of captured Build Dependencies in a managed Dependency Store. FR-DEPC-001 governs capture of Build Dependencies. FR-DEPC-003 governs production of a [[dido:99_annexes:annex-b-terms-and-definitions:t:transfer_bundle|Transfer Bundle]]. FR-DEPC-004 governs population of [[dido:99_annexes:annex-b-terms-and-definitions:o:offline_repository|Offline Repositories]]. FR-DEPC-005 governs Dependency Store implementation independence. Do not add particular storage technologies, repository formats, directory structures, retention periods, replication mechanisms, deduplication strategies, retrieval behavior, or transfer obligations unless the controlling requirement changes through an approved requirements process. To reference this requirement Statement from another wiki page, insert: {{section>dido:02-crusible:99-annexes:annex-c-requirements:03-functional-requirements:03-10-dependency-capture-and-offline-transfer:fr-depc-002#Statement&noheader&nofooter&noeditbtn}} ---- © 2026 Dido Solutions, Inc. and Jackrabbit Consulting, Inc.