<commit_before>name       = MongoDB
author     = <NAME> <<EMAIL>>
author     = Rassi <<EMAIL>>
author     = <NAME> <<EMAIL>>
author     = <NAME> <<EMAIL>>
author     = <NAME> <<EMAIL>>
license    = Apache_2_0
copyright_holder = MongoDB, Inc.

[lib]
lib = inc

; set -TRIAL based on version number: X.Y.Z where Y is odd will
; be marked as a -TRIAL release
[ReleaseStatus::FromVersion]
testing = second_element_odd

; *** BeforeBuild phase ***
; none

; *** FileGatherer phase ***

; gather all files tracked with git, but exclude devel and dist/weaver.ini
; since those shouldn't be of interest to end-users
[Git::GatherDir]
exclude_match = ^devel
exclude_filename = dist.ini
exclude_filename = weaver.ini
exclude_filename = Makefile.PL

; generate a MANIFEST
[Manifest]

; generate a README
[Readme]

;[License]

; --- t tests ---

; add generated test to show versions of all dependencies
[Test::ReportPrereqs]

; --- xt tests ---

; ensure all .pm files compile, in case any aren't loaded in test files
[Test::Compile]
fake_home = 1
xt_mode = 1

; ensure we're backwards compatible to 5.010001
[Test::MinimumVersion]
max_target_perl = 5.010001

; ensure all .pm files have a $VERSION set
[Test::Version]

; check Pod syntax
[PodSyntaxTests]

; check spelling
[Test::PodSpelling]
stopword = Autoincrementing
stopword = CN
stopword = DBRefs
stopword = DEPRECATIONS
stopword = Deprecations
stopword = FAILOVER
stopword = GSSAPI
stopword = GridFS
stopword = keepalive
stopword = LDAP
stopword = MaxKey
stopword = MiB
stopword = MinKey
stopword = Mongo
stopword = Multithreading
stopword = ObjectId
stopword = OpenSSL
stopword = PCRE
stopword = RHEL
stopword = RTT
stopword = ReplicaSetNoPrimary
stopword = ReplicaSetWithPrimary
stopword = SASL
stopword = Sharded
stopword = TCP
stopword = TLS
stopword = Tailable
stopword = UnknownTransactionCommitResult
stopword = addon
stopword = arrayFilter
stopword = arrayFilters
stopword = bypassDocumentValidation
stopword = causalConsistency
stopword = chunkSize
stopword = codec
stopword = coffeeshops
stopword = commandName
stopword = connectionId
stopword = contentType
stopword = copydbgetnonce
stopword = copydbsaslstart
stopword = createUser
stopword = databaseName
stopword = disambiguated
stopword = dropIndexes
stopword = durationSecs
stopword = errmsg
stopword = fallbacks
stopword = fh
stopword = fs
stopword = fsync
stopword = fullDocument
stopword = geospatial
stopword = getnonce
stopword = gfs
stopword = imsxlu
stopword = intra
stopword = journaling
stopword = kb
stopword = libgsasl
stopword = listCollections
stopword = mapReduce
stopword = maxScan
stopword = md
stopword = mongod
stopword = mongodb
stopword = mongos
stopword = mulder
stopword = natively
stopword = nojournal
stopword = ns
stopword = onwards
stopword = oplog
stopword = pageview
stopword = primaryPreferred
stopword = proxying
stopword = reconnections
stopword = requestId
stopword = rescan
stopword = retryable
stopword = roundtrip
stopword = saslContinue
stopword = saslStart
stopword = secondaryPreferred
stopword = sharded
stopword = ssl
stopword = subdocument
stopword = tailable
stopword = trippable
stopword = trustno
stopword = updateUser
stopword = uploadDate
stopword = upsert
stopword = upserted
stopword = writeConcern
stopword = wtimeout

; check Pod coverage
;[Test::Pod::Coverage::Configurable]
;skip = qr/::_/
;also_private = qr/^[A-Z_]+$/

; check Perl::Critic
[Test::Perl::Critic]

;[Test::LocalBrew]
;brews         = perl-5.10.1
;brews         = perl-5.12.1
;brews         = perl-5.14.2
;brews         = perl-5.16.0

; *** EncodingProvider phase ***

; provide file encoding hints to prevent binary files from being analyzed
; as textual data
[Encoding]
encoding = bytes
filename = t/img.png
match = ^t/data

