Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 34 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,37 @@
2026-09-13 Mats Lidell <matsl@gnu.org>

* Makefile (install-melpa-snapshots install-melpa-releases): Use
melpas new releases and snapshots archives. For all install test
targets add debug parameter and mount man/use-package for use by the
install-test.sh script.
(install-local): Remove target.

* install-test/MANIFEST: Add elpaca-early-init and
melpa-snapshot-emacs. Remove melpa-emacs and local-emacs. Rename
local-install-test.sh to install-test.sh.

* install-test/elpaca-early-init: Early init required by elpaca.

* install-test/elpa-devel-emacs:
* install-test/elpa-emacs:
* install-test/elpaca-emacs:
* install-test/melpa-releases-emacs:
* install-test/melpa-snapshots-emacs:
* install-test/straight-emacs:
* install-test/tarball-emacs: Remove use-package declaration and only
keep package manager aware install.

* install-test/melpa-emacs:
* install-test/local-emacs: Delete these old removed install tests.

* install-test/install-test.sh: Renamed from
local-install-test.sh. Add debug option

* MANIFEST: Add man/use-package.

* man/use-package: New file, use-package declaration in man folder for
use in documentation and in install tests.

2026-09-13 Bob Weiner <rsw@gnu.org>

* hywiki.el (hywiki-word-section-regexp): Fix that character after the
Expand Down
1 change: 1 addition & 0 deletions MANIFEST
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ ChangeLog - Summary of changes in recent GNU Hyperbole releases
* --- DOCUMENTATION ---
man/hy-package.el - Hyperbole package.el installation and configuration instructions

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Doesn't your additional 'use-package' file replace the configuration in man/hy-package.el; if so, update the description on that one.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, that is correct. My plan is to update the documentation to use the "new" use-package file but to do that in another PR. Not doing to much in each PR and partly unrelated. So man/hy-package.el is still used by the documentation so I leave it untouched here to be fixed later.

I would also want to discuss how the use-package declaration looks like and would want to do that before we update the docs.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rswgnu OK?

man/hy-straight.el - Hyperbole Straight installation and configuration instructions
man/use-package - Hyperbole use-package declaration
man/dir - GNU Hyperbole Info directory tree entry
man/hyperbole.html - The GNU Hyperbole Manual (web version)
man/hyperbole.info - The GNU Hyperbole Manual (GNU Info version)
Expand Down
29 changes: 18 additions & 11 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# Author: Bob Weiner
#
# Orig-Date: 15-Jun-94 at 03:42:38
# Last-Mod: 28-Aug-26 at 17:58:19 by Mats Lidell
# Last-Mod: 13-Sep-26 at 22:38:29 by Mats Lidell
#
# Copyright (C) 1994-2026 Free Software Foundation, Inc.
# See the file HY-COPY for license information.
Expand Down Expand Up @@ -645,17 +645,24 @@ docker-batch-tests:

# Hyperbole install tests - Verify that hyperbole can be installed
# using different sources. See folder "install-test"
.PHONY: install-elpa install-elpa-devel install-tarball install-straight install-all install-local
install-all: install-elpa install-elpa-devel install-melpa install-melpa-releases install-tarball install-straight install-local

install-elpa install-elpa-devel install-tarball install-melpa install-melpa-releases install-straight install-elpaca:
@echo "Install Hyperbole using $@"
(cd ./install-test/ && ./local-install-test.sh $(subst install-,,$@))

install-local:
install-targets := \
install-elpa \
install-elpa-devel \
install-melpa-snapshots \
install-melpa-releases \
install-tarball \
install-straight \
install-elpaca
.PHONY: install-all $(install-targets)
install-all: $(install-targets)
$(install-targets):
@echo "Install Hyperbole using $@"
(cd ./install-test/ && \
./local-install-test.sh $(subst install-,,$@) $(shell pwd) $(shell git rev-parse --abbrev-ref HEAD 2>/dev/null))
cd ./install-test/ && \
docker run \
--mount type=bind,source=$$(pwd)/,target=/hypb-install \
--mount type=bind,source=$$(pwd)/../man/use-package,target=/tmp/use-package.el \
-it --rm silex/emacs:${DOCKER_VERSION} \
bash -c "cd /hypb-install && ./install-test.sh $(subst install-,,$@) ${debug}"

