diff -pruN 2.10-1/CITATION.cff 2.12-1/CITATION.cff
--- 2.10-1/CITATION.cff	2025-01-18 15:56:01.000000000 +0000
+++ 2.12-1/CITATION.cff	2025-07-20 11:42:53.000000000 +0000
@@ -1,8 +1,8 @@
 cff-version: 1.2.0
 message: "If you use this software, please cite it as below."
 title: Euclid
-version: 2.10
-date-released: 2025-01-18
+version: 2.12
+date-released: 2025-07-20
 url: "https://github.com/BlueObelisk/euclid"
 preferred-citation:
   type: article
diff -pruN 2.10-1/README.md 2.12-1/README.md
--- 2.10-1/README.md	2025-01-18 15:56:01.000000000 +0000
+++ 2.12-1/README.md	2025-07-20 11:42:53.000000000 +0000
@@ -17,7 +17,7 @@ It's used a lot in CML tools (JUMBO, JUM
 Instructions to increase the version:
 
 ```shell
-mvn versions:set -DnewVersion=2.11-SNAPSHOT
+mvn versions:set -DnewVersion=2.13-SNAPSHOT
 ```
 
 Deploy to Sonatype with the following commands, for snapshots and releases respectively:
diff -pruN 2.10-1/debian/changelog 2.12-1/debian/changelog
--- 2.10-1/debian/changelog	2025-01-21 07:06:17.000000000 +0000
+++ 2.12-1/debian/changelog	2025-09-02 05:49:20.000000000 +0000
@@ -1,3 +1,9 @@
+libeuclid-java (2.12-1) unstable; urgency=medium
+
+  * New upstream version 2.12
+
+ -- Andrius Merkys <merkys@debian.org>  Tue, 02 Sep 2025 01:49:20 -0400
+
 libeuclid-java (2.10-1) unstable; urgency=medium
 
   * New upstream version 2.10
diff -pruN 2.10-1/debian/maven.ignoreRules 2.12-1/debian/maven.ignoreRules
--- 2.10-1/debian/maven.ignoreRules	2025-01-21 07:05:10.000000000 +0000
+++ 2.12-1/debian/maven.ignoreRules	2025-09-02 05:44:02.000000000 +0000
@@ -7,5 +7,6 @@ org.apache.maven.plugins maven-source-pl
 org.codehaus.mojo apt-maven-plugin * * * *
 org.codehaus.mojo cobertura-maven-plugin * * * *
 org.jacoco jacoco-maven-plugin * * * *
+org.sonatype.central central-publishing-maven-plugin * * * *
 org.sonatype.plugins nexus-staging-maven-plugin * * * *
 org.xml-cml euclid-testutil * * * *
diff -pruN 2.10-1/pom.xml 2.12-1/pom.xml
--- 2.10-1/pom.xml	2025-01-18 15:56:01.000000000 +0000
+++ 2.12-1/pom.xml	2025-07-20 11:42:53.000000000 +0000
@@ -3,7 +3,7 @@
 
   <groupId>org.blueobelisk</groupId>
   <artifactId>euclid</artifactId>
-  <version>2.10</version>
+  <version>2.12</version>
   <packaging>jar</packaging>
 
   <properties>
@@ -52,12 +52,12 @@
 
   <distributionManagement>
     <snapshotRepository>
-      <id>ossrh</id>
-      <url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
+      <id>central</id>
+      <url>https://central.sonatype.com</url>
     </snapshotRepository>
     <repository>
-      <id>ossrh</id>
-      <url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/</url>
+      <id>central</id>
+      <url>https://central.sonatype.com</url>
     </repository>
   </distributionManagement>
 
@@ -71,7 +71,7 @@
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-enforcer-plugin</artifactId>
-        <version>3.4.1</version>
+        <version>3.6.0</version>
         <executions>
           <execution>
             <id>enforce-maven</id>
@@ -94,7 +94,7 @@
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-compiler-plugin</artifactId>
-        <version>3.13.0</version>
+        <version>3.14.0</version>
         <configuration>
           <source>1.8</source>
           <target>1.8</target>
@@ -103,7 +103,7 @@
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-javadoc-plugin</artifactId>
-        <version>3.6.3</version>
+        <version>3.11.2</version>
         <executions>
           <execution>
             <id>attach-javadocs</id>
@@ -199,20 +199,20 @@
         </configuration>
       </plugin>
       <plugin>
-        <groupId>org.sonatype.plugins</groupId>
-        <artifactId>nexus-staging-maven-plugin</artifactId>
-        <version>1.6.13</version>
+        <groupId>org.sonatype.central</groupId>
+        <artifactId>central-publishing-maven-plugin</artifactId>
+        <version>0.8.0</version>
         <extensions>true</extensions>
         <configuration>
-          <serverId>ossrh</serverId>
-          <nexusUrl>https://s01.oss.sonatype.org/</nexusUrl>
-          <autoReleaseAfterClose>true</autoReleaseAfterClose>
+          <publishingServerId>central</publishingServerId>
+          <autoPublish>true</autoPublish>
+          <waitUntil>published</waitUntil>
         </configuration>
       </plugin>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-gpg-plugin</artifactId>
-        <version>3.2.4</version>
+        <version>3.2.8</version>
         <executions>
           <execution>
             <id>sign-artifacts</id>
@@ -226,7 +226,7 @@
       <plugin>
         <groupId>org.jacoco</groupId>
         <artifactId>jacoco-maven-plugin</artifactId>
-        <version>0.8.12</version>
+        <version>0.8.13</version>
         <executions>
           <execution>
             <id>start-agent</id>
@@ -266,30 +266,30 @@
     <dependency>
       <groupId>commons-io</groupId>
       <artifactId>commons-io</artifactId>
-      <version>2.18.0</version>
+      <version>2.20.0</version>
     </dependency>
 
     <dependency>
       <groupId>org.apache.logging.log4j</groupId>
       <artifactId>log4j</artifactId>
-      <version>2.24.3</version>
+      <version>2.25.1</version>
       <type>pom</type>
     </dependency>
     <dependency>
       <groupId>org.apache.logging.log4j</groupId>
       <artifactId>log4j-1.2-api</artifactId>
-      <version>2.24.3</version>
+      <version>2.25.1</version>
     </dependency>
     <dependency> 
       <groupId>org.apache.logging.log4j</groupId>
       <artifactId>log4j-core</artifactId>
-      <version>2.24.3</version>
+      <version>2.25.1</version>
     </dependency>
 
     <dependency>
       <groupId>org.apache.commons</groupId>
       <artifactId>commons-lang3</artifactId>
-      <version>3.17.0</version>
+      <version>3.18.0</version>
     </dependency>
     <dependency>
       <groupId>org.apache.commons</groupId>
@@ -300,7 +300,7 @@
     <dependency>
       <groupId>joda-time</groupId>
       <artifactId>joda-time</artifactId>
-      <version>2.13.0</version>
+      <version>2.14.0</version>
     </dependency>
 
     <dependency>
@@ -341,7 +341,7 @@
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-project-info-reports-plugin</artifactId>
-        <version>3.5.0</version>
+        <version>3.9.0</version>
         <reportSets>
           <reportSet>
             <reports>
@@ -363,26 +363,26 @@
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-surefire-report-plugin</artifactId>
-        <version>3.2.5</version>
+        <version>3.5.3</version>
       </plugin>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-jxr-plugin</artifactId>
-        <version>3.3.2</version>
+        <version>3.6.0</version>
       </plugin>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-pmd-plugin</artifactId>
-        <version>3.22.0</version>
+        <version>3.27.0</version>
         <configuration>
-          <targetJdk>1.7</targetJdk>
+          <targetJdk>1.8</targetJdk>
           <linkXRef>true</linkXRef>
         </configuration>
       </plugin>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-checkstyle-plugin</artifactId>
-        <version>3.3.1</version>
+        <version>3.6.0</version>
         <configuration>
           <configLocation>src/test/resources/checkstyle.xml
           </configLocation>
diff -pruN 2.10-1/src/main/java/org/xmlcml/euclid/RealRangeList.java 2.12-1/src/main/java/org/xmlcml/euclid/RealRangeList.java
--- 2.10-1/src/main/java/org/xmlcml/euclid/RealRangeList.java	2025-01-18 15:56:01.000000000 +0000
+++ 2.12-1/src/main/java/org/xmlcml/euclid/RealRangeList.java	2025-07-20 11:42:53.000000000 +0000
@@ -20,7 +20,6 @@ import java.util.Collections;
 import java.util.List;
 
 import org.apache.log4j.Logger;
-import org.xmlcml.euclid.RealRange;
 
 /**
  * a sorted list of ranges.
diff -pruN 2.10-1/src/main/java/org/xmlcml/stml/STMLArray.java 2.12-1/src/main/java/org/xmlcml/stml/STMLArray.java
--- 2.10-1/src/main/java/org/xmlcml/stml/STMLArray.java	2025-01-18 15:56:01.000000000 +0000
+++ 2.12-1/src/main/java/org/xmlcml/stml/STMLArray.java	2025-07-20 11:42:53.000000000 +0000
@@ -21,8 +21,6 @@ import java.util.List;
 
 import nu.xom.Attribute;
 import nu.xom.Element;
-import nu.xom.Node;
-
 import org.apache.log4j.Logger;
 import org.joda.time.DateTime;
 import org.xmlcml.euclid.EuclidRuntimeException;
diff -pruN 2.10-1/src/main/java/org/xmlcml/stml/attribute/DoubleArraySTAttribute.java 2.12-1/src/main/java/org/xmlcml/stml/attribute/DoubleArraySTAttribute.java
--- 2.10-1/src/main/java/org/xmlcml/stml/attribute/DoubleArraySTAttribute.java	2025-01-18 15:56:01.000000000 +0000
+++ 2.12-1/src/main/java/org/xmlcml/stml/attribute/DoubleArraySTAttribute.java	2025-07-20 11:42:53.000000000 +0000
@@ -18,8 +18,6 @@ package org.xmlcml.stml.attribute;
 import java.text.ParseException;
 
 import nu.xom.Attribute;
-import nu.xom.Node;
-
 import org.xmlcml.euclid.Util;
 import org.xmlcml.stml.STMLAttribute;
 
diff -pruN 2.10-1/src/main/java/org/xmlcml/stml/attribute/DoubleSTAttribute.java 2.12-1/src/main/java/org/xmlcml/stml/attribute/DoubleSTAttribute.java
--- 2.10-1/src/main/java/org/xmlcml/stml/attribute/DoubleSTAttribute.java	2025-01-18 15:56:01.000000000 +0000
+++ 2.12-1/src/main/java/org/xmlcml/stml/attribute/DoubleSTAttribute.java	2025-07-20 11:42:53.000000000 +0000
@@ -21,7 +21,6 @@ import org.xmlcml.euclid.Util;
 import org.xmlcml.stml.STMLAttribute;
 
 import nu.xom.Attribute;
-import nu.xom.Node;
 
 /**
  * attribute representing a double value.
diff -pruN 2.10-1/src/main/java/org/xmlcml/stml/attribute/IdAttribute.java 2.12-1/src/main/java/org/xmlcml/stml/attribute/IdAttribute.java
--- 2.10-1/src/main/java/org/xmlcml/stml/attribute/IdAttribute.java	2025-01-18 15:56:01.000000000 +0000
+++ 2.12-1/src/main/java/org/xmlcml/stml/attribute/IdAttribute.java	2025-07-20 11:42:53.000000000 +0000
@@ -16,7 +16,6 @@
 package org.xmlcml.stml.attribute;
 
 import nu.xom.Attribute;
-import nu.xom.Node;
 
 /**
  * user-modifiable class supporting "id". 
diff -pruN 2.10-1/src/main/java/org/xmlcml/stml/attribute/IntArraySTAttribute.java 2.12-1/src/main/java/org/xmlcml/stml/attribute/IntArraySTAttribute.java
--- 2.10-1/src/main/java/org/xmlcml/stml/attribute/IntArraySTAttribute.java	2025-01-18 15:56:01.000000000 +0000
+++ 2.12-1/src/main/java/org/xmlcml/stml/attribute/IntArraySTAttribute.java	2025-07-20 11:42:53.000000000 +0000
@@ -16,8 +16,6 @@
 package org.xmlcml.stml.attribute;
 
 import nu.xom.Attribute;
-import nu.xom.Node;
-
 import org.xmlcml.euclid.Util;
 import org.xmlcml.stml.STMLAttribute;
 import org.xmlcml.stml.STMLConstants;
diff -pruN 2.10-1/src/main/java/org/xmlcml/stml/attribute/IntSTAttribute.java 2.12-1/src/main/java/org/xmlcml/stml/attribute/IntSTAttribute.java
--- 2.10-1/src/main/java/org/xmlcml/stml/attribute/IntSTAttribute.java	2025-01-18 15:56:01.000000000 +0000
+++ 2.12-1/src/main/java/org/xmlcml/stml/attribute/IntSTAttribute.java	2025-07-20 11:42:53.000000000 +0000
@@ -19,7 +19,6 @@ import org.xmlcml.stml.STMLAttribute;
 import org.xmlcml.stml.STMLConstants;
 
 import nu.xom.Attribute;
-import nu.xom.Node;
 
 /**
  * attribute representing an int value.
diff -pruN 2.10-1/src/main/java/org/xmlcml/stml/attribute/StringArraySTAttribute.java 2.12-1/src/main/java/org/xmlcml/stml/attribute/StringArraySTAttribute.java
--- 2.10-1/src/main/java/org/xmlcml/stml/attribute/StringArraySTAttribute.java	2025-01-18 15:56:01.000000000 +0000
+++ 2.12-1/src/main/java/org/xmlcml/stml/attribute/StringArraySTAttribute.java	2025-07-20 11:42:53.000000000 +0000
@@ -16,8 +16,6 @@
 package org.xmlcml.stml.attribute;
 
 import nu.xom.Attribute;
-import nu.xom.Node;
-
 import org.xmlcml.euclid.Util;
 import org.xmlcml.stml.STMLAttribute;
 import org.xmlcml.stml.STMLConstants;
diff -pruN 2.10-1/src/main/java/org/xmlcml/stml/attribute/StringSTAttribute.java 2.12-1/src/main/java/org/xmlcml/stml/attribute/StringSTAttribute.java
--- 2.10-1/src/main/java/org/xmlcml/stml/attribute/StringSTAttribute.java	2025-01-18 15:56:01.000000000 +0000
+++ 2.12-1/src/main/java/org/xmlcml/stml/attribute/StringSTAttribute.java	2025-07-20 11:42:53.000000000 +0000
@@ -19,7 +19,6 @@ import org.xmlcml.stml.STMLAttribute;
 import org.xmlcml.stml.STMLConstants;
 
 import nu.xom.Attribute;
-import nu.xom.Node;
 
 /**
  * attribute representing a string value.
diff -pruN 2.10-1/src/main/java/org/xmlcml/xml/XMLUtil.java 2.12-1/src/main/java/org/xmlcml/xml/XMLUtil.java
--- 2.10-1/src/main/java/org/xmlcml/xml/XMLUtil.java	2025-01-18 15:56:01.000000000 +0000
+++ 2.12-1/src/main/java/org/xmlcml/xml/XMLUtil.java	2025-07-20 11:42:53.000000000 +0000
@@ -26,7 +26,6 @@ import java.io.OutputStream;
 import java.io.StringReader;
 import java.util.ArrayList;
 import java.util.List;
-import java.util.regex.Pattern;
 
 import nu.xom.Attribute;
 import nu.xom.Builder;
@@ -45,7 +44,6 @@ import nu.xom.canonical.Canonicalizer;
 
 import org.apache.commons.io.IOUtils;
 import org.apache.log4j.Logger;
-import org.junit.Assert;
 import org.xmlcml.euclid.Util;
 
 /**
diff -pruN 2.10-1/src/test/java/org/xmlcml/euclid/test/Real2ArrayTest.java 2.12-1/src/test/java/org/xmlcml/euclid/test/Real2ArrayTest.java
--- 2.10-1/src/test/java/org/xmlcml/euclid/test/Real2ArrayTest.java	2025-01-18 15:56:01.000000000 +0000
+++ 2.12-1/src/test/java/org/xmlcml/euclid/test/Real2ArrayTest.java	2025-07-20 11:42:53.000000000 +0000
@@ -17,9 +17,6 @@
 package org.xmlcml.euclid.test;
 
 import static org.xmlcml.euclid.EuclidConstants.EPS;
-import static org.xmlcml.euclid.EuclidConstants.S_PIPE;
-import static org.xmlcml.euclid.EuclidConstants.S_SPACE;
-
 import java.util.Iterator;
 
 import org.apache.log4j.Logger;
