====== FR-DEPC-004 — Populate Offline Repositories ======
[[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 populate [[dido:99_annexes:annex-b-terms-and-definitions:o:offline_repository|Offline Repositories]] in a [[dido:99_annexes:annex-b-terms-and-definitions:d:disconnected_environment|Disconnected Environment]] from a [[dido:99_annexes:annex-b-terms-and-definitions:t:transfer_bundle|Transfer Bundle]].
===== Derived From =====
This requirement derives from:
* Crucible System Requirements Specification, Version 1.1 Draft, Functional Requirements, FR-DEPC-004
The Original Requirement states:
> //The system shall populate offline repositories in a disconnected environment from a transferable dependency/evidence bundle.//[[dido:02-crusible:99-annexes:annex-b:cr-001|[C1]]]
FR-DEPC-004:
* 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**
* Links [[dido:99_annexes:annex-b-terms-and-definitions:o:offline_repository|Offline Repository]] and [[dido:99_annexes:annex-b-terms-and-definitions:d:disconnected_environment|Disconnected Environment]] to their controlling definitions
* Replaces **transferable dependency/evidence bundle** with the controlled term [[dido:99_annexes:annex-b-terms-and-definitions:t:transfer_bundle|Transfer Bundle]]
* Retains the direct behavior **populate**
No other substantive normalization is required.
===== Rationale =====
An [[dido:99_annexes:annex-b-terms-and-definitions:o:offline_repository|Offline Repository]] makes dependencies and related content available within a [[dido:99_annexes:annex-b-terms-and-definitions:d:disconnected_environment|Disconnected Environment]] without requiring access to external repositories or network services.
Populating Offline Repositories from a [[dido:99_annexes:annex-b-terms-and-definitions:t:transfer_bundle|Transfer Bundle]] enables content produced or collected in a connected environment to become available for operations performed in the Disconnected Environment.
The populated content can include captured [[dido:99_annexes:annex-b-terms-and-definitions:b:build_dependency|Build Dependencies]] and associated metadata included in the Transfer Bundle.
This requirement establishes population of Offline Repositories without prescribing:
* A particular Offline Repository implementation
* A particular repository type
* A particular repository format
* A particular package manager
* A particular directory structure
* A particular import mechanism
* A particular [[dido:99_annexes:annex-b-terms-and-definitions:t:transfer_boundary|Transfer Boundary]]
* A particular [[dido:99_annexes:annex-b-terms-and-definitions:t:transfer_authorization|Transfer Authorization]]
* Transfer Bundle creation
* Transfer Bundle transport
* Dependency resolution
* Build execution
Separate requirements, architecture specifications, repository profiles, and transfer procedures 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:o:offline_repository|Offline Repositories]]
* [[dido:99_annexes:annex-b-terms-and-definitions:d:disconnected_environment|Disconnected Environments]]
* [[dido:99_annexes:annex-b-terms-and-definitions:t:transfer_bundle|Transfer Bundles]]
* Captured [[dido:99_annexes:annex-b-terms-and-definitions:b:build_dependency|Build Dependencies]]
===== Verification =====
Verification confirms that:
- A [[dido:99_annexes:annex-b-terms-and-definitions:t:transfer_bundle|Transfer Bundle]] containing one or more captured [[dido:99_annexes:annex-b-terms-and-definitions:b:build_dependency|Build Dependencies]] is selected for testing
- An [[dido:99_annexes:annex-b-terms-and-definitions:o:offline_repository|Offline Repository]] within a [[dido:99_annexes:annex-b-terms-and-definitions:d:disconnected_environment|Disconnected Environment]] is selected for testing
- [[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]] populates the selected Offline Repository from the Transfer Bundle
- Each selected Build Dependency can be identified in the populated Offline Repository
- The populated content remains available without access to an external repository or network service
- The population 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-004 as a leaf requirement.
----
===== Issues =====
Determine whether separate requirements identify the Offline Repository types that Crucible must populate.
Determine whether separate requirements define the metadata and dependency information preserved during Offline Repository population.
Determine whether separate requirements govern Transfer Bundle validation, integrity verification, and authorization before Offline Repository population.
----
===== Notes for Editors =====
This requirement page retains the stable requirement identifier ''FR-DEPC-004''.
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:o:offline_repository|Offline Repository]]
* [[dido:99_annexes:annex-b-terms-and-definitions:d:disconnected_environment|Disconnected Environment]]
* [[dido:99_annexes:annex-b-terms-and-definitions:t:transfer_bundle|Transfer Bundle]]
* [[dido:99_annexes:annex-b-terms-and-definitions:b:build_dependency|Build Dependency]]
The Statement addresses population of Offline Repositories in a Disconnected Environment from a Transfer Bundle.
FR-DEPC-001 governs capture of Build Dependencies.
FR-DEPC-002 governs preservation of captured Build Dependencies in a [[dido:99_annexes:annex-b-terms-and-definitions:d:dependency_store|Dependency Store]].
FR-DEPC-003 governs production of a Transfer Bundle.
FR-DEPC-005 governs Dependency Store implementation independence.
Do not add particular repository technologies, repository formats, package managers, import mechanisms, transfer methods, dependency-resolution behavior, or build-execution 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-004#Statement&noheader&nofooter&noeditbtn}}
----
© 2026 Dido Solutions, Inc. and Jackrabbit Consulting, Inc.