Search code examples
emacsmelpa

Building a package gives: Single file templates does not match package name


I want to update a package that originally was a single file. Now, it contains a directory with some files.

The original recipe was: (tikz :repo "emiliotorres/tikz" :fetcher github) And according to this, I think the new version must be (tikz :repo "emiliotorres/tikz" :fetcher github :files ("templates/*.el" "templates")) .

I copy the new version of emiliotorres/tikz into the local copy of melpa/package-build and

make -k recipes/tikz

And I get this error

 • Building package tikz ...
Package: tikz
Fetcher: github
Source:  https://github.com/emiliotorres/tikz.git
Updating /home/emilio/temp/melpa2/working/tikz/
Single file templates does not match package name tikz
make: [Makefile:111: recipes/tikz] Error 255 (no tiene efecto)

Are you so kindly as to provide me any hint?

Thank You!


Solution

  • According to the linked Melpa Readme, the following configuration should include enire directory templates into the package:

    (tikz :repo "emiliotorres/tikz"
          :fetcher github
          :files ("tikz.el" "templates"))
    

    An alternate approach, that eventually was chosen by the OP, also documented in MELPA Readme:

    If your package requires some additional files, but is otherwise fine with the defaults, it's recommended to use the special element :defaults as the very first element of the :files list, which causes the default value shown above to be prepended to the specified file list. For example :files (:defaults "snippets") would cause the "snippets" subdir to be copied in addition to the defaults.

    Hence, in the context of the question:

    (tikz :repo "emiliotorres/tikz"
          :fetcher github
          :files (:defaults "templates"))