#63 Refactor as a wrapper with the old API around libmodulemd/GI
Closed by nphilipp. Opened by nphilipp.
nphilipp/modulemd master--libmodulemd-wrapper  into  master

Download 63.patch

Additionally:

  • get rid of the outdated RPM spec file, spec.yaml (link to up-to-date copy in libmodulemd), tox tests (which don't seem to play well with gobject introspection)
  • tidy up some things

Hmm, bumping the version a second time is a bit excessive.

48 new commits added

  • link libmodulemd spec.yaml
  • instead of tox, describe running unit tests at least
  • using tox for testing doesn't work
  • document that modulemd is a wrapper
  • remove RPM spec file
  • remove spec comments and add explanation
  • move spec.yaml to tests and rename
  • update copyright terms
  • fix broken hash-bangs
  • use TreeObj/RPMsMixin based classes in ModuleMetadata
  • migrate ModuleProfile to TreeObj
  • migrate ModuleComponent* to TreeObj
  • migrate ModuleBuildopts* to TreeObj
  • migrate ModuleFilter to TreeObj/RPMsMixin
  • migrate ModuleArtifacts to TreeObj/RPMsMixin
  • migrate ModuleAPI to TreeObj/RPMsMixin
  • make variant*() methods real class/static methods
  • fix servicelevels property setter
  • allow unsetting eol date
  • reset tree new-style
  • pep8: remove unused imports, reformat some things
  • don't fake long type in Python 3
  • use relative imports within modulemd package
  • add TreeObj and RPMsMixin classes
  • reformat license and copyright headers
  • implement ModuleComponent(RPM|Module).eq()
  • components: cope with native objects in setters
  • only use libmodulemd functions in init()
  • convert ModuleComponents etc. to libmodulemd
  • don't overwrite self._buildopts on each access
  • make pyflakes complain less
  • import gobject-introspected modules early
  • split up monolithic test method
  • fix typo
  • update required libmodulemd version
  • Convert ModuleProfile to libmodulemd
  • Add support for securitylevels
  • Convert ModuleBuildopts to libmodulemd
  • Convert licenses to Modulemd
  • restore accidentally deleted repr() calls
  • Implement ModuleArtifacts
  • Implement ModuleFilter
  • Implement ModuleAPI
  • Parse xmd input into GLib.Variants
  • Load and dump using libmodulemd
  • First pass at updating the main modulemd.ModuleMetadata
  • Bump version to 1.4.0dev
  • Undo ordered dict code in prep for libmodulemd wrapper

@nphilipp - do you have a reviewer lined up for this? I know it is probably pending changes in the underlying libmodulemd being worked on by @sgallagh.

Should we seek out a specific reviewer for this?

(Getting this merged and released on top of the new v2 support in libmodulemd will (I think) block getting Factory serviced ported over.. that is, unless the libmodulemd lib itself provides its own compatible python interface.)

edit: that, in turn, will block things like stream expansion.

Libmodulemd does provide its own python interface, but it’s not compatible with the earlier one. We had created this wrapper to be a drop-in replacement, but the v2 format requires changing the API as well, so we are recommending that you port to the libmodulemd API.

Even if we update these patches, they won’t be a drop-in replacement because the handling for module dependencies have changed.

Yeah, last week we decided that while the wrapper as such is finished, maintaining it doesn't make much sense in the light of the API changes. Aw, shucks. ;)

Pull-Request has been closed by nphilipp

Metadata