Skip to content

fix: clean up Makefile.PL metadata and dead defines#144

Merged
atoomic merged 2 commits into
cpan-authors:mainfrom
toddr-bot:koan.toddr.bot/fix-makefile-metadata
Apr 3, 2026
Merged

fix: clean up Makefile.PL metadata and dead defines#144
atoomic merged 2 commits into
cpan-authors:mainfrom
toddr-bot:koan.toddr.bot/fix-makefile-metadata

Conversation

@toddr-bot
Copy link
Copy Markdown
Contributor

@toddr-bot toddr-bot commented Mar 26, 2026

What

Clean up build configuration: proper test dependency classification, dead code removal, modern metadata format.

Why

  • Test::More was listed as a runtime dependency (PREREQ_PM) but is only needed for testing. This causes CPAN to track it as a runtime dep in META files.
  • -DPERL5 and -DOPENSSL_NO_KRB5 compiler defines are referenced nowhere in the source — they were workarounds for gcc 3.2 (Perl 5.8) and Red Hat 9, both from 2003.
  • META_MERGE used CPAN META spec 1.4 flat format. Spec 2.0 structured format gives MetaCPAN better repository/bugtracker display.

How

  • Test::More moved to TEST_REQUIRES (EUMM 6.64+, available since 2013)
  • Dead -DPERL5 -DOPENSSL_NO_KRB5 removed from DEFINE
  • resources updated to nested hash format per META spec 2.0
  • Stale build_requires block removed (superseded by TEST_REQUIRES)

Testing

Full test suite: 507 tests pass. Build succeeds with empty DEFINE.

🤖 Generated with Claude Code


Quality Report

Changes: 1 file changed, 15 insertions(+), 11 deletions(-)

Code scan: clean

Tests: passed (OK)

Branch hygiene: clean

Generated by Kōan post-mission quality pipeline

@atoomic atoomic requested a review from Koan-Bot March 31, 2026 20:22
@Koan-Bot
Copy link
Copy Markdown
Contributor

PR Review — fix: clean up Makefile.PL metadata and dead defines

Clean, well-motivated build config cleanup. The EUMM version bump to 6.64 is correct for TEST_REQUIRES (available since 2013, well within the project's practical support range). META spec 2.0 structured format is properly applied — license as arrayref, bugtracker/repository as nested hashes. Dead compiler defines (-DPERL5, -DOPENSSL_NO_KRB5) are safely removed since they're unreferenced in source. The build_requires removal from META_MERGE is correct since TEST_REQUIRES now handles that metadata. Merge-ready.


🟢 Suggestions

1. Consider removing empty DEFINE entirely (Makefile.PL, L30)
With both defines removed, 'DEFINE' => '' is a no-op. You could remove the key entirely for cleaner config. Keeping it is harmless but adds a line that does nothing. Minor preference — not blocking.

'DEFINE' => '',

Checklist

  • No hardcoded secrets
  • No security-relevant changes
  • Build config correctness

Summary

Clean, well-motivated build config cleanup. The EUMM version bump to 6.64 is correct for TEST_REQUIRES (available since 2013, well within the project's practical support range). META spec 2.0 structured format is properly applied — license as arrayref, bugtracker/repository as nested hashes. Dead compiler defines (-DPERL5, -DOPENSSL_NO_KRB5) are safely removed since they're unreferenced in source. The build_requires removal from META_MERGE is correct since TEST_REQUIRES now handles that metadata. Merge-ready.


Automated review by Kōan

Copy link
Copy Markdown
Member

@timlegge timlegge left a comment

Choose a reason for hiding this comment

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

Approved - looks fine

@timlegge timlegge marked this pull request as ready for review April 3, 2026 15:50
@Koan-Bot
Copy link
Copy Markdown
Contributor

Koan-Bot commented Apr 3, 2026

PR Review — fix: clean up Makefile.PL metadata and dead defines

Clean, correct build config cleanup. TEST_REQUIRES properly classifies Test::More as a test-only dependency, dead compiler defines from 2003 are safely removed (confirmed unreferenced in source), and META spec 2.0 structured format is correctly applied. The EUMM version bump to 6.64 is the minimum needed for TEST_REQUIRES and is widely available. No blocking issues. Merge-ready.


🟢 Suggestions

1. EUMM 6.64 minimum may break very old toolchains (`Makefile.PL`, L5)

Bumping from 6.48 to 6.64 is correct for TEST_REQUIRES support, but worth noting in the changelog. EUMM 6.64 shipped with Perl 5.19.6 (Dec 2013) and is available on CPAN for older perls. Since the project already targets 5.006 minimum, any user on an ancient Perl without EUMM 6.64 will now get a configure-time failure instead of a silent misclassification of Test::More. This is the right trade-off, just flagging for awareness.

use ExtUtils::MakeMaker 6.64;
2. Empty DEFINE string is a no-op (`Makefile.PL`, L30)

With both dead defines removed, 'DEFINE' => '' passes an empty string to the compiler flags. This is harmless but unnecessary — removing the key entirely would be slightly cleaner. Keeping it as a placeholder for future defines is also a valid choice. Non-blocking either way.

'DEFINE' => '',

Checklist

  • No hardcoded secrets
  • No security-relevant changes
  • Build config correctness

Summary

Clean, correct build config cleanup. TEST_REQUIRES properly classifies Test::More as a test-only dependency, dead compiler defines from 2003 are safely removed (confirmed unreferenced in source), and META spec 2.0 structured format is correctly applied. The EUMM version bump to 6.64 is the minimum needed for TEST_REQUIRES and is widely available. No blocking issues. Merge-ready.


Automated review by Kōan

@timlegge
Copy link
Copy Markdown
Member

timlegge commented Apr 3, 2026

@toddr-bot rebase from main

toddr-bot and others added 2 commits April 3, 2026 23:18
- Move Test::More from PREREQ_PM to TEST_REQUIRES (it's a test-only
  dep, not a runtime dep). Bump EUMM to 6.64 for TEST_REQUIRES support.
- Remove dead -DPERL5 and -DOPENSSL_NO_KRB5 defines. Neither symbol
  is referenced in the source; they were workarounds for gcc-3.2 and
  Red Hat 9 (both circa 2003).
- Update META_MERGE to CPAN META spec 2.0 format with structured
  repository/bugtracker entries for better MetaCPAN integration.
- Remove stale build_requires (now handled by TEST_REQUIRES).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Removed no-op `'DEFINE' => ''` line from `Makefile.PL` per reviewer suggestion — with both dead defines (`-DPERL5`, `-DOPENSSL_NO_KRB5`) already removed, the empty string is unnecessary and removing the key entirely is cleaner.
@toddr-bot
Copy link
Copy Markdown
Contributor Author

Rebase: fix: clean up Makefile.PL metadata and dead defines

Branch koan.toddr.bot/fix-makefile-metadata rebased onto main and force-pushed.

Diff: 1 file changed, 14 insertions(+), 11 deletions(-)

Review feedback was analyzed and applied.

Changes

  • Removed no-op 'DEFINE' => '' line from Makefile.PL per reviewer suggestion — with both dead defines (-DPERL5, -DOPENSSL_NO_KRB5) already removed, the empty string is unnecessary and removing the key entirely is cleaner.

Actions

  • Already-solved check: negative (confidence=high, reasoning=None of the recent commits on main address Makefile.PL metadata cleanup — the closest commit (fc93bf)
  • Resolved merge conflicts (1 round(s))
  • Rebased koan.toddr.bot/fix-makefile-metadata onto upstream/main
  • Applied review feedback
  • Force-pushed koan.toddr.bot/fix-makefile-metadata to origin
  • CI check enqueued (async)

CI

CI will be checked asynchronously.


Automated by Kōan

@toddr-bot toddr-bot force-pushed the koan.toddr.bot/fix-makefile-metadata branch from 1abfadf to b4fe820 Compare April 3, 2026 23:19
@Koan-Bot
Copy link
Copy Markdown
Contributor

Koan-Bot commented Apr 3, 2026

PR Review — fix: clean up Makefile.PL metadata and dead defines

Clean build config cleanup. TEST_REQUIRES with EUMM 6.64 is correct, META spec 2.0 structured format is properly applied, dead defines safely removed. The rebase already incorporated the reviewer suggestion to remove the empty DEFINE key entirely. No blocking issues.



Checklist

  • No hardcoded secrets
  • Build config correctness
  • No security-relevant changes

Summary

Clean build config cleanup. TEST_REQUIRES with EUMM 6.64 is correct, META spec 2.0 structured format is properly applied, dead defines safely removed. The rebase already incorporated the reviewer suggestion to remove the empty DEFINE key entirely. No blocking issues.


Automated review by Kōan

@Koan-Bot
Copy link
Copy Markdown
Contributor

Koan-Bot commented Apr 3, 2026

PR Review — fix: clean up Makefile.PL metadata and dead defines

Clean, correct build config cleanup. EUMM 6.64 bump is the right minimum for TEST_REQUIRES. Test::More properly reclassified as test dependency. Dead compiler defines safely removed (unreferenced in source). META spec 2.0 structured format correctly applied — license as arrayref, bugtracker/repository as nested hashes. The stale build_requires removal is correct since TEST_REQUIRES now generates the equivalent metadata. No blocking issues.



Checklist

  • No hardcoded secrets
  • No security-relevant changes
  • Build config correctness

Summary

Clean, correct build config cleanup. EUMM 6.64 bump is the right minimum for TEST_REQUIRES. Test::More properly reclassified as test dependency. Dead compiler defines safely removed (unreferenced in source). META spec 2.0 structured format correctly applied — license as arrayref, bugtracker/repository as nested hashes. The stale build_requires removal is correct since TEST_REQUIRES now generates the equivalent metadata. No blocking issues.


Automated review by Kōan

@Koan-Bot
Copy link
Copy Markdown
Contributor

Koan-Bot commented Apr 3, 2026

PR Review — fix: clean up Makefile.PL metadata and dead defines

Clean build config cleanup. EUMM bump to 6.64 is correct for TEST_REQUIRES. META spec 2.0 structured format is properly applied. Dead defines safely removed. No blocking issues.



Checklist

  • No hardcoded secrets
  • Build config correctness
  • No security-relevant changes

Summary

Clean build config cleanup. EUMM bump to 6.64 is correct for TEST_REQUIRES. META spec 2.0 structured format is properly applied. Dead defines safely removed. No blocking issues.


Automated review by Kōan

@atoomic atoomic merged commit 1f32d81 into cpan-authors:main Apr 3, 2026
28 checks passed
@Koan-Bot
Copy link
Copy Markdown
Contributor

Koan-Bot commented Apr 3, 2026

PR Review — fix: clean up Makefile.PL metadata and dead defines

Clean build config cleanup. EUMM 6.64 bump is correct for TEST_REQUIRES, META spec 2.0 structured format is properly applied, dead defines are safely removed. The rebase incorporated reviewer feedback to remove the no-op empty DEFINE line. No blocking issues.



Checklist

  • No hardcoded secrets
  • Build config correctness
  • No security-relevant changes

Summary

Clean build config cleanup. EUMM 6.64 bump is correct for TEST_REQUIRES, META spec 2.0 structured format is properly applied, dead defines are safely removed. The rebase incorporated reviewer feedback to remove the no-op empty DEFINE line. No blocking issues.


Automated review by Kōan

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.

4 participants