Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update uwsgi version to 1.9.18.2 #84

Closed
wants to merge 10,000 commits into from

Conversation

drscream
Copy link

Update the py-uwsgi version to 1.9.18.2 (current stable). The build will also work on SmartOS. I've also removed patches because it looks like they are already included in the new stable version.

schmonz and others added 30 commits September 15, 2013 16:26
Redcarpet is Ruby library for Markdown processing that smells like
butterflies and popcorn.

Redcarpet used to be a drop-in replacement for Redcloth. This is no longer the
case since version 2 -- it now has its own API, but retains the old name. Yes,
that does mean that Redcarpet 2 is not backwards-compatible with the 1.X
versions.

Redcarpet is based on the [Sundown](https://www.github.com/vmg/sundown)
library. You might want to find out more about Sundown to see what makes this
Ruby library so awesome.
The SafeYAML gem provides an alternative implementation of `YAML.load`
suitable for accepting user input in Ruby applications.  Unlike Ruby's
built-in implementation of `YAML.load`, SafeYAML's version will not expose
apps to arbitrary code execution exploits (such as [the ones
discovered](http://www.reddit.com/r/netsec/comments/167c11/serious_vulnerability_in_ruby_on_rails_allowing/)
[in Rails in early
2013](http://www.h-online.com/open/news/item/Rails-developers-close-another-extremely-critical-flaw-1793511.html)).

If you encounter any issues with SafeYAML, check out the 'Common Issues'
section below.  If you don't see anything that addresses the problem you're
experiencing, by all means,  [create an
issue](https://github.com/dtao/safe_yaml/issues/new)!
Exact changes aren't available.  Please refer change log in github.
Exact changes aren't available.  It looks a few bug fixes.
= 2.1
=== 19th Aug, 2010 (whyday)
* Helpers#R now calls to_param on any object it passes in
* Fix route generation issue with routes including "." (TritonDataCenter#22)
* Improved tests
* Improved 1.9 support
* Camping::Server is now built upon Rack::Server
* Add support for ERB, Haml etc through Tilt
* Introducing Camping.options and Camping#set
* Camping::Server only loads ActiveRecord when needed
# Changelog
## Version 3.1.0 - 2013-07-07
* Update dependencies
* Switch to template contributed by brianflanagan [TritonDataCenter#8]
* Add support for multiple independent heel servers [TritonDataCenter#9]
	www/camping	2.1.532
	www/heel	3.1.0
Cookiejar allows for parsing and returning cookies in Ruby HTTP client code.
Exact changes aren't available.  Please refer change log in github.
HTTP::Cookie is a ruby library to handle HTTP cookies in a way both
compliant with RFCs and compatible with today's major browsers.

It was originally a part of the
[Mechanize](https://github.com/sparklemotion/mechanize) library,
separated as an independent library in the hope of serving as a common
component that is reusable from any HTTP related piece of software.

The following is an incomplete list of its features:

* Its behavior is highly compatible with that of today's major web
  browsers.

* It is based on and conforms to RFC 6265 (the latest standard for the
  HTTP cookie mechanism) to a high extent, with real world conventions
  deeply in mind.

* It takes eTLD (effective TLD, also known as "Public Suffix") into
  account just as major browsers do, to reject cookies with an eTLD
  domain like "org", "co.jp", or "appspot.com".  This feature is
  brought to you by the domain_name gem.

* The number of cookies and the size are properly capped so that a
  cookie store does not get flooded.

* It supports the legacy Netscape cookies.txt format for
  serialization, maximizing the interoperability with other
  implementations.

* It supports the cookies.sqlite format adopted by Mozilla Firefox for
  backend store database which can be shared among multiple program
  instances.

* It is relatively easy to add a new serialization format or a backend
  store because of its modular API.
  pinfo-0.6.10, py-setuptools-1.1.5, py-sip-4.15.2, viewvc-1.1.21,
  wine-devel-1.7.2 [wait until NetBSD gains OSS 4 [kern/46611] or
  bring OSS 3 support back], x264-devel-20130914.
# colorator

Colorize your text for the terminal

## Supported Colors

- black
- red
- green
- yellow
- blue
- magenta
- cyan
- white
- bold

## Why

There are a bunch of gems that provide functionality like this, but none have
as simple an API as this. Just call `"string".color` and your text will be
colorized.
changelog
===========

Version 0.5.1 (June 25, 2013)
-----------------------------

* Ensure compatability across distros by detecting if `python2` is available

Version 0.5.0 (Apr 13, 2013)
-----------------------------

* Use #rstrip to fix table mode bug

Version 0.4.2 (Feb 25, 2013)
-----------------------------

* Add new lexers, including custom lexers
Exact changes aren't available.  Please refer change log in github.
2013-9-15 meld 1.8.0
====================

  Fixes:

    * Minor fixes (Kai Willadsen)

  Translations:

    * Matej Urbančič (sl)
@drscream drscream closed this Feb 8, 2014
jperkin pushed a commit that referenced this pull request Mar 14, 2014
Upstream changes:
-----------------

[Bug] #868: Substantial speedup of parallel tasks by removing an unnecessary
blocking timeout in the JobQueue loop. Thanks to Simo Kinnunen for the patch.

[Bug] #328: lcd was no longer being correctly applied to upload_template; this
has been fixed. Thanks to Joseph Lawson for the catch.

[Bug] #870: Changes to shell env var escaping highlighted some extraneous and
now damaging whitespace in with path():. This has been removed and a regression
test added.

[Bug] #871: Use of string mode values in put(local, remote, mode="NNNN") would
sometimes cause Unsupported operand errors. This has been fixed.

[Bug] #84: Fixed problem with missing -r flag in Mac OS X sed version. Thanks
to Konrad Hałas for the patch.

[Bug] #861: Gracefully handle situations where users give a single string
literal to env.hosts. Thanks to Bill Tucker for catch & patch.

[Bug] #367: Expand paths with tilde inside (contrib.files). Thanks to Konrad
Hałas for catch & patch.

[Feature] #845: Downstream synchronization option implemented for
rsync_project. Thanks to Antonio Barrero for the patch.
jperkin pushed a commit that referenced this pull request Mar 14, 2014
News
====

Release 3.0.8 - 2013/09/29
--------------------------

Improvements
^^^^^^^^^^^^

* [admin] Improved error handling of select functionality. This change shows error message
  and hides loading dialog. [Patch by orangain]
* [admin] Improved to submit search form with the enter key. [Patch by orangain]
* [admin] Improved to show placeholder in search form.
  This change shows usage examples. [Patch by orangain]
* [httpd] Supported :ref:`groonga-query-log-path` directive
* [doc] Updated :doc:`/reference/commands/select` documentation about the number of
  hits in select response.
* Improved to ignore an empty token which is generated by continuous spaces from tokenizer.
  [groonga-dev,01729] [Suggested by Naoya Murakami]
* [token delimit] Improved to treat continuous spaces as a space.
  The tokenizer regards 2 or more spaces are valid input.
* [doc] Added note about indexes for each column vs indexes for multiple column.
* [doc] Added language annotation to source label. [groonga-dev,01751] [Suggested by Kazuhiro Isobe]
* Supported :ref:`cascade-delete` to referenced records. In previous version,
  You got an error for the operation.
* [doc] Updated documentation location in README. [groonga-dev,01800] [Reported by Kazuhiro Isobe]
* [experimental] Added :doc:`/reference/commands/ruby_eval` command.
* [doc] Added note about GQTP and HTTP for server use. [groonga-dev,01810] [Reported by Kazuhiro Isobe]

Fixes
^^^^^

* [admin] Fixed a bug that add value button of COLUMN_VECTOR does not work.

Thanks
^^^^^^

* orangain
* Naoya Murakami
* Kazuhiro Isobe

Release 3.0.7 - 2013/08/29
--------------------------

Improvements
^^^^^^^^^^^^

* [doc] Added API documentation. [groonga-dev,01593]
  [GitHub#79,#80,#81,#82,#83,#84,#85,#86,#87,#88,#89,#90,#91,#92,#93,#95,#96,#97,#98,#99,#100]
  [Patch by whombx]
* [table_remove] Improved not to remove patricia trie table or hash table
  which is still referenced. This change avoids that referenced table is removed accidentally.
* Improved to just ignore too long token (4096 bytes or more).
  This change affects when it is registered. In the previous version, it is treated as an
  error instead of a warning. [groonga-dev,01571] [Suggested by Naoya Murakami]
* Improved to show actual discarded posting term in log message.
  [groonga-dev,01621] [Reported by Naoya Murakami]
* [httpd] Supported loading data using POST method. [GitHub#101]
  [Patch by Motoi Washida]
* [httpd] Supported groonga log as ``groonga_log_path`` directive.
* [httpd] Supported groonga log level as ``groonga_log_level`` directive.
* [httpd] Supported customizing cache limit as ``groonga_cache_limit`` directive.

Fixes
^^^^^

* Fixed a bug that error in expression may cause stack overflow.
  This change avoids that groonga crashes suddenly as a result of error accumlation.
* Fixed a crash bug that offline index construction for vector column which has
  orphan reference causes.
* Fixed a bug that groonga doesn't exit on error while daemon mode starts.
  For example, ``groonga -d /tmp/non-existence.db`` reproduce this bug.
* [dump] Fixed a bug that wrong table type is dumped.
  This bug occurs when table type is TABLE_PAT_KEY and key is reference type.
* Fixed a bug that the default ``--cache-limit`` value is 0.
  The default value is changed to '100'.
* Fixed a memory leak when :doc:`/reference/functions/sub_filter` is used.
* [doc] Fixed description of defrag command. [Reported by @naoina]
* [doc] Fixed description about the way to contribute. [GitHub#77]
  [Patch by Masafumi Yokoyama]
* [plugin] Fixed a crash bug on multiple DB open case.
  This bug affects the case that multiple plugin is used and the same database is opened from
  multiple process. [groonga-dev,01596] [Reported by Naoya Murakami]
* Fixed a bug that nested match operation after ``AND`` operator doesn't work.
  The ``select ... --filter '... && nested.column @ "keyword"'`` query reproduces this bug.
  [groonga-dev,01599] [Reported by Motoi Washida]
* [doc] Fixed a typo about documentation of special characters.
  [Reported by Genki Takiuchi]
* Fixed a typo in error message when invalid character is given.
  [Reported by YOSHIDA Mitsuo]

Thanks
^^^^^^

* whombx
* @naoina
* Masafumi Yokoyama
* Motoi Washida
* Genki Takiuchi
* YOSHIDA Mitsuo
jperkin pushed a commit that referenced this pull request Mar 14, 2014
Upstream changes:
3.1.0 2013-11-16 16:46:35+0900
    [BUG FIXES]
    - Close #95; $/ affected the parse() method

    [FEATURES]
    - Add $xslate->validate($file) method to check template syntax

3.0.2 2013-11-15 21:56:53+0900
    [BUG FIXES]
    - Fix a mojibake issue where utf8::upgrade() was always called when
      loading caches (hanabukuro++)

3.0.1 2013-11-04 12:27:51+0900
    [TEST FIXES]
    - Fix a test that might fail on a slow machine like Raspberry Pi
      (Getty++)

3.0.0 2013-10-18 08:59:22+0900
    - No code changes from 2.1.0, just re-packaging for package managers

2.1.0 2013-10-17 22:18:21+0900
    [BUG FIXES]
    - Fix an issue that multi-bytes string literals used for a hash key
      was not dealt as a text string (@niratama++)
      WARNING: this change could break your code if you use multi-byte
               text string as a hash key.

2.0010 2013-10-07 21:56:12+0900
    [BUG FIXES]
    - Fix an issue that vpath with text-strings raised errors
      on newer perls due to specification changes in PerlIO::scalar (#90)
    - Documentation tweaks (#84, #86)
jperkin pushed a commit that referenced this pull request Mar 14, 2014
FITS (Flexible Image Transport System) is a data format most used in astronomy.
PyFITS is a Python module for reading, writing, and manipulating FITS files.
The module uses Python's object-oriented features to provide quick, easy, and
efficient access to FITS files. The use of Python's array syntax enables
immediate access to any FITS extension, header cards, or data items.

Changes to 2.4.0 (in py-pyfits):

Changelog
===========

3.2 (2013-11-26)
----------------

Highlights
^^^^^^^^^^

- Rewrote CFITSIO-based backend for handling tile compression of FITS files.
  It now uses a standard CFITSIO instead of heavily modified pieces of CFITSIO
  as before.  PyFITS ships with its own copy of CFITSIO v3.35 which supports
  the latest version of the Tiled Image Convention (v2.3), but system
  packagers may choose instead to strip this out in favor of a
  system-installed version of CFITSIO.  Earlier versions may work, but nothing
  earlier than 3.28 has been tested yet. (#169)

- Added support for reading and writing tables using the Q format for columns.
  The Q format is identical to the P format (variable-length arrays) except
  that it uses 64-bit integers for the data descriptors, allowing more than
  4 GB of variable-length array data in a single table. (#160)

- Added initial support for table columns containing pseudo-unsigned integers.
  This is currently enabled by using the ``uint=True`` option when opening
  files; any table columns with the correct BZERO value will be interpreted
  and returned as arrays of unsigned integers.

- Some refactoring of the table and ``FITS_rec`` modules in order to better
  separate the details of the FITS binary and ASCII table data structures from
  the HDU data structures that encapsulate them.  Most of these changes should
  not be apparent to users (but see API Changes below).


API Changes
^^^^^^^^^^^

- Assigning to values in ``ColDefs.names``, ``ColDefs.formats``,
  ``ColDefs.nulls`` and other attributes of ``ColDefs`` instances that return
  lists of column properties is no longer supported.  Assigning to those lists
  will no longer update the corresponding columns.  Instead, please just
  modify the ``Column`` instances directly (``Column.name``, ``Column.null``,
  etc.)

- The ``pyfits.new_table`` function is marked "pending deprecation".  This
  does not mean it will be removed outright or that its functionality has
  changed.  It will likely be replaced in the future for a function with
  similar, if not subtly different functionality.  A better, if not slightly
  more verbose approach is to use ``pyfits.FITS_rec.from_columns`` to create
  a new ``FITS_rec`` table--this has the same interface as
  ``pyfits.new_table``.  The difference is that it returns a plan ``FITS_rec``
  array, and not an HDU instance.  This ``FITS_rec`` object can then be used
  as the data argument in the constructors for ``BinTableHDU`` (for binary
  tables) or ``TableHDU`` (for ASCII tables).  This is analogous to creating
  an ``ImageHDU`` by passing in an image array.
  ``pyfits.FITS_rec.from_columns`` is just a simpler way of creating a
  FITS-compatible recarray from a FITS column specification.

- The ``updateHeader``, ``updateHeaderData``, and ``updateCompressedData``
  methods of the ``CompDataHDU`` class are pending deprecation and moved to
  internal methods.  The operation of these methods depended too much on
  internal state to be used safely by users; instead they are invoked
  automatically in the appropriate places when reading/writing compressed image
  HDUs.

- The ``CompDataHDU.compData`` attribute is pending deprecation in favor of
  the clearer and more PEP-8 compatible ``CompDataHDU.compressed_data``.

- The constructor for ``CompDataHDU`` has been changed to accept new keyword
  arguments.  The new keyword arguments are essentially the same, but are in
  underscore_separated format rather than camelCase format.  The old arguments
  are still pending deprecation.

- The internal attributes of HDU classes ``_hdrLoc``, ``_datLoc``, and
  ``_datSpan`` have been replaced with ``_header_offset``, ``_data_offset``,
  and ``_data_size`` respectively.  The old attribute names are still pending
  deprecation.  This should only be of interest to advanced users who have
  created their own HDU subclasses.

- The following previously deprecated functions and methods have been removed
  entirely: ``createCard``, ``createCardFromString``, ``upperKey``,
  ``ColDefs.data``, ``setExtensionNameCaseSensitive``, ``_File.getfile``,
  ``_TableBaseHDU.get_coldefs``, ``Header.has_key``, ``Header.ascardlist``.

  If you run your code with a previous version of PyFITS (>= 3.0, < 3.2) with
  the ``python -Wd`` argument, warnings for all deprecated interfaces still in
  use will be displayed.

- Interfaces that were pending deprecation are now fully deprecated.  These
  include: ``create_card``, ``create_card_from_string``, ``upper_key``,
  ``Header.get_history``, and ``Header.get_comment``.

- The ``.name`` attribute on HDUs is now directly tied to the HDU's header, so
  that if ``.header['EXTNAME']`` changes so does ``.name`` and vice-versa.

- The ``pyfits.file.PYTHON_MODES`` constant dict was renamed to
  ``pyfits.file.PYFITS_MODES`` which better reflects its purpose.  This is
  rarely used by client code, however.  Support for the old name will be
  removed by PyFITS 3.4.


Other Changes and Additions
^^^^^^^^^^^^^^^^^^^^^^^^^^^

- The new compression code also adds support for the ZQUANTIZ and ZDITHER0
  keywords added in more recent versions of this FITS Tile Compression spec.
  This includes support for lossless compression with GZIP. (#198) By default
  no dithering is used, but the ``SUBTRACTIVE_DITHER_1`` and
  ``SUBTRACTIVE_DITHER_2`` methods can be enabled by passing the correct
  constants to the ``quantize_method`` argument to the ``CompImageHDU``
  constuctor.  A seed can be manually specified, or automatically generated
  using either the system clock or checksum-based methods via the
  ``dither_seed`` argument.  See the documentation for ``CompImageHDU`` for
  more details. (#198) (spacetelescope/PYFITS#32)

- Images compressed with the Tile Compression standard can now be larger than
  4 GB through support of the Q format. (#159)

- All HDUs now have a ``.ver`` ``.level`` attribute that returns the value of
  the EXTVAL and EXTLEVEL keywords from that HDU's header, if the exist.  This
  was added for consistency with the ``.name`` attribute which returns the
  EXTNAME value from the header.

- Then ``Column`` and ``ColDefs`` classes have new ``.dtype`` attributes
  which give the Numpy dtype for the column data in the first case, and the
  full Numpy compound dtype for each table row in the latter case.

- There was an issue where new tables created defaulted the values in all
  string columns to '0.0'.  Now string columns are filled with empty strings
  by default--this seems a less surprising default, but it may cause
  differences with tables created with older versions of PyFITS.

- Improved round-tripping and preservation of manually assigned column
  attributes (``TNULLn``, ``TSCALn``, etc.) in table HDU headers.
  (astropy/astropy#996)


Bug Fixes
^^^^^^^^^

- Binary tables containing compressed images may, optionally, contain other
  columns unrelated to the tile compression convention. Although this is an
  uncommon use case, it is permitted by the standard. (#159)

- Reworked some of the file I/O routines to allow simpler, more consistent
  mapping between OS-level file modes ('rb', 'wb', 'ab', etc.) and the more
  "PyFITS-specific" modes used by PyFITS like "readonly" and "update".
  That is, if reading a FITS file from an open file object, it doesn't matter
  as much what "mode" it was opened in so long as it has the right
  capabilities (read/write/etc.)  Also works around bugs in the Python io
  module in 2.6+ with regard to file modes. (spacetelescope/PyFITS#33)

- Fixed an obscure issue that can occur on systems that don't have flush to
  memory-mapped files implemented (namely GNU Hurd). (astropy/astropy#968)


3.1.3 (2013-11-26)
------------------

- Disallowed assigning NaN and Inf floating point values as header values,
  since the FITS standard does not define a way to represent them in. Because
  this is undefined, the previous behavior did not make sense and produced
  invalid FITS files. (spacetelescope/PyFITS#11)

- Added a workaround for a bug in 64-bit OSX that could cause truncation when
  writing files greater than 2^32 bytes in size. (spacetelescope/PyFITS#28)

- Fixed a long-standing issue where writing binary tables did not correctly
  write the TFORMn keywords for variable-length array columns (they ommitted
  the max array length parameter of the format).  This was thought fixed in
  v3.1.2, but it was only fixed there for compressed image HDUs and not for
  binary tables in general.

- Fixed an obscure issue that can occur on systems that don't have flush to
  memory-mapped files implemented (namely GNU Hurd). (Backported from 3.2)


3.0.12 (2013-11-26)
-------------------

- Disallowed assigning NaN and Inf floating point values as header values,
  since the FITS standard does not define a way to represent them in. Because
  this is undefined, the previous behavior did not make sense and produced
  invalid FITS files. (Backported from 3.1.3)

- Added a workaround for a bug in 64-bit OSX that could cause truncation when
  writing files greater than 2^32 bytes in size. (Backported from 3.1.3)

- Fixed a long-standing issue where writing binary tables did not correctly
  write the TFORMn keywords for variable-length array columns (they ommitted
  the max array length parameter of the format).  This was thought fixed in
  v3.1.2, but it was only fixed there for compressed image HDUs and not for
  binary tables in general. (Backported from 3.1.3)

- Fixed an obscure issue that can occur on systems that don't have flush to
  memory-mapped files implemented (namely GNU Hurd). (Backported from 3.2)


3.1.2 (2013-04-22)
------------------

- When an error occurs opening a file in fitsdiff the exception message will
  now at least mention which file had the error. (#168)

- Fixed support for opening gzipped FITS files by filename in a writeable mode
  (PyFITS has supported writing to gzip files for some time now, but only
  enabled it when GzipFile objects were passed to ``pyfits.open()`` due to
  some legacy code preventing full gzip support. (#195)

- Added a more helpful error message in the case of malformatted FITS files
  that contain non-float NULL values in an ASCII table but are missing the
  required TNULLn keywords in the header. (#197)

- Fixed an (apparently long-standing) issue where writing compressed images
  did not correctly write the TFORMn keywords for variable-length array
  columns (they ommitted the max array length parameter of the format). (#199)

- Slightly refactored how tables containing variable-length array columns are
  handled to add two improvements: Fixes an issue where accessing the data
  after a call to the `pyfits.getdata` convenience function caused an
  exception, and allows the VLA data to be read from an existing mmap of the
  FITS file. (#200)

- Fixed a bug that could occur when opening a table containing
  multi-dimensional columns (i.e. via the TDIMn keyword) and then writing it
  out to a new file. (#201)

- Added use of the console_scripts entry point to install the fitsdiff and
  fitscheck scripts, which if nothing else provides better Windows support.
  The generated scripts now override the ones explicitly defined in the
  scripts/ directory (which were just trivial stubs to begin with). (#202)

- Fixed a bug on Python 3 where attempting to open a non-existent file on
  Python 3 caused a seemingly unrelated traceback. (#203)

- Fixed a bug in fitsdiff that reported two header keywords containing NaN
  as value as different. (#204)

- Fixed an issue in the tests that caused some tests to fail if pyfits is
  installed with read-only permissions. (#208)

- Fixed a bug where instantiating a ``BinTableHDU`` from a numpy array
  containing boolean fields converted all the values to ``False``. (#215)

- Fixed an issue where passing an array of integers into the constructor of
  ``Column()`` when the column type is floats of the same byte width caused the
  column array to become garbled. (#218)

- Fixed inconsistent behavior in creating CONTINUE cards from byte strings
  versus unicode strings in Python 2--CONTINUE cards can now be created
  properly from unicode strings (so long as they are convertable to ASCII).
  (spacetelescope/PyFITS#1)

- Fixed a couple cases where creating a new table using TDIMn in some of the
  columns could caused a crash. (spacetelescope/PyFITS#3)

- Fixed a bug in parsing HIERARCH keywords that do not have a space after
  the first equals sign (before the value). (spacetelescope/PyFITS#5)

- Prevented extra leading whitespace on HIERARCH keywords from being treated
  as part of the keyword. (spacetelescope/PyFITS#6)

- Fixed a bug where HIERARCH keywords containing lower-case letters was
  mistakenly marked as invalid during header validation.
  (spacetelescope/PyFITS#7)

- Fixed an issue that was ancillary to (spacetelescope/PyFITS#7) where the
  ``Header.index()`` method did not work correctly with HIERARCH keywords
  containing lower-case letters.


3.0.11 (2013-04-17)
-------------------

- Fixed support for opening gzipped FITS files by filename in a writeable mode
  (PyFITS has supported writing to gzip files for some time now, but only
  enabled it when GzipFile objects were passed to ``pyfits.open()`` due to
  some legacy code preventing full gzip support. Backported from 3.1.2. (#195)

- Added a more helpful error message in the case of malformatted FITS files
  that contain non-float NULL values in an ASCII table but are missing the
  required TNULLn keywords in the header. Backported from 3.1.2. (#197)

- Fixed an (apparently long-standing) issue where writing compressed images did
  not correctly write the TFORMn keywords for variable-length array columns
  (they ommitted the max array length parameter of the format). Backported from
  3.1.2. (#199)

- Slightly refactored how tables containing variable-length array columns are
  handled to add two improvements: Fixes an issue where accessing the data
  after a call to the `pyfits.getdata` convenience function caused an
  exception, and allows the VLA data to be read from an existing mmap of the
  FITS file. Backported from 3.1.2. (#200)

- Fixed a bug that could occur when opening a table containing
  multi-dimensional columns (i.e. via the TDIMn keyword) and then writing it
  out to a new file. Backported from 3.1.2. (#201)

- Fixed a bug on Python 3 where attempting to open a non-existent file on
  Python 3 caused a seemingly unrelated traceback. Backported from 3.1.2.
  (#203)

- Fixed a bug in fitsdiff that reported two header keywords containing NaN
  as value as different. Backported from 3.1.2. (#204)

- Fixed an issue in the tests that caused some tests to fail if pyfits is
  installed with read-only permissions. Backported from 3.1.2. (#208)

- Fixed a bug where instantiating a ``BinTableHDU`` from a numpy array
  containing boolean fields converted all the values to ``False``. Backported
  from 3.1.2. (#215)

- Fixed an issue where passing an array of integers into the constructor of
  ``Column()`` when the column type is floats of the same byte width caused the
  column array to become garbled. Backported from 3.1.2. (#218)

- Fixed a couple cases where creating a new table using TDIMn in some of the
  columns could caused a crash. Backported from 3.1.2.
  (spacetelescope/PyFITS#3)


3.1.1 (2013-01-02)
------------------

This is a bug fix release for the 3.1.x series.

Bug Fixes
^^^^^^^^^

- Improved handling of scaled images and pseudo-unsigned integer images in
  compressed image HDUs.  They now work more transparently like normal image
  HDUs with support for the ``do_not_scale_image_data`` and ``uint`` options,
  as well as ``scale_back`` and ``save_backup``.  The ``.scale()`` method
  works better too. (#88)

- Permits non-string values for the EXTNAME keyword when reading in a file,
  rather than throwing an exception due to the malformatting.  Added
  verification for the format of the EXTNAME keyword when writing. (#96)

- Added support for EXTNAME and EXTVER in PRIMARY HDUs.  That is, if EXTNAME
  is specified in the header, it will also be reflected in the ``.name``
  attribute and in ``pyfits.info()``.  These keywords used to be verboten in
  PRIMARY HDUs, but the latest version of the FITS standard allows them.
  (#151)

- HCOMPRESS can again be used to compress data cubes (and higher-dimensional
  arrays) so long as the tile size is effectively 2-dimensional. In fact,
  PyFITS will automatically use compatible tile sizes even if they're not
  explicitly specified. (#171)

- Added support for the optional ``endcard`` parameter in the
  ``Header.fromtextfile()`` and ``Header.totextfile()`` methods.  Although
  ``endcard=False`` was a reasonable default assumption, there are still text
  dumps of FITS headers that include the END card, so this should have been
  more flexible. (#176)

- Fixed a crash when running fitsdiff on two empty (that is, zero row) tables.
  (#178)

- Fixed an issue where opening files containing random groups HDUs in update
  mode could cause an unnecessary rewrite of the file even if none of the
  data is modified. (#179)

- Fixed a bug that could caused a deadlock in the filesystem on OSX if PyFITS
  is used with Numpy 1.7 in some cases. (#180)

- Fixed a crash when generating diff reports from diffs using the
  ``ignore_comments`` options. (#181)

- Fixed some bugs with WCS Paper IV record-valued keyword cards:

  - Cards that looked kind of like RVKCs but were not intended to be were
    over-permissively treated as such--commentary keywords like COMMENT and
    HISTORY were particularly affected. (#183)

  - Looking up a card in a header by its standard FITS keyword only should
    always return the raw value of that card.  That way cards containing
    values that happen to valid RVKCs but were not intended to be will still
    be treated like normal cards. (#184)

  - Looking up a RVKC in a header with only part of the field-specifier (for
    example "DP1.AXIS" instead of "DP1.AXIS.1") was implicitly treated as a
    wildcard lookup. (#184)

- Fixed a crash when diffing two FITS files where at least one contains a
  compressed image HDU which was not recognized as an image instead of a
  table. (#187)

- Fixed bugs in the backwards compatibility layer for the ``CardList.index``
  and ``CardList.count`` methods. (#190)

- Improved ``__repr__`` and text file representation of cards with long values
  that are split into CONTINUE cards. (#193)

- Fixed a crash when trying to assign a long (> 72 character) value to blank
  ('') keywords. This also changed how blank keywords are represented--there
  are still exactly 8 spaces before any commentary content can begin; this
  *may* affect the exact display of header cards that assumed there could be
  fewer spaces in a blank keyword card before the content begins. However, the
  current approach is more in line with the requirements of the FITS standard.
  (#194)


3.0.10 (2013-01-02)
-------------------

- Improved handling of scaled images and pseudo-unsigned integer images in
  compressed image HDUs.  They now work more transparently like normal image
  HDUs with support for the ``do_not_scale_image_data`` and ``uint`` options,
  as well as ``scale_back`` and ``save_backup``.  The ``.scale()`` method
  works better too.  Backported from 3.1.1. (#88)

- Permits non-string values for the EXTNAME keyword when reading in a file,
  rather than throwing an exception due to the malformatting.  Added
  verification for the format of the EXTNAME keyword when writing.  Backported
  from 3.1.1. (#96)

- Added support for EXTNAME and EXTVER in PRIMARY HDUs.  That is, if EXTNAME
  is specified in the header, it will also be reflected in the ``.name``
  attribute and in ``pyfits.info()``.  These keywords used to be verbotten in
  PRIMARY HDUs, but the latest version of the FITS standard allows them.
  Backported from 3.1.1. (#151)

- HCOMPRESS can again be used to compress data cubes (and higher-dimensional
  arrays) so long as the tile size is effectively 2-dimensional. In fact,
  PyFITS will not automatically use compatible tile sizes even if they're not
  explicitly specified.  Backported from 3.1.1. (#171)

- Fixed a bug when writing out files containing zero-width table columns,
  where the TFIELDS keyword would be updated incorrectly, leaving the table
  largely unreadable.  Backported from 3.1.0. (#174)

- Fixed an issue where opening files containing random groups HDUs in update
  mode could cause an unnecessary rewrite of the file even if none of the
  data is modified.  Backported from 3.1.1. (#179)

- Fixed a bug that could caused a deadlock in the filesystem on OSX if PyFITS
  is used with Numpy 1.7 in some cases. Backported from 3.1.1. (#180)


3.1 (2012-08-08)
----------------

Highlights
^^^^^^^^^^

- The ``Header`` object has been significantly reworked, and ``CardList``
  objects are now deprecated (their functionality folded into the ``Header``
  class).  See API Changes below for more details.

- Memory maps are now used by default to access HDU data.  See API Changes
  below for more details.

- Now includes a new version of the ``fitsdiff`` program for comparing two
  FITS files, and a new FITS comparison API used by ``fitsdiff``.  See New
  Features below.

API Changes
^^^^^^^^^^^

- The ``Header`` class has been rewritten, and the ``CardList`` class is
  deprecated.  Most of the basic details of working with FITS headers are
  unchanged, and will not be noticed by most users.  But there are differences
  in some areas that will be of interest to advanced users, and to application
  developers.  For full details of the changes, see the "Header Interface
  Transition Guide" section in the PyFITS documentation.  See ticket #64 on
  the PyFITS Trac for futher details and background. Some highlights are
  listed below:

  * The Header class now fully implements the Python dict interface, and can
    be used interchangably with a dict, where the keys are header keywords.

  * New keywords can be added to the header using normal keyword assignment
    (previously it was necessary to use ``Header.update`` to add new
    keywords).  For example::

        >>> header['NAXIS'] = 2

    will update the existing 'FOO' keyword if it already exists, or add a new
    one if it doesn't exist, just like a dict.

  * It is possible to assign both a value and a comment at the same time using
    a tuple::

        >>> header['NAXIS'] = (2, 'Number of axes')

  * To add/update a new card and ensure it's added in a specific location, use
    ``Header.set()``::

        >>> header.set('NAXIS', 2, 'Number of axes', after='BITPIX')

    This works the same as the old ``Header.update()``.  ``Header.update()``
    still works in the old way too, but is deprecated.

  * Although ``Card`` objects still exist, it generally is not necessary to
    work with them directly.  ``Header.ascardlist()``/``Header.ascard`` are
    deprecated and should not be used.  To directly access the ``Card``
    objects in a header, use ``Header.cards``.

  * To access card comments, it is still possible to either go through the
    card itself, or through ``Header.comments``.  For example::

       >>> header.cards['NAXIS'].comment
       Number of axes
       >>> header.comments['NAXIS']
       Number of axes

  * ``Card`` objects can now be used interchangeably with
    ``(keyword, value, comment)`` 3-tuples.  They still have ``.value`` and
    ``.comment`` attributes as well.  The ``.key`` attribute has been renamed
    to ``.keyword`` for consistency, though ``.key`` is still supported (but
    deprecated).

- Memory mapping is now used by default to access HDU data.  That is,
  ``pyfits.open()`` uses ``memmap=True`` as the default.  This provides better
  performance in the majority of use cases--there are only some I/O intensive
  applications where it might not be desirable.  Enabling mmap by default also
  enabled finding and fixing a large number of bugs in PyFITS' handling of
  memory-mapped data (most of these bug fixes were backported to PyFITS
  3.0.5). (#85)

  * A new ``pyfits.USE_MEMMAP`` global variable was added.  Set
    ``pyfits.USE_MEMMAP = False`` to change the default memmap setting for
    opening files.  This is especially useful for controlling the behavior in
    applications where pyfits is deeply embedded.

  * Likewise, a new ``PYFITS_USE_MEMMAP`` environment variable is supported.
    Set ``PYFITS_USE_MEMMAP = 0`` in your environment to change the default
    behavior.

- The ``size()`` method on HDU objects is now a ``.size`` property--this
  returns the size in bytes of the data portion of the HDU, and in most cases
  is equivalent to ``hdu.data.nbytes`` (#83)

- ``BinTableHDU.tdump`` and ``BinTableHDU.tcreate`` are deprecated--use
  ``BinTableHDU.dump`` and ``BinTableHDU.load`` instead.  The new methods
  output the table data in a slightly different format from previous versions,
  which places quotes around each value.  This format is compatible with data
  dumps from previous versions of PyFITS, but not vice-versa due to a parsing
  bug in older versions.

- Likewise the ``pyfits.tdump`` and ``pyfits.tcreate`` convenience function
  versions of these methods have been renamed ``pyfits.tabledump`` and
  ``pyfits.tableload``.  The old deprecated, but currently retained for
  backwards compatibility. (r1125)

- A new global variable ``pyfits.EXTENSION_NAME_CASE_SENSITIVE`` was added.
  This serves as a replacement for ``pyfits.setExtensionNameCaseSensitive``
  which is not deprecated and may be removed in a future version.  To enable
  case-sensitivity of extension names (i.e. treat 'sci' as distict from 'SCI')
  set ``pyfits.EXTENSION_NAME_CASE_SENSITIVE = True``.  The default is
  ``False``. (r1139)

- A new global configuration variable ``pyfits.STRIP_HEADER_WHITESPACE`` was
  added.  By default, if a string value in a header contains trailing
  whitespace, that whitespace is automatically removed when the value is read.
  Now if you set ``pyfits.STRIP_HEADER_WHITESPACE = False`` all whitespace is
  preserved. (#146)

- The old ``classExtensions`` extension mechanism (which was deprecated in
  PyFITS 3.0) is removed outright.  To our knowledge it was no longer used
  anywhere. (r1309)

- Warning messages from PyFITS issued through the Python warnings API are now
  output to stderr instead of stdout, as is the default.  PyFITS no longer
  modifies the default behavior of the warnings module with respect to which
  stream it outputs to. (r1319)

- The ``checksum`` argument to ``pyfits.open()`` now accepts a value of
  'remove', which causes any existing CHECKSUM/DATASUM keywords to be ignored,
  and removed when the file is saved.

New Features
^^^^^^^^^^^^

- Added support for the proposed "FITS" extension HDU type.  See
  http://listmgr.cv.nrao.edu/pipermail/fitsbits/2002-April/001094.html.  FITS
  HDUs contain an entire FITS file embedded in their data section.  `FitsHDU`
  objects work like other HDU types in PyFITS.  Their ``.data`` attribute
  returns the raw data array.  However, they have a special ``.hdulist``
  attribute which processes the data as a FITS file and returns it as an
  in-memory HDUList object.  FitsHDU objects also support a
  ``FitsHDU.fromhdulist()`` classmethod which returns a new `FitsHDU` object
  that embeds the supplied HDUList. (#80)

- Added a new ``.is_image`` attribute on HDU objects, which is True if the HDU
  data is an 'image' as opposed to a table or something else.  Here the
  meaning of 'image' is fairly loose, and mostly just means a Primary or Image
  extension HDU, or possibly a compressed image HDU (#71)

- Added an ``HDUList.fromstring`` classmethod which can parse a FITS file
  already in memory and instantiate and ``HDUList`` object from it.  This
  could be useful for integrating PyFITS with other libraries that work on
  FITS file, such as CFITSIO.  It may also be useful in streaming
  applications.  The name is a slight misnomer, in that it actually accepts
  any Python object that implements the buffer interface, which includes
  ``bytes``, ``bytearray``, ``memoryview``, ``numpy.ndarray``, etc. (#90)

- Added a new ``pyfits.diff`` module which contains facilities for comparing
  FITS files.  One can use the ``pyfits.diff.FITSDiff`` class to compare two
  FITS files in their entirety.  There is also a ``pyfits.diff.HeaderDiff``
  class for just comparing two FITS headers, and other similar interfaces.
  See the PyFITS Documentation for more details on this interface.  The
  ``pyfits.diff`` module powers the new ``fitsdiff`` program installed with
  PyFITS.  After installing PyFITS, run ``fitsdiff --help`` for usage details.

- ``pyfits.open()`` now accepts a ``scale_back`` argument.  If set to
  ``True``, this automatically scales the data using the original BZERO and
  BSCALE parameters the file had when it was first opened, if any, as well as
  the original BITPIX.  For example, if the original BITPIX were 16, this
  would be equivalent to calling ``hdu.scale('int16', 'old')`` just before
  calling ``flush()`` or ``close()`` on the file.  This option applies to all
  HDUs in the file. (#120)

- ``pyfits.open()`` now accepts a ``save_backup`` argument.  If set to
  ``True``, this automatically saves a backup of the original file before
  flushing any changes to it (this of course only applies to update and append
  mode).  This may be especially useful when working with scaled image data.
  (#121)

Changes in Behavior
^^^^^^^^^^^^^^^^^^^

- Warnings from PyFITS are not output to stderr by default, instead of stdout
  as it has been for some time.  This is contrary to most users' expectations
  and makes it more difficult for them to separate output from PyFITS from the
  desired output for their scripts. (r1319)

Bug Fixes
^^^^^^^^^

- Fixed ``pyfits.tcreate()`` (now ``pyfits.tableload()``) to be more robust
  when encountering blank lines in a column definition file (#14)

- Fixed a fairly rare crash that could occur in the handling of CONTINUE cards
  when using Numpy 1.4 or lower (though 1.4 is the oldest version supported by
  PyFITS). (r1330)

- Fixed ``_BaseHDU.fromstring`` to actually correctly instantiate an HDU
  object from a string/buffer containing the header and data of that HDU.
  This allowed for the implementation of ``HDUList.fromstring`` described
  above. (#90)

- Fixed a rare corner case where, in some use cases, (mildly, recoverably)
  malformatted float values in headers were not properly returned as floats.
  (#137)

- Fixed a corollary to the previous bug where float values with a leading zero
  before the decimal point had the leading zero unnecessarily removed when
  saving changes to the file (eg. "0.001" would be written back as ".001" even
  if no changes were otherwise made to the file). (#137)

- When opening a file containing CHECKSUM and/or DATASUM keywords in update
  mode, the CHECKSUM/DATASUM are updated and preserved even if the file was
  opened with checksum=False.  This change in behavior prevents checksums from
  being unintentionally removed. (#148)

- Fixed a bug where ``ImageHDU.scale(option='old')`` wasn't working at all--it
  was not restoring the image to its original BSCALE and BZERO values. (#162)

- Fixed a bug when writing out files containing zero-width table columns,
  where the TFIELDS keyword would be updated incorrectly, leaving the table
  largely unreadable.  This fix will be backported to the 3.0.x series in
  version 3.0.10.  (#174)


3.0.9 (2012-08-06)
------------------

This is a bug fix release for the 3.0.x series.

Bug Fixes
^^^^^^^^^

- Fixed ``Header.values()``/``Header.itervalues()`` and ``Header.items()``/
  ``Header.iteritems()`` to correctly return the different values for
  duplicate keywords (particularly commentary keywords like HISTORY and
  COMMENT).  This makes the old Header implementation slightly more compatible
  with the new implementation in PyFITS 3.1. (#127)

  .. note::
      This fix did not change the existing behavior from earlier PyFITS
      versions where ``Header.keys()`` returns all keywords in the header with
      duplicates removed.  PyFITS 3.1 changes that behavior, so that
      ``Header.keys()`` includes duplicates.

- Fixed a bug where ``ImageHDU.scale(option='old')`` wasn't working at all--it
  was not restoring the image to its original BSCALE and BZERO values. (#162)

- Fixed a bug where opening a file containing compressed image HDUs in
  'update' mode and then immediately closing it without making any changes
  caused the file to be rewritten unncessarily. (#167)

- Fixed two memory leaks that could occur when writing compressed image data,
  or in some cases when opening files containing compressed image HDUs in
  'update' mode. (#168)


3.0.8 (2012-06-04)
------------------

Changes in Behavior
^^^^^^^^^^^^^^^^^^^

- Prior to this release, image data sections did not work with scaled
  data--that is, images with non-trivial BSCALE and/or BZERO values.
  Previously, in order to read such images in sections, it was necessary to
  manually apply the BSCALE+BZERO to each section.  It's worth noting that
  sections *did* support pseudo-unsigned ints (flakily).  This change just
  extends that support for general BSCALE+BZERO values.

Bug Fixes
^^^^^^^^^

- Fixed a bug that prevented updates to values in boolean table columns from
  being saved.  This turned out to be a symptom of a deeper problem that could
  prevent other table updates from being saved as well. (#139)

- Fixed a corner case in which a keyword comment ending with the string "END"
  could, in some circumstances, cause headers (and the rest of the file after
  that point) to be misread. (#142)

- Fixed support for scaled image data and psuedo-unsigned ints in image data
  sections (``hdu.section``).  Previously this was not supported at all.  At
  some point support was supposedly added, but it was buggy and incomplete.
  Now the feature seems to work much better. (#143)

- Fixed the documentation to point out that image data sections *do* support
  non-contiguous slices (and have for a long time).  The documentation was
  never updated to reflect this, and misinformed users that only contiguous
  slices were supported, leading to some confusion. (#144)

- Fixed a bug where creating an ``HDUList`` object containing multiple PRIMARY
  HDUs caused an infinite recursion when validating the object prior to
  writing to a file. (#145)

- Fixed a rare but serious case where saving an update to a file that
  previously had a CHECKSUM and/or DATASUM keyword, but removed the checksum
  in saving, could cause the file to be slightly corrupted and unreadable.
  (#147)

- Fixed problems with reading "non-standard" FITS files with primary headers
  containing SIMPLE = F.  PyFITS has never made many guarantees as to how such
  files are handled.  But it should at least be possible to read their
  headers, and the data if possible.  Saving changes to such a file should not
  try to prepend an unwanted valid PRIMARY HDU. (#157)

- Fixed a bug where opening an image with ``disable_image_compression = True``
  caused compression to be disabled for all subsequent ``pyfits.open()`` calls.
  (r1651)


3.0.7 (2012-04-10)
------------------

Changes in Behavior
^^^^^^^^^^^^^^^^^^^

- Slices of GroupData objects now return new GroupData objects instead of
  extended multi-row _Group objects. This is analogous to how PyFITS 3.0 fixed
  FITS_rec slicing, and should have been fixed for GroupData at the same time.
  The old behavior caused bugs where functions internal to Numpy expected that
  slicing an ndarray would return a new ndarray.  As this is a rare usecase
  with a rare feature most users are unlikely to be affected by this change.

- The previously internal _Group object for representing individual group
  records in a GroupData object are renamed Group and are now a public
  interface.  However, there's almost no good reason to create Group objects
  directly, so it shouldn't be considered a "new feature".

- An annoyance from PyFITS 3.0.6 was fixed, where the value of the EXTEND
  keyword was always being set to F if there are not actually any extension
  HDUs.  It was unnecessary to modify this value.

Bug Fixes
^^^^^^^^^

- Fixed GroupData objects to return new GroupData objects when sliced instead
  of _Group record objects.  See "Changes in behavior" above for more details.

- Fixed slicing of Group objects--previously it was not possible to slice
  slice them at all.

- Made it possible to assign `np.bool_` objects as header values. (#123)

- Fixed overly strict handling of the EXTEND keyword; see "Changes in
  behavior" above. (#124)

- Fixed many cases where an HDU's header would be marked as "modified" by
  PyFITS and rewritten, even when no changes to the header are necessary.
  (#125)

- Fixed a bug where the values of the PTYPEn keywords in a random groups HDU
  were forced to be all lower-case when saving the file. (#130)

- Removed an unnecessary inline import in `ExtensionHDU.__setattr__` that was
  causing some slowdown when opening files containing a large number of
  extensions, plus a few other small (but not insignficant) performance
  improvements thanks to Julian Taylor. (#133)

- Fixed a regression where header blocks containing invalid end-of-header
  padding (i.e. null bytes instead of spaces) couldn't be parsed by PyFITS.
  Such headers can be parsed again, but a warning is raised, as such headers
  are not valid FITS. (#136)

- Fixed a memory leak where table data in random groups HDUs weren't being
  garbage collected. (#138)


3.0.6 (2012-02-29)
------------------

Highlights
^^^^^^^^^^

The main reason for this release is to fix an issue that was introduced in
PyFITS 3.0.5 where merely opening a file containing scaled data (that is, with
non-trivial BSCALE and BZERO keywords) in 'update' mode would cause the data
to be automatically rescaled--possibly converting the data from ints to
floats--as soon as the file is closed, even if the application did not touch
the data.  Now PyFITS will only rescale the data in an extension when the data
is actually accessed by the application.  So opening a file in 'update' mode
in order to modify the header or append new extensions will not cause any
change to the data in existing extensions.

This release also fixes a few Windows-specific bugs found through more
extensive Windows testing, and other miscellaneous bugs.

Bug Fixes
^^^^^^^^^

- More accurate error messages when opening files containing invalid header
  cards. (#109)

- Fixed a possible reference cycle/memory leak that was caught through more
  extensive testing on Windows. (#112)

- Fixed 'ostream' mode to open the underlying file in 'wb' mode instead of 'w'
  mode. (#112)

- Fixed a Windows-only issue where trying to save updates to a resized FITS
  file could result in a crash due to there being open mmaps on that file.
  (#112)

- Fixed a crash when trying to create a FITS table (i.e. with new_table())
  from a Numpy array containing bool fields. (#113)

- Fixed a bug where manually initializing an ``HDUList`` with a list of of
  HDUs wouldn't set the correct EXTEND keyword value on the primary HDU.
  (#114)

- Fixed a crash that could occur when trying to deepcopy a Header in Python <
  2.7. (#115)

- Fixed an issue where merely opening a scaled image in 'update' mode would
  cause the data to be converted to floats when the file is closed. (#119)


3.0.5 (2012-01-30)
------------------

- Fixed a crash that could occur when accessing image sections of files
  opened with memmap=True. (r1211)

- Fixed the inconsistency in the behavior of files opened in 'readonly' mode
  when memmap=True vs. when memmap=False.  In the latter case, although
  changes to array data were not saved to disk, it was possible to update the
  array data in memory.  On the other hand with memmap=True, 'readonly' mode
  prevented even in-memory modification to the data.  This is what
  'copyonwrite' mode was for, but difference in behavior was confusing.  Now
  'readonly' is equivalent to 'copyonwrite' when using memmap.  If the old
  behavior of denying changes to the array data is necessary, a new
  'denywrite' mode may be used, though it is only applicable to files opened
  with memmap. (r1275)

- Fixed an issue where files opened with memmap=True would return image data
  as a raw numpy.memmap object, which can cause some unexpected
  behaviors--instead memmap object is viewed as a numpy.ndarray. (r1285)

- Fixed an issue in Python 3 where a workaround for a bug in Numpy on Python 3
  interacted badly with some other software, namely to vo.table package (and
  possibly others). (r1320, r1337, and #110)

- Fixed buggy behavior in the handling of SIGINTs (i.e. Ctrl-C keyboard
  interrupts) while flushing changes to a FITS file.  PyFITS already prevented
  SIGINTs from causing an incomplete flush, but did not clean up the signal
  handlers properly afterwards, or reraise the keyboard interrupt once the
  flush was complete. (r1321)

- Fixed a crash that could occur in Python 3 when opening files with checksum
  checking enabled. (r1336)

- Fixed a small bug that could cause a crash in the `StreamingHDU` interface
  when using Numpy below version 1.5.

- Fixed a crash that could occur when creating a new `CompImageHDU` from an
  array of big-endian data. (#104)

- Fixed a crash when opening a file with extra zero padding at the end.
  Though FITS files should not have such padding, it's not explictly forbidden
  by the format either, and PyFITS shouldn't stumble over it. (#106)

- Fixed a major slowdown in opening tables containing large columns of string
  values.  (#111)


3.0.4 (2011-11-22)
------------------

- Fixed a crash when writing HCOMPRESS compressed images that could happen on
  Python 2.5 and 2.6. (r1217)

- Fixed a crash when slicing an table in a file opened in 'readonly' mode with
  memmap=True. (r1230)

- Writing changes to a file or writing to a new file verifies the output in
  'fix' mode by default instead of 'exception'--that is, PyFITS will
  automatically fix common FITS format errors rather than raising an
  exception. (r1243)

- Fixed a bug where convenience functions such as getval() and getheader()
  crashed when specifying just 'PRIMARY' as the extension to use (r1263).

- Fixed a bug that prevented passing keyword arguments (beyond the standard
  data and header arguments) as positional arguments to the constructors of
  extension HDU classes.

- Fixed some tests that were failing on Windows--in this case the tests
  themselves failed to close some temp files and Windows refused to delete them
  while there were still open handles on them. (r1295)

- Fixed an issue with floating point formatting in header values on Python 2.5
  for Windows (and possibly other platforms).  The exponent was zero-padded to
  3 digits; although the FITS standard makes no specification on this, the
  formatting is now normalized to always pad the exponent to two digits.
  (r1295)

- Fixed a bug where long commentary cards (such as HISTORY and COMMENT) were
  broken into multiple CONTINUE cards.  However, commentary cards are not
  expected to be found in CONTINUE cards.  Instead these long cards are broken
  into multiple commentary cards. (#97)

- GZIP/ZIP-compressed FITS files can be detected and opened regardless of
  their filename extension. (#99)

- Fixed a serious bug where opening scaled images in 'update' mode and then
  closing the file without touching the data would cause the file to be
  corrupted. (#101)


3.0.3 (2011-10-05)
------------------

- Fixed several small bugs involving corner cases in record-valued keyword
  cards (#70)

- In some cases HDU creation failed if the first keyword value in the header
  was not a string value (#89)

- Fixed a crash when trying to compute the HDU checksum when the data array
  contains an odd number of bytes (#91)

- Disabled an unnecessary warning that was displayed on opening compressed
  HDUs with disable_image_compression = True (#92)

- Fixed a typo in code for handling HCOMPRESS compressed images.


3.0.2 (2011-09-23)
------------------

- The ``BinTableHDU.tcreate`` method and by extension the ``pyfits.tcreate``
  function don't get tripped up by blank lines anymore (#14)

- The presence, value, and position of the EXTEND keyword in Primary HDUs is
  verified when reading/writing a FITS file (#32)

- Improved documentation (in warning messages as well as in the handbook) that
  PyFITS uses zero-based indexing (as one would expect for C/Python code, but
  contrary to the PyFITS standard which was written with FORTRAN in mind)
  (#68)

- Fixed a bug where updating a header card comment could cause the value to be
  lost if it had not already been read from the card image string.

- Fixed a related bug where changes made directly to Card object in a header
  (i.e. assigning directly to card.value or card.comment) would not propagate
  when flushing changes to the file (#69) [Note: This and the bug above it
  were originally reported as being fixed in version 3.0.1, but the fix was
  never included in the release.]

- Improved file handling, particularly in Python 3 which had a few small file
  I/O-related bugs (#76)

- Fixed a bug where updating a FITS file would sometimes cause it to lose its
  original file permissions (#79)

- Fixed the handling of TDIMn keywords; 3.0 added support for them, but got
  the axis order backards (they were treated as though they were row-major)
  (#82)

- Fixed a crash when a FITS file containing scaled data is opened and
  immediately written to a new file without explicitly viewing the data first
  (#84)

- Fixed a bug where creating a table with columns named either 'names' or
  'formats' resulted in an infinite recursion (#86)


3.0.1 (2011-09-12)
------------------

- Fixed a bug where updating a header card comment could cause the value to be
  lost if it had not already been read from the card image string.

- Changed ``_TableBaseHDU.data`` so that if the data contain an empty table a
  ``FITS_rec`` object with zero rows is returned rather than ``None``.

- The ``.key`` attribute of ``RecordValuedKeywordCards`` now returns the full
  keyword+field-specifier value, instead of just the plain keyword (#46)

- Fixed a related bug where changes made directly to Card object in a header
  (i.e. assigning directly to card.value or card.comment) would not propagate
  when flushing changes to the file (#69)

- Fixed a bug where writing a table with zero rows could fail in some cases
  (#72)

- Miscellanous small bug fixes that were causing some tests to fail,
  particularly on Python 3 (#74, #75)

- Fixed a bug where creating a table column from an array in non-native byte
  order would not preserve the byte order, thus interpreting the column array
  using the wrong byte order (#77)


3.0.0 (2011-08-23)
--------------------

- Contains major changes, bumping the version to 3.0

- Large amounts of refactoring and reorganization of the code; tried to
  preserve public API backwards-compatibility with older versions (private API
  has many changes and is not guaranteed to be backwards-compatible).  There
  are a few small public API changes to be aware of:

  * The pyfits.rec module has been removed completely.  If your version of
    numpy does not have the numpy.core.records module it is too old to be used
    with PyFITS.

  * The ``Header.ascardlist()`` method is deprecated--use the ``.ascard``
    attribute instead.

  * ``Card`` instances have a new ``.cardimage`` attribute that should be used
    rather than ``.ascardimage()``, which may become deprecated.

  * The ``Card.fromstring()`` method is now a classmethod.  It returns a new
    ``Card`` instance rather than modifying an existing instance.

  * The ``req_cards()`` method on HDU instances has changed:  The ``pos``
    argument is not longer a string.  It is either an integer value (meaning
    the card's position must match that value) or it can be a function that
    takes the card's position as it's argument, and returns True if the
    position is valid.  Likewise, the ``test`` argument no longer takes a
    string, but instead a function that validates the card's value and returns
    True or False.

  * The ``get_coldefs()`` method of table HDUs is deprecated.  Use the
    ``.columns`` attribute instead.

  * The ``ColDefs.data`` attribute is deprecated--use ``ColDefs.columns``
    instead (though in general you shouldn't mess with it directly--it might
    become internal at some point).

  * ``FITS_record`` objects take ``start`` and ``end`` as arguments instead of
    ``startColumn`` and ``endColumn`` (these are rarely created manually, so
    it's unlikely that this change will affect anyone).

  * ``BinTableHDU.tcreate()`` is now a classmethod, and returns a new
    ``BinTableHDU`` instance.

  * Use ``ExtensionHDU`` and ``NonstandardExtHDU`` for making new extension HDU
    classes.  They are now public interfaces, wheres previously they were
    private and prefixed with underscores.

  * Possibly others--please report if you find any changes that cause
    difficulties.

- Calls to deprecated functions will display a Deprecation warning.  However,
  in Python 2.7 and up Deprecation warnings are ignored by default, so run
  Python with the `-Wd` option to see if you're using any deprecated
  functions.  If we get close to actually removing any functions, we might
  make the Deprecation warnings display by default.

- Added basic Python 3 support

- Added support for multi-dimensional columns in tables as specified by the
  TDIMn keywords (#47)

- Fixed a major memory leak that occurred when creating new tables with the
  ``new_table()`` function (#49)
  be padded with zero-bytes) vs ASCII tables (where strings are padded with
  spaces) (#15)

- Fixed a bug in which the case of Random Access Group parameters names was not
  preserved when writing (#41)

- Added support for binary table fields with zero width (#42)

- Added support for wider integer types in ASCII tables; although this is non-
  standard, some GEIS images require it (#45)

- Fixed a bug that caused the index_of() method of HDULists to crash when the
  HDUList object is created from scratch (#48)

- Fixed the behavior of string padding in binary tables (where strings should
  be padded with nulls instead of spaces)

- Fixed a rare issue that caused excessive memory usage when computing
  checksums using a non-standard block size (see r818)

- Add support for forced uint data in image sections (#53)

- Fixed an issue where variable-length array columns were not extended when
  creating a new table with more rows than the original (#54)

- Fixed tuple and list-based indexing of FITS_rec objects (#55)

- Fixed an issue where BZERO and BSCALE keywords were appended to headers in
  the wrong location (#56)

- ``FITS_record`` objects (table rows) have full slicing support, including
  stepping, etc. (#59)

- Fixed a bug where updating multiple files simultaneously (such as when
  running parallel processes) could lead to a race condition with mktemp()
  (#61)

- Fixed a bug where compressed image headers were not in the order expected by
  the funpack utility (#62)
jperkin pushed a commit that referenced this pull request Mar 31, 2014
* Applied patch #9 (Crash when more than one authplugin are selected)
  by Frederic Bourgeois
* Added feature to allow Facebook mock ajax (request #6) by Jason Spiro
* Added contrib dir
* Added a new html & css validated html template in contrib (request #3).
  By Chris Peschke
* Converted iso-8859 message files to utf-8 (bug #86). Suggested
  by Fred Ulisses Maranhao
* Fixed Error reading Content-Length (bug #84). By Carlos Soto
* Fixed compilation error BSD due lack of string.h when using
  memcpy() (bug #75). By Alexander Hornung
* Fixed exceptioniplist case sensitivity (bug #11). By Mark J Hewitt
* Fixed accept-encoding support for new tokens (bug #13). By userquin
* Applied patch 3438750 (GCC 4.4 and 4.6 compatibility) by Mathieu PARENT
* Applied patch 3438749 (French translation update) by Mathieu PARENT
* Applied patch 3418297 (Set proxy timeout in dansguardian.conf)
  by Frederic Bourgeois
* Applied patch 3419088 (login/password in URL is dropped) by Mathieu PARENT
* Applied patch 3419089 ("Expect" header should be dropped) by Mathieu PARENT
* Applied patch 3438751 (Fix queue handling in OptionContainer)
  by Mathieu PARENT
* Applied patch 3515167 (Fix digest identication) by Frederic Bourgeois
* Fixed GCC warnings
* LFS review in String.cpp (requires different arch review yet)

Previous release notes seem to be lost - the build structure changed, and:

  Both the main configuration file and the filter group configuration
  file(s) have changed since the last stable release.  If you try
  to re-use the configuration from an existing copy of 2.8.0.6 or
  earlier, the daemon will not start.  On the other hand, list
  files (phrase lists, domain lists, etc.) have not changed format,
  and should largely "just work".  There have been improvements to
  the default list files, though, so again it is recommended that
  you start from the new version and re-do any customisations.
jperkin pushed a commit that referenced this pull request Apr 1, 2014
---
3.7
---

* Gnome keyring no longer relies on the GNOME_KEYRING_CONTROL environment
  variable.
* Issue #140: Restore compatibility for older versions of PyWin32.

---
3.6
---

* `Pull Request #1 (github) <https://github.com/jaraco/keyring/pull/1>`_:
  Add support for packages that wish to bundle keyring by using relative
  imports throughout.

---
3.5
---

* Issue #49: Give the backend priorities a 1.5 multiplier bump when an
  XDG_CURRENT_DESKTOP environment variable matches the keyring's target
  environment.
* Issue #99: Clarified documentation on location of config and data files.
  Prepared the code base to treat the two differently on Unix-based systems.
  For now, the behavior is unchanged.

---
3.4
---

* Extracted FileBacked and Encrypted base classes.
* Add a pyinstaller hook to expose backend modules. Ref #124
* Pull request #41: Use errno module instead of hardcoding error codes.
* SecretService backend: correctly handle cases when user dismissed
  the collection creation or unlock prompt.

---
3.3
---

* Pull request #40: KWallet backend will now honor the ``KDE_FULL_SESSION``
  environment variable as found on openSUSE.

-----
3.2.1
-----

* SecretService backend: use a different function to check that the
  backend is functional. The default collection may not exist, but
  the collection will remain usable in that case.

  Also, make the error message more verbose.

  Resolves https://bugs.launchpad.net/bugs/1242412.

---
3.2
---

* Issue #120: Invoke KeyringBackend.priority during load_keyring to ensure
  that any keyring loaded is actually viable (or raises an informative
  exception).

* File keyring:

   - Issue #123: fix removing items.
   - Correctly escape item name when removing.
   - Use with statement when working with files.

* Add a test for removing one item in group.

* Issue #81: Added experimental support for third-party backends. See
  `keyring.core._load_library_extensions` for information on supplying
  a third-party backend.

---
3.1
---

* All code now runs natively on both Python 2 and Python 3, no 2to3 conversion
  is required.
* Testsuite: clean up, and make more use of unittest2 methods.

-----
3.0.5
-----

* Issue #114: Fix logic in pyfs detection.

-----
3.0.4
-----

* Issue #114: Fix detection of pyfs under Mercurial Demand Import.

-----
3.0.3
-----

* Simplified the implementation of ``keyring.core.load_keyring``. It now uses
  ``__import__`` instead of loading modules explicitly. The ``keyring_path``
  parameter to ``load_keyring`` is now deprecated. Callers should instead
  ensure their module is available on ``sys.path`` before calling
  ``load_keyring``. Keyring still honors ``keyring-path``. This change fixes
  Issue #113 in which the explicit module loading of keyring modules was
  breaking package-relative imports.

-----
3.0.2
-----

* Renamed ``keyring.util.platform`` to ``keyring.util.platform_``. As reported
  in Issue #112 and `mercurial_keyring #31
  <https://bitbucket.org/Mekk/mercurial_keyring/issue/31>`_ and in `Mercurial
  itself <http://bz.selenic.com/show_bug.cgi?id=4029>`_, Mercurial's Demand
  Import does not honor ``absolute_import`` directives, so it's not possible
  to have a module with the same name as another top-level module. A patch is
  in place to fix this issue upstream, but to support older Mercurial
  versions, this patch will remain for some time.

-----
3.0.1
-----

* Ensure that modules are actually imported even in Mercurial's Demand Import
  environment.

---
3.0
---

* Removed support for Python 2.5.
* Removed names in ``keyring.backend`` moved in 1.1 and previously retained
  for compatibilty.

-----
2.1.1
-----

* Restored Python 2.5 compatibility (lost in 2.0).

---
2.1
---

*  Issue #10: Added a 'store' attribute to the OS X Keyring, enabling custom
   instances of the KeyringBackend to use another store, such as the
   'internet' store. For example::

       keys = keyring.backends.OS_X.Keyring()
       keys.store = 'internet'
       keys.set_password(system, user, password)
       keys.get_password(system, user)

   The default for all instances can be set in the class::

       keyring.backends.OS_X.Keyring.store = 'internet'

*  GnomeKeyring: fix availability checks, and make sure the warning
   message from pygobject is not printed.

*  Fixes to GnomeKeyring and SecretService tests.

-----
2.0.3
-----

*  Issue #112: Backend viability/priority checks now are more aggressive about
   module presence checking, requesting ``__name__`` from imported modules to
   force the demand importer to actually attempt the import.

-----
2.0.2
-----

*  Issue #111: Windows backend isn't viable on non-Windows platforms.

-----
2.0.1
-----

*  Issue #110: Fix issues with ``Windows.RegistryKeyring``.

---
2.0
---

*  Issue #80: Prioritized backend support. The primary interface for Keyring
   backend classes has been refactored to now emit a 'priority' based on the
   current environment (operating system, libraries available, etc). These
   priorities provide an indication of the applicability of that backend for
   the current environment. Users are still welcome to specify a particular
   backend in configuration, but the default behavior should now be to select
   the most appropriate backend by default.

-----
1.6.1
-----

* Only include pytest-runner in 'setup requirements' when ptr invocation is
  indicated in the command-line (Issue #105).

---
1.6
---

*  GNOME Keyring backend:

   - Use the same attributes (``username`` / ``service``) as the SecretService
     backend uses, allow searching for old ones for compatibility.
   - Also set ``application`` attribute.
   - Correctly handle all types of errors, not only ``CANCELLED`` and ``NO_MATCH``.
   - Avoid printing warnings to stderr when GnomeKeyring is not available.

* Secret Service backend:

   - Use a better label for passwords, the same as GNOME Keyring backend uses.

---
1.5
---

*  SecretService: allow deleting items created using previous python-keyring
   versions.

   Before the switch to secretstorage, python-keyring didn't set "application"
   attribute. Now in addition to supporting searching for items without that
   attribute, python-keyring also supports deleting them.

*  Use ``secretstorage.get_default_collection`` if it's available.

   On secretstorage 1.0 or later, python-keyring now tries to create the
   default collection if it doesn't exist, instead of just raising the error.

*  Improvements for tests, including fix for Issue #102.

---
1.4
---

* Switch GnomeKeyring backend to use native libgnome-keyring via
  GObject Introspection, not the obsolete python-gnomekeyring module.

---
1.3
---

* Use the `SecretStorage library <https://pypi.python.org/pypi/SecretStorage>`_
  to implement the Secret Service backend (instead of using dbus directly).
  Now the keyring supports prompting for and deleting passwords. Fixes #69,
  #77, and #93.
* Catch `gnomekeyring.IOError` per the issue `reported in Nova client
  <https://bugs.launchpad.net/python-novaclient/+bug/1116302>`_.
* Issue #92 Added support for delete_password on Mac OS X Keychain.

-----
1.2.3
-----

* Fix for Encrypted File backend on Python 3.
* Issue #97 Improved support for PyPy.

-----
1.2.2
-----

* Fixed handling situations when user cancels kwallet dialog or denies access
  for the app.

-----
1.2.1
-----

* Fix for kwallet delete.
* Fix for OS X backend on Python 3.
* Issue #84: Fix for Google backend on Python 3 (use of raw_input not caught
  by 2to3).

---
1.2
---

* Implemented delete_password on most keyrings. Keyring 2.0 will require
  delete_password to implement a Keyring. Fixes #79.

-----
1.1.2
-----

* Issue #78: pyfilesystem backend now works on Windows.

-----
1.1.1
-----

* Fixed MANIFEST.in so .rst files are included.

---
1.1
---

This is the last build that will support installation in a pure-distutils
mode. Subsequent releases will require setuptools/distribute to install.
Python 3 installs have always had this requirement (for 2to3 install support),
but starting with the next minor release (1.2+), setuptools will be required.

Additionally, this release has made some substantial refactoring in an
attempt to modularize the backends. An attempt has been made to maintain 100%
backward-compatibility, although if your library does anything fancy with
module structure or clasess, some tweaking may be necessary. The
backward-compatible references will be removed in 2.0, so the 1.1+ releases
represent a transitional implementation which should work with both legacy
and updated module structure.

* Added a console-script 'keyring' invoking the command-line interface.
* Deprecated _ExtensionKeyring.
* Moved PasswordSetError and InitError to an `errors` module (references kept
  for backward-compatibility).
* Moved concrete backend implementations into their own modules (references
  kept for backward compatibility):

  - OSXKeychain -> backends.OS_X.Keyring
  - GnomeKeyring -> backends.Gnome.Keyring
  - SecretServiceKeyring -> backends.SecretService.Keyring
  - KDEKWallet -> backends.kwallet.Keyring
  - BasicFileKeyring -> backends.file.BaseKeyring
  - CryptedFileKeyring -> backends.file.EncryptedKeyring
  - UncryptedFileKeyring -> backends.file.PlaintextKeyring
  - Win32CryptoKeyring -> backends.Windows.EncryptedKeyring
  - WinVaultKeyring -> backends.Windows.WinVaultKeyring
  - Win32CryptoRegistry -> backends.Windows.RegistryKeyring
  - select_windows_backend -> backends.Windows.select_windows_backend
  - GoogleDocsKeyring -> backends.Google.DocsKeyring
  - Credential -> keyring.credentials.Credential
  - BaseCredential -> keyring.credentials.SimpleCredential
  - EnvironCredential -> keyring.credentials.EnvironCredential
  - GoogleEnvironCredential -> backends.Google.EnvironCredential
  - BaseKeyczarCrypter -> backends.keyczar.BaseCrypter
  - KeyczarCrypter -> backends.keyczar.Crypter
  - EnvironKeyczarCrypter -> backends.keyczar.EnvironCrypter
  - EnvironGoogleDocsKeyring -> backends.Google.KeyczarDocsKeyring
  - BasicPyfilesystemKeyring -> backends.pyfs.BasicKeyring
  - UnencryptedPyfilesystemKeyring -> backends.pyfs.PlaintextKeyring
  - EncryptedPyfilesystemKeyring -> backends.pyfs.EncryptedKeyring
  - EnvironEncryptedPyfilesystemKeyring -> backends.pyfs.KeyczarKeyring
  - MultipartKeyringWrapper -> backends.multi.MultipartKeyringWrapper

* Officially require Python 2.5 or greater (although unofficially, this
  requirement has been in place since 0.10).

---
1.0
---

This backward-incompatible release attempts to remove some cruft from the
codebase that's accumulated over the versions.

* Removed legacy file relocation support. `keyring` no longer supports loading
  configuration or file-based backends from ~. If upgrading from 0.8 or later,
  the files should already have been migrated to their new proper locations.
  If upgrading from 0.7.x or earlier, the files will have to be migrated
  manually.
* Removed CryptedFileKeyring migration support. To maintain an existing
  CryptedFileKeyring, one must first upgrade to 0.9.2 or later and access the
  keyring before upgrading to 1.0 to retain the existing keyring.
* File System backends now create files without group and world permissions.
  Fixes #67.

------
0.10.1
------

* Merged 0.9.3 to include fix for #75.

----
0.10
----

* Add support for using `Keyczar <http://www.keyczar.org/>`_ to encrypt
  keyrings. Keyczar is "an open source cryptographic toolkit designed to make
  it easier and safer for developers to use cryptography in their
  applications."
* Added support for storing keyrings on Google Docs or any other filesystem
  supported by pyfilesystem.
* Fixed issue in Gnome Keyring when unicode is passed as the service name,
  username, or password.
* Tweaked SecretService code to pass unicode to DBus, as unicode is the
  preferred format.
* Issue #71 - Fixed logic in CryptedFileKeyring.
* Unencrypted keyring file will be saved with user read/write (and not group
  or world read/write).

-----
0.9.3
-----

* Ensure migration is run when get_password is called. Fixes #75. Thanks to
  Marc Deslauriers for reporting the bug and supplying the patch.

-----
0.9.2
-----

* Keyring 0.9.1 introduced a whole different storage format for the
  CryptedFileKeyring, but this introduced some potential compatibility issues.
  This release incorporates the security updates but reverts to the INI file
  format for storage, only encrypting the passwords and leaving the service
  and usernames in plaintext. Subsequent releases may incorporate a new
  keyring to implement a whole-file encrypted version. Fixes #64.
* The CryptedFileKeyring now requires simplejson for Python 2.5 clients.

-----
0.9.1
-----

* Fix for issue where SecretServiceBackend.set_password would raise a
  UnicodeError on Python 3 or when a unicode password was provided on Python
  2.
* CryptedFileKeyring now uses PBKDF2 to derive the key from the user's
  password and a random hash. The IV is chosen randomly as well. All the
  stored passwords are encrypted at once. Any keyrings using the old format
  will be automatically converted to the new format (but will no longer be
  compatible with 0.9 and earlier). The user's password is no longer limited
  to 32 characters. PyCrypto 2.5 or greater is now required for this keyring.

---
0.9
---

* Add support for GTK 3 and secret service D-Bus. Fixes #52.
* Issue #60 - Use correct method for decoding.

-----
0.8.1
-----

* Fix regression in keyring lib on Windows XP where the LOCALAPPDATA
  environment variable is not present.

---
0.8
---

* Mac OS X keyring backend now uses subprocess calls to the `security`
  command instead of calling the API, which with the latest updates, no
  longer allows Python to invoke from a virtualenv. Fixes issue #13.
* When using file-based storage, the keyring files are no longer stored
  in the user's home directory, but are instead stored in platform-friendly
  locations (`%localappdata%\Python Keyring` on Windows and according to
  the freedesktop.org Base Dir Specification
  (`$XDG_DATA_HOME/python_keyring` or `$HOME/.local/share/python_keyring`)
  on other operating systems). This fixes #21.

*Backward Compatibility Notice*

Due to the new storage location for file-based keyrings, keyring 0.8
supports backward compatibility by automatically moving the password
files to the updated location. In general, users can upgrade to 0.8 and
continue to operate normally. Any applications that customize the storage
location or make assumptions about the storage location will need to take
this change into consideration. Additionally, after upgrading to 0.8,
it is not possible to downgrade to 0.7 without manually moving
configuration files. In 1.0, the backward compatibilty
will be removed.

-----
0.7.1
-----

* Removed non-ASCII characters from README and CHANGES docs (required by
  distutils if we're to include them in the long_description). Fixes #55.

---
0.7
---

* Python 3 is now supported. All tests now pass under Python 3.2 on
  Windows and Linux (although Linux backend support is limited). Fixes #28.
* Extension modules on Mac and Windows replaced by pure-Python ctypes
  implementations. Thanks to Jerome Laheurte.
* WinVaultKeyring now supports multiple passwords for the same service. Fixes
  #47.
* Most of the tests don't require user interaction anymore.
* Entries stored in Gnome Keyring appears now with a meaningful name if you try
  to browser your keyring (for ex. with Seahorse)
* Tests from Gnome Keyring no longer pollute the user own keyring.
* `keyring.util.escape` now accepts only unicode strings. Don't try to encode
  strings passed to it.

-----
0.6.2
-----

* fix compiling on OSX with XCode 4.0

-----
0.6.1
-----

* Gnome keyring should not be used if there is no DISPLAY or if the dbus is
  not around (https://bugs.launchpad.net/launchpadlib/+bug/752282).

---
0.6
---

* Added `keyring.http` for facilitating HTTP Auth using keyring.

* Add a utility to access the keyring from the command line.
jperkin pushed a commit that referenced this pull request Apr 15, 2014
---
3.7
---

* Gnome keyring no longer relies on the GNOME_KEYRING_CONTROL environment
  variable.
* Issue #140: Restore compatibility for older versions of PyWin32.

---
3.6
---

* `Pull Request #1 (github) <https://github.com/jaraco/keyring/pull/1>`_:
  Add support for packages that wish to bundle keyring by using relative
  imports throughout.

---
3.5
---

* Issue #49: Give the backend priorities a 1.5 multiplier bump when an
  XDG_CURRENT_DESKTOP environment variable matches the keyring's target
  environment.
* Issue #99: Clarified documentation on location of config and data files.
  Prepared the code base to treat the two differently on Unix-based systems.
  For now, the behavior is unchanged.

---
3.4
---

* Extracted FileBacked and Encrypted base classes.
* Add a pyinstaller hook to expose backend modules. Ref #124
* Pull request #41: Use errno module instead of hardcoding error codes.
* SecretService backend: correctly handle cases when user dismissed
  the collection creation or unlock prompt.

---
3.3
---

* Pull request #40: KWallet backend will now honor the ``KDE_FULL_SESSION``
  environment variable as found on openSUSE.

-----
3.2.1
-----

* SecretService backend: use a different function to check that the
  backend is functional. The default collection may not exist, but
  the collection will remain usable in that case.

  Also, make the error message more verbose.

  Resolves https://bugs.launchpad.net/bugs/1242412.

---
3.2
---

* Issue #120: Invoke KeyringBackend.priority during load_keyring to ensure
  that any keyring loaded is actually viable (or raises an informative
  exception).

* File keyring:

   - Issue #123: fix removing items.
   - Correctly escape item name when removing.
   - Use with statement when working with files.

* Add a test for removing one item in group.

* Issue #81: Added experimental support for third-party backends. See
  `keyring.core._load_library_extensions` for information on supplying
  a third-party backend.

---
3.1
---

* All code now runs natively on both Python 2 and Python 3, no 2to3 conversion
  is required.
* Testsuite: clean up, and make more use of unittest2 methods.

-----
3.0.5
-----

* Issue #114: Fix logic in pyfs detection.

-----
3.0.4
-----

* Issue #114: Fix detection of pyfs under Mercurial Demand Import.

-----
3.0.3
-----

* Simplified the implementation of ``keyring.core.load_keyring``. It now uses
  ``__import__`` instead of loading modules explicitly. The ``keyring_path``
  parameter to ``load_keyring`` is now deprecated. Callers should instead
  ensure their module is available on ``sys.path`` before calling
  ``load_keyring``. Keyring still honors ``keyring-path``. This change fixes
  Issue #113 in which the explicit module loading of keyring modules was
  breaking package-relative imports.

-----
3.0.2
-----

* Renamed ``keyring.util.platform`` to ``keyring.util.platform_``. As reported
  in Issue #112 and `mercurial_keyring #31
  <https://bitbucket.org/Mekk/mercurial_keyring/issue/31>`_ and in `Mercurial
  itself <http://bz.selenic.com/show_bug.cgi?id=4029>`_, Mercurial's Demand
  Import does not honor ``absolute_import`` directives, so it's not possible
  to have a module with the same name as another top-level module. A patch is
  in place to fix this issue upstream, but to support older Mercurial
  versions, this patch will remain for some time.

-----
3.0.1
-----

* Ensure that modules are actually imported even in Mercurial's Demand Import
  environment.

---
3.0
---

* Removed support for Python 2.5.
* Removed names in ``keyring.backend`` moved in 1.1 and previously retained
  for compatibilty.

-----
2.1.1
-----

* Restored Python 2.5 compatibility (lost in 2.0).

---
2.1
---

*  Issue #10: Added a 'store' attribute to the OS X Keyring, enabling custom
   instances of the KeyringBackend to use another store, such as the
   'internet' store. For example::

       keys = keyring.backends.OS_X.Keyring()
       keys.store = 'internet'
       keys.set_password(system, user, password)
       keys.get_password(system, user)

   The default for all instances can be set in the class::

       keyring.backends.OS_X.Keyring.store = 'internet'

*  GnomeKeyring: fix availability checks, and make sure the warning
   message from pygobject is not printed.

*  Fixes to GnomeKeyring and SecretService tests.

-----
2.0.3
-----

*  Issue #112: Backend viability/priority checks now are more aggressive about
   module presence checking, requesting ``__name__`` from imported modules to
   force the demand importer to actually attempt the import.

-----
2.0.2
-----

*  Issue #111: Windows backend isn't viable on non-Windows platforms.

-----
2.0.1
-----

*  Issue #110: Fix issues with ``Windows.RegistryKeyring``.

---
2.0
---

*  Issue #80: Prioritized backend support. The primary interface for Keyring
   backend classes has been refactored to now emit a 'priority' based on the
   current environment (operating system, libraries available, etc). These
   priorities provide an indication of the applicability of that backend for
   the current environment. Users are still welcome to specify a particular
   backend in configuration, but the default behavior should now be to select
   the most appropriate backend by default.

-----
1.6.1
-----

* Only include pytest-runner in 'setup requirements' when ptr invocation is
  indicated in the command-line (Issue #105).

---
1.6
---

*  GNOME Keyring backend:

   - Use the same attributes (``username`` / ``service``) as the SecretService
     backend uses, allow searching for old ones for compatibility.
   - Also set ``application`` attribute.
   - Correctly handle all types of errors, not only ``CANCELLED`` and ``NO_MATCH``.
   - Avoid printing warnings to stderr when GnomeKeyring is not available.

* Secret Service backend:

   - Use a better label for passwords, the same as GNOME Keyring backend uses.

---
1.5
---

*  SecretService: allow deleting items created using previous python-keyring
   versions.

   Before the switch to secretstorage, python-keyring didn't set "application"
   attribute. Now in addition to supporting searching for items without that
   attribute, python-keyring also supports deleting them.

*  Use ``secretstorage.get_default_collection`` if it's available.

   On secretstorage 1.0 or later, python-keyring now tries to create the
   default collection if it doesn't exist, instead of just raising the error.

*  Improvements for tests, including fix for Issue #102.

---
1.4
---

* Switch GnomeKeyring backend to use native libgnome-keyring via
  GObject Introspection, not the obsolete python-gnomekeyring module.

---
1.3
---

* Use the `SecretStorage library <https://pypi.python.org/pypi/SecretStorage>`_
  to implement the Secret Service backend (instead of using dbus directly).
  Now the keyring supports prompting for and deleting passwords. Fixes #69,
  #77, and #93.
* Catch `gnomekeyring.IOError` per the issue `reported in Nova client
  <https://bugs.launchpad.net/python-novaclient/+bug/1116302>`_.
* Issue #92 Added support for delete_password on Mac OS X Keychain.

-----
1.2.3
-----

* Fix for Encrypted File backend on Python 3.
* Issue #97 Improved support for PyPy.

-----
1.2.2
-----

* Fixed handling situations when user cancels kwallet dialog or denies access
  for the app.

-----
1.2.1
-----

* Fix for kwallet delete.
* Fix for OS X backend on Python 3.
* Issue #84: Fix for Google backend on Python 3 (use of raw_input not caught
  by 2to3).

---
1.2
---

* Implemented delete_password on most keyrings. Keyring 2.0 will require
  delete_password to implement a Keyring. Fixes #79.

-----
1.1.2
-----

* Issue #78: pyfilesystem backend now works on Windows.

-----
1.1.1
-----

* Fixed MANIFEST.in so .rst files are included.

---
1.1
---

This is the last build that will support installation in a pure-distutils
mode. Subsequent releases will require setuptools/distribute to install.
Python 3 installs have always had this requirement (for 2to3 install support),
but starting with the next minor release (1.2+), setuptools will be required.

Additionally, this release has made some substantial refactoring in an
attempt to modularize the backends. An attempt has been made to maintain 100%
backward-compatibility, although if your library does anything fancy with
module structure or clasess, some tweaking may be necessary. The
backward-compatible references will be removed in 2.0, so the 1.1+ releases
represent a transitional implementation which should work with both legacy
and updated module structure.

* Added a console-script 'keyring' invoking the command-line interface.
* Deprecated _ExtensionKeyring.
* Moved PasswordSetError and InitError to an `errors` module (references kept
  for backward-compatibility).
* Moved concrete backend implementations into their own modules (references
  kept for backward compatibility):

  - OSXKeychain -> backends.OS_X.Keyring
  - GnomeKeyring -> backends.Gnome.Keyring
  - SecretServiceKeyring -> backends.SecretService.Keyring
  - KDEKWallet -> backends.kwallet.Keyring
  - BasicFileKeyring -> backends.file.BaseKeyring
  - CryptedFileKeyring -> backends.file.EncryptedKeyring
  - UncryptedFileKeyring -> backends.file.PlaintextKeyring
  - Win32CryptoKeyring -> backends.Windows.EncryptedKeyring
  - WinVaultKeyring -> backends.Windows.WinVaultKeyring
  - Win32CryptoRegistry -> backends.Windows.RegistryKeyring
  - select_windows_backend -> backends.Windows.select_windows_backend
  - GoogleDocsKeyring -> backends.Google.DocsKeyring
  - Credential -> keyring.credentials.Credential
  - BaseCredential -> keyring.credentials.SimpleCredential
  - EnvironCredential -> keyring.credentials.EnvironCredential
  - GoogleEnvironCredential -> backends.Google.EnvironCredential
  - BaseKeyczarCrypter -> backends.keyczar.BaseCrypter
  - KeyczarCrypter -> backends.keyczar.Crypter
  - EnvironKeyczarCrypter -> backends.keyczar.EnvironCrypter
  - EnvironGoogleDocsKeyring -> backends.Google.KeyczarDocsKeyring
  - BasicPyfilesystemKeyring -> backends.pyfs.BasicKeyring
  - UnencryptedPyfilesystemKeyring -> backends.pyfs.PlaintextKeyring
  - EncryptedPyfilesystemKeyring -> backends.pyfs.EncryptedKeyring
  - EnvironEncryptedPyfilesystemKeyring -> backends.pyfs.KeyczarKeyring
  - MultipartKeyringWrapper -> backends.multi.MultipartKeyringWrapper

* Officially require Python 2.5 or greater (although unofficially, this
  requirement has been in place since 0.10).

---
1.0
---

This backward-incompatible release attempts to remove some cruft from the
codebase that's accumulated over the versions.

* Removed legacy file relocation support. `keyring` no longer supports loading
  configuration or file-based backends from ~. If upgrading from 0.8 or later,
  the files should already have been migrated to their new proper locations.
  If upgrading from 0.7.x or earlier, the files will have to be migrated
  manually.
* Removed CryptedFileKeyring migration support. To maintain an existing
  CryptedFileKeyring, one must first upgrade to 0.9.2 or later and access the
  keyring before upgrading to 1.0 to retain the existing keyring.
* File System backends now create files without group and world permissions.
  Fixes #67.

------
0.10.1
------

* Merged 0.9.3 to include fix for #75.

----
0.10
----

* Add support for using `Keyczar <http://www.keyczar.org/>`_ to encrypt
  keyrings. Keyczar is "an open source cryptographic toolkit designed to make
  it easier and safer for developers to use cryptography in their
  applications."
* Added support for storing keyrings on Google Docs or any other filesystem
  supported by pyfilesystem.
* Fixed issue in Gnome Keyring when unicode is passed as the service name,
  username, or password.
* Tweaked SecretService code to pass unicode to DBus, as unicode is the
  preferred format.
* Issue #71 - Fixed logic in CryptedFileKeyring.
* Unencrypted keyring file will be saved with user read/write (and not group
  or world read/write).

-----
0.9.3
-----

* Ensure migration is run when get_password is called. Fixes #75. Thanks to
  Marc Deslauriers for reporting the bug and supplying the patch.

-----
0.9.2
-----

* Keyring 0.9.1 introduced a whole different storage format for the
  CryptedFileKeyring, but this introduced some potential compatibility issues.
  This release incorporates the security updates but reverts to the INI file
  format for storage, only encrypting the passwords and leaving the service
  and usernames in plaintext. Subsequent releases may incorporate a new
  keyring to implement a whole-file encrypted version. Fixes #64.
* The CryptedFileKeyring now requires simplejson for Python 2.5 clients.

-----
0.9.1
-----

* Fix for issue where SecretServiceBackend.set_password would raise a
  UnicodeError on Python 3 or when a unicode password was provided on Python
  2.
* CryptedFileKeyring now uses PBKDF2 to derive the key from the user's
  password and a random hash. The IV is chosen randomly as well. All the
  stored passwords are encrypted at once. Any keyrings using the old format
  will be automatically converted to the new format (but will no longer be
  compatible with 0.9 and earlier). The user's password is no longer limited
  to 32 characters. PyCrypto 2.5 or greater is now required for this keyring.

---
0.9
---

* Add support for GTK 3 and secret service D-Bus. Fixes #52.
* Issue #60 - Use correct method for decoding.

-----
0.8.1
-----

* Fix regression in keyring lib on Windows XP where the LOCALAPPDATA
  environment variable is not present.

---
0.8
---

* Mac OS X keyring backend now uses subprocess calls to the `security`
  command instead of calling the API, which with the latest updates, no
  longer allows Python to invoke from a virtualenv. Fixes issue #13.
* When using file-based storage, the keyring files are no longer stored
  in the user's home directory, but are instead stored in platform-friendly
  locations (`%localappdata%\Python Keyring` on Windows and according to
  the freedesktop.org Base Dir Specification
  (`$XDG_DATA_HOME/python_keyring` or `$HOME/.local/share/python_keyring`)
  on other operating systems). This fixes #21.

*Backward Compatibility Notice*

Due to the new storage location for file-based keyrings, keyring 0.8
supports backward compatibility by automatically moving the password
files to the updated location. In general, users can upgrade to 0.8 and
continue to operate normally. Any applications that customize the storage
location or make assumptions about the storage location will need to take
this change into consideration. Additionally, after upgrading to 0.8,
it is not possible to downgrade to 0.7 without manually moving
configuration files. In 1.0, the backward compatibilty
will be removed.

-----
0.7.1
-----

* Removed non-ASCII characters from README and CHANGES docs (required by
  distutils if we're to include them in the long_description). Fixes #55.

---
0.7
---

* Python 3 is now supported. All tests now pass under Python 3.2 on
  Windows and Linux (although Linux backend support is limited). Fixes #28.
* Extension modules on Mac and Windows replaced by pure-Python ctypes
  implementations. Thanks to Jerome Laheurte.
* WinVaultKeyring now supports multiple passwords for the same service. Fixes
  #47.
* Most of the tests don't require user interaction anymore.
* Entries stored in Gnome Keyring appears now with a meaningful name if you try
  to browser your keyring (for ex. with Seahorse)
* Tests from Gnome Keyring no longer pollute the user own keyring.
* `keyring.util.escape` now accepts only unicode strings. Don't try to encode
  strings passed to it.

-----
0.6.2
-----

* fix compiling on OSX with XCode 4.0

-----
0.6.1
-----

* Gnome keyring should not be used if there is no DISPLAY or if the dbus is
  not around (https://bugs.launchpad.net/launchpadlib/+bug/752282).

---
0.6
---

* Added `keyring.http` for facilitating HTTP Auth using keyring.

* Add a utility to access the keyring from the command line.
jperkin pushed a commit that referenced this pull request Aug 12, 2014
2014-07-02 version 0.5.9:

  * Support std::tr1 unordered containers by default (#51, #63, #68, #69)
  * Remove some warnings (#56)
  * Fix segmentation fault after malloc failures (#58, #59)
  * Fix alloc/dealloc mismatch (#52, #61)
  * Fix sample codes (#60, #64)
  * Support implicit conversion from integer to float/double (#54)
  * Improve documents (#45, #75, #82, #83)
  * Support CMake (#20, #87)
  * Remove Ruby dependencies in bootstrap (#86, #87)
  * Add FILE* buffer (#40)
  * Other bug fixes and refactoring: #39, #73, #77, #79, #80, #81, #84, #90
jperkin pushed a commit that referenced this pull request Oct 3, 2014
        Integrated SPF checking is now available through the new
                SPFSelfValidate and SPFIgnoreResults settings.
        Feature request #79: Optionally ignore clients that authenticated
                using SMTP AUTH.
        Fix bug #60, part II: Default AuthservID to the name provided by the
                MTA, not the local host name, which is consistent with what
                OpenDKIM does.
        Fix bug #72: Don't crash when From fields are absent.
        Fix bug #74: Change "Forensic" to "Failure" just about everywhere
                to match the language now being used in the base DMARC
                draft.  Note that this also changes some names in the
                configuration file.
        Fix bug #75: Correct typo in MIME of forensic reports.
        Fix bug #76: Repair damage with respect to Authentication-Results
                header field selection.
        Fix bug #77: Request quarantine from the MTA during option
                negotiation.
        Fix bug #78: Add missing newline in forensic report header.
        Fix bug #90: Make "--with-sql-backend" without any value do the
                right thing.
        Fix bug #93: Honor size limits in URIs.
        Make "smime" and "rrvs" legal Authentication-Results methods.
        Provide better logging when pclose() for a forensic report returns
                non-zero.
        Add configuration support for internal SPF checks.  Includes hooks in
                the milter to check that SPF is configured to do so.
                This can use a private SPF implementation or libspf2.
        Fix strlcat() and strlcpy() support for Debian.
        REPORTS: Feature request #80: Generate aggregate reports on UTC
                day boundaries.
        REPORTS: Feature request #84: Optionally expire old data from
                lower-growth tables.
        REPORTS: Fix bug #70: Fix date range generation in reports.
        REPORTS: Fix bug #82: Fix recording of report timestamp to avoid lost
                records.
        REPORTS: Fix bug #83: When expiring data, truncate the signatures table
                if all messages were expired..
        REPORTS: Fix bug #85: Report subdomain policy.
        LIBOPENDMARC: Fix bug #71: Fix "rua" extraction from DMARC records.
        LIBOPENDMARC: Added support for milter to perform own spf checks.
                Three new files: opendmarc_spf.c, opendmard_spf_dns.c and
                test/test_spf.cl, allow integrated SPF support.  Support for
                use of libspf2 is also provided.
jperkin pushed a commit that referenced this pull request Mar 16, 2015
-----------------------------------------------------
2015-03-13  k  <[email protected]>
	* release 2.10
	* same code as 2.10-TRIAL

2015-02-22  k  <[email protected]>
	* release 2.10-TRIAL
	* Fix Makefile/Build file test in prereq_pm (Craig A. Berry; RT 98265)
	* Don't use list assignment to %ENV in Distribution::make (Craig A.
	Berry; RT 98265)

	* Bump $VERSION in changed modules (for integration into blead, post
	5.21.9) (Steve Hay)

	* bump requirement for Socket.pm on Windows (Alexandr Ciornii)

2015-02-02  k  <[email protected]>
	* release 2.09-TRIAL
	* tune verbosity of failing tests in 30shell.t (Andreas Koenig)
	* find or fetch MIRRORED.BY -- github #84 (brian d foy)
	* bump $VERSION in modules changed since CPAN-2.00 -- github #83 (Steve
	Hay)

2015-01-05  k  <[email protected]>
	* release 2.08-TRIAL
	* fixes binary test files github #81 (brian d foy)

2015-01-04  k  <[email protected]>
	* release 2.07-TRIAL
	* add support for Cwd::getdcwd and introduce workaround for a
	misbehaviour seen on Strawberry perl 5.20.1 (Andreas Koenig)

	* fixes bug that possibly CPAN::Meta::Requirements was not loaded in
	time (Andreas Koenig)

	* silences unini warnings from missing environment variables (tlhackque)
	* fixes chdir after building dependencies bug github #79 and #80 (David
	Schweikert)

	* some new and some improved distroprefes files, and some have gone too
	(Andreas Koenig, Slaven Rezic)

	* introduces experimental support for plugins/hooks (#apw2014 in
	Salzburg; Andreas Koenig, Branislav Zahradnik)

	* catches more user errors on the 'o conf' commandline (Andreas Koenig)
	* integrates the App::Cpan sources taken over from brian with lots of
	cleanup from him, so that they have less chance to digress (brian d foy)

	* fixes clear_credentials that were completely broken (Len Jaffe)
	* fixes typos (David Horner)

2014-08-06  k  <[email protected]>
	* release 2.06-TRIAL
	* lazy load CPAN::Meta::Requirements (David Golden)
	* fix $rtt handling in App::Cpan (Peter Martini)
	* bump CPAN::Meta::Requirements requirement (Karen Etheridge)
	* fix unini warning in App::Cpan (mudler)
	* tiny distroprefs fixes (Andreas Koenig)
	* remove beta warning from distroprefs documentation (Andreas Koenig)
	* do not check recursion on optional dependencies (Andreas Koenig)
	* address rt.cpan.org #95271: sanity check META.yml to contain a hash
	(Alexandr Ciornii, Andreas Koenig)
jperkin pushed a commit that referenced this pull request Jun 17, 2015
+ Version 2.14 (09.06.2015)

  - Added CParser parameter to specify output directory for generated parsing
    tables (#84).
  - Removed lcc's cpp and its license from the distribution. Using lcc's cpp
    is no longer recommended, now that Clang has binary builds available for
    Windows.
jperkin pushed a commit that referenced this pull request Jul 13, 2015
* 3.4.3 (stable)

    * The bug that wrote the first part of data if the message body in the
      IMAP4 responses didn't end with CR+LF was fixed (#84).
    * The crash when displaying HTML messages was fixed (#215).
    * Win32: the crash when linked with newer MSVCRT was fixed.
    * Win32: libjpeg was updated.
    * Win32: libtiff was updated.
    * Win32: libpng was updated to 1.2.53.
    * Win32: OpenSSL was updated to v0.9.8zg.
    * Win32: included SSL certificates were updated.
jperkin pushed a commit that referenced this pull request Oct 15, 2015
pkgsrc changes (no functional changes intended):
 o unset USE_LANGUAGES
 o use NO_BUILD instead of defining an empty do-build target

Changes:
# Version 2.015 (release build)
Changes vs. release v2.013:
- new vertical metrics = decreased line spacing height - Issues #28, #32, #39,
  #41, #95, #103
- adjusted vertical position of the colon to a higher position, improves
  alignment with other punctuation glyphs (U+003A) - Issue #66
- changed vertical position of the dash (U+002D) so that regular and oblique,
  bold and bold oblique are properly aligned - Issue #107
- updated hinting algorithm for bold set (improved point position over stem of
  lowercase j/i for some text sizes) - Issue #84
- underscore (U+005F) centered, increased width, increased height & aligned
  vertical position closer to baseline - Issues #97, #98, #100, 103,
- increased vertical position of dieresis mark on lowercase u dieresis
  (U+00FC) - Issue #61
- increased vertical position of dieresis mark on lowercase i dieresis (U+00EF)
- increased vertical position of dieresis mark on lowercase e dieresis (U+00EB)
- decreased vertical position of the asterisk (U+002A) - Issue #34
- new design for ascii tilde - broader curves, taller glyph with goal to
  improve appearance at small text sizes where it tended to render like a dash
  (U+007E) - Issue #37
- new ttf build autohinting script
  (./postbuild_processing/tt-hinting/autohint.sh)
- new ttf build autohinting Control Instructions File - bold set
  (./postbuild_processing/tt-hinting/Hack-Bold-TA.txt)
- new ttf build release script (./postbuild_processing/tt-hinting/release.sh)
- new web font release script
  (./postbuild_processing/webfonts/releasewebfonts.sh)
- new vfb to UFO source file conversion script (./tools/makeufo.sh)
- new UFO source file types - includes separate source files for TrueType
  (`*-TT.ufo`) and PostScript (`*-PS.ufo`) releases
- source file path changes: now includes separate `ufo` and `vfb` directories
  under the `./source` repository directory
- Hack Open Font license updated to version 2.0.  The license changes better
  define the Hack project as a derivative project of the Bitstream Vera Sans
  Mono typeface project and are intended to make the license more consistent
  with the Bitstream Vera libre, open source license under which Hack is
  co-licensed.  There are no new restrictions on use of the fonts with these
  license changes.  Embedding permissions are made explicit in this version
  of the Hack Open Font license.

# Version 2.013 (release build)
Changes vs. release v2.010:
- Fixed missing middle dot glyph (U+00B7), adjusted width of U+00B7 em box to
  address spacing issues in editors that highlight empty spaces
  (Issues #27 & #46)
- Powerline glyph alignment and size adjustments (Issue #33)
- Fixed name tables to address:
  - incorrect oblique rendering with Java type renderers on OS X (Issue #26)
  - incorrect italic + bold + bold oblique rendering in some syntax
    highlighters (Issues #42, #50, #60)
  - backslash character took inappropriate vertical alignment because of
    incorrect slant angle in some editors (Issue #67)
- Changed oblique and bold oblique font names to "Hack Italic" and "Hack Bold
  Italic" to address Windows listings
- Changed oblique and bold oblique webfont names to "hack-italic-webfont.[xxx]"
  and "hack-bolditalic-webfont.[xxx]"
- Changed oblique and bold oblique basic Latin + Latin-1 webfont subsets to the
  names "hack-italic-latin-webfont.[xxx]" and
  "hack-bolditalic-latin-webfont.[xxx]"
- Changed license name from "Modified SIL Open Font License" to "Hack Open Font
  License" to comply with SIL regulations for SIL Open Font License
  modifications
- Removed all license references to SIL to comply with SIL regulations for
  modifications of the SIL Open Font License
- Removed SIL Open Font License preamble from the Hack Open Font License to
  comply with SIL regulations for modifications of the SIL Open Font License
- Removed the following statement from Hack Open Font License condition #3:
  "This restriction only applies to the primary font name as presented to the
  users." to address a reserved font name conflict with the Bitstream Vera
  license
- Modified the build directory structure for the Hack web fonts
- Added Hack webfont CSS files to the build directory
jperkin pushed a commit that referenced this pull request Nov 14, 2015
2015.11.4
=========
----

* Fix #38: Long links wrapping controlled by `--no-wrap-links`.
* Note: `--no-wrap-links` implies `--reference-links`
* Feature #83: Add callback-on-tag.
* Fix #87: Decode errors can be handled via command line.
* Feature #95: Docs, decode errors spelling mistake.
* Fix #84: Make bodywidth kwarg overridable using config.
jperkin pushed a commit that referenced this pull request Dec 14, 2015
== 3.0 / 2015-11-21

* 2 governance changes

  * This project and the related mime-types-data project are now exclusively
    MIT licensed. Resolves
    {#95}[mime-types/ruby-mime-types#95].

  * All projects under the mime-types organization now have a standard code of
    conduct adapted from the {Contributor
    Covenant}[http://contributor-covenant.org]. This text can be found in the
    {Code-of-Conduct.rdoc}[Code-of-Conduct_rdoc.html] file.

* 3 major changes

  * All methods deprecated in mime-types 2.x have been removed.
  * mime-types now requires Ruby 2.0 compatibility or later. Resolves
    {#97}[mime-types/ruby-mime-types#97].
  * The registry data has been removed from mime-types and put into
    mime-types-data, maintained and released separately. It can be found at
    {mime-types-data}[https://github.com/mime-types/mime-types-data].

* 17 minor changes:

  * MIME::Type changes:

    * Changed the way that simplified types representations are creatd to
      reflect the fact that +x-+ prefixes are no longer considered special
      according to IANA. A simplified MIME type is case-folded to lowercase. A
      new keyword parameter, +remove_x_prefix+, can be provided to remove +x-+
      prefixes.
    * Improved initialization with an Array works so that extensions do not
      need to be wrapped in another array. This means that <tt>%w(text/yaml
      yaml yml)</tt> works in the same way that <tt>['text/yaml', %w(yaml
      yml)]</tt> did (and still does).
    * Changed +priority_compare+ to conform with attributes that no longer
      exist.
    * Changed the internal implementation of extensions to use a frozen Set.
    * When extensions are set or modified with +add_extensions+, the primary
      registry will be informed of a need to reindex extensions. Resolves
      {#84}[mime-types/ruby-mime-types#84].
    * The preferred extension can be set explicitly. If not set, it will be the
      first extension. If the preferred extension is not in the extension list,
      it will be added.
    * Improved how xref URLs are generated.
    * Converted +obsolete+, +registered+ and +signature+ to attr_accessors.

  * MIME::Types changes:

    * Modified MIME::Types.new to track instances of MIME::Types so that they
      can be told to reindex the extensions as necessary.
    * Removed +data_version+ attribute.
    * Changed #[] so that the +complete+ and +registered+ flags are keywords
      instead of a generic options parameter.
    * Extracted the class methods to a separate file.
    * Changed the container implementation to use a Set instead of an Array to
      prevent data duplication. Resolves
      {#79}[mime-types/ruby-mime-types#79].

  * MIME::Types::Cache changes:

    * Caching is now based on the data gem version instead of the mime-types
      version.
    * Caching is compatible with columnar registry stores.

  * MIME::Types::Loader changes:

    * MIME::Types::Loader::PATH has been removed and replaced with
      MIME::Types::Data::PATH from the mime-types-data gem. The environment
      variable RUBY_MIME_TYPES_DATA is still used.
    * Support for the long-deprecated mime-types v1 format has been removed.
    * The registry is default loaded from the columnar store by default. The
      internal format of the columnar store has changed; many of the boolean
      flags are now loaded from a single file. Resolves
      {#85}[https://github.com/mime-types/ruby-mime-types/85].
jperkin pushed a commit that referenced this pull request Jan 29, 2016
* 3.5.0 (stable)

    * A fix for ARM architecture was made.
    * TLSv1.1 and TLSv1.2 will be enabled for STARTTLS when OpenSSL 1.0.1 or
      above is used.
    * Some bugfixes and stability improvements were made.
    * Win32: more fix for the crash when linked with newer MSVCRT was made.
    * Win32: irresponsibe text entries on the first display of the filter
      edit dialog were fixed.
    * Win32: libpng was updated to 1.4.19.
    * Win32: OpenSSL was updated to v0.9.8zh.

* 3.5.0beta3 (development)

    * A bug that reorder of filter runes by DnD was not saved was fixed.
    * The original file names of attachments are kept when opening them,
      and shorter suffixes are added in the case they conflict.
    * The crash when displaying HTML messages was fixed (#215).
    * The bug that column sizes of the address book were not properly set was
      fixed.
    * Win32: the bug that maximized state was unset on minimize was fixed.
    * Win32: the crash when linked with newer MSVCRT was fixed.
    * Win32: dependency on libtiff was removed (GDI+ is used).
    * Win32: libjpeg was updated.
    * Win32: libpng was updated to 1.4.16.
    * Win32: OpenSSL was updated to v0.9.8zg.
    * Win32: included SSL certificates were updated.

* 3.5.0beta2 (development)

    * Windows / widgets are now adjusted to their optimal sizes by reference
      to system DPI value.
    * The option to specify startup online mode was added.
    * The bug that wrote the first part of data if the message body in the
      IMAP4 responses didn't end with CR+LF was fixed (#84).
    * The bug that previously selected folder on the file selection dialog
      was not remembered with GTK+ 2.24.x was fixed.
    * Hebrew translation was added.
    * Win32: The bug that 'Minimize to tray icon' didn't work with 3.5.0beta1
      was fixed.
    * Win32: 'Toggle window on trayicon click' now works.
    * Win32: sylpheed.exe executable became DPI-Aware.
    * Win32: OpenSSL was updated to 0.9.8zc.
    * Win32: included SSL certificates were updated.

* 3.5.0beta1 (development)

    * Mbox locking became NFS-safe (#202).
    * Configure: silent rules are enabled by default.
    * Configure.in was renamed to configure.ac.
    * Fade effect was added to the notification window.
    * Sylpheed.desktop file was updated.
    * Win32: build fix for newer MinGW was made.
    * Win32: 32-bit time_t is always used on win32 for backward compatibility.
    * Win32: included third-party libraries were updated:
      - GTK+ 2.24.23
      - GLib 2.38.2
      - GDK-Pixbuf 2.30.7
      - Pango 1.36.3
      - Cairo 1.10.2
      - libpng 1.14.13
      - GPGME 1.4.3
    * Win32: the following issues were fixed because of GTK+ update:
      - System Icon issue when ran on Windows 7 (#13, #85)
      - Scroll jumping issue on text views when using Japanese IME
      - Menus became more native-looking
      - File dialogs were improved
jperkin pushed a commit that referenced this pull request Feb 11, 2016
* 3.5.0 (stable)

    * A fix for ARM architecture was made.
    * TLSv1.1 and TLSv1.2 will be enabled for STARTTLS when OpenSSL 1.0.1 or
      above is used.
    * Some bugfixes and stability improvements were made.
    * Win32: more fix for the crash when linked with newer MSVCRT was made.
    * Win32: irresponsibe text entries on the first display of the filter
      edit dialog were fixed.
    * Win32: libpng was updated to 1.4.19.
    * Win32: OpenSSL was updated to v0.9.8zh.

* 3.5.0beta3 (development)

    * A bug that reorder of filter runes by DnD was not saved was fixed.
    * The original file names of attachments are kept when opening them,
      and shorter suffixes are added in the case they conflict.
    * The crash when displaying HTML messages was fixed (#215).
    * The bug that column sizes of the address book were not properly set was
      fixed.
    * Win32: the bug that maximized state was unset on minimize was fixed.
    * Win32: the crash when linked with newer MSVCRT was fixed.
    * Win32: dependency on libtiff was removed (GDI+ is used).
    * Win32: libjpeg was updated.
    * Win32: libpng was updated to 1.4.16.
    * Win32: OpenSSL was updated to v0.9.8zg.
    * Win32: included SSL certificates were updated.

* 3.5.0beta2 (development)

    * Windows / widgets are now adjusted to their optimal sizes by reference
      to system DPI value.
    * The option to specify startup online mode was added.
    * The bug that wrote the first part of data if the message body in the
      IMAP4 responses didn't end with CR+LF was fixed (#84).
    * The bug that previously selected folder on the file selection dialog
      was not remembered with GTK+ 2.24.x was fixed.
    * Hebrew translation was added.
    * Win32: The bug that 'Minimize to tray icon' didn't work with 3.5.0beta1
      was fixed.
    * Win32: 'Toggle window on trayicon click' now works.
    * Win32: sylpheed.exe executable became DPI-Aware.
    * Win32: OpenSSL was updated to 0.9.8zc.
    * Win32: included SSL certificates were updated.

* 3.5.0beta1 (development)

    * Mbox locking became NFS-safe (#202).
    * Configure: silent rules are enabled by default.
    * Configure.in was renamed to configure.ac.
    * Fade effect was added to the notification window.
    * Sylpheed.desktop file was updated.
    * Win32: build fix for newer MinGW was made.
    * Win32: 32-bit time_t is always used on win32 for backward compatibility.
    * Win32: included third-party libraries were updated:
      - GTK+ 2.24.23
      - GLib 2.38.2
      - GDK-Pixbuf 2.30.7
      - Pango 1.36.3
      - Cairo 1.10.2
      - libpng 1.14.13
      - GPGME 1.4.3
    * Win32: the following issues were fixed because of GTK+ update:
      - System Icon issue when ran on Windows 7 (#13, #85)
      - Scroll jumping issue on text views when using Japanese IME
      - Menus became more native-looking
      - File dialogs were improved
jperkin pushed a commit that referenced this pull request Feb 15, 2016
Needed by py-google-api-python-client-1.4.2.

## v1.5.2

* Add access token refresh error class that includes HTTP status (#310)
* Python3 compatibility fixes for Django (#316, #318)
* Fix incremental auth in flask_util (#322)
* Fall back to credential refresh on EDEADLK in multistore_file (#336)

## v1.5.1

* Fix bad indent in `tools.run_flow()` (#301, bug was
  introduced when switching from 2 space indents to 4)

## v1.5.0

* Fix (more like clarify) `bytes` / `str` handling in crypto
  methods. (#203, #250, #272)
* Replacing `webapp` with `webapp2` in `oauth2client.appengine` (#217)
* Added optional `state` parameter to
  `step1_get_authorize_url`. (#219 and #222)
* Added `flask_util` module that provides a Flask extension to aid
  with using OAuth2 web server flow. This provides the same functionality
  as the `appengine.webapp2` OAuth2Decorator, but will work with any Flask
  application regardless of hosting environment. (#226, #273)
* Track scopes used on credentials objects (#230)
* Moving docs to [readthedocs.org][1] (#237, #238, #244)
* Removing `old_run` module. Was deprecated July 2, 2013. (#285)
* Avoid proxies when querying for GCE metadata (to check if
  running on GCE) (#114, #293)

[1]: https://readthedocs.org/

## v1.4.12

* Fix OS X flaky test failure (#189).
* Fix broken OpenSSL import (#191).
* Remove `@util.positional` from wrapped request in `Credentials.authorize()`
  (#196, #197).
* Changing pinned dependencies to `>=` (#200, #204).
* Support client authentication using `Authorization` header (#206).
* Clarify environment check in case where GAE imports succeed but GAE services
  aren't available (#208).

## v1.4.11

* Better environment detection with Managed VMs.
* Better OpenSSL detection in exotic environments.

## v1.4.10

* Update the `OpenSSL` check to be less strict about finding `crypto.py` in
  the `OpenSSL` directory.
* `tox` updates for new environment handling in `tox`.

## v1.4.9

* Ensure that the ADC fails if we try to *write* the well-known file to a
  directory that doesn't exist, but not if we try to *read* from one.

## v1.4.8

* Better handling of `body` during token refresh when `body` is a stream.
* Better handling of expired tokens in storage.
* Cleanup around `openSSL` import.
* Allow custom directory for the `well_known_file`.
* Integration tests for python2 and python3. (!!!)
* Stricter file permissions when saving the `well_known_file`.
* Test cleanup around config file locations.

## v1.4.7

* Add support for Google Developer Shell credentials.
* Better handling of filesystem errors in credential refresh.
* python3 fixes
* Add `NO_GCE_CHECK` for skipping GCE detection.
* Better error messages on `InvalidClientSecretsError`.
* Comment cleanup on `run_flow`.

## v1.4.6

* Add utility function to convert PKCS12 key to PEM. (#115)
* Change GCE detection logic. (#93)
* Add a tox env for doc generation.

## v1.4.5

* Set a shorter timeout for an Application Default Credentials issue on some
  networks. (#93, #101)
* Test cleanup, switch from mox to mock. (#103)
* Switch docs to sphinx from epydoc.

## v1.4.4

* Fix a bug in bytes/string encoding of headers.

## v1.4.3

* Big thanks to @dhermes for spotting and fixing a mess in our test setup.

* Fix a serious issue with tests not being run. (#86, #87, #89)
* Start credentials cleanup for single 2LO/3LO call. (#83, #84)
* Clean up stack traces when re-raising in some places. (#79)
* Clean up doc building. (#81, #82)
* Fixed minimum version for `six` dependency. (#75)
mamash pushed a commit that referenced this pull request Apr 6, 2016
v2.1
- Issue #156 parsedatetime 2.0 doesn't work on py26

v2.0
- Issue #155 Relative times containing years fail when computed
  from a leap day
- Issue #145 cal.parse('2015-11-18') returns November 19th 2015
- Issue #143 What is the second value returned by `parse`?
- Issue #141 Bad test case in TestComplexDateTimes
- Issue #123 update supporting files for v2.0 release
- Issue #124 Put locales into config-files (yaml)
- Issue #125 Remove extra files
- Issue #137 Year is parsed wrongly if the date is of format
  MMM DD, YYxx xx:SS bug
- Issue #136 Why I see 2016 instead of 2015?
- Issue #133 Bug: "2015-01-01" is parsed as the current date.
- Issue #126 "Unresolved attribute reference 'parse' for class
  'object'... " in Pycharm IDE. bug
- Issue #120 the pdt_locales/en_AU.py file uses en_A for
  the localID instead of en_AU
- Issue #114 Dates in the format 'YYYY-MM-DD HH:MM' give
  the incorrect month and day
- Issue #112 Document getting a time from parsedatetime
  into a standard Python structure
- Issue #110 AttributeError when running in the context
  of an HTTP request
- Issue #109 YearParseStyle is ignored for dates in MM/DD style
- Issue #107 yyyy/mm/dd date format
- Issue #105 "this week" is not parsed
- Issue #103 get UTC times from parseDT - trouble with at 9:30
  clock times being interpreted directly in UTC
- Issue #100 Fractional deltas result in incoherent results.
- PR #118 ADD: improve russian locale
- PR #117 ADD: Russian Locale
- PR #116 Fix spelling of "separator".
- PR #115 Update README.rst
- PR #113 Add datetime example to readme.
- PR #111 Allowed real number appear in text like "5.5 days ago"

v1.5
- Issue #99 Which year is implied when given just a month and day?
  Next and last? question
- Issue #96 Word boundary issues for specials (on, at, in) in nlp
- Issue #94 inconsistent application of sourceTime
  in Calendar.parseDT
- Issue #87 nlp() doesn't recognize some "next ..." expressions
- Issue #84 Afternoon? bug
- Issue #82 'last week' and 'next week' are broken
- Issue #81 parse returns default time of 0900 with dates like
  'next friday' despite passed struct_time bug
- Issue #78 Link for Travis in README is wrong
- Issue #72 Enable travis
- Issue #71 Calendar() class can not be initialized 1.4 (it's
  fine)
- Issue #66 Unexpected struct_time flag with Calendar.parse
  on HTML <a href> string
- Issue #65 NLP false positives
- Issue #63 Supporting multiple shortweekday abbreviations
- Issue #61 Short weekday abbreviations bug
- Issue #56 Parse words to numbers (thirteen => 13)
- Issue #54 testMonths fails
- commit 107c7e4655 fix for issue 95 - parsing 'next june 15'
- commit 2c0c8ec778 Fixed faulty test, "730am" parses as "73:0 am"
  which is a bug for a later day.
- commit 6f244e891d Fix "ones" parsing as "1s." Require a word
  boundary between spelled numbers and units.
- commit 035818edef Fix "1 day ago" parsing like "1d 1y ago"
  where "a" within the word "day" is interpreted as 1.
- commit 45002e6eec Fixes "next week" and similar modifier
  + unit pairs in nlp()
- commit 47d2e1d527 Fixed "last week"

v1.4
- Updated setup.py for wheel compatibility
- renamed README.txt to README.rst
- renamed MANIFEST to MANIFEST.in
- cleaned up a lot of the doc and notes
- Commit 3fc165e701 mafagafo Now it works for Python 3.4.1
- Commit d5883801e7 borgstrom Restore Python 2.6 compatibility

1.3
- Issue #45 make a new release to really fix backwards
  compatibility
- Issue #43 Please tag version 1.3
- Commit 29c5c8961d devainandor fixed Python 3 compatibility
  in pdtLocale_icu
- Commit d7304f18f7 inean Fix support for 'now' when no modifiers
  are present
- Commit 26bfc91c28 sashaacker Added parseDT method.
- Commit 848deb47e2 rmecham Added support for dotted meridians.
- Commit c821e08ce2 ccho-sevenrooms corrected misspelling
  of 'thirteen'
- Biggest change is the addition of the nlp() function
  by Geoffrey Floyd:
    nlp() function that utilizes parse() after making judgements
    about what datetime information belongs together. It makes
    logical groupings based on proximity and returns a parsed
    datetime for each matched grouping of datetime text, along
    with location info within the given inputString.
jperkin pushed a commit that referenced this pull request Apr 7, 2016
v2.1
- Issue #156 parsedatetime 2.0 doesn't work on py26

v2.0
- Issue #155 Relative times containing years fail when computed
  from a leap day
- Issue #145 cal.parse('2015-11-18') returns November 19th 2015
- Issue #143 What is the second value returned by `parse`?
- Issue #141 Bad test case in TestComplexDateTimes
- Issue #123 update supporting files for v2.0 release
- Issue #124 Put locales into config-files (yaml)
- Issue #125 Remove extra files
- Issue #137 Year is parsed wrongly if the date is of format
  MMM DD, YYxx xx:SS bug
- Issue #136 Why I see 2016 instead of 2015?
- Issue #133 Bug: "2015-01-01" is parsed as the current date.
- Issue #126 "Unresolved attribute reference 'parse' for class
  'object'... " in Pycharm IDE. bug
- Issue #120 the pdt_locales/en_AU.py file uses en_A for
  the localID instead of en_AU
- Issue #114 Dates in the format 'YYYY-MM-DD HH:MM' give
  the incorrect month and day
- Issue #112 Document getting a time from parsedatetime
  into a standard Python structure
- Issue #110 AttributeError when running in the context
  of an HTTP request
- Issue #109 YearParseStyle is ignored for dates in MM/DD style
- Issue #107 yyyy/mm/dd date format
- Issue #105 "this week" is not parsed
- Issue #103 get UTC times from parseDT - trouble with at 9:30
  clock times being interpreted directly in UTC
- Issue #100 Fractional deltas result in incoherent results.
- PR #118 ADD: improve russian locale
- PR #117 ADD: Russian Locale
- PR #116 Fix spelling of "separator".
- PR #115 Update README.rst
- PR #113 Add datetime example to readme.
- PR #111 Allowed real number appear in text like "5.5 days ago"

v1.5
- Issue #99 Which year is implied when given just a month and day?
  Next and last? question
- Issue #96 Word boundary issues for specials (on, at, in) in nlp
- Issue #94 inconsistent application of sourceTime
  in Calendar.parseDT
- Issue #87 nlp() doesn't recognize some "next ..." expressions
- Issue #84 Afternoon? bug
- Issue #82 'last week' and 'next week' are broken
- Issue #81 parse returns default time of 0900 with dates like
  'next friday' despite passed struct_time bug
- Issue #78 Link for Travis in README is wrong
- Issue #72 Enable travis
- Issue #71 Calendar() class can not be initialized 1.4 (it's
  fine)
- Issue #66 Unexpected struct_time flag with Calendar.parse
  on HTML <a href> string
- Issue #65 NLP false positives
- Issue #63 Supporting multiple shortweekday abbreviations
- Issue #61 Short weekday abbreviations bug
- Issue #56 Parse words to numbers (thirteen => 13)
- Issue #54 testMonths fails
- commit 107c7e4655 fix for issue 95 - parsing 'next june 15'
- commit 2c0c8ec778 Fixed faulty test, "730am" parses as "73:0 am"
  which is a bug for a later day.
- commit 6f244e891d Fix "ones" parsing as "1s." Require a word
  boundary between spelled numbers and units.
- commit 035818edef Fix "1 day ago" parsing like "1d 1y ago"
  where "a" within the word "day" is interpreted as 1.
- commit 45002e6eec Fixes "next week" and similar modifier
  + unit pairs in nlp()
- commit 47d2e1d527 Fixed "last week"

v1.4
- Updated setup.py for wheel compatibility
- renamed README.txt to README.rst
- renamed MANIFEST to MANIFEST.in
- cleaned up a lot of the doc and notes
- Commit 3fc165e701 mafagafo Now it works for Python 3.4.1
- Commit d5883801e7 borgstrom Restore Python 2.6 compatibility

1.3
- Issue #45 make a new release to really fix backwards
  compatibility
- Issue #43 Please tag version 1.3
- Commit 29c5c8961d devainandor fixed Python 3 compatibility
  in pdtLocale_icu
- Commit d7304f18f7 inean Fix support for 'now' when no modifiers
  are present
- Commit 26bfc91c28 sashaacker Added parseDT method.
- Commit 848deb47e2 rmecham Added support for dotted meridians.
- Commit c821e08ce2 ccho-sevenrooms corrected misspelling
  of 'thirteen'
- Biggest change is the addition of the nlp() function
  by Geoffrey Floyd:
    nlp() function that utilizes parse() after making judgements
    about what datetime information belongs together. It makes
    logical groupings based on proximity and returns a parsed
    datetime for each matched grouping of datetime text, along
    with location info within the given inputString.
jperkin pushed a commit that referenced this pull request Apr 11, 2016
Upstream changes:
Changes in Rcpp version 0.12.4 (2016-03-22)

    Changes in Rcpp API:

        New accessors as() and clone() were added to the Nullable class (Dan in PR #423 closing #421)

        The Nullable<>::operator SEXP() and Nullable<>::get() now also work for const objects (Kirill Mueller in PR #417).

        A subsetting error was fixed (Qiang via #432 closing #431).

    Changes in Rcpp Sugar:

        Added new Sugar function median() (Nathan in PR #425 closing #424)

        Added new Sugar function cbind() (Nathan in PR #447 closing #407)

    Changes in Rcpp Attributes:

        A plugin for C++14 was added (Dan in PR #427)

    Changes in Rcpp Documentation:

        An entry was added to the Rcpp-FAQ vignette describing the required packages for vignette building (#422).

        Use on OS X was further detailed (James Balamuta in #433 with further review by Bob Rudis).

        An entry was added concerning the hard-code limit of arguments to some constructor and function (cf #435).

        The Rcpp-FAQ vignette now contains a table of content.

        Typos and indentation were corrected in the Rcpp Sugar vignette (#445 by Colin Gillespie).

Changes in Rcpp version 0.12.3 (2016-01-10)

    Changes in Rcpp API:

        Const iterators now CharacterVector now behave like regular iterators (PR #404 by Dan fixing #362).

        Math operators between matrix and scalars type have been added (PR #406 by Qiang fixing #365).

        A missing std::hash function interface for Rcpp::String has been addded (PR #408 by Qiang fixing #84).

    Changes in Rcpp Attributes:

        Avoid invalid function names when generating C++ interfaces (PR #403 by JJ fixing #402).

        Insert additional space around & in function interface (PR #400 by Kazuki Fukui fixing #278).

    Changes in Rcpp Modules:

        The copy constructor now initialized the base class (PR #411 by Joshua Pritikin fixing #410)

    Changes in Rcpp Repository:

        Added a file Contributing.md providing some points to potential contributors (PR #414 closing issue #413)

Changes in Rcpp version 0.12.2 (2015-11-14)

    Changes in Rcpp API:

        Correct return type in product of matrix dimensions (PR #374 by Florian)

        Before creating a single String object from a SEXP, ensure that it is from a vector of length one (PR #376 by Dirk, fixing #375).

        No longer use STRING_ELT as a left-hand side, thanks to a heads-up by Luke Tierney (PR #378 by Dirk, fixing #377).

        Rcpp Module objects are now checked more carefully (PR #381 by Tianqi, fixing #380)

        An overflow in Matrix column indexing was corrected (PR #390 by Qiang, fixing a bug reported by Allessandro on the list)

        Nullable types can now be assigned R_NilValue in function signatures. (PR #395 by Dan, fixing issue #394)

        operator<<() now always shows decimal points (PR #396 by Dan)

        Matrix classes now have a transpose() function (PR #397 by Dirk fixing #383)

        operator<<() for complex types was added (PRs #398 by Qiang and #399 by Dirk, fixing #187)

    Changes in Rcpp Attributes:

        Enable export of C++ interface for functions that return void.

    Changes in Rcpp Sugar:

        Added new Sugar function cummin(), cummax(), cumprod() (PR #389 by Nathan Russell fixing #388)

        Enabled sugar math operations for subsets; e.g. x[y] + x[z]. (PR #393 by Kevin and Qiang, implementing #392)

    Changes in Rcpp Documentation:

        The NEWS file now links to GitHub issue tickets and pull requests.

        The Rcpp.bib file with bibliographic references was updated.
jperkin pushed a commit that referenced this pull request Apr 11, 2016
--------------------------------------
Changes in Devel::NYTProf 6.03 - 25th March 2016

  Fix to account for the deep stack optimizations in perl 5.23.8
    by Dave Mitchell, with my great gratitude!
  Fix SIGUSR2 on MSWin32 and div by zero #78 PR#79
    with thanks to Nicolas Georges.
  Fix for perl 5.8.8 but adding definition for tTHX.
  Unify 'Profile format error' messages.

  Improve the TROUBLESHOOTING docs.
  Added some more docs for the start=init option #85
  Corrected URL of KCachegrind home page #87
    with thanks to Denis Ibaev.
  Corrected URL of sample report #80
  Removed dead code.nytimes.com URL and redundant history #84
jperkin pushed a commit that referenced this pull request May 3, 2016
Changes:
Version 5.1.4
=============
Code Fixes
----------
* Fix SF bug #94: giflib 5 loves to fail to load images... a LOT.
* Fix SF Bug #92: Fix buffer overread in gifbuild.
* Fix SF Bug #93: Add bounds check in gifbuild netscape2.0 path
* Fix SF Bug #89: Fix buffer overread in gifbuild.

Version 5.1.3
=============
As of this version the library and code has been seriously abused by fuzzers,
smoking out crash bugs (now fixed) induced by various kinds of severely
malformed GIF.

Code Fixes
----------
* Prevent malloc randomess from causing the header output routine to emit
  a GIF89 version string even when no GIF89 features are present. Only
  breaks tests, not production code, but it's odd this wasn't caught sooner.
* Prevent malloc randomess from producing sporadic failures by causing
  sanity checks added in 5.1.2 to misfire.
* Bulletproof gif2rgb against 0-height images. Addressed SF bug #78:
  Heap overflow in gif2rgb with images of size 0, also SF bug #82.
* Remove unnecessary duplicate EGifClose() in gifcolor.c. Fixes SF bug #83
  introduced in 5.1.2.
* Fix SF Bug #84: incorrect return of DGifSlurp().
jperkin pushed a commit that referenced this pull request Nov 1, 2016
v1.15.0
=======

* more sophisticated ignoring of mercurial tag commits
  when considering distance in commits
  (thanks Petre Mierlutiu)
* fix issue #114: stop trying to be smart for the sdist
  and ensure its always correctly usign itself
* update trove classifiers
* fix issue #84: document using the installed package metadata for sphinx
* fix issue #81: fail more gracious when git/hg are missing
* address issue #93: provide an experimental api to customize behaviour on shallow git repos
  a custom parse function may pick pre parse actions to do when using git


v1.14.1
=======

* fix #109: when detecting a dirty git workdir
            don't consider untracked file
            (this was a regression due to #86 in v1.13.1)
* consider the distance 0 when the git node is unknown
  (happens when you haven't commited anything)
wiedi pushed a commit to wiedi/pkgsrc-legacy that referenced this pull request Nov 17, 2016
Upstream changes:
1.7.1 - "Election"

    [Bugs]

    * Minor release to incorporate fix for CPAN indexing, which
      prevented proper updates [cjfields]
    * Fix problem in managing Target attribute for gff3 [Jukes34]
    * Minor bug fixes related to NCBI HTTPS support [cjfields]

1.7.0 - "Disney"

    [New site]

    * We have migrated to Github Pages. This was actually planned, but the
      recent OBF server compromise forced our hand.

      Brian Osborne [bosborne] took this under his wing to move docs and has
      done a tremendous amount of work formatting the site and working out some
      of the idiosyncracies with the new Jekyll-based design.  Mark Jensen, Paul
      Cantalupo and Franscison Ossandon also helped.  Kudos!!

    * Similarly, the official issue tracker is now Github Issues.  This has
      been updated in the relevant documentation bits (we hope!)

    [Code changes]

    * Previously deprecated modules removed
      * Bio::Tools::Infernal, Bio::Tools::ERPIN, Bio::Tools::RNAMotif
    * Bio::DB::SeqHound has been removed due to the service no longer being
      available
    * Bio::Tools::Analysis::Protein::Mitoprot has been removed for security
      reasons due to the server no longer having a valid cert
    * Bio::EUtilities, Bio::Biblio are now separate releases on CPAN
    * Bio::Coordinate, Bio::SearchIO::blastxml,
      Bio::SearchIO::Writer::BSMLResultWriter are now separate releases to be
      added on CPAN

    [New features]

    * Docker instances of tagged releases are available! [hlapp]
    * NCBI HTTPS support [mjohnson and others]
    * Bio::SearchIO::infernal
      - Issue TritonDataCenter#131: added CMSEARCH parsing support for Infernal 1.1 [pcantalupo]
    * Bio::Search::HSP::ModelHSP
      - Added a 'noncanonical_string' method to retrieve the NC line from CMSEARCH
        reports [pcantalupo]
    * Bio::Search::Result::INFERNALResult
      - Added new module to represent features of Infernal reports [pcantalupo]
    * Bio::DB::Taxonomy SQLite option [cjfields]
    * WrapperBase quoted option values [majensen]
    * Various documentation fixes and updates [bosborne]

   [Bug Fixes]

    * Fixes in Bio::Root::Build to deal with META.json/yml for CPAN indexing [cjfields]
    * Bio::SeqFeature::Generic spliced_seq() bug fix [Eric Snyder, via bosborne]
    * NeXML parser fixes [fjossandon]
    * Bug fix for Bio::DB::SeqFeature memory adapter [lstein]
    * RT 103272 : SeqFeature database deletion skipped features with a decimal -
      Joshua Fortriede (Xenbase)
    * RT 98374: AlignIO issues with sequence names not correctly parsing - Xiaoyu Zhuo
    * Issue TritonDataCenter#70: CONTIG parsing in GenBank output fixed [fjossandon]
    * Issue TritonDataCenter#76: Circular genome fixes with Bio::Location::Split [fjossandon]
    * Issue TritonDataCenter#80: Fix lack of caching issue with Bio::DB::Taxonomy [fjossandon]
    * Issue TritonDataCenter#81: Small updates to make sure possible memory leaks are detected [cjfields]
    * Issue TritonDataCenter#84: EMBL format wrapping problem [nyamned]
    * Issue TritonDataCenter#90: Missing entries for translation tables 24 and 25 [fjossandon]
    * Issue TritonDataCenter#95: Speed up of Bio::DB::Fasta::subseq by using a compiled regex
      or compiled C code (when Inline::C is installed) [rocky]
    * Fix various Bio::Tools::Analysis remote server config problems [cjfields]
    * Added several missing 'Data::Stag' and 'LWP::UserAgent' requirements [fjossandon]
    * Added a workaround in Bio::DB::Registry to get Username in Windows [fjossandon]
    * For HMMer report parsing, changed "$hsp->bits" to return 0 instead of undef
      to be consistent with "$hit->bits" behaviour [fjossandon]
    * Fixed a bug in HMMer3 parsing, where an homology line ending in CS or RF
      aminoacids made "next_seq" confused and broke the parser [fjossandon]
    * Adjusted FTLocationFactory.pm to comply with current GenBank Feature Table
      Definition, so now "join(complement(C..D),complement(A..B))" is equivalent
      to "complement(join(A..B,C..D))" [fjossandon]
    * For the many many many fixes that weren't mentioned - blame the release guy!
jperkin pushed a commit that referenced this pull request Mar 3, 2017
2016-12-18 -- 1.4.9
- Cast __path__ to a list in _module_file
- Add support for pytest 3.0.

2016-07-27 -- 1.4.8
- Add `returns` into the proper order in FunctionDef._astroid_fields

2016-07-07 -- 1.4.7
- Stop saving assignment locals in ExceptHandlers, when the context is a
  store.

2016-06-06 -- 1.4.6
- Fix a crash which occurred when the class of a namedtuple could not be
  inferred.
- Functional form of enums support accessing values through __call__.
- Brain tips for the ssl library.

2016-03-21 -- 1.4.5
- decoratornames() does not leak InferenceError anymore.
- wildcard_imported_names() got replaced by _public_names()

2016-01-15 -- 1.4.4
- unpack_infer raises InferenceError if it can't operate
  with the given sequences of nodes.
- Support accessing properties with super().
- Enforce strong updates per frames.

2015-12-24 -- 1.4.3
- pkg_resources brain tips are a bit more specific,
  by specifiying proper returns.
- Standard library modules are properly detected by is_standard_module.

2015-12-21 -- 1.4.2
- The slots() method conflates all the slots from the ancestors
  into a list of current and parent slots.
- Revert to using printf-style formatting in as_string, in order
  to avoid a potential problem with encodings when using .format.
- assigned_stmts methods have the same signature from now on.

2015-11-29 -- 1.4.1
- Add support for handling Uninferable nodes when calling as_string

2015-11-29 -- 1.4.0
- Class.getattr('__mro__') returns the actual MRO.
- The logilab-common dependency is not needed anymore as the needed code
  was integrated into astroid.
- Add 'assert_equals' method in nose.tools's brain plugin.
- Generated enum member stubs now support IntEnum and multiple
  base classes.
- Add brain tips for multiprocessing.Manager and
  multiprocessing.managers.SyncManager.
- Add brain tips for multiprocessing post Python 3.4+,
  where the module level functions are retrieved with getattr
  from a context object, leading to many no-member errors
  in Pylint.
- The Generator objects inferred with `infer_call_result`
  from functions have as parent the function from which they
  are returned.
- Understand partially the 3-argument form of `type`.
  The only change is that astroid understands members
  passed in as dictionaries as the third argument.
- Improve the inference of Getattr nodes when dealing with
  abstract properties from the abc module.
- UnboundMethod.getattr calls the getattr of its _proxied object
  and doesn't call super(...) anymore.
- Don't hard fail when calling .mro() on a class which has
  combined both newstyle and old style classes. The class
  in question is actually newstyle (and the __mro__ can be
  retrieved using Python).
- Class.local_attr and Class.local_attr_ancestors uses internally
  a mro lookup, using .mro() method, if they can.
- Expose a implicit_metaclass() method in Class. This will return
  a builtins.type instance for newstyle classes.
- Add two new exceptions for handling MRO error cases.
  DuplicateBasesError
  is emitted when duplicate bases are found in a class,
- Classes aren't marked as interfaces anymore, in the `type` attribute.
- Class.has_dynamic_getattr doesn't return True for special methods
  which aren't implemented in pure Python, as it is the case for
  extension modules.
- Add `igetattr` method to scoped_nodes.Function.
- Add support for Python 3.5's MatMul operation: see PEP 465 for more
  details.
- NotImplemented is detected properly now as being part of the
  builtins module. Previously trying to infer the Name(NotImplemented)
  returned an YES object.
- Add proper grammatical names for `infered` and `ass_type` methods,
  namely `inferred` and `assign_type`.
- Add new AST names in order to be similar to the ones
  from the builtin ast module.
- Star unpacking in assignments returns properly a list,
  not the individual components.
- Lambdas found at class level, which have a `self` argument, are
  considered
- Add annotation support for function.as_string().
- Add support for indexing bytes on Python 3.
- Add support for inferring subscript on instances, which will
  use __getitem__.
- Understand metaclasses added with six.add_metaclass decorator.
- Add a new convenience API, `astroid.parse`, which can be used to
  retrieve an astroid AST from a source code string, similar to how
  ast.parse can be used to obtain a Python AST from a source string.
- do_import_module passes the proper relative_only flag if the level is
  higher than 1.
- There's a new separate step for transforms.
- Add a new node, DictUnpack, which is used to represent the unpacking
  of a dictionary into another dictionary, using PEP 448 specific syntax
  ({1:2, **{2:3})
- Add a new type of node, called *inference objects*.
- Add a new *inference object* called Super, which also adds support for
  understanding super calls.
- astroid.utils.ASTWalker and astroid.utils.LocalsVisitor
  were moved to pylint.pyreverse.utils.

2015-08-02 -- 1.3.8
- Backport of 40e3176, which fixes issue #84.

2015-07-27 -- 1.3.7
- Improve the inference of six.moves, especially when using `from ...
  import ...` syntax. Also, we added a new fail import hook for six.moves,
  which fixes the import-error false positive from pylint.
mamash pushed a commit that referenced this pull request Mar 20, 2017
2016-12-18 -- 1.4.9
- Cast __path__ to a list in _module_file
- Add support for pytest 3.0.

2016-07-27 -- 1.4.8
- Add `returns` into the proper order in FunctionDef._astroid_fields

2016-07-07 -- 1.4.7
- Stop saving assignment locals in ExceptHandlers, when the context is a
  store.

2016-06-06 -- 1.4.6
- Fix a crash which occurred when the class of a namedtuple could not be
  inferred.
- Functional form of enums support accessing values through __call__.
- Brain tips for the ssl library.

2016-03-21 -- 1.4.5
- decoratornames() does not leak InferenceError anymore.
- wildcard_imported_names() got replaced by _public_names()

2016-01-15 -- 1.4.4
- unpack_infer raises InferenceError if it can't operate
  with the given sequences of nodes.
- Support accessing properties with super().
- Enforce strong updates per frames.

2015-12-24 -- 1.4.3
- pkg_resources brain tips are a bit more specific,
  by specifiying proper returns.
- Standard library modules are properly detected by is_standard_module.

2015-12-21 -- 1.4.2
- The slots() method conflates all the slots from the ancestors
  into a list of current and parent slots.
- Revert to using printf-style formatting in as_string, in order
  to avoid a potential problem with encodings when using .format.
- assigned_stmts methods have the same signature from now on.

2015-11-29 -- 1.4.1
- Add support for handling Uninferable nodes when calling as_string

2015-11-29 -- 1.4.0
- Class.getattr('__mro__') returns the actual MRO.
- The logilab-common dependency is not needed anymore as the needed code
  was integrated into astroid.
- Add 'assert_equals' method in nose.tools's brain plugin.
- Generated enum member stubs now support IntEnum and multiple
  base classes.
- Add brain tips for multiprocessing.Manager and
  multiprocessing.managers.SyncManager.
- Add brain tips for multiprocessing post Python 3.4+,
  where the module level functions are retrieved with getattr
  from a context object, leading to many no-member errors
  in Pylint.
- The Generator objects inferred with `infer_call_result`
  from functions have as parent the function from which they
  are returned.
- Understand partially the 3-argument form of `type`.
  The only change is that astroid understands members
  passed in as dictionaries as the third argument.
- Improve the inference of Getattr nodes when dealing with
  abstract properties from the abc module.
- UnboundMethod.getattr calls the getattr of its _proxied object
  and doesn't call super(...) anymore.
- Don't hard fail when calling .mro() on a class which has
  combined both newstyle and old style classes. The class
  in question is actually newstyle (and the __mro__ can be
  retrieved using Python).
- Class.local_attr and Class.local_attr_ancestors uses internally
  a mro lookup, using .mro() method, if they can.
- Expose a implicit_metaclass() method in Class. This will return
  a builtins.type instance for newstyle classes.
- Add two new exceptions for handling MRO error cases.
  DuplicateBasesError
  is emitted when duplicate bases are found in a class,
- Classes aren't marked as interfaces anymore, in the `type` attribute.
- Class.has_dynamic_getattr doesn't return True for special methods
  which aren't implemented in pure Python, as it is the case for
  extension modules.
- Add `igetattr` method to scoped_nodes.Function.
- Add support for Python 3.5's MatMul operation: see PEP 465 for more
  details.
- NotImplemented is detected properly now as being part of the
  builtins module. Previously trying to infer the Name(NotImplemented)
  returned an YES object.
- Add proper grammatical names for `infered` and `ass_type` methods,
  namely `inferred` and `assign_type`.
- Add new AST names in order to be similar to the ones
  from the builtin ast module.
- Star unpacking in assignments returns properly a list,
  not the individual components.
- Lambdas found at class level, which have a `self` argument, are
  considered
- Add annotation support for function.as_string().
- Add support for indexing bytes on Python 3.
- Add support for inferring subscript on instances, which will
  use __getitem__.
- Understand metaclasses added with six.add_metaclass decorator.
- Add a new convenience API, `astroid.parse`, which can be used to
  retrieve an astroid AST from a source code string, similar to how
  ast.parse can be used to obtain a Python AST from a source string.
- do_import_module passes the proper relative_only flag if the level is
  higher than 1.
- There's a new separate step for transforms.
- Add a new node, DictUnpack, which is used to represent the unpacking
  of a dictionary into another dictionary, using PEP 448 specific syntax
  ({1:2, **{2:3})
- Add a new type of node, called *inference objects*.
- Add a new *inference object* called Super, which also adds support for
  understanding super calls.
- astroid.utils.ASTWalker and astroid.utils.LocalsVisitor
  were moved to pylint.pyreverse.utils.

2015-08-02 -- 1.3.8
- Backport of 40e3176, which fixes issue #84.

2015-07-27 -- 1.3.7
- Improve the inference of six.moves, especially when using `from ...
  import ...` syntax. Also, we added a new fail import hook for six.moves,
  which fixes the import-error false positive from pylint.
jperkin pushed a commit that referenced this pull request Apr 10, 2017
0.3.7
  * Fix issue #84: check if stream has 'closed' attribute before testing it
  * Fix issue #74: objects might become None at exit
0.3.6
  * Fix issue #81: fix ValueError when a closed stream was used
0.3.5
  * Bumping version to re-upload a wheel distribution
0.3.4
  * Fix issue #47 and #80 - stream redirection now strips ANSI codes on Linux
  * Fix issue #53 - strip readline markers
  * Fix issue #32 - assign orig_stdout and orig_stderr when initialising
  * Fix issue #57 - Fore.RESET did not reset style of LIGHT_EX colors.
    Fixed by Andy Neff
  * Fix issue #51 - add context manager syntax. Thanks to Matt Olsen.
  * Fix issue #48 - colorama didn't work on Windows when environment
    variable 'TERM' was set.
  * Fix issue #54 - fix pylint errors in client code.
  * Changes to readme and other improvements by Marc Abramowitz and Zearin
0.3.3
  * Fix Google Code issue #13 - support changing the console title with OSC
    escape sequence
  * Fix Google Code issue #16 - Add support for Windows xterm emulators
  * Fix Google Code issue #30 - implement \033[nK (clear line)
  * Fix Google Code issue #49 - no need to adjust for scroll when new position
    is already relative (CSI n A\B\C\D)
  * Fix Google Code issue #55 - erase_data fails on Python 3.x
  * Fix Google Code issue #46 - win32.COORD definition missing
  * Implement \033[0J and \033[1J (clear screen options)
  * Fix default ANSI parameters
  * Fix position after \033[2J (clear screen)
  * Add command shortcuts: colorama.Cursor, colorama.ansi.set_title,
    colorama.ansi.clear_line, colorama.ansi.clear_screen
  * Fix issue #22 - Importing fails for python3 on Windows
  * Thanks to John Szakmeister for adding support for light colors
  * Thanks to Charles Merriam for adding documentation to demos
jperkin pushed a commit that referenced this pull request May 22, 2017
* Do not extract war file

Changelog:
What's new in 2.61 (2017-05-14)
78 sunny3 cloudy6 stormCommunity reported issues: 2×JENKINS-42959 1×JENKINS-44331 1×JENKINS-44330

    Upgrade Groovy from 2.4.8 to 2.4.11. (Groovy 2.4.9 changelog, Groovy 2.4.10 changelog, Groovy 2.4.11 changelog)
    Integration of Winstone 4: Upgrade bundled Jetty from 9.2.15.v20160210 to 9.4.5.v20170502. This removes support for the deprecated SPDY protocol. The --spdy parameter has been removed accordingly and Jenkins may refuse to start if it's set. (issue 43713)
    Update the Mailer plugin version installed when updating from very old Jenkins releases to include the fix for SECURITY-372, the SSH Slaves plugin for SECURITY-161, and the Script Security plugin for SECURITY-258. (SECURITY-372, SECURITY-161, SECURITY-258)
    Freestyle projects may now list Pipeline jobs as downstream and trigger them, without needing to use the Parameterized Trigger plugin or reverse triggers ("Build after other projects are built"). (issue 28113)
    Internal: Define enabling/disabling in ParameterizedJob rather than AbstractProject. (issue 27299)
    Internal: Offer default methods on ParameterizedJob to have less boilerplate code. (pull 2864)

What's new in 2.60 (2017-05-10)
61 sunny0 cloudy2 stormCommunity reported issues: 1×JENKINS-42959

    Update to Windows Service Wrapper 2.1.0 to support new features: download command with authentication, flag for startup failure on download error, Delayed Automatic Start mode. (issue 43737)
    Windows services: Add system property that allows disabling WinSW automatic upgrade on agents. (issue 43603, more information)
    Windows services: Restore compatibility of the WindowsSlaveInstaller#generateSlaveXml() method (regression in 2.50, no known external usages). (issue 42745)
    Windows services: Prevent fatal file descriptor leak when agent service installer fails to read data from the service startup.log. (issue 43930)
    Use full display name for runs in RSS feed to restore the project name there (regression in 2.59). (issue 44117)
    Internal: Generalize the changelog API to support non-AbstractBuild run types. (issue 24141)

What's new in 2.59 (2017-05-07)
99 sunny0 cloudy5 stormCommunity reported issues: 1×JENKINS-43772 1×JENKINS-42959 1×JENKINS-44117

    Move to latest version of Trilead to fix SSH connection issues following a previous Trilead upgrade. (issue 42959, issue 43979, issue 44046)
    Prevent Internet Explorer from caching AJAX requests using Cache-Control header. (issue 43929)
    Properly fail with error when updating view with CLI using input of a different view type. (issue 42728)
    Fix AccessDeniedException in "Build after other projects are built" when user has Discover permission but not Read. (issue 42707)
    Properly log failure due to empty archive in Pipeline. (issue 38005)
    Prevent rare NullPointerException if an admin user is created in the setup wizard after first disabling CSRF protection. (issue 44010)

What's new in 2.58 (2017-04-30)
152 sunny6 cloudy58 stormCommunity reported issues: 41×JENKINS-43979 3×JENKINS-33021 2×JENKINS-43934 2×JENKINS-42959 1×JENKINS-43772 1×JENKINS-43986 1×JENKINS-44073 1×JENKINS-44071 1×JENKINS-44046 1×JENKINS-112852540 1×JENKINS-2

    Use build display names in RSS feed titles. (pull 2845)
    Update the Trilead SSH library to get support of new Mac, Key, and Key Exchange Algorithms. (issue 33021, issue 26379, issue 31549)
    Migrate legacy users only once per restart to improve performance of the user retrieval logic. (issue 43936)
    Internal: Pick up the latest release of version-number library. (issue 43733)
    Internal: Refactor ProcessTree.Windows logic to propagate errors. (issue 43825)

What's new in 2.57 (2017-04-26)
90 sunny0 cloudy4 stormCommunity reported issues: 1×JENKINS-33021 1×JENKINS-43772 1×JENKINS-43934

    Important security fixes. (security advisory)

What's new in 2.56 (2017-04-23)
87 sunny0 cloudy3 stormCommunity reported issues: 1×JENKINS-43772

    Plugins did not expect InvalidPathException to be thrown in file-related methods, so wrap them in IOException to restore behavior (regression in 2.55). (issue 43531)
    Remove links in stack traces to the stacktrace.jenkins-ci.org service that has been shut down. (issue 42861)
    If an exception is thrown while rendering an HTTP response, just log the stack trace on the server side, without trying to send an error page to the client. (issue 21695)
    Prevent NullPointerException when a non-existent default view is specified in Configure System. (issue 42717)
    Deleting jobs with running builds could result in NullPointerException (regression in 2.55). (issue 43653)

What's new in 2.55 (2017-04-15)
111 sunny2 cloudy5 stormCommunity reported issues: 1×JENKINS-43694 1×JENKINS-43531 1×JENKINS-43629 1×JENKINS-43495 1×JENKINS-43772 1×JENKINS-43653

    Packaging: Debian package now requires Java 8. (causes regression since 2.54). (issue 43495)
    Added fine-grain logging of FullDuplexHttpService to diagnose issues when establishing an HTTP Duplex connection. (pull 2481)
    Update LibZFS from 0.5 to 0.8 to fix compatibility issues with ZFS filesystem and illumos distributions. (issue 41932)
    Before deleting jobs, try to abort the running builds. Error will be thrown instead of the job deletion if its builds cannot be aborted. (issue 35160)
    Ensure that Cloud.PROVISION is properly initialized during the configuration loading. (issue 37616)
    Fix log message formatting when migrating `AllView` names due to JENKINS-38606". (issue 43611)
    Setup wizard gets into bad state when failures like network issues happen. (issue 41778)
    Catch and log RuntimeException in Computer#setNode() when updating the Computer list. (issue 42043)
    SSH CLI client authenticator 1.4. Add missing SSH Public Key field validation in user configuration. (issue 16337)
    Internal API: SSH CLI client authenticator 1.3. Expose PublicKeySignatureWriter to plugins. (pull 2840)

What's new in 2.54 (2017-04-09)
116 sunny3 cloudy37 stormCommunity reported issues: 6×JENKINS-43492 5×JENKINS-43481 4×JENKINS-43495 2×JENKINS-27624 2×JENKINS-30561 1×JENKINS-43772 1×JENKINS-43694 1×JENKINS-43666 1×JENKINS-43199 1×JENKINS-43178 1×JENKINS-41745 1×JENKINS-43503 1×JENKINS-12345

    Jenkins (master and agents) now requires Java 8 to run. (issue 27624, issue42709, pull 2802, announcement blog post)
    Non-Remoting-based CLI. (issue 41745, pull 2795, announcement blog post)
    Disable SSH server by default. (issue 33595)
    Use case-insensitive search by default for new and anonymous users. (issue 42645)
   Introduce status indicator for skipped download job. (issue 40848)
    Properly handle saving system configuration when disabling all, or all but one, administrative monitors. (issue 42852)
    When validating a cron expression, consider the specified t)
124 sunny1 cloudy3 stormCommunity reported issues: 1×JENKINS-43178 1×JENKINS-43772

    Update to Windows Service Wrapper 2.0.3 and Windows Agent Installer 1.8 to prevent conversion of environment variables to lowercase in the agent executable, regresion in Jenkins 2.50. (issue 42744, WinSW Changelog, Windows Agent Installer changelog)
    GC Performance: Avoid using FileInputStream and FileOutputStream in the core codebase. (JDK-8080225, issue 42934)
    Internal API: Add support of a new full screen.jelly. (issue 34670)

What's new in 2.52 (2017-03-26)
165 sunny1 cloudy0 stormCommunity reported issues: 1×JENKINS-43178

    Computer#addAction would throw an UnsupportedOperationException since Jenkins 2.30. Such a call site was released in SSH SlavesPlugin 1.15 for SECURITY-161. (issue 42969, security advisory including SECURITY-161)
    Update German localization. (pull 2777)
    Removed localizations with very low coverage: Albanian, Basque, Belarusian, Bengali, Esperanto, Galician, Georgian, Gujarati, Hindi, Icelandic, Indonesian, Irish, Kannada, Macedonian, Marathi, Mongolian, Occitan, Punjabi, Sinhala, Tamil, Telugu, Thai. (pull 2813)

What's new in 2.51 (2017-03-19)
129 sunny0 cloudy5 stormCommunity reported issues: 2×JENKINS-42744 1×JENKINS-42959

    Restore Windows Slaves Plugin 1.2 compatibility by restoring windows-service/jenkins.xml, regression in 2.50. (issue 42724)
    SSHD 1.10: Move SSH server port configuration to security options page. (pull 2796)
    Update Russian localization. (pull 2798)
    Update French localization. (issue 42627)
    Internal: Make sure system threads run as SYSTEM. (issue 42556)
    Internal API: Add the ability for ItemListener to veto copy operations. (issue 34691)
    Internal API: Make Run#compareTo work across jobs. (issue 42319)
    Internal API: Save Jenkins after calling setSecurityRealm or setAuthorizationStrategy. (pull 2790)
    Internal API: Annotate PermissionGroup#owner @nonnull. (pull 2805)

What's new in 2.50 (2017-03-11)
180 sunny10 cloudy12 stormCommunity reported issues: 4×JENKINS-42724 4×JENKINS-42744 2×JENKINS-123 1×JENKINS-111 1×JENKINS-42834 1×JENKINS-4

    Allow searching by build parameter values in the Build History widget. (issue 40718)
    Searching in the Build History widget takes into account user preferences (case sensitivity by default). (pull 2683)
    When creating temporary files, use the jenkins prefix instead of the old hudson one. (pull 2778)
    Fix relative links in the SCM polling administrative monitor. (pull 2780)
    Update Remoting from 3.5 to 3.7 in order to prevent file descriptor leaks on agents in the case of multiple connection attempts. (full changelog)
    Upgrade the Windows Agent Installer module from 1.6 to 1.7. This change picks major updates in Windows service management logic. This fix caused a critical regression in the Windows Slaves Plugin (JENKINS-42724). Update to Windows Slaves 1.3.1 in order to get the fix applied. (full changelog, guide to upgrading old Windows service agents)
    Windows services: Upgrade the bundled Windows Service Wrapper from 1.18 to 2.0.2. (full changelog)
    Windows services: Enable Runaway Process Killer by default in new Agent and Master installations. (issue 39231)
    Windows services: Enable auto-upgrade of remoting on newly installed agents if they are connected by HTTPS. (issue 39237)
    Windows services: Add support of shared directories mapping in Windows agent services. (Shared Directory Mapper documentation)
    Windows services: Change the default Agent service display name prefix to Jenkins agent %ID%. (issue 42468)
    Windows services: Prevent agent connection reset issues when WinSW gets terminated due to the system shutdown. (issue 22692)
    Windows services: Integrate various stability and performance fixes in Windows Service Wrapper from 1.18 to 2.0.2. There are many fixes around configuration options and process termination. (full changelog)
    Prevent file descriptor leaks when Windows Service installer fails to read data from the service startup log. (issue 42670)
    Select controls in Jenkins Web UI now show the spinner icon while waiting for the list of possible options during AJAX. requests. (issue 42443)
    Improve plugin access performance in the default PluginManager implementation. (issue 42585)
    Internal API: Allow providing a custom task name in Run/Schedule UI via the AlternativeUiTextProvider extension. (issue 34522)
    Search results page did not correctly encode query parameters. (issue 42390)

What's new in 2.49 (2017-03-05)
341 sunny32 cloudy0 stormCommunity reported issues: 1×JENKINS-200 1×JENKINS-32986 1×JENKINS-4162

    Do not attempt to find the next occurrence of an impossible date such as June 31st in validation of trigger schedules. (issue 41864)
    Remove invalid translations in Slovene (issue 41756)

What's new in 2.48 (2017-02-26)
114 sunny0 cloudy2 stormCommunity reported issues: 1×JENKINS-42910 1×JENKINS-43197

    Upgrade Apache Commons Collections to version 3.2.2. Note: Jenkins has been using a blacklist to prevent exploiting the serialization vulnerability in 3.2.1 since before 3.2.2 was released. (issue 31598)
    Use redirect URLs on jenkins.io instead of linking to wiki pages directly, allowing future reorganization of documentation without breaking links in Jenkins. (pull 2756)
    Fix performance issue in deduplication of lists of tool installers. (issue 42141)
    Use of the remote API to create items in views (/view/…/createItem) didn't actually add items to views since Jenkins 2.22. (issue 41128)
    Do not display a warning when an SCM trigger has no schedules (either to disable SCM post-commit hooks, or to enable them without polling). (issue 42194)
    Developer: Allow referencing radio buttons in f:validateButton validation methods. (pull 2734)

What's new in 2.47 (2017-02-19)
43 sunny1 cloudy3 stormCommunity reported issues: 3×JENKINS-42189 1×JENKINS-43197

    Update Groovy to 2.4.8 to address memory leak issue. Do not use this version if you are running Pipeline builds unless you also update Pipeline: Groovy to 2.28 or higher. (issue 33358, issue 42189)
    Windows service restart did not retain build queue. (issue 32820)
    Exceptions during Jenkins cleanup step should not block restart. (issue 42164)
    Upgrade remoting to version 3.5. (full changelog)
    Remoting 3.5: Remoting clients now accept lowercase (HTTP 2) headers sent by reverse proxies. (issue 40710)
    Remoting 3.5: Add option to specify the remoting protocol to use on the client. (issue 41730)
    Remoting 3.5: Stability improvements. (issue 41513, issue 41852)
    Developer: Snapshot builds of plugins that had dependencies on other snapshot builds were not having their version numbers compared correctly. (issue 41899)

What's new in 2.46 (2017/02/13)
69 sunny0 cloudy0 storm

    Failure to serialize a single Action could cause an entire REST export response to fail. Upgraded to Stapler 1.250 with a fix. (issue 40088)
    Do not fail to write a log file just because something deleted the parent directory. (issue 16634)
    Use extensible BUILD_NOW_TEXT for parameterized jobs. (issue 41457)
    Display an informative message, rather than a Groovy exception, when View#getItems fails. (issue 41825)
    Don't consider a project to be parameterized if no parameters are defined. (issue 37590)
    Don't add all group names as HTTP headers on "access denied" pages. (issue 39402)
    Ensure that PluginManager#dynamicLoad runs as SYSTEM. (issue 41684)
    Add Usage Statistics section to the global configuration to make it easier to find. (issue 32938)
    Allow groovy CLI command via SSH CLI. (issue 41765)

What's new in 2.45 (2017/02/06)
33 sunny0 cloudy0 storm

    Delete obsolete pinning UI. (issue 34065)
    Don't try to set Agent Port when it is enforced, breaking form submission. (issue 41511)
    Use project-specific validation URL for SCM Trigger, so H is handled correctly in preview. (issue 26977)
    Fix completely wrong Basque translation. (pull 2731)

What's new in 2.44 (2017/02/01)
35 sunny2 cloudy1 stormCommunity reported issues: 1×JENKINS-1051

    Important security fixes (security advisory)

What's new in 2.43 (2017/01/29)
16 sunny1 cloudy0 storm

    Print stack traces in logical order, with the most important part on top. (pull 1485)

What's new in 2.42 (2017/01/22)
24 sunny0 cloudy0 storm

    IllegalStateException from Winstone when making certain requests with access logging enabled. (issue 37625)

What's new in 2.41 (2017/01/15)
22 sunny0 cloudy0 storm

    Restore option value for setting build result to unstable when loading shell and batch build steps from disk. (issue 40894)
    Autocomplete admin-only links in search suggestions only when admin. (issue 7874)
    Improve agent protocol descriptions. (issue 40700)
    Improve description for Enable Security option and administrative monitor when security is off. (issue 40813)
    Enable the JNLP4 agent protocol by default. (issue 40886)

What's new in 2.40 (2017/01/08)
43 sunny0 cloudy0 storm

    Support displaying of warnings from the Update Site in the Plugin Manager and in administrative monitors. (issue 40494, announcement blog post)
    Do not print warnings about undefined parameters when hudson.model.ParametersAction.keepUndefinedParameters property is set to false. (pull 2687)
    Increase the JENKINS_HOME disk space threshold from 1Gb to 10Gb left. The warning will be shown only if more than 90% of the disk is utilized. (issue 40749)
    Plugin Manager: Redirect back to the Advanced Tab when saving the Update Site URL. (pull 2703)
    Prevent the ClassNotFoundException: javax.servlet.ServletException error when invoking shell tasks on remote agents. (issue 40863)
    Jobs were hanging during process termination on the Solaris 11 Intel platform. (issue 40470, regression in 2.20)
    Fix handling of the POST flag in ManagementLinks within the Manage Jenkins page. (issue 38175)
    Require POST in the Reload from disk management link. (pull 2692)

What's new in 2.39 (2017/01/02)
18 sunny0 cloudy0 storm

    Properties were not passed to Maven command by Maven build step when the Inject Build Variables flag was not set. (issue 39268)
    Update remoting to 3.4 in order to properly terminate the channel in the case Errors and Exceptions. (issue 39835)
    Improved Polish and Catalan translations. (pull 2688 and pull 2686)

What's new in 2.38 (2016/12/25)
21 sunny0 cloudy0 storm

    Update to Winstone 3.2 to support ad-hoc certificate generation on Java 8 (using unsupported APIs). This option is deprecated and will be removed in a future release. We strongly recommend you create self-signed certificates yourself and use --httpsKeyStore and related options instead. (issue 25333)
    The install-plugin CLI command now correctly installs plugins when multiple file arguments are specified. (issue 32358)
    Correctly state that Jenkins will refuse to load plugins whose dependencies are not satisfied in plugin manager. (issue 40666)

What's new in 2.37 (2016/12/18)
27 sunny4 cloudy0 storm

    Allow defining agent ping interval and ping timeout in seconds. It can be done via the hudson.slaves.ChannelPinger.pingIntervalSeconds and hudson.slaves.ChannelPinger.pingTimeoutSeconds system properties. (issue 28245)
    Delegate JNLP HMAC computation to SlaveComputer instances when possible. (issue 40286)
    Diagnosability: Split Exception handling of node provision and adding to Jenkins. (issue 38903)
    Do not report -noCertificateCheck warning to STDOUT. (pull 2666)
    Improve overall performance of Jenkins by accessing item group elements without sorting where it is possible. (pull 2665)
    Convert URI encoding check on the Manage Jenkins page into admin monitor. (issue 39433)
    Update SSHD Core from 0.8.0 to 0.14.0. (pull 2662)
    SSHD Module: Handshake was failing (wrong shared secret) 1 out of 256 times due to SSHD-330. (issue 40362)
    View display name was ignored during rendering of tabs. (issue 39300)
    Job configuration submission now does not fail when there is no parameters property. (issue 39700, regression in 1.637)
    Fix names of item loading and cleanup Jenkins initialization stages. (issue 40489)
    Performance: Use bulk change when submitting Job configurations to minimize the number of sequential config.xml write operations. (issue 40435)
    Check for Updates button in the Plugin Manager was hidden in the Updates tab when there was no plugins updates available. (issue 39971)
    Remoting 3.3: Agent JAR cache corruption was causing malfunctioning of agents. (issue 39547)
    Remoting 3.3: Improve diagnostics of the preliminary FifoBuffer termination in the JNLP2 protocol. (issue 40491)
    Remoting 3.3: Hardening of FifoBuffer operation logic. The change improves the original fix of JENKINS-25218. (remoting pull #100)
    Remoting 3.3: ProxyException now retains info about suppressed exceptions when serializing over the channel. (remoting pull #136)
    API: Introduce the new Jenkins#isSubjectToMandatoryReadPermissionCheck(String restOfPath) method for checking access permissions to particular paths. (issue 32797)
    API: Introduce new Node#getNodeProperty() methods for retrieving node properties. (issue 40365)
    API: Introduce new Items#allItems() methods for accessing items in item groups without sorting overhead. (issue 40252)
    Improved Polish translation. (pull 2643)

What's new in 2.36 (2016/12/11)
31 sunny0 cloudy0 storm

    Several badges were missing in builds flagged as KeepBuildForever. (issue 40281, regression in 2.34)
    Retain cause of blockage if the Queue task cannot be taken due to the decision of QueueTaskDispatcher extension, NodeProperty and other extensions. (issue 38514)
    Internal API: Allow overriding UserProperty.setUser(User). (issue 40266)
    Internal API: Restrict usage of core localization message classes in plugins. These message classes are not guaranteed to be binary compatible. (pull 2656)

What's new in 2.35 (2016/12/04)
47 sunny1 cloudy0 stormCommunity reported issues: 1×JENKINS-40281

    Add display name and full display name of items to the remote API. (issue 39972)
    API: Allow specifying log level in SystemProperties when a System property is undefined. (pull 2646)
    Followup fix for JENKINS-23271 in 2.34 addressing plugin implementations not using ProcStarter. (pull 2653)

What's new in 2.34 (2016/11/27)
19 sunny0 cloudy3 stormCommunity reported issues: 2×JENKINS-40092 1×JENKINS-34604

    Improve performance of Action retrieval methods. It speeds up core and plugin logic operating with Actionable objects like items, folders, nodes, etc. (issue 38867)
    Update the SSHD module from 1.7 to 1.8. The change disables obsolete Ciphers: AES128CBC, TripleDESCBC, and BlowfishCBC. (issue 39805)
    Update the Windows process management library (WinP) from 1.22 to 1.24. Full changelog is available here, only major issues are mentioned below. (pull 2619)
    WinP 1.24: Native class now tries loading DLLs from the temporary location. (issue 20913)
    WinP 1.24: WinP sometimes kills wrong processes when using killRecursive(). It was likely impacting process termination on Windows agents and sometimes leading to BSoD. (issue 24453, WinP Issue #22)

What's new in 2.33 (2016/11/20)
49 sunny1 cloudy4 stormCommunity reported issues: 1×JENKINS-34604 1×JENKINS-40092 1×JENKINS-39554

    Reduce size of Jenkins WAR file by not storing identical copies of remoting.jar/slave.jar there. (pull 2633)
    Prevent early deallocation of process references by Garbage Collector when starting a remote process. It was sometimes causing build failures with messages like FATAL: Invalid object ID 184 iuota=187 and java.lang.Exception: Object was recently deallocated. (issue 23271)
    Make handling of internalization resource bundle names compliant with W3C standards. (issue 39034)
    Redirect to login page in the case of authorisation error when checking connectivity to the Update Center. (issue 39741)
    Remove the obsolete hudson.showWindowsServiceInstallLink property from the slave-agent.jnlp file. It was causing harmless security warnings in Java web start. (issue 39883)
    Improved Polish translation. (pull 2640)

What's new in 2.32 (2016/11/16)
37 sunny0 cloudy0 storm

    Important security fixes (security advisory)
    Allow disabling the Jenkins CLI over HTTP and JNLP agent port by setting the System property jenkins.CLI.disabled to true.

What's new in 2.31 (2016/11/13)
19 sunny0 cloudy0 storm

    Performance: Improve responsiveness of Jenkins web UI on mobile devices. (issue 39172, continuation of the patch in 2.28)
    It was not possible to connect Jenkins agents via Java Web Start due to the issue in Remoting 3.0. Upgraded to Remoting 3.1 with a fix. (issue 39596, regression in 2.26)
    Prevent NullPointerException when rendering CauseOfInterruption.UserInterruption in build summary pages for non-existent users. (issue 38721 and issue 37282, regression in 2.14)
    Reduce logging level when the localization resource is missing ResourceBundleUtil#getBundle(). (issue 39604)
    ExtensionList.removeAll was not unimplemented in Jenkins extension management API. It was causing issues during dynamic loading of GitHub and BitBucket branch source plugins on the same instance. (issue 39520)
    Remoting 3.1: hudson.remoting.Engine (mostly Java Web Start) was failing to establish connection if one of the URLs in urls parameter was malformed. (issue 39617)
    Remoting 3.1: Add method for dumping diagnostics across all the channels (e.g. in the Support Core Plugin). (issue 39150)
    Remoting 3.1: Improve the caller/callee correlation diagnostics in thread dumps. (issue 39543)
    Remoting 3.1: Add the org.jenkinsci.remoting.nio.NioChannelHub.disabled flag for disabling NIO, mostly for debugging purposes. (issue 39290)
    Remoting 3.1: Add extra logging to help diagnosing IOHub concurrent thread number spikes. (issue 38692)
    Remoting 3.1: When a proxy fails, report what caused the channel to go down. (issue 39289)
    Improved Polish translation. (pull 2631)

What's new in 2.30 (2016/11/07)
39 sunny2 cloudy1 stormCommunity reported issues: 3×JENKINS-39596

    Adjust incompatible Actionable initialization changes made for issue 39404). It caused massive regressions in plugins like Jenkins Pipeline. (issue 39555, regression in 2.29)
    Integration of Stapler 1.246 caused regressions in plugins depending on Ruby Runtime Plugin. Upgraded to Stapler 1.248 with a fix. (issue 39414, regression in 2.28)
    Custom remoting enable/disable settings were not properly persisted on the disk and then reloaded. If the option has been configured in Jenkins starting from 2.16, a reconfiguration may be required. (issue 39465)

What's new in 2.29 (2016/11/06)
6 sunny1 cloudy10 stormCommunity reported issues: 7×JENKINS-39555 3×JENKINS-39414 1×JENKINS-39465

Warning! This release is not recommended for use due to issue 39555 and issue 39414. We are working on the out-of-order release (discussion).

    Performance: Optimize log retrieval logic for large log files. (issue 39535)
    Integration of Stapler 1.246 caused regressions in plugins depending on Ruby Runtime Plugin. Upgraded to Stapler 1.247 with a partial fix. (issue 39414, partial fix)
    Jenkins startup does not fail if one of ComputerListeners throws exception in the onOnline() handler. (issue 38487)
    Queue: Do not consider pending tasks from the internal scheduling logic when looking for duplicate tasks. It was causing race conditions in Jenkins Pipeline. (issue 39454)
    Internal: Modify the Actionable API to provide methods to assist with manipulation of persisted actions. (issue 39404)
    Internal: Jelly attribute documentation now supports the since tag. (Stapler pull #84)

What's new in 2.28 (2016/10/30)
24 sunny1 cloudy8 stormCommunity reported issues: 3×JENKINS-39414 2×JENKINS-39232 1×JENKINS-11053 1×JENKINS-39465

    Performance: Improve responsiveness of Jenkins web UI on mobile devices. (issue 39172)
    Print warnings if none of Tool Installers can be used during the tool installation. (issue 26940)
    Update the minimal required versions of the detached Maven Project plugin from 2.7.1 to 2.14. Changelog is available here. (pull 2606)
    Update the minimal required versions of the detached JUnit plugin from 1.2-beta-4 to 1.6. Changelog is available here. (pull 2606))
    Relax requirements of the JNLP connection receiver, which was rejections connections from agents not using JNLPComputerLauncher (e.g. from Slave Setup, vSphere Cloud and other plugins). No the connection is accepted from launchers implementing other proxying and filtering Launcher implementations. Particular plugins may require setting up the jenkins.slaves.DefaultJnlpSlaveReceiver.disableStrictVerification system property in the master JVM to allow connecting agents. (issue 39232, regression in 2.28)
    Prevent resource leak in hudson.XmlFile#readRaw() in the case of encoding issues. (issue 39363)
    Prevented endless loop in LargeText.BufferSession.skip(), which was causing hanging of Pipeline jobs in corner cases. (issue 37664)
    Internal: Upgrade Stapler library from 1.243 to 1.246 with fixes required for the Blue Ocean project. More details are coming soon. Raw changes are listed here. (pull 2593)
    Internal: Start defining APIs that are for the master JVM only. (issue 38370)
    Internal: Update Guice dependency from 4.0-beta to 4.0. This change required upgrade of detached plugins (see above). (pull 2568)

What's new in 2.27 (2016/10/23)
22 sunny0 cloudy6 stormCommunity reported issues: 4×JENKINS-39232

    Upgrade to the Remoting 3 baseline. Compatibility notes are available here. (issue 37564)
    Remoting 3.0: New JNLP4-connect protocol, which improves performance and stability compared to the JNLP3-connect protocol. (issue 36871)
    Remoting 3.0: Agents using slave.jar now explicitly require Java 7. (issue 37565)
    Prevent deadlocks during modification of node executor numbers (e.g. during deletion of nodes). (issue 31768)
    Add missing internationalization support to ResourceBundleUtil. It fixes internationalization in Blue Ocean and Jenkins Design Language. (issue 35845)
    Internal: Make the code more compatible with Java 9 requirements and allow its editing in newest NetBeans versions with NB bug 268452. (pull 2595)
    Internal: Icon handling API for items. Deprecate TopLevelItemDescriptor#getIconFilePathPattern() and switch to IconSpec. (issue 38960)

What's new in 2.26 (2016/10/17)
18 sunny0 cloudy5 storm

    Allow CommandInterpreter build steps to set a build result as Unstable via the return code. Shell and Batch build steps now support this feature. (issue 23786)
    Performance: Avoid acquiring locks in MaskingClassloader. (issue 23784)
    Performance: Update XStream driver to improve performance of XML serialization/deserialization. (pull 2561)
    Harden checks of prohibited names in user creation logic. Untrimmed spaces and different letter cases are being checked now. (issue 35967)
    Performance: Fix the performance of file compress/uncompress operations over the remoting channel. (issue 38640, issue 38814)
    Restore automatic line wrapping in Build Step text boxes with syntax highlighting. (issue 27367)
    Properly remove disabled Administrative Monitors from the extension list. (issue 38678)
    Remoting 2.62.2: Improve connection stability by turning on Socket Keep-alive by default. Keep-alive can be disabled via the -noKeepAlive option. (issue 38539)
    Remoting 2.62.2: Prevent NullPointerException in Engine#connect() when host or port parameters are null or empty. (issue 37539)
    Node build history page was hammering the performance of the Jenkins instance by spawning parallel heavy requests. Now the information is being loaded sequentially. (issue 23244)
    Cleanup spelling in CLI help and error messages. (issue 38650)
    Properly handle quotes and other special symbols in item names during form validation. (issue 31871)
    Internal: Invoke hpi:record-core-location during the build in order to enabled coordinated run across repositories. (pull 1894)
    Internal: Bulk cleanup of @SInCE definitions in Javadoc. (pull 2578)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants