Skip to content

feat: remove LLM agent development helper documents - #63

Open
okurz wants to merge 60 commits into
openSUSE:masterfrom
okurz:feature/issue62_remove_llm_agent_files
Open

feat: remove LLM agent development helper documents#63
okurz wants to merge 60 commits into
openSUSE:masterfrom
okurz:feature/issue62_remove_llm_agent_files

Conversation

@okurz

@okurz okurz commented Mar 9, 2026

Copy link
Copy Markdown
Member

Motivation:
LLM targeted development helpers (e.g., CLAUDE.md, GEMINI.md, AGENTS.md)
are not necessary for production packages and should be removed during
the build process to maintain a clean package.

Design Choices:

  1. Updated find_doc to exclude these files from the %doc file list to
    prevent RPM build failures.
  2. Modified the %prep section in the generated spec file to physically
    remove these files with 'rm -f' after %autosetup.
  3. Added a new test file t/20.llm_cleanup.t to verify find_doc behavior.

User Benefits:
Provides cleaner production packages by stripping unnecessary development-only
helper files.

Fixes #62

perlpunk added 30 commits June 3, 2025 14:07
Somehow it didn't get reported for 5.38
Using /bin/true resulted in sporadic Broken Pipe errors

Issue: https://progress.opensuse.org/issues/155458
devel:languages:perl only, modules with 4 or more digits, without reverse
dependencies

perl-App-XML-DocBook-Builder
perl-App-ZofCMS
perl-CMS-MediaWiki
perl-Catalyst-DispatchType-Regex
perl-Class-Light
perl-Class-Null
perl-Config-JSON
perl-Convert-UU
perl-DBIx-Class-Candy
perl-DBIx-Class-EncodedColumn
perl-Daemon-Control
perl-Daemon-Daemonize
perl-Dancer-Plugin-Email
perl-Data-Diver
perl-Data-Inherited
perl-Devel-ptkdb
perl-Dist-Zilla-App-Command-cover
perl-Dist-Zilla-Plugin-AutoVersion-Relative
perl-Dist-Zilla-Plugin-Bootstrap-lib
perl-Dist-Zilla-Plugin-CopyFilesFromBuild
perl-Dist-Zilla-Plugin-FatPacker
perl-Dist-Zilla-Plugin-HasVersionTests
perl-Dist-Zilla-Plugin-InstallGuide
perl-Dist-Zilla-Plugin-MetaResourcesFromGit
perl-Dist-Zilla-Plugin-ReadmeMarkdownFromPod
perl-Dist-Zilla-Plugin-ReportVersions
perl-Dist-Zilla-Plugin-Signature
perl-Dist-Zilla-Plugin-TaskWeaver
perl-Dist-Zilla-Plugin-Test-MinimumVersion
perl-Dist-Zilla-Plugin-Test-PodSpelling
perl-Dist-Zilla-Plugin-Test-Portability
perl-Dist-Zilla-Plugin-Test-Synopsis
perl-Dist-Zilla-Role-Tempdir
perl-Dist-Zilla-Util-ConfigDumper
perl-Dist-Zilla-Util-EmulatePhase
perl-Dist-Zilla-Util-Test-KENTNL
perl-Encode-Base32-Crockford
perl-Exception-Warning
perl-File-ShareDir-PathClass
perl-HTML-Template-Pro
perl-HTTP-XSCookies
perl-ICal-Format-Natural
perl-IPC-Exe
perl-Linux-Systemd
perl-Log-Any-Adapter-TAP
perl-Log-Dispatch-Configurator-Any
perl-Mail-Milter-Authentication
perl-Math-BigInt-FastCalc
perl-Math-BigInt-Pari
perl-Math-BigRat
perl-MediaWiki-Bot-Plugin-Admin
perl-MooseX-Storage-Format-JSONpm
perl-Net-MQTT
perl-Number-Phone-JP
perl-Ouch
perl-PERLANCAR-Module-List
perl-POE-Component-Generic
perl-POE-Component-IRC-Plugin-BaseWrap
perl-Perl6-Export-Attrs
perl-Perl6-Slurp
perl-Plack-Middleware-LogWarn
perl-Pod-Elemental-Transformer-List
perl-Pod-Weaver-PluginBundle-MARCEL
perl-Regexp-Debugger
perl-String-Copyright
perl-Sys-Info-Base
perl-Tatsumaki
perl-Term-EditorEdit
perl-Term-ReadLine-Perl
perl-Test-Subroutines
perl-Test-Weaken
perl-Test-mysqld
perl-Test2-Harness
perl-Text-MultiMarkdown
perl-Text-NeatTemplate
perl-Transmission-Client
perl-Version-Requirements
perl-WWW-Curl-Simple
perl-XML-RSS-LibXML
perl-constant-lexical
perl-PlRPC
Leave core module versions as they are for now
For example for Crypt-HSXKPasswd-v3.6.tar.gz $version was set to 3.6 because
the 'v' is lost, and without a second dot this is not recognized as a
normalized version. The version in the META is 'v3.6' though.
They will be normalized during the next days
perlpunk added 27 commits June 3, 2025 14:07
For core modules, the normalization is problematic, as different repos have
different perl versios, e.g. Leap still has v5.26 while Tumbleweed has v5.40,
but sometimes we want to use newer perl modules in Leap, so the spec has to
work for multiple perl versions.