.PHONY: lint
lint:
Expand Down
6 changes: 3 additions & 3 deletions install-test/MANIFEST
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
--- HYPERBOLE INSTALLATION TEST CONFIGURATIONS ---
elpa-devel-emacs - Elpa-devel package personal configuration
elpa-emacs - Elpa package personal configuration
elpaca-early-init - Early init file for elpaca
elpaca-emacs - Elpaca package configuration (elpa-devel install)
local-emacs - Straight git package from local repo and branch
local-install-test.sh - Run one or more test installations
melpa-emacs - Melpa legacy package personal configuration
install-test.sh - Run one or more test installations
melpa-snapshots-emacs - Melpa snapshots package personal configuration
melpa-releases-emacs - Melpa releases package personal configuration
straight-emacs - Straight git package personal configuration
tarball-emacs - Manual tarball personal configuration
Expand Down
12 changes: 5 additions & 7 deletions install-test/elpa-devel-emacs
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
;; .emacs
;;; -*- mode:emacs-lisp; lexical-binding: t; -*-

(require 'package)
(setq package-native-compile t)
(add-to-list 'package-archives '("gnu-devel" . "https://elpa.gnu.org/devel/"))
(unless (package-installed-p 'hyperbole)
(package-refresh-contents)
(package-install 'hyperbole))
(hyperbole-mode 1)

(message "%s" "Hyperbole successfully installed and activated")
(unless (locate-library "hyperbole")
(package-install 'hyperbole))

;;; End of elpa-devel-emacs
11 changes: 4 additions & 7 deletions install-test/elpa-emacs
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
;; .emacs
;;; -*- mode: emacs-lisp; lexical-binding: t; -*-

(require 'package)
(setq package-native-compile t)
(unless (package-installed-p 'hyperbole)
(package-refresh-contents)
(package-install 'hyperbole))
(hyperbole-mode 1)
(unless (locate-library "hyperbole")
(package-install 'hyperbole))

(message "%s" "Hyperbole successfully installed and activated")
;;; End elpa-emacs
3 changes: 3 additions & 0 deletions install-test/elpaca-early-init
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
;;; -*- lexical-binding: t; -*-

(setq package-enable-at-startup nil)
65 changes: 28 additions & 37 deletions install-test/elpaca-emacs
Original file line number Diff line number Diff line change
@@ -1,65 +1,56 @@
;; .emacs
;;; -*- mode: emacs-lisp; lexical-binding: t; -*-

;; elpaca
(defvar elpaca-installer-version 0.5)
(defvar elpaca-installer-version 0.12)
(defvar elpaca-directory (expand-file-name "elpaca/" user-emacs-directory))
(defvar elpaca-builds-directory (expand-file-name "builds/" elpaca-directory))
(defvar elpaca-repos-directory (expand-file-name "repos/" elpaca-directory))
(defvar elpaca-sources-directory (expand-file-name "sources/" elpaca-directory))
(defvar elpaca-order '(elpaca :repo "https://github.com/progfolio/elpaca.git"
:ref nil
:files (:defaults (:exclude "extensions"))
:build (:not elpaca--activate-package)))
(let* ((repo (expand-file-name "elpaca/" elpaca-repos-directory))
:ref nil :depth 1 :inherit ignore
:files (:defaults "elpaca-test.el" (:exclude "extensions"))
:build (:not elpaca-activate)))
(let* ((repo (expand-file-name "elpaca/" elpaca-sources-directory))
(build (expand-file-name "elpaca/" elpaca-builds-directory))
(order (cdr elpaca-order))
(default-directory repo))
(add-to-list 'load-path (if (file-exists-p build) build repo))
(unless (file-exists-p repo)
(make-directory repo t)
(when (< emacs-major-version 28) (require 'subr-x))
(when (<= emacs-major-version 28) (require 'subr-x))
(condition-case-unless-debug err
(if-let ((buffer (pop-to-buffer-same-window "*elpaca-bootstrap*"))
((zerop (call-process "git" nil buffer t "clone"
(plist-get order :repo) repo)))
((zerop (call-process "git" nil buffer t "checkout"
(or (plist-get order :ref) "--"))))
(emacs (concat invocation-directory invocation-name))
((zerop (call-process emacs nil buffer nil "-Q" "-L" "." "--batch"
"--eval" "(byte-recompile-directory \".\" 0 'force)")))
((require 'elpaca))
((elpaca-generate-autoloads "elpaca" repo)))
(if-let* ((buffer (pop-to-buffer-same-window "*elpaca-bootstrap*"))
((zerop (apply #'call-process `("git" nil ,buffer t "clone"
,@(when-let* ((depth (plist-get order :depth)))
(list (format "--depth=%d" depth) "--no-single-branch"))
,(plist-get order :repo) ,repo))))
((zerop (call-process "git" nil buffer t "checkout"
(or (plist-get order :ref) "--"))))
(emacs (concat invocation-directory invocation-name))
((zerop (call-process emacs nil buffer nil "-Q" "-L" "." "--batch"
"--eval" "(byte-recompile-directory \".\" 0 'force)")))
((require 'elpaca))
((elpaca-generate-autoloads "elpaca" repo)))
(progn (message "%s" (buffer-string)) (kill-buffer buffer))
(error "%s" (with-current-buffer buffer (buffer-string))))
((error) (warn "%s" err) (delete-directory repo 'recursive))))
(unless (require 'elpaca-autoloads nil t)
(require 'elpaca)
(elpaca-generate-autoloads "elpaca" repo)
(load "./elpaca-autoloads")))
(let ((load-source-file-function nil)) (load "./elpaca-autoloads"))))
(add-hook 'after-init-hook #'elpaca-process-queues)
(elpaca `(,@elpaca-order))

;; Install use-package support
(elpaca elpaca-use-package
;; Enable :elpaca use-package keyword.
(elpaca-use-package-mode)
;; Assume :elpaca t unless otherwise specified.
(setq elpaca-use-package-by-default t))
(elpaca-use-package-mode))

;; Block until current queue processed.
(elpaca-wait)

;; (setq package-native-compile t)
;; Install Hyperbole
(unless (locate-library "hyperbole")
(elpaca 'hyperbole
:files ("*" (:exclude "man" "man/*")))
(elpaca-wait))

(use-package hyperbole
:pin #:elpa-devel
:elpaca (:files ("*" "man/*" (:exclude "man"))))

(elpaca-process-queues)
(elpaca-wait)

;; (unless (package-installed-p 'hyperbole)
;; (package-refresh-contents)
;; (package-install 'hyperbole))
(elpaca nil (hyperbole-mode 1))

(elpaca nil (message "%s" "Hyperbole successfully installed and activated"))
;;; End elpaca-emacs
43 changes: 43 additions & 0 deletions install-test/install-test.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
#!/bin/bash

echo *** Install test ***

set -e

im="$1"
[[ -n "$2" ]] && debug="t"

mkdir -p ${HOME}/.emacs.d

[ -e ${im}-install-local.sh ] && ./${im}-install-local.sh

cp ${im}-emacs ${HOME}/.emacs.d/init.el
cat /tmp/use-package.el >> ${HOME}/.emacs.d/init.el
[ -e ${im}-early-init ] && cp ${im}-early-init ${HOME}/.emacs.d/early-init.el

cd $HOME

# Debug - before install
[[ -n "$debug" ]] && bash

# Initial startup will install Hyperbole
emacs -nw --eval "(kill-emacs 0)"

# Verify installation
if emacs -nw \
--eval "(kill-emacs
(if (and (featurep (quote hyperbole))
(bound-and-true-p hyperbole-mode))
0
1))"
then
echo -e "\n\n*** Hyperbole ${im} installed OK ***\n\n"
else
echo -e "\n\n*** ERROR: Hyperbole ${im} was not installed properly ***\n\n"
# Inspect the installation on error
bash
exit 1
fi

# Debug - after install
[[ -n "$debug" ]] && bash
29 changes: 0 additions & 29 deletions install-test/local-emacs

This file was deleted.

41 changes: 0 additions & 41 deletions install-test/local-install-test.sh

This file was deleted.

12 changes: 0 additions & 12 deletions install-test/melpa-emacs

This file was deleted.

12 changes: 5 additions & 7 deletions install-test/melpa-releases-emacs
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
;; .emacs
;;; -*- mode: emacs-lisp; lexical-binding: t; -*-

(require 'package)
(setq package-native-compile t)
(add-to-list 'package-archives '("melpa-releases" . "https://releases.melpa.org/packages/"))
(setq package-pinned-packages '((hyperbole . "melpa-releases")))
(unless (package-installed-p 'hyperbole)
(package-refresh-contents)
(package-install 'hyperbole))
(hyperbole-mode 1)

(message "%s" "Hyperbole successfully installed and activated")
(unless (locate-library "hyperbole")
(package-install 'hyperbole))

;;; End melpa-releases
10 changes: 10 additions & 0 deletions install-test/melpa-snapshots-emacs
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
;;; -*- mode: emacs-lisp; lexical-binding: t; -*-

(require 'package)
(add-to-list 'package-archives '("melpa-snapshots" . "https://snapshots.melpa.org/packages/"))
(setq package-pinned-packages '((hyperbole . "melpa-snapshots")))

(unless (locate-library "hyperbole")
(package-install 'hyperbole))

;;; End melpa-snapshots-emacs
Loading