<commit_before>.. _releases:

***************
Release History
***************

Historically, the release number of PyXB indicated stability in a way similar
to that of Linux several years ago, with even/odd of the middle digit
indicating stability/development.  That policy ended as of 1.1.3, and the
relaxed policy is:

- All releases consist of three non-negative integers

- A release *series* refers to all releases with the same first two integers.
  The third integer indicates an incremental update to the system.

- Should it be necessary to make wholesale changes that affect either
  stability or interface, the second or even first integer will be
  incremented

- Critical bug fixes may result in new releases in older series, but this is
  expected to be extremely unusual.  Such fixes will be made on a branch of
  the :ref:`git repository <git_repository>`.

- All packaged releases are intended to be of comparable stability, with bug
  fixes and most enhancements causing an increment in the third integer

As examples, :ticket:`correcting the content model for weak determinism <112>`
resulted in PyXB 1.2.0, and :ticket:`support of Python 3 <150>` will result in
PyXB 1.3.0.


1.2.x
=====

The 1.2.x release series introduces a new content model which provides much
more help in resolving validation errors.  Concurrent with this support was
dropped for Python 2.4 and 2.5.  The 1.2.x release will work with Python 2.6
and 2.7; some unit tests are skipped under Python 2.6 due to insufficient
support for validating exception attributes.

.. _pyxb-1.2.2:

1.2.2 (17 Apr 2013)
-------------------

Documentation: http://pyxb.sourceforge.net/PyXB-1.2.2

Almost all changes are bug fixes, including issues with element order when
extending types, name conflicts between XML and Python entities in the
binding, and unicode problems in diagnostics.

PyXB has never intentionally supported using bindings generated by different
versions of PyXB.  This will be enforced from version 1.2.2 onwards.

The following reported `defects/enhancements
<http://sourceforge.net/apps/trac/pyxb/>`_ have been addressed:

- Correct management of changes to default namespace within documents. :ticket:`183`
- Do not interleave base and extension type elements. :ticket:`184`
- Incorrect character range management resulted in regex failure. :ticket:`186`
- Wide unicode mis-defines XML1p0e2 Char class. :ticket:`187`
- Improve contents of StructuralBadDocumentError. :ticket:`189`
- Generate exception details correctly with unicode content. :ticket:`190`
- Namespace must be a reserved symbol within CTD instances. 
- PyXB rejects restriction that changes element type. :ticket:`193`
- Multiple cases where names (from imported bindings, namespaces, and
  top-level classes and elements) resulted in conflicts with other top-level
  and class-level names. :ticket:`191`, :ticket:`194`, :ticket:`197`
- Avoid validating content of simple types marked with xsi:nil. :ticket:`195`
- Validate handling of attribute and element form attributes. :ticket:`196`
- Ensure all referenced namespaces are imported into a binding. :ticket:`198`
- Detect import of bindings generated by a different version of PyXB. :ticket:`199`


.. _pyxb-1.2.1:


1.2.1 (17 Dec 2012)
-------------------

Documentation: http://pyxb.sourceforge.net/PyXB-1.2.1

.. warning::

   This release has an interface change: the :api:`content<commit_msg>Record current set of changes that will be in 1.2.3<commit_after>.. _releases:

***************
Release History
***************

Historically, the release number of PyXB indicated stability in a way similar
to that of Linux several years ago, with even/odd of the middle digit
indicating stability/development.  That policy ended as of 1.1.3, and the
relaxed policy is:

- All releases consist of three non-negative integers

- A release *series* refers to all releases with the same first two integers.
  The third integer indicates an incremental update to the system.

- Should it be necessary to make wholesale changes that affect either
  stability or interface, the second or even first integer will be
  incremented

- Critical bug fixes may result in new releases in older series, but this is
  expected to be extremely unusual.  Such fixes will be made on a branch of
  the :ref:`git repository <git_repository>`.

- All packaged releases are intended to be of comparable stability, with bug
  fixes and most enhancements causing an increment in the third integer

As examples, :ticket:`correcting the content model for weak determinism <112>`
resulted in PyXB 1.2.0, and :ticket:`support of Python 3 <150>` will result in
PyXB 1.3.0.


1.2.x
=====

The 1.2.x release series introduces a new content model which provides much
more help in resolving validation errors.  Concurrent with this support was
dropped for Python 2.4 and 2.5.  The 1.2.x release will work with Python 2.6
and 2.7; some unit tests are skipped under Python 2.6 due to insufficient
support for validating exception attributes.

.. _pyxb-1.2.3:

1.2.3 (?? ??? 2013)
-------------------

Behavioral changes:

- PyXB 1.2.1 automatically filled in the content of fixed elements.  This
  generated invalid documents when the particular element should have been
  absent for some content.  The feature has been removed so fixed elements
  initialize to absent just like every other element.

- The former `--pre-load-archives` option to pyxbgen has been removed and
  replaced by :ref:`pyxbgen--import-augmentable-namespace` which has more
  consistent semantics.  Schema import directives related to a non-augmentable
  namespace (one for which the referenced option has not been provided) will
  be ignored if content for the namespace can be located in any archive or
  builtin.

Code cleanup:

- Trailing whitespace throughout the source has been removed to decrease git
  complaints and non-reproducible patches.
- Several coding practices that would not work under Python3 have been
  replaced with new solutions.

The following reported `defects/enhancements
<http://sourceforge.net/apps/trac/pyxb/>`_ have been addressed:

- Fix problems with nillable simple types.  :ticket:`200`
- Fix problems inserting into plural element attributes.  :ticket:`201`
- Correct namespace-qualified attributes.  :ticket:`202`
- Eliminate default to fixed value for elements.  :ticket:`204`
- Re-word exception when element content was incompatible with fixed value.
  :ticket:`205`
- Fix the aslocal() method for xs:dateTime values with non-UTC timezones.
  :ticket:`206`
- Fix values for restricted duration ranges in pickled data such as namespace
  archives.  :ticket:`207`
- Correct the interpretation of QName-valued base and similar attributes with
  respect to in-scope namespace declarations.  :ticket:`208`
- Rework how to specify that imported namespaces should be processed to extend
  the content model.  :ticket:`209`

.. _pyxb-1.2.2:

1.2.2 (17 Apr 2013)
-------------------

Documentation: http://pyxb.sourceforge.net/PyXB-1.2.2

Almost all changes are bug fixes, including issues with element order when
extending types, name conflicts between XML and Python entities in the
binding, and unicode problems in diagnostics.

PyXB has never intentionally supported using bindings generated by different
versions of PyXB.  This will be enforced from version 1.2.2 onwards.

The following reported `defects/enhancements
<http://sourceforge.net/apps/trac/pyxb/>`_ have been addressed:

- Correct management of changes to default namespace within documents. :ticket:`183`
- Do not interleave base and extension type elements. :ticket:`184`
- Incorrect character range management resulted in regex failure. :ticket:`186`
- Wide unicode mis-defines XML1p0e2 Char class. :ticket:`187`
- Improve contents of StructuralBadDocumentError. :ticket:`189`
- Generate exception details correctly with unicode content. :ticket:`190`
- Namespace must be a reserved symbol within CTD instances. 
- PyXB rejects restriction that changes element type. :ticket:`193`
- Multiple cases where names (from imported bindings, namespaces, and
  top-level classes and elements) resulted in conflicts with other top-level
  and class-level names. :ticket:`191`, :ticket:`194`, :ticket:`197`
- Avoid validating content of simple types marked with xsi:nil. :ticket:`195`
- Validate handling of attribute and element form attributes. :ticket:`196`
- Ensure all referenced namespaces are imported into a binding. :ticket:`198`
- Detect import of bindings generated by a different version of PyXB. :ticket:`199`

.. _pyxb-1.2.1:


1.2.1 (17 Dec 2012)
-------------------

Documentation: http://pyxb.sourceforge.net/PyXB-1.2.1

.. warning::

   This release has an interface change: the :api:`content
{'fraction_non_alphanumeric': 0.08642539102637288, 'fraction_numerical': 0.03014042698938235, 'mean_word_length': 4.081206496519721, 'pattern_counts': {'":': 0, '<': 12, '<?xml version=': 0, '>': 12, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4776193', 'n_tokens_mistral': 2562, 'n_tokens_neox': 2296, 'n_words': 1127}