sebastiw / edts

Erlang Development Tool Suite
GNU Lesser General Public License v3.0
352 stars 82 forks source link

Please make some adjustments to satisfy Melpa requirements #282

Open tarsius opened 1 month ago

tarsius commented 1 month ago

Melpa requires that every package comes with a library whose name matches the name of the package. This package satisfies this basic requirement because elisp/edts/etds.el exists.

However, this file does have the expected content. Melpa extracts metadata from this library, i.e., it expects it to be the "main library" of the package. As a result the description of the edts package on Melpa is "Misc edts-related functionality" and a lot of metadata that is available for most packages is missing.

I am currently making some changes to package-build.el (the tool used to build the packages on Melpa) and that brought up an additional discrepancy:

package.el expects all elisp files to be located in the top-level directory of the package. This is not an absolute requirement and one can get around it, as you have done by (among other things) writing a rather complex Melpa recipe.

IMO it is okay that you do that, you probably have your reasons, but of course doing something that almost no other packages do, can lead to issues.

Due to some recent changes to package-build.el that "combine" the two rules (1) there must be a library matching the package name, and (2) libraries must be located at the top-level (except in very special cases), package-build.el now expects the "main library" to be located at the top-level.

I recommend that you address this like so:

  1. Rename elisp/edts/edts.el to something like elisp/edts/edts-misc.el.
  2. Add a new edts.el at the top-level, which contains all the required metadata.
    • Add a summary such as "Development tools for Erlang"
    • Add a Commentary: section with contents similar to the Introduction in the README.md.
    • Add library headers Author, URL, Keywords, Package-Version, Package-Requires and last but not least SPDX-License-Identifier.

Thanks!

tarsius commented 2 weeks ago

Friendly ping!

When I opened this issue, seven packages by four maintainers existed, which did not provide a library that matches the package name. We are now down to five packages by only two maintainers. The other remaining maintainer has already responded, but so far isn't convinced.

I therefore intend to make the switch soonish, at which point packages that don't provide this file, will have to be removed from Melpa.

Cheers!