Sha256: 607c7fa03fae17c9f0985e2f8496be44cf88d22f14f283aae542468a423f1150

Contents?: true

Size: 1.86 KB

Versions: 1

Compression:

Stored size: 1.86 KB

Contents

# TODO (Features, Tests et al.)

* If a file is not an RPM, every attempt to read anything should misreably
  fail.
* Add control logic to verify if a file exists before creating a new RPM in
  Rupture::RPM#load
* describe RPM::Lead it fails nicely when architecture is unknown -> def arch
  return @@arch_map[@archnum] || "unknown"
* Recognize all architectures
* Edge case: verify correct idenfitication of `noarch`
* Recognize all the OSes (maybe also add `osnum` method?)
* How to fail when os is not recognized?
* Document references to RPM spec docs and source code
* Document Rupture::RPM::Lead (summarize structure and purpose from rpm file
  format document)
* Return nil or "" as md5 if no signature found (this means not creating the
  signature if lead says no). Consider also this: if a signature is found and
  md5 is not present, then mandatory rules are not violated. Finally, I'm not
  sure it's so optional to include a signature; I suspect it's mandatory
  (perhaps because md5 is mandatory?).
* Document Rupture::RPM::Signature::Index::Entry class (in particular, how the
  meaning of the `count` field changes with data type
* Store#get error handling. Pass nil, out of bound address, non-numerical
  address
* Use actual size contained in the signature to calculate checksum?
* Remember that signature is not mandatory in RPM!
* It looks like size is also a form of signature, in the sense that RPM uses
  the stored value to check actual size of header + payload (or did I
  understood wrong?).
* I18N ???

# Roadmap

* Pick the entry type table. For each type, pick a meaningful header tag (like
  name, file list, etc.) to derive a feature to be implemented. At the end, all
  types should be correctly handled
* Decide a sensible behaviour for missing mandatory tags. Then, pick all
  mandatory header tags and build a feature for them if not already covered
  with previous method.

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rupert-0.0.1 TODO.md