Upcoming scala-xml 1.1.0

Update: Because the Lift Framework community found that changes in the next release broke source compatibility, the next release of scala-xml will be 1.1.0, not 1.0.7. Thanks for Joe Barnes for reporting this issue.

Announcement

The next maintenance release of scala-xml will be 1.1.0 and will include the following user changes:

  • Preliminary support for scala-xml from Scala.js
  • The default encoding in XML.save and XML.write will be UTF-8 instead of ISO-8859-1
  • The XML pretty-printer has a new option minimizeTags for minimizing tags
  • Fix for a defect in the handling of apos entity in the XMLEventReader
  • Fix for defect in SI-9060 with fifth-edition names by handling colons and full stop characters in XML names
  • Fix for a tiny defect with toString method for NodeBuffer
  • Fix for the defect with doc generation for links to Scala standard library
  • Fix performance issue related to lock contention from lazy val in MetaData.normalize
  • Revert Utility.escape implementation to use Iterator instead of while
  • Convert deprecated use of mutable.Stack to List in the abstract class scala.xml.parsing.FactoryAdapter, including the implemented class NoBindingFactoryAdapter and the static member, scala.xml.factory.XML.adapter.

The next version of scala-xml will be released for:

  • Scala.js 0.6,
  • Scala 2.11,
  • 2.12 and
  • 2.13.0-M1

For more details on the next release and the changes above, see the following GitHub issue https://github.com/scala/scala-xml/issues/156

Thanks to the following contributors in this release:

  • Joe Barnes
  • Olivier Blanvillain
  • Fehmi Can Saglam
  • Sébastien Doeraene
  • Aaron S. Hawley
  • Juris Krikis
  • Andrew Marki
  • Lukas Rytz
  • Platon Pronko
  • Joerg Schmuecker
  • Biswanath Senapati
  • Seth Tisue
  • Dale Wijnand
  • Ningning Xie
  • and anyone that was failed to mention

Background

The current available release of scala-xml is 1.0.6. It was published in Sep-2016.

The scala-xml library was originally distributed with the compiler, but since 2.11 has been decoupled. Using the language’s XML syntax became an optional runtime, that could be added with the following sbt dependency entry:

"org.scala-lang.modules" %% "scala-xml" % "1.0.6",

The scala-xml library is a community-maintained library separate from the compiler project.

Going forward

There are more significant bug fixes, feature requests and security enhancements proposed in the issue tracker that will be taken up in subsequent releases. Contributors are welcome.

6 Likes

Thanks for taking care of scala-xml @ashawley, it’s really appreciated!

2 Likes

Woohoo!!! So happy to see this :heart:

1 Like

Thank you, particularly for the Scala.js support, awesome!

1 Like

I use Scala XML in my courses (and textbooks), so I really appreciate that this project is being supported. Thank you so much for your efforts.

2 Likes

Thank you for this release, @ashawley.
Is there any release date?

1 Like

Ideally very soon. We depend on the Lightbend team to do the official publishing. They just pushed 2.12.3 of Scala this week and another millstone of 2.13 so hopefully they are freed up. But I know Scala parser combinator library is in line for a release too.

Does that not warrant a bigger version bump?

1 Like

We studied it in issue #121. Despite my best efforts, I couldn’t find a reason it was a breaking change. Platon Pronko even made a convincing argument that the current default could be introducing character encoding issues. Instead, it was worth making the library comply with the XML standard.

So we will be entertaining a bigger version bump:

More information at Expunge mutable.Stack by ashawley · Pull Request #150 · scala/scala-xml · GitHub

Today, the 1.1.0 release of scala-xml was tagged in git.

The artifacts should be published and publicly available in the coming days.

And what about a remote presentation, for our Scala user group, in Kyiv?

We expect our meetup on Feb. 27.

I’m traveling and won’t be available, but thank you for asking.

scala-xml 1.1.0 is published now. release notes: https://github.com/scala/scala-xml/releases/tag/v1.1.0

Actually using it might be tricky because of https://github.com/scala/scala-xml/issues/195 — if you want to use it, be sure and check your classpath to be sure that sbt (or whatever build tool you’re using) is actually giving you the version you are asking for. (And if you discover anything helpful about how to force a build tool to do that, please comment on the ticket.)