Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package plexus-io for openSUSE:Factory 
checked in at 2026-10-20 12:38:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/plexus-io (Old)
 and      /work/SRC/openSUSE:Factory/.plexus-io.new.3698736 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "plexus-io"

Tue Oct 20 12:38:35 2026 rev:10 rq:1386170 version:3.8.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/plexus-io/plexus-io.changes      2026-09-29 
17:50:47.092725314 +0200
+++ /work/SRC/openSUSE:Factory/.plexus-io.new.3698736/plexus-io.changes 
2026-10-20 12:40:10.250131316 +0200
@@ -1,0 +2,14 @@
+Mon Oct 19 05:28:52 UTC 2026 - Fridrich Strba <[email protected]>
+
+- Update to version 3.8.1
+  * Bug Fixes
+    + Apply default excludes on Windows
+  * Documentation updates
+    + Drop the Source Xref menu item
+  * Maintenance
+    * Drop the Source Xref menu item
+  * Build
+    + Allow running the release drafter by hand
+    + Use the shared release-drafter workflow from master
+
+-------------------------------------------------------------------

Old:
----
  plexus-io-3.8.0.tar.gz

New:
----
  plexus-io-3.8.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ plexus-io.spec ++++++
--- /var/tmp/diff_new_pack.FK5BaP/_old  2026-10-20 12:40:11.145168775 +0200
+++ /var/tmp/diff_new_pack.FK5BaP/_new  2026-10-20 12:40:11.147168859 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           plexus-io
-Version:        3.8.0
+Version:        3.8.1
 Release:        0
 Summary:        Plexus IO Components
 License:        Apache-2.0
@@ -25,7 +25,7 @@
 URL:            https://github.com/codehaus-plexus/%{name}
 Source0:        
https://github.com/codehaus-plexus/%{name}/archive/%{name}-%{version}.tar.gz
 Source1:        %{name}-build.xml
-Source2:        http://www.apache.org/licenses/LICENSE-2.0.txt
+Source2:        https://www.apache.org/licenses/LICENSE-2.0.txt
 BuildRequires:  ant
 BuildRequires:  apache-commons-io
 BuildRequires:  atinject

++++++ _scmsync.obsinfo ++++++
--- /var/tmp/diff_new_pack.FK5BaP/_old  2026-10-20 12:40:11.198170994 +0200
+++ /var/tmp/diff_new_pack.FK5BaP/_new  2026-10-20 12:40:11.203171203 +0200
@@ -1,6 +1,6 @@
-mtime: 1790596255
-commit: 400d8ac4eb814bfc6d81935c8fc72faf2583184b8f3ff661d89de9b464e30c53
+mtime: 1792388030
+commit: 9104cd3721263aa7c01669c712627acff9b9409ec96f8f9dec3c193e2b2c9117
 url: https://src.opensuse.org/java-packages/plexus-io
-revision: 400d8ac4eb814bfc6d81935c8fc72faf2583184b8f3ff661d89de9b464e30c53
+revision: 9104cd3721263aa7c01669c712627acff9b9409ec96f8f9dec3c193e2b2c9117
 projectscmsync: https://src.opensuse.org/java-packages/_ObsPrj
 

++++++ build.specials.obscpio ++++++

++++++ build.specials.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/.gitignore new/.gitignore
--- old/.gitignore      1970-01-01 01:00:00.000000000 +0100
+++ new/.gitignore      2026-10-19 07:33:50.000000000 +0200
@@ -0,0 +1 @@
+.osc

++++++ plexus-io-3.8.0.tar.gz -> plexus-io-3.8.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/plexus-io-plexus-io-3.8.0/.github/workflows/maven.yml 
new/plexus-io-plexus-io-3.8.1/.github/workflows/maven.yml
--- old/plexus-io-plexus-io-3.8.0/.github/workflows/maven.yml   2026-09-19 
02:25:52.000000000 +0200
+++ new/plexus-io-plexus-io-3.8.1/.github/workflows/maven.yml   2026-10-18 
22:54:10.000000000 +0200
@@ -17,7 +17,7 @@
 
 name: GitHub CI
 
-on: [push, pull_request]
+on: [push, pull_request, workflow_dispatch]
 
 jobs:
   build:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/plexus-io-plexus-io-3.8.0/.github/workflows/release-drafter.yml 
new/plexus-io-plexus-io-3.8.1/.github/workflows/release-drafter.yml
--- old/plexus-io-plexus-io-3.8.0/.github/workflows/release-drafter.yml 
2026-09-19 02:25:52.000000000 +0200
+++ new/plexus-io-plexus-io-3.8.1/.github/workflows/release-drafter.yml 
2026-10-18 22:54:10.000000000 +0200
@@ -20,7 +20,8 @@
   push:
     branches:
       - master
+  workflow_dispatch:
 jobs:
   update_release_draft:
     name: Update Release Notes Draft
-    uses: codehaus-plexus/.github/.github/workflows/[email protected]
+    uses: codehaus-plexus/.github/.github/workflows/release-drafter.yml@master
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/plexus-io-plexus-io-3.8.0/pom.xml 
new/plexus-io-plexus-io-3.8.1/pom.xml
--- old/plexus-io-plexus-io-3.8.0/pom.xml       2026-09-19 02:25:52.000000000 
+0200
+++ new/plexus-io-plexus-io-3.8.1/pom.xml       2026-10-18 22:54:10.000000000 
+0200
@@ -9,7 +9,7 @@
   </parent>
 
   <artifactId>plexus-io</artifactId>
-  <version>3.8.0</version>
+  <version>3.8.1</version>
 
   <name>Plexus IO Components</name>
   <description>A component providing a uniform view of file, archive and 
in-memory resources, with selectors and
@@ -18,7 +18,7 @@
   <scm>
     
<connection>scm:git:https://github.com/codehaus-plexus/plexus-io.git</connection>
     <developerConnection>${project.scm.connection}</developerConnection>
-    <tag>plexus-io-3.8.0</tag>
+    <tag>plexus-io-3.8.1</tag>
     <url>http://github.com/codehaus-plexus/plexus-io</url>
   </scm>
   <issueManagement>
@@ -34,7 +34,7 @@
 
   <properties>
     <slf4jVersion>1.7.36</slf4jVersion>
-    
<project.build.outputTimestamp>2026-09-19T00:25:48Z</project.build.outputTimestamp>
+    
<project.build.outputTimestamp>2026-10-18T20:54:05Z</project.build.outputTimestamp>
   </properties>
 
   <dependencies>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/plexus-io-plexus-io-3.8.0/src/main/java/org/codehaus/plexus/components/io/fileselectors/IncludeExcludeFileSelector.java
 
new/plexus-io-plexus-io-3.8.1/src/main/java/org/codehaus/plexus/components/io/fileselectors/IncludeExcludeFileSelector.java
--- 
old/plexus-io-plexus-io-3.8.0/src/main/java/org/codehaus/plexus/components/io/fileselectors/IncludeExcludeFileSelector.java
 2026-09-19 02:25:52.000000000 +0200
+++ 
new/plexus-io-plexus-io-3.8.1/src/main/java/org/codehaus/plexus/components/io/fileselectors/IncludeExcludeFileSelector.java
 2026-10-18 22:54:10.000000000 +0200
@@ -93,12 +93,20 @@
     }
 
     private static @Nonnull String getCanonicalName(@Nonnull String pName) {
-        return pName.replace('/', File.separatorChar).replace('\\', 
File.separatorChar);
+        return getCanonicalName(pName, File.separatorChar);
     }
 
-    private String asPattern(@Nonnull String pPattern) {
-        String pattern = getCanonicalName(pPattern.trim());
-        if (pattern.endsWith(File.separator)) {
+    private static @Nonnull String getCanonicalName(@Nonnull String pName, 
char separatorChar) {
+        return pName.replace('/', separatorChar).replace('\\', separatorChar);
+    }
+
+    private static String asPattern(@Nonnull String pPattern) {
+        return asPattern(pPattern, File.separatorChar);
+    }
+
+    private static String asPattern(@Nonnull String pPattern, char 
separatorChar) {
+        String pattern = getCanonicalName(pPattern.trim(), separatorChar);
+        if (pattern.endsWith(String.valueOf(separatorChar))) {
             pattern += "**";
         }
         return pattern;
@@ -132,19 +140,25 @@
     public void setExcludes(@Nullable String[] excludes) {
         this.excludes = excludes;
         final String[] defaultExcludes = useDefaultExcludes ? 
FileUtils.getDefaultExcludes() : new String[] {};
-        if (excludes == null) {
-            computedExcludes = MatchPatterns.from(defaultExcludes);
-        } else {
-            String[] temp = new String[excludes.length + 
defaultExcludes.length];
-            for (int i = 0; i < excludes.length; i++) {
-                temp[i] = asPattern(excludes[i]);
-            }
-
-            if (defaultExcludes.length > 0) {
-                System.arraycopy(defaultExcludes, 0, temp, excludes.length, 
defaultExcludes.length);
-            }
-            computedExcludes = MatchPatterns.from(temp);
+        computedExcludes = MatchPatterns.from(asExcludePatterns(excludes, 
defaultExcludes, File.separatorChar));
+    }
+
+    /**
+     * Converts the user's exclude patterns and the default excludes into 
patterns
+     * that use the given separator, the same separator {@link 
#isSelected(FileInfo)}
+     * uses for the names it matches.
+     */
+    static String[] asExcludePatterns(
+            @Nullable String[] excludes, @Nonnull String[] defaultExcludes, 
char separatorChar) {
+        final int count = excludes == null ? 0 : excludes.length;
+        final String[] patterns = new String[count + defaultExcludes.length];
+        for (int i = 0; i < count; i++) {
+            patterns[i] = asPattern(excludes[i], separatorChar);
+        }
+        for (int i = 0; i < defaultExcludes.length; i++) {
+            patterns[count + i] = asPattern(defaultExcludes[i], separatorChar);
         }
+        return patterns;
     }
 
     /**
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/plexus-io-plexus-io-3.8.0/src/site/site.xml 
new/plexus-io-plexus-io-3.8.1/src/site/site.xml
--- old/plexus-io-plexus-io-3.8.0/src/site/site.xml     2026-09-19 
02:25:52.000000000 +0200
+++ new/plexus-io-plexus-io-3.8.1/src/site/site.xml     2026-10-18 
22:54:10.000000000 +0200
@@ -9,7 +9,6 @@
       <item name="File Mappers" href="filemappers.html"/>
       <item name="File Selectors" href="fileselectors.html"/>
       <item name="JavaDocs" href="apidocs/index.html"/>
-      <item name="Source Xref" href="xref/index.html"/>
       <!--item name="FAQ" href="faq.html"/-->
     </menu>
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/plexus-io-plexus-io-3.8.0/src/test/java/org/codehaus/plexus/components/io/fileselectors/IncludeExcludeFileSelectorTest.java
 
new/plexus-io-plexus-io-3.8.1/src/test/java/org/codehaus/plexus/components/io/fileselectors/IncludeExcludeFileSelectorTest.java
--- 
old/plexus-io-plexus-io-3.8.0/src/test/java/org/codehaus/plexus/components/io/fileselectors/IncludeExcludeFileSelectorTest.java
     1970-01-01 01:00:00.000000000 +0100
+++ 
new/plexus-io-plexus-io-3.8.1/src/test/java/org/codehaus/plexus/components/io/fileselectors/IncludeExcludeFileSelectorTest.java
     2026-10-18 22:54:10.000000000 +0200
@@ -0,0 +1,71 @@
+package org.codehaus.plexus.components.io.fileselectors;
+
+import javax.annotation.Nonnull;
+
+import java.io.InputStream;
+import java.net.URL;
+
+import org.codehaus.plexus.components.io.resources.AbstractPlexusIoResource;
+import org.codehaus.plexus.util.FileUtils;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertArrayEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+class IncludeExcludeFileSelectorTest {
+
+    /**
+     * {@link IncludeExcludeFileSelector#isSelected} matches names that use 
the platform separator,
+     * so every exclude pattern, including the default excludes, must use it 
too. Using a backslash
+     * here reproduces the Windows behaviour on any platform.
+     */
+    @Test
+    void excludePatternsUseTheGivenSeparator() {
+        String[] patterns = IncludeExcludeFileSelector.asExcludePatterns(
+                new String[] {"bar/*", "foo/"}, new String[] {"**/.svn/**", 
"**/.git"}, '\\');
+
+        assertArrayEquals(new String[] {"bar\\*", "foo\\**", "**\\.svn\\**", 
"**\\.git"}, patterns);
+    }
+
+    @Test
+    void defaultExcludesUseTheGivenSeparator() {
+        String[] patterns = IncludeExcludeFileSelector.asExcludePatterns(null, 
FileUtils.getDefaultExcludes(), '\\');
+
+        for (String pattern : patterns) {
+            assertFalse(pattern.contains("/"), pattern);
+        }
+    }
+
+    @Test
+    void defaultExcludesApplyWithAndWithoutExcludes() {
+        IncludeExcludeFileSelector selector = new IncludeExcludeFileSelector();
+
+        selector.setExcludes(null);
+        assertFalse(selector.isSelected(resource(".svn/entries")));
+        assertFalse(selector.isSelected(resource("foo/.git/config")));
+        assertTrue(selector.isSelected(resource("foo/bar.txt")));
+
+        selector.setExcludes(new String[] {"**/*.gif"});
+        assertFalse(selector.isSelected(resource(".svn/entries")));
+        assertFalse(selector.isSelected(resource("foo/x.gif")));
+        assertTrue(selector.isSelected(resource("foo/bar.txt")));
+
+        selector.setUseDefaultExcludes(false);
+        assertTrue(selector.isSelected(resource(".svn/entries")));
+        assertFalse(selector.isSelected(resource("foo/x.gif")));
+    }
+
+    private static AbstractPlexusIoResource resource(String name) {
+        return new AbstractPlexusIoResource(name, 0, 0, true, false, true) {
+            @Nonnull
+            public InputStream getContents() {
+                throw new IllegalStateException("Not implemented");
+            }
+
+            public URL getURL() {
+                throw new IllegalStateException("Not implemented");
+            }
+        };
+    }
+}

++++++ plexus-io-build.xml ++++++
--- /var/tmp/diff_new_pack.FK5BaP/_old  2026-10-20 12:40:11.598187735 +0200
+++ /var/tmp/diff_new_pack.FK5BaP/_new  2026-10-20 12:40:11.604187986 +0200
@@ -10,7 +10,7 @@
 
   <property name="project.artifactId" value="plexus-io"/>
   <property name="project.groupId" value="org.codehaus.plexus"/>
-  <property name="project.version" value="3.8.0"/>
+  <property name="project.version" value="3.8.1"/>
   
   <property name="compiler.release" value="8"/>
   <property name="compiler.source" value="1.${compiler.release}"/>

Reply via email to