File: inversion.el.html

Keeping track of rapidly developing software is a tough thing to do, especially if you want to have co-dependent packages which all move at different rates.

This library provides a framework for specifying version numbers and (as side effect) have a flexible way of getting a desired feature set.

If you would like to use this package to satisfy dependency replace this:

(require 'spiffy)

with this:

(require 'inversion)
(inversion-require 'spiffy "1.0")

If you feel the need to not throw errors, you can do this instead:

(let ((err (inversion-test 'spiffy "1.0")))
   (if err (your-stuff-here)))

If you new package (2.0) needs to make sure a load file from your package is compatible, use this test:

(if (not (inversion-reverse-test 'spiffy version-from-file))
      ;; Everything ok
      (do stuff)
   ;; Out of date
   (import-old-code))

If you would like to make inversion optional, do this:

(or (require 'inversion nil t)
    (defun inversion-test (p v)
      (string= v (symbol-value
(intern-soft (concat (symbol-string p) "-version"))))))

Or modify to specify inversion-require instead.

TODO:
 Offer to download newer versions of a package.

Defined variables (5)

inversion-decodersList of decoders for version strings.
inversion-find-dataRegexp template and match data index of a version string.
inversion-incompatible-versionAn earlier release which is incompatible with this release.
inversion-package-common-tailsCommon distribution mechanisms for Emacs Lisp packages.
inversion-versionCurrent version of InVersion.

Defined functions (17)

inversion-<(VER1 VER2)
inversion-=(VER1 VER2)
inversion-add-to-load-path(PACKAGE MINIMUM &optional INSTALLDIR &rest SUBDIRS)
inversion-check-version(VERSION INCOMPATIBLE-VERSION MINIMUM &rest RESERVED)
inversion-decode-version(VERSION-STRING)
inversion-download-package-ask(ERR PACKAGE DIRECTORY VERSION)
inversion-find-version(PACKAGE)
inversion-locate-package-files(PACKAGE DIRECTORY &optional VERSION)
inversion-locate-package-files-and-split(PACKAGE DIRECTORY &optional VERSION)
inversion-package-incompatibility-version(PACKAGE)
inversion-package-version(PACKAGE)
inversion-recode(CODE)
inversion-release-to-number(RELEASE-SYMBOL)
inversion-require(PACKAGE VERSION &optional FILE DIRECTORY &rest RESERVED)
inversion-require-emacs(EMACS-VER XEMACS-VER SXEMACS-VER)
inversion-reverse-test(PACKAGE OLDVERSION &rest RESERVED)
inversion-test(PACKAGE MINIMUM &rest RESERVED)

Defined faces (0)