folder/* should not ignore the folder itself, only the contents (#3267)
diff --git a/lib/src/ignore.dart b/lib/src/ignore.dart index fbd93e8..ff22dff 100644 --- a/lib/src/ignore.dart +++ b/lib/src/ignore.dart
@@ -464,6 +464,9 @@ } else { expr += '.*'; } + } else if (peekChar() == '/' || peekChar() == null) { + // /a/* should not match '/a/' + expr += '[^/]+'; } else { // Handle a single '*' expr += '[^/]*'; @@ -520,7 +523,6 @@ expr = '$expr/\$'; } else { expr = '$expr/?\$'; - // expr = '$expr\$'; } try { return _IgnoreParseResult(
diff --git a/lib/src/validator/changelog.dart b/lib/src/validator/changelog.dart index 694ace2..614eba2 100644 --- a/lib/src/validator/changelog.dart +++ b/lib/src/validator/changelog.dart
@@ -21,7 +21,7 @@ final changelog = entrypoint.root.changelogPath; if (changelog == null) { - warnings.add('Please add a`CHANGELOG.md` to your package. ' + warnings.add('Please add a `CHANGELOG.md` to your package. ' 'See https://dart.dev/tools/pub/publishing#important-files.'); return; }
diff --git a/lib/src/validator/gitignore.dart b/lib/src/validator/gitignore.dart index 78bf9aa..4fb49b1 100644 --- a/lib/src/validator/gitignore.dart +++ b/lib/src/validator/gitignore.dart
@@ -71,7 +71,7 @@ if (ignoredFilesCheckedIn.isNotEmpty) { warnings.add(''' -${ignoredFilesCheckedIn.length} checked in ${pluralize('file', ignoredFilesCheckedIn.length)} ${ignoredFilesCheckedIn.length == 1 ? 'is' : 'are'} ignored by a `.gitignore`. +${ignoredFilesCheckedIn.length} checked-in ${pluralize('file', ignoredFilesCheckedIn.length)} ${ignoredFilesCheckedIn.length == 1 ? 'is' : 'are'} ignored by a `.gitignore`. Previous versions of Pub would include those in the published package. Consider adjusting your `.gitignore` files to not ignore those files, and if you do not wish to
diff --git a/test/ignore_test.dart b/test/ignore_test.dart index 42a189a..a8ab8ac 100644 --- a/test/ignore_test.dart +++ b/test/ignore_test.dart
@@ -977,6 +977,13 @@ 'folder/a.txt': true, }), + TestData('folder/* does not ignore `folder` itself', { + '.': ['folder/*', '!folder/a.txt'], + }, { + 'folder/a.txt': false, + 'folder/b.txt': true, + }), + // Case sensitivity TestData( 'simple',