====== FR-DEPC-001 — Capture Build Dependencies ======
[[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 perform [[dido:99_annexes:annex-b-terms-and-definitions:d:dependency_capture|Dependency Capture]] for [[dido:99_annexes:annex-b-terms-and-definitions:b:build_dependency|Build Dependencies]].
===== Derived From =====
This requirement derives from:
* Crucible System Requirements Specification, Version 1.1 Draft, Functional Requirements, FR-DEPC-001
The Original Requirement states:
> //The system shall capture build dependencies.//[[dido:02-crusible:99-annexes:annex-b:cr-001|[C1]]]
FR-DEPC-001:
* 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**
* Replaces **capture build dependencies** with the controlled concepts [[dido:99_annexes:annex-b-terms-and-definitions:d:dependency_capture|Dependency Capture]] and [[dido:99_annexes:annex-b-terms-and-definitions:b:build_dependency|Build Dependency]]
* Retains capture of Build Dependencies as the required behavior
No other substantive normalization is required.
===== Rationale =====
[[dido:99_annexes:annex-b-terms-and-definitions:d:dependency_capture|Dependency Capture]] identifies and collects the [[dido:99_annexes:annex-b-terms-and-definitions:b:build_dependency|Build Dependencies]] required by a build.
Captured Build Dependencies can be preserved, transferred, and made available for later build operations, including operations performed in a [[dido:99_annexes:annex-b-terms-and-definitions:d:disconnected_environment|Disconnected Environment]].
This requirement establishes Dependency Capture without prescribing:
* Particular Build Dependencies
* A particular dependency source
* A particular dependency format
* A particular package manager
* A particular build tool
* A particular [[dido:99_annexes:annex-b-terms-and-definitions:d:dependency_store|Dependency Store]]
* A particular capture mechanism
* 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]]
* Transfer across a Transfer Boundary
Separate requirements, architecture specifications, build definitions, and dependency profiles govern those subjects and behaviors.
===== Applies To =====
This requirement applies to:
* [[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]]
* [[dido:99_annexes:annex-b-terms-and-definitions:d:dependency_capture|Dependency Capture]]
* [[dido:99_annexes:annex-b-terms-and-definitions:b:build_dependency|Build Dependencies]]
* Build operations
===== Verification =====
Verification confirms that:
- A build with one or more required [[dido:99_annexes:annex-b-terms-and-definitions:b:build_dependency|Build Dependencies]] is selected for testing
- [[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]] performs [[dido:99_annexes:annex-b-terms-and-definitions:d:dependency_capture|Dependency Capture]] for the selected build
- Each required Build Dependency captured during the tested operation can be identified
- The captured Build Dependencies correspond to dependencies required by the selected build
- The Dependency Capture 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-001 as a leaf requirement.
----
===== Issues =====
Determine whether separate requirements define the dependency information that Crucible must record during Dependency Capture.
Determine whether separate requirements govern dependency identity, revision, source, provenance, and integrity information.
Determine whether separate requirements define handling of unavailable or unresolved Build Dependencies.
----
===== Notes for Editors =====
This requirement page retains the stable requirement identifier ''FR-DEPC-001''.
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:d:dependency_capture|Dependency Capture]]
* [[dido:99_annexes:annex-b-terms-and-definitions:b:build_dependency|Build Dependency]]
The Statement addresses capture of Build Dependencies.
FR-DEPC-002 governs preservation of captured dependencies in a [[dido:99_annexes:annex-b-terms-and-definitions:d:dependency_store|Dependency Store]].
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 dependency sources, formats, package managers, build tools, storage mechanisms, transfer behavior, or Offline Repository 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-001#Statement&noheader&nofooter&noeditbtn}}
----
© 2026 Dido Solutions, Inc. and Jackrabbit Consulting, Inc.