Subject: Re: bug#53805: 27.2; NonGNU ELPA: helm does not install dependencies

From: Stefan Monnier <[email-masked]>
Date: Sun, 06 Feb 2022 11:21:07 -0500

>> What is the issue in this case?  The ELPAs already have packages that
>> share common upstream repositories.  The main issue here that I see is
>> that helm.el and helm-core.el
> There is no helm-core.el file.

Then create one.  It doesn't need to hold anything else than the usual header.
[ Tho, in NonGNU ELPA we work around this currently by telling to use
  `helm.el` instead.  ]

IOW I suggest the patch below (which also fixes some inconsistencies
between the info in `helm.el` and in `helm-pkg.el`).

BTW, is "Development files for Helm" really a good description?
To me it would indicate that it's a package with a similar role to
Debian's <foo>-dev packages, i.e. a package only needed if you're
developing code for Helm, rather than if you merely use the Helm tools.

        Stefan

diff --git a/.gitignore b/.gitignore
index 46bc97419b..e734827684 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,5 +3,8 @@ patch*
 *.patch
 *.diff
 TAGS
-helm-autoloads.el
+/helm-autoloads.el
+/helm-core-autoloads.el
+/helm-pkg.el
+/helm-core-pkg.el
 ID
diff --git a/helm-core-pkg.el b/helm-core-pkg.el
deleted file mode 100644
index 9ea9fbaaaf..0000000000
--- a/helm-core-pkg.el
+++ /dev/null
@@ -1,11 +0,0 @@
-;;; helm-core-pkg.el --- define helm-core for package.el
-
-(define-package "helm-core" "3.8.4"
-  "Development files for Helm"
-  '((emacs "25.1")
-    (async "1.9.4"))
-  :url "https://emacs-helm.github.io/helm/")
-
-;; Local Variables:
-;; no-byte-compile: t
-;; End:
diff --git a/helm-core.el b/helm-core.el
new file mode 100644
index 0000000000..861492eece
--- /dev/null
+++ b/helm-core.el
@@ -0,0 +1,33 @@
+;;; helm-core.el --- Development files for Helm  -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2022  Thierry Volpiatto
+
+;; Author: Thierry Volpiatto <[email-masked]>
+;; URL: https://emacs-helm.github.io/helm/
+;; Version: 3.8.4
+;; Package-Requires: ((emacs "25.1") (async "1.9.4"))
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This is just a place holder we currently use only to hold the package's
+;; metadata in the header.
+
+;;; Code:
+
+
+
+(provide 'helm-core)
+;;; helm-core.el ends here
diff --git a/helm-pkg.el b/helm-pkg.el
deleted file mode 100644
index 6d0a91c5d5..0000000000
--- a/helm-pkg.el
+++ /dev/null
@@ -1,13 +0,0 @@
-;;; helm-pkg.el --- define helm for package.el
-
-(define-package "helm" "3.8.4"
-  "Helm is an Emacs incremental and narrowing framework"
-  '((emacs "25.1")
-    (async "1.9.4")
-    (popup "0.5.3")
-    (helm-core "3.8.4"))
-  :url "https://emacs-helm.github.io/helm/")
-
-;; Local Variables:
-;; no-byte-compile: t
-;; End:
diff --git a/helm.el b/helm.el
index f54e193344..fbf4637d94 100644
--- a/helm.el
+++ b/helm.el
@@ -1,7 +1,4 @@
-;;; helm.el --- Emacs incremental and narrowing framework -*- lexical-binding: t -*-
-
-;; Version: 3.8.3
-;; URL: https://github.com/emacs-helm/helm
+;;; helm.el --- Helm is an Emacs incremental and narrowing framework  -*- lexical-binding: t -*-
 
 ;; Copyright (C) 2007         Tamas Patrovics
 ;;               2008 ~ 2011  rubikitch <[email-masked]>
@@ -14,7 +11,11 @@
 ;;                         Thierry Volpiatto <[email-masked]>
 
 ;; Author: Thierry Volpiatto <[email-masked]>
-;; URL: http://github.com/emacs-helm/helm
+;; Version: 3.8.4
+;; URL: https://emacs-helm.github.io/helm/
+;; FIXME: The `emacs' and `async' requirements are already satisfied by
+;; `helm-core', so maybe we don't need them here?
+;; Package-Requires: ((emacs "25.1") (async "1.9.4") (popup "0.5.3") (helm-core "3.8.4"))
 
 ;; This program is free software; you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by