released: true apache: true title: 2.6.0 date: 2020-04-24 summary: > Performance updates, API updates, Sonarqube analysis

artifact-root: “https://archive.apache.org/dist/incubator/daffodil/2.6.0/” checksum-root: “https://archive.apache.org/dist/incubator/daffodil/2.6.0/” key-file: “https://downloads.apache.org/daffodil/KEYS

source-dist: - “apache-daffodil-2.6.0-incubating-src.zip”

binary-dist: - “apache-daffodil-2.6.0-incubating-bin.tgz” - “apache-daffodil-2.6.0-incubating-bin.zip” - “apache-daffodil-2.6.0-incubating-bin.msi” - “apache-daffodil-2.6.0.incubating-1.noarch.rpm”

scala-version: 2.12


Performance Updates

Multiple performance updates focused on schema compilation, hidden group references and other cleanups and refactoring.

  • {% jira 1444 %} Performance - schema compilation
  • {% jira 2281 %} isHidden - can't have a group that is both hidden and not hidden
  • {% jira 2280 %} Clean up DSOM backpointers and object-factory clutter
  • {% jira 2299 %} Perfromance for nightly unparse tests for csvMixedNarrow format has degraded more than 30%
  • {% jira 2304 %} hiddenGroupRef in group is dropped during unparse
  • {% jira 2305 %} Remove some Unused Term Methods

Sonarcloud

The main branch of Daffodil was configured to be scanned by Static Analysis tool, Sonarqube, when PRs are merged.

  • {% jira 2272 %} Address Findings from Trial Sonarqube Run
  • {% jira 2300 %} SonarCloud action is triggered on forks and fails
  • {% jira 2291 %} Fix Project Key for Sonarqube
  • {% jira 2314 %} SonarQube broke with update to sbt 1.3.9

Infrastructure

Multiple infrastructure changes were made, including bumping the minor version of Scala 2.12, bumping the SBT version, release container updates, and removal of Travis CI.

  • {% jira 2307 %} Switch to using just GitHub Actions for CI
  • {% jira 2111 %} JavaDoc errors on Java 11
  • {% jira 2313 %} Update to scala 2.12.11
  • {% jira 2312 %} Prepare 2.6.0 Release
  • {% jira 2301 %} Update github actions/checkout to v2
  • {% jira 2294 %} Sign RPM as part of release container
  • {% jira 2315 %} DISCLAIMER file is not included in built jars
  • {% jira 2316 %} Remove SHA256 hashes from releases
  • {% jira 2317 %} README mentions /etc/sbt/sbtopts, but this likely doesn't work for Windows/Mac
  • {% jira 2321 %} Jars need separate/custom license/notices

API Updates

See Deprecation/Compatibility for more details

  • {% jira 2309 %} API calls that take name and namespace should check for namespace-only error
  • {% jira 2311 %} API updates: thread-safety, variable-bindings being lost

TDML

Improvements were made to the TDML runner.

  • {% jira 2302 %} TDML Runner remembers external variable bindings even on subsequent test suites that don't use them.

Miscellaneous Changes and Bug Fixes

  • {% jira 2308 %} element is used by expressions but DPathCompileInfo.isReferencedByExpressions is false
  • {% jira 2293 %} Too many bits in xs:string
  • {% jira 2306 %} Abort: NadaParsers are all supposed to optimize out!
  • {% jira 2004 %} daffodil site should have tutorials area
  • {% jira 2296 %} NACHA failing some tests with “Abort: NadaUnparsers are all supposed to optimize out”
  • {% jira 2283 %} ATO and HL7 saved parsers fail with Stack Overflow errors during generation on commit 7e8e1b3e
  • {% jira 2284 %} Non-thread safe failures with JSON schema
  • {% jira 2290 %} Change download links to downloads.apache.org
  • {% jira 2288 %} update jackson-core dependency to 2.9.8 to facility runtime2 work
  • {% jira 840 %} text numbers: textStandardBase
  • {% jira 2245 %} Compiler Error format message incorrectly rendered
  • {% jira 2286 %} Enable full validation, even if working from compiled binary of schema
  • {% jira 2276 %} Get java.lang.ClassCastException on nightly nitf unparse test
  • {% jira 2271 %} Prepare for 2.6.0 development
  • {% jira 2270 %} Update UDF Proposal to match Final Design
  • {% jira 942 %} Update parsers to handle static vs dynamic properties better
  • {% jira 2318 %} Test XML files missing license
  • {% jira 2319 %} Add license header to .gitignore file
  • {% jira 2320 %} Non en_US LANG causes test failure

Deprecation/Compatibility

The following changes have been made which may affect compatibility with past releases:

  • The following setters were deprecated in favor of these withXYZ functions
    • setValidateDFDLSchemas -> None
    • setCheckAllTopLevel -> withCheckAllTopLevel
    • setTunable -> withTunable
    • setTunables -> withTunables
    • setExternalDFDLVariable -> DataProcessor.setExternalVariable
    • setExternalDFDLVariables -> DataProcessor.setExternalVariables or TDMLDFDLProcessor.withExternalDFDLVariables
    • setDistinguishedRootNode -> withDistinguishedRootNode or arguments to getProcessor, compileSource, or compileFile
    • setDebugger -> withDebugger
    • setDebugging -> withDebugging
    • setTracing -> withTracing
    • setValidationMode -> withValidationMode
    • setExternalDFDLVariables -> withExternalDFDLVariables
    • setExternalVariables -> withExternalVariables