Skip to content

Tester: install the test support modules - #296

Merged
Davis-A merged 3 commits into
fastmail:mainfrom
Davis-A:package-tester
Sep 7, 2026
Merged

Davis-A merged 3 commits into
fastmail:mainfrom
Davis-A:package-tester

Conversation

@Davis-A

@Davis-A Davis-A commented Sep 6, 2026

Copy link
Copy Markdown
Member

Synergy::Tester and the Synergy::Test:: modules only existed under t/lib, so a package-installed Synergy had nothing to test modules vendored elsewhere with. Move them into lib/ alongside Channel::Test and Logger::Test. Their prereqs are suggests rather than requires: you need them to use the test support, not to run a hub.

Test::CommandPost also called Test::Deep and Sub::Install by full name without ever loading them, which only worked because its one caller loaded Test::Deep itself.

Comment thread dist.ini
IO::Async::Test = 0
Net::EmptyPort = 0
Sub::Install = 0
Test::Deep = 0

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

These shouldn't be Suggests, but TestRequires

@rjbs rjbs left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

lgtm but you should change the one prereq category

Davis-A and others added 3 commits September 7, 2026 05:56
Synergy::Tester and the Synergy::Test:: modules only existed under t/lib,
so a package-installed Synergy had nothing to test modules vendored
elsewhere with. Move them into lib/ alongside Channel::Test and
Logger::Test.

Moving them means AutoPrereqs takes their prereqs for runtime ones, so
declare those for the test phase instead, which is where they already were.

Test::CommandPost also called Test::Deep and Sub::Install by full name
without ever loading them, which only worked because its one caller loaded
Test::Deep itself.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Hub has called Sub::Install::install_sub since 2018 and CommandPost since
2022, and neither ever loaded Sub::Install. It works because the whole
thing is Moose based: Moose pulls in Sub::Exporter, which pulls in
Sub::Install, so it has always been in memory by the time those calls run.

It also means AutoPrereqs never saw it, since that only looks at use and
require, so an eight year old runtime prereq has gone undeclared.

It doesn't really matter but it's good hygiene to declare everything you
explicitly use.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@Davis-A
Davis-A merged commit aad7bd2 into fastmail:main Sep 7, 2026
6 checks passed
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