>>>> "SY" == Steve Youngs
SY> Let me preface this by saying that I don't think I totally understand
SY> what you are trying to do here.
I want to be able to refer to the equivalent of the CVS keywords $Date
and $Name in the packages sources.
In emacs lisp I want to initialize build-version and
build-version-date from thme.
In texi sources I want them specify the curent release and release date.
SY> |--==> "APA" == Adrian Aichner <adrian(a)xemacs.org> writes:
APA> Hello Steve, All!
APA> In my build package I want to refer to latest version number and date
APA> of the package.
APA> How do I maintain synchronisity between version number and version
APA> date between documentation, Makefile, and sources?
SY> Not sure, but maybe this will help:
SY> (defun pkg-get-info (package information &optional remote)
SY> "Get INFORMATION about PACKAGE.
SY> Argument PACKAGE is the name of an XEmacs package (a symbol). It
SY> must be a valid package, ie, a member of either `pkg-std-packages' or
SY> Argument INFORMATION is a symbol that can be any one of:
SY> standards-version Package system version (not used).
SY> version Version of the XEmacs package.
SY> author-version The upstream version of the package.
SY> date The date the package was last modified.
SY> build-date The date the package was last built.
SY> maintainer The maintainer of the package.
SY> distribution Will always be \"xemacs\" (not used).
SY> priority \"low\", \"medium\", or
\"high\" (not used).
SY> category Either \"standard\" or \"mule\".
SY> dump Is the package dumped (not used).
SY> description A description of the package.
SY> filename The filename of the binary tarball of the package.
SY> md5sum The md5sum of filename.
SY> size The size in bytes of filename.
SY> provides A list of symbols that this package provides.
SY> requires A list of packages that this package requires.
SY> type Can be either \"regular\" or
SY> If optional argument REMOTE is non-nil use a package list from a
SY> remote site. For this to work `package-get-remote' must be non-nil.
SY> If this function is called interactively it will display INFORMATION
SY> in the minibuffer."
SY> (interactive "SPackage: \nSInfo: ")
SY> (let ((remote-site package-get-remote))
SY> (unless remote
SY> (setq package-get-remote nil))
SY> (package-get-require-base t)
SY> (let ((all-pkgs package-get-base)
SY> (if (package-get-key package :version)
SY> (loop until (equal package (caar all-pkgs))
SY> do (setq all-pkgs (cdr all-pkgs)))
SY> (setq info (plist-get (cadar all-pkgs) information))
SY> (if (interactive-p)
SY> (message "%s" info)))
SY> (setq package-get-remote remote-site)
SY> (error (format "%s is not a valid package" package))))
SY> (setq package-get-remote remote-site)))
APA> What's worse:
APA> Package Release Engineer controls version number in Makefile
SY> This shouldn't be a problem at all. Don't forget that as a package
SY> maintainer, Adrian, you only need to worry about $AUTHOR_VERSION, not
OK, I don't need to control $VERSION.
$AUTHOR_VERSION will do fine.
APA> Package build process controls date of package release.
SY> What's wrong with this?
When I commit package sources I cannot put in the correct release date
since it's unknown at this point.
APA> Developer/Maintainer needs to keep version number and date up-to-date
APA> in elisp and texi sources.
SY> Just the version number. 'date' and 'build-date' (see doc
SY> above function) are both generated.
I want to refer to release date in texi sources.
Is it a requirement for packages to build without cvs access to
If I could do this ...
all:: update-for-release $(ELCS) $(MULE_ELCS) auto-autoloads.elc custom-load.elc
cvs update -r $(AUTHOR_VERSION) -kv
... then I could use $Name in emacs lisp and texi sources.
Is this verboten?
APA> This can't work.
SY> Sure it can.
APA> What can we do?
SY> Well, possibly (hopefully) I've given you the tools to answer that.
SY> |---<Steve Youngs>---------------<GnuPG KeyID: 10D5C9C5>---|
SY> | XEmacs - It's not just an editor. |
SY> | It's a way of life. |