Remove tests files and other config-related files from the gem packages#395
Open
kpumuk wants to merge 1 commit intorubysec:masterfrom
Open
Remove tests files and other config-related files from the gem packages#395kpumuk wants to merge 1 commit intorubysec:masterfrom
kpumuk wants to merge 1 commit intorubysec:masterfrom
Conversation
Contributor
Author
|
Some discussion about this with @postmodern https://ruby.social/@postmodern/112890522679233029 |
Contributor
Author
|
Just realized that excluding gemspec.yml and keeping gemspec might not have too much sense, since the gemspec depends on the yml file (and not used in runtime), so probably might be excluded as well. Some examples in the wild (see Rubygems top 10 https://rubygems.org/stats):
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Current rubygems guidelines suggest to only include runtime files as a best practice: rubygems/guides#90. Additionally, the test-files contain insecure
Gemfile.lockfiles which can sometimes trigger other vulnerability scanners when they scanbundler-audit.In this MR I propose to remove the following:
.in the root of the repository (includes GitHub workflows and issue templates, RSpec configuration, Yard settings)Gemfileas it is only needed for development and not used in runtimegemspec.ymlwhich is used to construct gemspec and not used after thatspec/includes test files and fixturesTo consider:
Rakefilereferencesrspecandyardwhich are development-only dependencies.bundler-audit.gemspecsince it is only used in development to produce metadata, added to the gem package as a YAML-serializedGem::SpecificationChangeLog.mdprobably is not looked at ever and only takes space.Prior art
Since RuboCop added
test_filesto deprecated gemspec attributes, the directive was removed in #370 (see discussion in rubocop/rubocop#10675).File list difference
To test, I built the gem with
rake buildand compared the listing before and after the change:tar -xOzf pkg/bundler-audit-0.9.2.gem data.tar.gz | tar -tzf -Full diff:
Closes #361