; *** FilePruner phase ***

; remove typical set of files we don't want
[PruneCruft]

; *** FileMunger phase ***

; RewriteVersion is both a VersionProvider and FileMunger
; VersionProvider: set $VERSION from main module
; FileMunger: munge $VERSION to dist version in gathered files
[RewriteVersion]

; Add boilerplate Pod to all modules and rewrite custom Pod extensions.
; The replacer settings minimize any line-number changes in code
[SurgicalPodWeaver]
:version = 0.0021
replacer = replace_with_comment
post_code_replacer = replace_with_nothing

; SurgicalPodWeaver extends PodWeaver and we want a new-ish version
; authordep Dist::Zilla::Plugin::PodWeaver 4.005
;
; Pod weaving requires these plugins
; authordep Pod::Elemental::Transformer::List
; authordep Pod::Weaver::Plugin::SingleEncoding
; authordep Pod::Weaver::Section::Support
; authordep Pod::Weaver::Section::Contributors
;
; Release testing should have these plugins:
; authordep Test::Memory::Cycle
; authordep Test::Pod

; *** PrereqSource phase ***

; Detect prerequisites from code and tests
[AutoPrereqs]
skip = ^MongoDB::

[Prereqs]
Moo = 2

[RemovePrereqs]
remove = Authen::SASL
remove = BSON::XS
remove = Class::XSAccessor
remove = Compress::Zstd
remove = Compress::Snappy
remove = DateTime
remove = DateTime::Tiny
remove = Errno
remove = IO::Socket::IP
remove = IO::Socket::SSL
remove = Mozilla::CA
remove = Net::SSLeay
remove = Time::Moment
remove = Type::Tiny::XS
remove = threads

[Prereqs / Recommends]
IO::Socket::IP = 0.32
IO::Socket::SSL = 1.42
Mozilla::CA = 20130114
Net::SSLeay = 1.49

[Prereqs / Suggests]
IO::Socket::SSL = 1.56

[Prereqs / TestRecommends]
Test::Harness = 3.31
Time::Moment = 0.22

; *** MetaProvider phase

; Set homepage and repository metadata fields from the 'origin' remote,
; which is assumed to be from Github.
[GithubMeta]

; Set bugtracker metadata to point to jira so search.cpan.org and
; metacpan.org will link there instead of rt.cpan.org
[Bugtracker]
web           = https://jira.mongodb.org/browse/PERL

; Set 'no_index' metadata to hint that modules in these directories
; must not be indexed by PAUSE
[MetaNoIndex]
directory = devel
directory = inc
directory = t
directory = xt

; generate 'provides' metadata, which controls how PAUSE indexes
; our modules; use 'no_index' to mask packages reported
[MetaProvides::Package]
meta_noindex = 1

; *** InstallTool phase ***

; Generate a makefile
[MakeMaker::Awesome]
:version = 0.35
eumm_version = 6.17
default_jobs = 9
footer_file = inc/Makefile.footer

[DynamicPrereqs]
:version = 0.018
-condition = !want_pp()
-condition = can_xs()
-body = runtime_requires('Class::XSAccessor');
-body = runtime_requires('Type::Tiny::XS');

[DynamicPrereqs / DyanmicBSONPrereq ]
:version = 0.018
-condition = !want_pp()
-condition = can_xs()
-condition = ($^O ne "MSWin32" || do {my (undef,$major,undef,undef,$id)=Win32::GetOSVersion(); $id>2 || ($id==2 && $major>=6)})
-body = runtime_requires('BSON::XS', '0.006000');

; Actually a TestRunner helper plugin, but needs to come after
; MakeMaker; conditionally run xt/ tests during dzil test or dzil
; release;
[RunExtraTests]
default_jobs = 9

; generate META.yml and META.json files
[MetaYAML]
[MetaJSON]
[Git::Contributors]

; *** AfterBuild phase ***

; copy Makefile.PL back to repo dis
[CopyFilesFromBuild::Filtered]
copy = Makefile.PL

; *** BeforeArchive phase ***
; none

; *** BeforeRelease phase ***

; make sure we're using correct version number format
[CheckStrictVersion]
tuple_only = 1

; check for dirty files or files not covered by version control;
; dist.ini and Changes are allowed to be dirty and will get
; committed later after release
[Git::Check]
allow_dirty = Makefile.PL
allow_dirty = dist.ini
allow_dirty = Changes

; ensure META has 'resources' data
[CheckMetaResources]

; ensure prereqs are on CPAN
[CheckPrereqsIndexed]

; ensure Changes has been updated
[CheckChangesHasContent]

; ensure Changes has any Jira tickets
[=CheckJiraInChanges]

; check tests before release or abort
[TestRelease]

; prompt user before uploading to CPAN
[ConfirmRelease]

; *** Releaser phase ***

; uploads to cpan; credentials must be in the specified file
[UploadToCPAN]
:version = 5.015
pause_cfg_file = .pause-mongodb

; if we want to do a release without actually uploading, comment out
; UploadToCPAN and uncomment this
;[FakeRelease]

; *** AfterRelease phase ***

; commit source files as of "dzil release" with any
; allowable modifications (i.e. Changes and dist.ini)
[Git::Commit / Commit_Dirty_Files]
allow_dirty = Makefile.PL
allow_dirty = dist.ini
allow_dirty = Changes
commit_msg = Commit files updated for release

; tag repo as of "dzil release"
[Git::Tag]
tag_format    = %v
tag_message   = Version %v

; NextRelease is both a FileMunger and AfterRelease plugin.
; Before release, it will write version and timestamp to Changes.
; After release, it will write the {{$NEXT}} marker to Changes
; for the next release cycle.
;
; It must come in dist.ini *after* first Git::Commit and before
; the second one so that it acts at the right time after release
[NextRelease]

; increment $VERSION in source .pm files
[BumpVersionAfterRelease]

; commit source files after modification
[Git::Commit / Commit_Updated_Files]
allow_dirty = Makefile.PL
allow_dirty = Changes
allow_dirty_match = ^lib/
commit_msg = Commit Changes and bump $VERSION

; push commits and tags to 'origin' repo
[Git::Push]
push_to         = origin
<commit_msg>minor: add stopwords to dist.ini<commit_after>name       = MongoDB
author     = <NAME> <<EMAIL>>
author     = Rassi <<EMAIL>>
author     = <NAME> <<EMAIL>>
author     = <NAME> <<EMAIL>>
author     = <NAME> <<EMAIL>>
license    = Apache_2_0
copyright_holder = MongoDB, Inc.

[lib]
lib = inc

; set -TRIAL based on version number: X.Y.Z where Y is odd will
; be marked as a -TRIAL release
[ReleaseStatus::FromVersion]
testing = second_element_odd

; *** BeforeBuild phase ***
; none

; *** FileGatherer phase ***

; gather all files tracked with git, but exclude devel and dist/weaver.ini
; since those shouldn't be of interest to end-users
[Git::GatherDir]
exclude_match = ^devel
exclude_filename = dist.ini
exclude_filename = weaver.ini
exclude_filename = Makefile.PL

; generate a MANIFEST
[Manifest]

; generate a README
[Readme]

;[License]

; --- t tests ---

; add generated test to show versions of all dependencies
[Test::ReportPrereqs]

; --- xt tests ---

; ensure all .pm files compile, in case any aren't loaded in test files
[Test::Compile]
fake_home = 1
xt_mode = 1

; ensure we're backwards compatible to 5.010001
[Test::MinimumVersion]
max_target_perl = 5.010001

; ensure all .pm files have a $VERSION set
[Test::Version]

; check Pod syntax
[PodSyntaxTests]

