← Back to all sparks
D

datapack

ANALYTICS
Velocity0.0

An R package to handle data packages. Contribute to ropensci/datapack development by creating an account on GitHub.

The DataONE bundler learned to edit packages in 2017 and has coasted on that ever since

research-datadataoneprovenancebagitarchivingmaintenance-mode
Current state
datapack assembles heterogeneous data files and metadata into a single transportable bundle, serialised as an OAI-ORE resource map and BagIt archive, for deposit into repositories like DataONE. Its functional surface settled with the 1.3.x line, which made assembled packages editable rather than write-once. Since then the releases have been sparse and defensive: SHA-256 as the default checksum in 1.4.0, BagIt spec conformance in 1.4.1, and a 2025 patch that states outright it contains no new features.
Where it's heading
The arc runs from assembly to correctness of the resulting archive. Later releases keep tightening the metadata the resource map must carry — dc:creator always present, dcterms:modified always updated, the package correctly flagged as modified after any access-policy change — because a bundle whose provenance record is subtly wrong is worse than one that fails outright. The three-year gap between 1.4.1 and 1.4.2, and the latter's CRAN-note content, place this package firmly in preservation.
Prediction
Expect the next release, if any, to be another CRAN-compliance patch rather than functional work. The 1.4.2 note that it contains no new features is the clearest statement in the feed about where this package sits.

Recent moves

  1. 10mo ago

    CRAN documentation and CI cleanup

    A patch that says so itself — documentation fixes for CRAN notes, spelling and URL corrections, and a CI workflow updated to run full CRAN checks. Explicitly no new features.

    View source ↗
  2. 4y ago

    BagIt serialisation brought in line with the current spec

    Refactors BagIt serialisation to match the updated specification, which is what keeps datapack's output readable by other BagIt tooling rather than only by itself. The rest is dependency and idiom cleanup — the hash package dropped, LazyData removed, class() comparisons replaced with inherits().

    View source ↗
  3. 5y ago

    SHA-256 becomes the default checksum algorithm

    Makes SHA-256 the default hash algorithm and exposes a checksumAlgorithm argument on DataObject, so every newly created package records a stronger checksum without callers asking. A targetPath argument also lets an object declare its prov:atLocation, which matters for provenance records that need to describe where a file lived.

    View source ↗
  4. 6y ago

    Resource map metadata guaranteed; removeRelationships() added

    Closes a set of resource-map correctness gaps: dc:creator is now always present, dcterms:modified is always set and updated, and a package is correctly marked modified after addAccessRule, setPublicAccess or clearAccessPolicy. Adds removeRelationships() to strip all or selected relationships from a package.

    View source ↗
  5. 8y ago

    updateMetadata no longer drops package relationships

    Fixes a bug in updateMetadata() that dropped the metadata object's package relationships — a silent structural loss in exactly the editing workflow 1.3.0 had introduced one release earlier. Described in the entry as critical, and the classification of the defect matches the risk.

    View source ↗
  6. 9y ago

    Assembled data packages become editable in place

    ⚡ SPARK

    Adds the methods that make an assembled package editable — removeMember, replaceMember, selectMember, updateRelationships, updateMetadata, getValue, setValue — and lets access-policy methods act directly on a DataPackage, DataObject or SystemMetadata. Everything the package has shipped since is either repairing this editing path or hardening the archive it produces.

    View source ↗