Skip to content

Releases: kraenzle-ritter/eark-ip

v0.1.3

Choose a tag to compare

@ottosmops ottosmops released this 20 Oct 16:17

Fixed

  • The writer checks every file it copies into a package. Before, FileContent only checked that copy() did not return false, SourceContent and StringContent did not check at all, and SIZE and CHECKSUM in the METS were computed from the copy: a copy cut short (disk full, read error, ZIP entry ending early) carried its own matching checksum and passed validation. Now the data goes to a temporary name, hashed while it is read, the copy is compared with what was read and with the size of the source, and only then renamed into place; otherwise CopyNotVerifiedException (an EarkIpException) and nothing is left at the target, so no package is written (agate#12).

v0.1.2

Choose a tag to compare

@ottosmops ottosmops released this 20 Oct 12:41

Changed

  • The writer writes application/octet-stream into @MIMETYPE when the IANA does not register the given type, e.g. audio/x-wav; commons-ip reports such types as an error of CSIP68 and WAV has no registered type at all. RepresentationBuilder::file() takes the PRONOM PUID as fourth argument; in a SIP it is written as sip:FILEFORMATREGISTRY="PRONOM" and sip:FILEFORMATKEY. AipBuilder and DipBuilder carry PUIDs over from the source package.
  • The validator reports every media type the IANA does not register as a warning under CSIP68, x-, vnd. and prs. types included (before: those passed silently).
  • MediaTypes moved from KraenzleRitter\EarkIp\Validation\Rules to KraenzleRitter\EarkIp.

Fixed

  • CSIPSTR15 no longer reports XML schemas that are content of a representation (representations/*/data/) as misplaced, e.g. the header/xsd/ of an eCH-0160 delivery.

v0.1.1

Choose a tag to compare

@ottosmops ottosmops released this 20 Oct 09:55

Fix: the writer always creates documentation/ (and in each representation), so that the Documentation division of the structMap leads to a folder; commons-ip reported CSIP107 for packages without documentation.

v0.1.0

Choose a tag to compare

@ottosmops ottosmops released this 20 Oct 09:47

First release. Reads, validates and writes E-ARK information packages (CSIP, SIP, AIP, DIP; versions 2.2.0 and 2.1.0) in plain PHP.

  • Validator: one finding per requirement (CSIP1–119, SIP1–35, AIPM1–7, DIP1–4, CSIPSTR1–16), offline XSD, integrity, JSON report; passes all testable cases of the DILCIS IP test corpus (3 self-contradicting cases documented).
  • Reader: folder or ZIP into an immutable model, without unpacking; refuses unsafe archives.
  • Writer: SIP, AIP (from a SIP, with PREMIS 3 ingest event) and DIP (from an AIP); written packages are reported VALID by commons-ip 2.12.1.
  • CLI: eark-ip validate|info|create.

Not yet: TAR packages.