; check spelling
[Test::PodSpelling]
stopword = Autoincrementing
stopword = CN
stopword = DBRefs
stopword = DEPRECATIONS
stopword = Deprecations
stopword = FAILOVER
stopword = GSSAPI
stopword = GridFS
stopword = LDAP
stopword = MaxKey
stopword = MiB
stopword = MinKey
stopword = Mongo
stopword = Multithreading
stopword = ObjectId
stopword = OpenSSL
stopword = PCRE
stopword = RHEL
stopword = RTT
stopword = ReplicaSetNoPrimary
stopword = ReplicaSetWithPrimary
stopword = SASL
stopword = Sharded
stopword = TCP
stopword = TLS
stopword = Tailable
stopword = UnknownTransactionCommitResult
stopword = addon
stopword = arrayFilter
stopword = arrayFilters
stopword = bypassDocumentValidation
stopword = causalConsistency
stopword = chunkSize
stopword = codec
stopword = coffeeshops
stopword = commandName
stopword = connectionId
stopword = contentType
stopword = copydbgetnonce
stopword = copydbsaslstart
stopword = createUser
stopword = databaseName
stopword = disambiguated
stopword = dropIndexes
stopword = durationSecs
stopword = errmsg
stopword = fallbacks
stopword = fh
stopword = fs
stopword = fsync
stopword = fullDocument
stopword = geospatial
stopword = getnonce
stopword = gfs
stopword = imsxlu
stopword = intra
stopword = ismaster
stopword = journaling
stopword = kb
stopword = keepalive
stopword = libgsasl
stopword = listCollections
stopword = mapReduce
stopword = maxScan
stopword = md
stopword = mongod
stopword = mongodb
stopword = mongos
stopword = mulder
stopword = natively
stopword = newDescription
stopword = nojournal
stopword = ns
stopword = onwards
stopword = oplog
stopword = pageview
stopword = previousDescription
stopword = primaryPreferred
stopword = proxying
stopword = reconnections
stopword = refaddr
stopword = requestId
stopword = rescan
stopword = retryable
stopword = roundtrip
stopword = saslContinue
stopword = saslStart
stopword = secondaryPreferred
stopword = sharded
stopword = ssl
stopword = subdocument
stopword = tailable
stopword = topologyId
stopword = trippable
stopword = trustno
stopword = updateUser
stopword = uploadDate
stopword = upsert
stopword = upserted
stopword = writeConcern
stopword = wtimeout

; check Pod coverage
;[Test::Pod::Coverage::Configurable]
;skip = qr/::_/
;also_private = qr/^[A-Z_]+$/

; check Perl::Critic
[Test::Perl::Critic]

;[Test::LocalBrew]
;brews         = perl-5.10.1
;brews         = perl-5.12.1
;brews         = perl-5.14.2
;brews         = perl-5.16.0

; *** EncodingProvider phase ***

; provide file encoding hints to prevent binary files from being analyzed
; as textual data
[Encoding]
encoding = bytes
filename = t/img.png
match = ^t/data

; *** FilePruner phase ***

; remove typical set of files we don't want
[PruneCruft]

; *** FileMunger phase ***

; RewriteVersion is both a VersionProvider and FileMunger
; VersionProvider: set $VERSION from main module
; FileMunger: munge $VERSION to dist version in gathered files
[RewriteVersion]

; Add boilerplate Pod to all modules and rewrite custom Pod extensions.
; The replacer settings minimize any line-number changes in code
[SurgicalPodWeaver]
:version = 0.0021
replacer = replace_with_comment
post_code_replacer = replace_with_nothing

; SurgicalPodWeaver extends PodWeaver and we want a new-ish version
; authordep Dist::Zilla::Plugin::PodWeaver 4.005
;
; Pod weaving requires these plugins
; authordep Pod::Elemental::Transformer::List
; authordep Pod::Weaver::Plugin::SingleEncoding
; authordep Pod::Weaver::Section::Support
; authordep Pod::Weaver::Section::Contributors
;
; Release testing should have these plugins:
; authordep Test::Memory::Cycle
; authordep Test::Pod

; *** PrereqSource phase ***

; Detect prerequisites from code and tests
[AutoPrereqs]
skip = ^MongoDB::

[Prereqs]
Moo = 2

[RemovePrereqs]
remove = Authen::SASL
remove = BSON::XS
remove = Class::XSAccessor
remove = Compress::Zstd
remove = Compress::Snappy
remove = DateTime
remove = DateTime::Tiny
remove = Errno
remove = IO::Socket::IP
remove = IO::Socket::SSL
remove = Mozilla::CA
remove = Net::SSLeay
remove = Time::Moment
remove = Type::Tiny::XS
remove = threads

[Prereqs / Recommends]
IO::Socket::IP = 0.32
IO::Socket::SSL = 1.42
Mozilla::CA = 20130114
Net::SSLeay = 1.49

[Prereqs / Suggests]
IO::Socket::SSL = 1.56

[Prereqs / TestRecommends]
Test::Harness = 3.31
Time::Moment = 0.22

; *** MetaProvider phase

; Set homepage and repository metadata fields from the 'origin' remote,
; which is assumed to be from Github.
[GithubMeta]

