# README

### Version9.3

### Charles Loomis

Centre National de la Recherche Scientifique (CNRS)

Abstract

This document describes important changes in the pan configuration language compiler between the v9 series and previous releases.

## 1. License

Licensed under the Apache License, Version 2.0 (the "License"). You may obtain a copy of the License at `http://www.apache.org/licenses/LICENSE-2.0`. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

## 2. Migration Issues

### 2.1. Deprecated Features

All of the deprecated features in the v8 series of the compilers has been removed from the v9 series. Ensure that your configuration compiles with the deprecation warnings activated with the v8 compiler before migrating to the v9 series.

## 3. ChangeLog

### 3.1. Version 9.3

No additional changes besides those in RC1 and RC2.

### 3.2. Version 9.3-RC2

- (SF Bug #3585672) Permit both lower and upper case strings for warnings flag in ant and maven tasks.

- (SF Bug #3585346) Misleading deprecation message for debug element

### 3.3. Version 9.3-RC1

- (SF Bug #3582159) Uncaught exception when creating XML transformation

- (SF RFE #3581805) Remove support for XMLDB format.

- (SF RFE #3581801) Change dependency file extension from *.xml.dep to *.dep.

- (SF RFE #3535682) Allow multiple output formats to be generated from CLI.

- (SF Bug #3535413) Check timestamps of all requested output file formats.

- (SF Bug #3529737) Non-object templates can be accessed via value().

- (SF Bug #3579769) Tests failed because of change in TreeSet contract in Java 1.7.

- (SF Bug #3579770) Shell scripts use bash syntax. Explicitly use bash in she-bang lines.

- (SF Bug #3581163) Invalid replacement string in replace() raises uncaught exception.

- (SF RFE #3489988) Allow negative values in range expressions.

- The include syntax without required braces is now allowed.

- The panc command no longer includes the possibility to process annotations. This functionality is now in a separate command panc-annotations.

- The panc command now uses a streamlined set of options that are not compatible with the previous one. The previous one can be invoked with the panc-old command.

### 3.4. Version 9.2

- (SF RFE #3489506) Provide a pan maven archetype. A rudimentary implementation is available which uses the panc maven plugin.

- (SF RFE #3489504) Provide a maven build mojo. A rudimentary implementation is available in the panc maven plugin.

- (SF RFE #3489048) Switch unit tests to use the pan XML format instead of xmldb.

- (SF RFE #3489084) Remove support for panx extension. This has been removed as an XML input format is no longer in the roadmap.

- (SF RFE #3477756) Provide JSON output option. Initial JSON formatter is available; detailed serialization may change based on feedback. The pan compiler now includes the GSON library (Apache 2 license) to handle the JSON serialization.

- (SF RFE #3477753) Deprecate xmldb format. Use the standard pan XML format instead of the xmldb format.

- (SF Bug #3488948) Annotation information in pan book is inaccurate. The description has been correct and expanded somewhat.

### 3.5. Version 9.1

- (SF Bug #3485801) pan does not build on Windows; full build and unit tests now run correctly on windows

- (SF Bug #3485492) `file_contents` does not work correctly on Windows; problems with file name handling have been resolved

- (SF Bug #3483938) Fix the README file to contain information on changes up through the production 9.0 release.

### 3.6. Version 9.0

Production release contains the same features as RC3. All version numbers will be considered production releases unless marked explicitly as alpha, beta, or release candidates.

### 3.7. Version 9.0.0-RC3

- (SF RFE #3422390) The root element used as the starting point for all machine profiles can be specified from the command line and ant task. This allows the injection of data into all of the profiles without having to include explicitly a template in all machine profiles. This will be useful for injecting build metadata into the profiles. Note that the injected data must still follow the global schema (if defined), otherwise builds will fail with validation errors.

### 3.8. Version 9.0.0-RC2

The documentation has been significantly reorganized with all of the documentation apart from this README combined into a single "pan book".

### 3.9. Version 9.0.0-RC1

This release contains the following changes:

- (SF Bug #3171788) Improve error message for format() function when there is a mismatch between given format string and arguments.

- (SF RFE #3386906) Support for \b (backspace) and \f (form feed) escape sequences in double-quoted strings.

- (SF Bug #3186921) Dependency calculation in ant task does not work correctly for namespaced object templates.