By specifying --perl-version 5.040000 you can say that all modules
that are in perl core v5.40 should not be normalized.

That way we can go on with normalizing all other modules and take care of
the perl package itself later.
No other d:l:p modules depend on it, so likely not causing
much trouble
This makes it less problematic for the case when the Provides still has
    0.034
and Requires would have
    0.34.0

This would be unresolvable because 0.034 (or 0.34) is smaller than 0.34.0.
Should be used if a new version is smaller then the old
remove some modules not in d:l:p anymore
The file itself should also be generated, if it's not yet there.
Will work on that.
Ideally we would do what the CPAN indexer does ( needs research), but
overriding in cpanspec.yml for the rare exceptions is good enough for now.
Comment thread cpanspec Outdated
my @llm_docs = grep { m{^(?:CLAUDE|GEMINI|AGENTS)\.md$}i } @files;
if (@llm_docs) {
print $spec "# manual bypass of LLM agent targeted development helpers\n";
print $spec "rm -f " . join(' ', @llm_docs) . "\n\n";

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

So far we don't do that for files which we exclude from %doc.
So this is new and would look a bit weird, that we just don't add most files to %doc, but only explicitly remove agent files.

So maybe someone else can weigh in on that?

Still a suggestion, this is perl after all:

Suggested change
print $spec "rm -f " . join(' ', @llm_docs) . "\n\n";
print $spec "rm -f @llm_docs\n\n";

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

suggestion included. Until there is a better approach I will keep this PR open. We discussed this and we should consider two important use cases:

  1. A developer installing a package on their workstation for interactive use: Relevant documentation files for usage should be included -> Keep README, exclude CLAUDE.md and others
  2. A non-interactive container using the package: Only files relevant for operations should be included to optimize space use -> Exclude all doc files including CLAUDE.md and others

Motivation:
LLM targeted development helpers (e.g., CLAUDE.md, GEMINI.md, AGENTS.md)
are not necessary for production packages and should be removed during
the build process to maintain a clean package.

Design Choices:
1. Updated find_doc to exclude these files from the %doc file list to
   prevent RPM build failures.
2. Modified the %prep section in the generated spec file to physically
   remove these files with 'rm -f' after %autosetup.
3. Added a new test file t/20.llm_cleanup.t to verify find_doc behavior.

User Benefits:
Provides cleaner production packages by stripping unnecessary development-only
helper files.

Fixes openSUSE#62
@okurz
okurz force-pushed the feature/issue62_remove_llm_agent_files branch from 99702bd to 3ebb4bf Compare May 19, 2026 09:01
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.

Remove LLM agent development helper documentations

2 participants