; Set bugtracker metadata to point to jira so search.cpan.org and
; metacpan.org will link there instead of rt.cpan.org
[Bugtracker]
web           = https://jira.mongodb.org/browse/PERL

; Set 'no_index' metadata to hint that modules in these directories
; must not be indexed by PAUSE
[MetaNoIndex]
directory = devel
directory = inc
directory = t
directory = xt

; generate 'provides' metadata, which controls how PAUSE indexes
; our modules; use 'no_index' to mask packages reported
[MetaProvides::Package]
meta_noindex = 1

; *** InstallTool phase ***

; Generate a makefile
[MakeMaker::Awesome]
:version = 0.35
eumm_version = 6.17
default_jobs = 9
footer_file = inc/Makefile.footer

[DynamicPrereqs]
:version = 0.018
-condition = !want_pp()
-condition = can_xs()
-body = runtime_requires('Class::XSAccessor');
-body = runtime_requires('Type::Tiny::XS');

[DynamicPrereqs / DyanmicBSONPrereq ]
:version = 0.018
-condition = !want_pp()
-condition = can_xs()
-condition = ($^O ne "MSWin32" || do {my (undef,$major,undef,undef,$id)=Win32::GetOSVersion(); $id>2 || ($id==2 && $major>=6)})
-body = runtime_requires('BSON::XS', '0.006000');

; Actually a TestRunner helper plugin, but needs to come after
; MakeMaker; conditionally run xt/ tests during dzil test or dzil
; release;
[RunExtraTests]
default_jobs = 9

; generate META.yml and META.json files
[MetaYAML]
[MetaJSON]
[Git::Contributors]

; *** AfterBuild phase ***

; copy Makefile.PL back to repo dis
[CopyFilesFromBuild::Filtered]
copy = Makefile.PL

; *** BeforeArchive phase ***
; none

; *** BeforeRelease phase ***

; make sure we're using correct version number format
[CheckStrictVersion]
tuple_only = 1

; check for dirty files or files not covered by version control;
; dist.ini and Changes are allowed to be dirty and will get
; committed later after release
[Git::Check]
allow_dirty = Makefile.PL
allow_dirty = dist.ini
allow_dirty = Changes

; ensure META has 'resources' data
[CheckMetaResources]

; ensure prereqs are on CPAN
[CheckPrereqsIndexed]

; ensure Changes has been updated
[CheckChangesHasContent]

; ensure Changes has any Jira tickets
[=CheckJiraInChanges]

; check tests before release or abort
[TestRelease]

; prompt user before uploading to CPAN
[ConfirmRelease]

; *** Releaser phase ***

; uploads to cpan; credentials must be in the specified file
[UploadToCPAN]
:version = 5.015
pause_cfg_file = .pause-mongodb

; if we want to do a release without actually uploading, comment out
; UploadToCPAN and uncomment this
;[FakeRelease]

; *** AfterRelease phase ***

; commit source files as of "dzil release" with any
; allowable modifications (i.e. Changes and dist.ini)
[Git::Commit / Commit_Dirty_Files]
allow_dirty = Makefile.PL
allow_dirty = dist.ini
allow_dirty = Changes
commit_msg = Commit files updated for release

; tag repo as of "dzil release"
[Git::Tag]
tag_format    = %v
tag_message   = Version %v

; NextRelease is both a FileMunger and AfterRelease plugin.
; Before release, it will write version and timestamp to Changes.
; After release, it will write the {{$NEXT}} marker to Changes
; for the next release cycle.
;
; It must come in dist.ini *after* first Git::Commit and before
; the second one so that it acts at the right time after release
[NextRelease]

; increment $VERSION in source .pm files
[BumpVersionAfterRelease]

; commit source files after modification
[Git::Commit / Commit_Updated_Files]
allow_dirty = Makefile.PL
allow_dirty = Changes
allow_dirty_match = ^lib/
commit_msg = Commit Changes and bump $VERSION

; push commits and tags to 'origin' repo
[Git::Push]
push_to         = origin

{'fraction_non_alphanumeric': 0.0971840844236257, 'fraction_numerical': 0.011414418779949389, 'mean_word_length': 4.9209435766656044, 'pattern_counts': {'":': 0, '<': 31, '<?xml version=': 0, '>': 35, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6824111', 'n_tokens_mistral': 6201, 'n_tokens_neox': 5886, 'n_words': 1962}