Skip to content

pr use package definitions in install test - #1050

Open
matsl wants to merge 1 commit into
masterfrom
pr_use_package_definitions_in_install_test
Open

pr use package definitions in install test#1050
matsl wants to merge 1 commit into
masterfrom
pr_use_package_definitions_in_install_test

Conversation

@matsl

@matsl matsl commented Sep 4, 2026

Copy link
Copy Markdown
Collaborator

What

  • Refactor install-test to only run under docker
  • Remove install-local target
  • Makefile (install-elpa install-elpa-devel install-tarball
    install-melpa install-melpa-releases install-straight install-elpaca):
    Mount install-test folder in docker container and run test from there.
    (install-local): Remove target.

  • install-test/elpaca-early-init: New file for elpaca early init.

  • install-test/install-test.sh: Use shorter name, use interactive
    Emacs and simplify to the environment in the docker container.

  • install-test/MANIFEST: Add elpaca-early-init, remove local-emacs,
    rename local-install-test.sh to install-test.sh.

  • install-test/elpa-devel-emacs:
    install-test/elpa-emacs:
    install-test/elpaca-emacs:
    install-test/local-emacs:
    install-test/melpa-emacs:
    install-test/melpa-releases-emacs:
    install-test/straight-emacs: Added lexical-binding cookie, removed
    message about install, use use-package config and other small
    refactoring.

Why

Running in docker make the install test more isolated from the local
machine and by that a better test. Also less risk of causing issues in
the local machine.

@matsl
matsl marked this pull request as draft September 4, 2026 22:49
* Makefile (install-elpa install-elpa-devel install-tarball
install-melpa install-melpa-releases install-straight install-elpaca):
Mount install-test folder in docker container and run test from there.
(install-local): Remove target.

* install-test/elpaca-early-init: New file for elpaca early init.

* install-test/install-test.sh: Use shorter name, use interactive
Emacs and simplify to the environment in the docker container.

* install-test/MANIFEST: Add elpaca-early-init, remove local-emacs,
rename local-install-test.sh to install-test.sh.

* install-test/elpa-devel-emacs:
install-test/elpa-emacs:
install-test/elpaca-emacs:
install-test/local-emacs:
install-test/melpa-emacs:
install-test/melpa-releases-emacs:
install-test/straight-emacs: Added lexical-binding cookie, removed
message about install, use use-package config and other small
refactoring.
@matsl
matsl force-pushed the pr_use_package_definitions_in_install_test branch from 76e1e61 to b1ad3e5 Compare September 5, 2026 14:06
@matsl
matsl marked this pull request as ready for review September 5, 2026 14:08
@matsl
matsl requested a review from rswgnu September 5, 2026 14:08

@rswgnu rswgnu left a comment

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.

I am confused by all of the repetitive used package calls. I think installation test should be run two different ways per package manager: 1. Raw installation without any use package; 2. Testing installation after running the reference use-package we provide, which should not have to be replicated.

Let's discuss all this when you have time. Just put something on the calendar and I'll likely be able to make it.

-- Bob

@matsl

matsl commented Sep 5, 2026

Copy link
Copy Markdown
Collaborator Author

I am confused by all of the repetitive used package calls.

What repetitive calls? You mean that Emacs is started twice? The use-package definition is set in the user init.el file. Emacs is then started twice. First time does the install. The second time verifies that it still works. We had a regression at one time where Hyperbole worked in the session it was installed but not on the next run.

I think installation test should be run two different ways per package manager: 1. Raw installation without any use package; 2. Testing installation after running the reference use-package we provide, which should not have to be replicated.

What do you mean by replicated?

The idea with the current install test is two fold:

  1. Verify that the package at elpa, melpa etc can be installed.
  2. Verify that the install instructions we give works. I'm thinking that the use-package definition is our new preferred way for users to install Hyperbole so that is why I have dropped the old way to install.

There can be more paths to install a package. So installing first without any use-package definition is an option. Many users will likely do that. I'm not sure the extra complexity in the test is worth it though. ensure:t in our use-package definition installs the package if it is not there. So will essentially be the same as an install followed by a configuration.

@matsl
matsl requested a review from rswgnu September 5, 2026 21:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants