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-decoders | List of decoders for version strings. |
inversion-find-data | Regexp template and match data index of a version string. |
inversion-incompatible-version | An earlier release which is incompatible with this release. |
inversion-package-common-tails | Common distribution mechanisms for Emacs Lisp packages. |
inversion-version | Current 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) |