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

sysutils/apcupsd: add missing buildlink for libusb #115

Closed

Conversation

wiedi
Copy link

@wiedi wiedi commented Dec 4, 2013

buildlink for libusb was missing

jperkin pushed a commit that referenced this pull request Dec 9, 2013
= Changes in 2.3.2 =

  January 5, 2013 - version 2.3.2

  * Changes

    * #138 Revert Timeout change unintentionally included in v2.3.1.  It's
      reported that the change causes background processes not terminated
      properly.

= Changes in 2.3.1 =

  January 1, 2013 - version 2.3.1

  * Changes

    * #137 Signing key is expiring for cacert_sha1.p7s.
      Deleted p7s signature check for default cacerts.  Sorry for many troubles
      in the past. This feature is not useful without having online/real-time
      CA certs update but I don't think I can implement it in near future.
      Users depend on this signature check (who puts cacert.p7s in R/W
      filesystem and ssl_config.rb in R/O filesystem) should take care the
      tampering by themself.

  * Bug fixes

    * #122 Support IPv6 address in URI


= Changes in 2.3.0 =

  October 10, 2012 - version 2.3.0

    * Features

      * Added debug mode CLI.  bin/httpclient is installed as CLI.
          Usage: 1) % httpclient get https://www.google.co.jp/ q=ruby
          Usage: 2) %httpclient
        For 1) it issues a GET request to the given URI and shows the wiredump
        and the parsed result.  For 2) it invokes irb shell with the binding
        that has a HTTPClient as 'self'.  You can call HTTPClient instance
        methods like;
          > get "https://www.google.co.jp/", :q => :ruby

      * #119 Addressable gem support (only if it exists); should handle IRI
        properly.

    * Bug fixes

      * #115 Cookies couldn't work properly if the path in an URI is ommited.
      * #112, #117 Proper handling of sized IO (the IO object that responds to
        :size) for chunked POST. HTTPClient did read till EOF even if the
        given IO has :size method.
      * Handle '303 See Other' properly.  RFC2616 says it should be redirected
        with GET.
      * #116 Fix "100-continue" support.  It was just ignored.
      * #118 Support for boolean values when making POST/PUT requests with
        multiipart/form Content-Type.
      * #110 Allows leading dots in no_proxy hostname suffixes.
jperkin pushed a commit that referenced this pull request Dec 9, 2013
- some address fixes to contrib
- fixed duplicate install-sh entry in archive
- set oid-mib-cache file for New_SNMP_util as well #106
- prevent spurious warnings about unknonwn values of inlast outlast in mrtg
- add the process id tmp file extensions, to guard against multiple rateup
  instances messing things up for each other. (attempt to fix #115)
- quell warning in CnTWaLK mode #111
- spelling fixes
- make threshold checking more robust against incomplete information in the
  config file #113
- support ifAlias for Vyatta gear
- CnTWaLK should add the count and not max index
- abort indexmaker if there is no data to be found
- fix for big5 translation
- in cfgmaker use ifdesc=alias only if there is actualy alias info
- fix of a file pointer leak found by coverity scan
- fix for kMG support in rateup
- add support for zyxel ifAlias
- add support for Matrix N7 Diamond
- enable warnings in cfgmaker and fix issues ...
- explicitly import SOCK_DGRAM and AF_UNSPEC to make ipv6 support work
- Updated Net_SNMP_util.pm and SNMP_util.pm to latest versions
jperkin pushed a commit that referenced this pull request Dec 9, 2013
=============

 - Tig now has its own tag on Stack Overflow, where users are invited to
   ask questions: http://stackoverflow.com/questions/tagged/tig

Improvements:

 - Make tig prompt commands bindable to keys. For example:
   `bind diff F :set diff-options = --full-diff`. (GH #69, #116)
 - Add a diff-options setting for specifying default diff options.
   Example: `set diff-options = --patience`. (GH #116)
 - Options in diff-options and blame-options matching tig browsing state
   variables are replaced.
 - Show diff stats as wide as the terminal. (GH #109)
 - Show line numbers in the branch view. (GH #135)
 - Add toggles for showing author email or email user names. (GH #115)
 - Open editor at the selected line by prefixing the file argument with
   `+<lineno>`. Tested in vi, vim, emacs, nano, gedit, geany. Disable
   by adding `set editor-line-number = no` to ~/.tigrc. (GH #118, #119)
 - Add toggle-files to control whether to show full commit diff or only
   the diff concerning the currently selected file, e.g. for blame.
 - Optionally highlight exceeding characters in long commit titles.
   The default title max width is 50 characters. Customize using:
   `set title-overflow = 50` (GH #125)
 - Add +ESC key bindings. Example: `bind generic ^[v move-page-up` (GH #120)
 - Create temporary files in TMPDIR, TEMP, or TMP before defaulting to /tmp.
 - Reenable `tig log` as a subcommand. (GH #146)
 - Enable tilde expansion in ~/.tigrc "source" commands. (GH #168)
 - Introduce the stash view, bound to the 'y' keybinding. (GH #169, #174)

Bug fixes:

 - Fix blame and status to work in directories starting with a dot. (GH #172)
 - Reload current branch name when reloading the status view. (GH #93)
 - Fix compile errors on old Solaris. (GH #97)
 - Reload HEAD info when reloading the stage view. (GH #104, #93)
 - Fix disappearing branch labels after external commands. (GH #148)
 - Fix diff view display for staged/unstaged changes when using 'd'.
 - Fix display of status messages when toggling view options. (GH #111)
 - Fix illegal memory access. (GH #98)
 - Fix display of all branches label in repos with short branch names.
 - Fix rendering glitch for branch names.
 - Do not apply diff styling to untracked files in the stage view. (GH #153)
 - Fix tree indentation for entries containing combining characters. (GH #170)
 - Ignore unrepresentable characters when transliterating text for rendering.
 - Transliterate text to output encoding before trimming it to avoid
   misalignment. (GH #86)
 - Introduce a more natural context-sensitive log display. (GH #155)
jperkin pushed a commit that referenced this pull request Dec 9, 2013
Release 3.0.9 - 2013/10/29
--------------------------

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

* [doc][httpd] Added documentation about :ref:`groonga-database-auto-create` directive.
* [httpd] Added :ref:`groonga-cache-limit` directive.
* [doc] Added description why zlib/lzo compression are disabled by default. [groonga-dev, 01845] [Suggested by Naoya Murakami]
* Remove a restriction related to RLIMIT_NOFILE on HTTP server.
  It enables HTTP server process to handle over 4096 files.
* [experimental] Added some API to integrate mruby into groonga. [GitHub#109, #110, #111, #112, #113, #114, #115, #116, #117, #118] [Patch by wanabe]
* [travis] Supported CMake build on Travis-CI.
* [doc] Added documentation about :doc:`reference/tuning`.
* [experimental] Added :doc:`ruby_load` command.
* [httpd] Supported multiple buffered body of POST request.
  The load command caused timeout in such a case. [GitHub #120] [Patch by Motoi Washida]
* [gqtp] Supported error message. The body is changed to return
  raw text insted of double quoted text. This is incompatible changes.
* [http] Supported "400 Bad request" for invalid argument error.
* [doc] Added examples for :doc:`/suggest/completion`
* Supported Ubuntu 13.10 (Saucy Salamander).

Fixes
^^^^^

* Fixed a bug that it cause SEGV by arithmetic overflow.
  This problem occurs when the size of indexes exceeds
  the size of virtual memory. [groonga-dev,01661]
  [Reported by Naoya Murakami]
* Fixed needless lock for creating table.
  This change fixes a performance regression instroduced at Groonga 3.0.5.
* Fixed a bug that database which has reference column can't be removed.
  It affects the case that indexed tables/columns and referenced tables
  are removed at first, then remove operation to index columns and
  reference columns fails. [Reported by Eito Katagiri] [GitHub Rroonga #13]
* Fixed a bug that removing database which uses DAT key may remain garbage.
* [http] Fixed a small memory leak which is caused by shared HTTP header buffer in the same worker thread.
* [httpd] Fixed a bug that :ref:`groonga-database-auto-create` parameter
  isn't inherited. It means that these parameters are just ignored in non location blocks.
* Fixed a bug that status command may returns invalid cache hit rate.
* Fix a bug that casting to Time may causes overflow issue.
  It affects the case that assignment of the Time value which indicate over 32bit value.
jperkin pushed a commit that referenced this pull request Dec 9, 2013
14 Nov 2013, PHP 5.5.6

- Core:
  . Fixed bug #65947 (basename is no more working after fgetcsv in certain
    situation). (Laruence)
  . Improved performance of array_merge() and func_get_args() by eliminating
    useless copying. (Dmitry)
  . Fixed bug #65939 (Space before ";" breaks php.ini parsing).
    (brainstorm at nopcode dot org)
  . Fixed bug #65911 (scope resolution operator - strange behavior with $this).
    (Bob Weinand)
  . Fixed bug #65936 (dangling context pointer causes crash). (Tony)

- FPM:
  . Changed default listen() backlog to 65535. (Tony)

- MySQLi:
  . Fixed bug #66043 (Segfault calling bind_param() on mysqli). (Laruence)

- OPcache
  . Increased limit for opcache.max_accelerated_files to 1,000,000. (Chris)
  . Fixed issue #115 (path issue when using phar). (Dmitry)
  . Fixed issue #149 (Phar mount points not working with OPcache enabled).
  (Dmitry)

- ODBC
  . Fixed bug #65950 (Field name truncation if the field name is bigger than
    32 characters). (patch submitted by: michael dot y at zend dot com, Yasuo)

- PDO:
  . Fixed bug #66033 (Segmentation Fault when constructor of PDO statement
    throws an exception). (Laruence)
  . Fixed bug 65946 (sql_parser permanently converts values bound to strings)

- Standard:
  . Fixed bug #64760 (var_export() does not use full precision for floating-point
    numbers) (Yasuo)
@jperkin
Copy link
Collaborator

jperkin commented Dec 11, 2013

Fixed upstream, thanks!

@jperkin jperkin closed this Dec 11, 2013
jperkin pushed a commit that referenced this pull request Jan 13, 2014
* This package requires gcc 4.7 later from pkgsrc

Changelog:
aria2 1.18.2
============

Release Note
------------

This release fixes the wrong handling of return value of fork(), which
leads to high CPU usage. The progress readout has some color output.
Mingw32 build now receives colorized output. Mingw32 build now can
read unicode command-line arguments. The build script of OSX was
rewritten. The --bt-max-open-files now limits the number of opened
file globally for multi-file downloads instead of per download basis.

Changes
-------

* Remove the outdated, broken build_osx_release.sh

* Initial revision of the a new OSX release Makefile

* Allow using libgmp with AppleTLS/WinTLS

* Fix crash when metaurl contains unsupported URI or text

* Fix bad fork() return value handling

* Use some colors in progress reports (where available)

* Implement basic color support for the Windows console

  Only \033[*m (SGR) is supported, with a 16+16 color terminal.

* AppleTLS: Implement PKCS12 loading.

* Limit number of opened file globally with --bt-max-open-files option

  This change changes the behavior of --bt-max-open-files. Previously,
  it specifies the maximum number of opened files for each multi-file
  download. Since it is more useful to limit the number globally, the
  option now specifies the global limit. This change suggests that
  aria2.changeOption() method now ignores --bt-max-open-files and
  aria2.changeGlobalOption now reads it and dynamically change the
  limit.

* Don't fail multiple concurrent dl same file if auto-file-renaming is
  enabled

* mingw32: Use CommandLineToArgvW() and GetCommandLineW() to read
  cmd-line args

  This change enables aria2 to read unicode characters in
  command-line.



aria2 1.18.1
============

Release Note
------------

This release fixes the percent-encoding bug which affects file name
encodings. It adds PKCS12 support in certificate import. It also adds
experimental internal implementation of message digest functions, ARC4
cipher and bignum. It means that no external libraries are required to
build BitTorrent support, but this feature is still marked as
experimental. This release also fixes the android build with NDK r9.

Changes
-------

* LibsslTLSContext: Remove weak cipher suite

* AppleTLS: Enable --certificate

* util::percentEncodeMini: Fix regression bug removed unsignedness

  srange-based for around std::string is convenient but several
  functions depend unsigned char for correctness and readability.

* Log exception; throw error if loading private key and/or certificate
  failed

* Provide internal ARC4 implementation

  Now you can build bittorrent support without without external
  libraries, meaning you can skip libnettle, libgmp, libgcrypt, GnuTLS
  and OpenSSL on OSX (for now).

* Internal implementation of DHKeyExchange

  Reusing a bignum (well, unsigned very-long) implementation I had
  lying around for years and just cleaned up a bit and brought to
  C++11 land.

  It might not be the most performant implementation, but it shoud be
  fast enough for our purposes and will go a long way of removing
  gcrypt, nettle, gmp, openssl dependencies when using AppleTLS and
  WinTLS (upcoming).

* PKCS12 support in --certificate and --rpc-certificate options.

* Add --disable-ssl configure option

* Add internal md5 and sha1 message digests

* Fix AppleMessageDigestImpl use with large data

* Set old cookie's creation-time to new cookie on replacement

  As described in http://tools.ietf.org/html/rfc6265#section-5.3

* Fix link error with Android NDK r9

  Since Android ndk r9, __set_errno is deprecated. It is now defined
  as inline function in errno.h. The syscall assembly calls
  __set_errno, but since libc.so does not export it, the link
  fails. To workaround this, replace all occurrences of __set_errno
  with a2_set_errno and define it as normal C function.



aria2 1.18.0
============

Release Note
------------

This release changes the default disk cache size to 16 MiB. To change
the default size, --with-disk-cache configure option was added.  Now
used URIs are also saved by --save-session option. The control file is
now always saved if --force-save is given. The ctrl-c handling on
Mingw build was improved. The internal intl library is no longer
supplied. From this release, C++11 compiler is required to build aria2
executable. For gcc, at least 4.6.3 is required.

Changes
-------

* Use AM subdir-objects

  Doing so in AM_INIT_AUTOMAKE seems to be the most compatible way of
  doing so.

  Closes GH-120

* AM_SILENT_RULES([yes]) with backwards-compatiblity

  Supported since automake-1.11. There is no point in having the very
  verbose compile stuff running about, which cannot even silenced
  properly with `make -s` by default. Otherwise, `make V=1` or
  `--disable-silent-rules` are your friends

* Fix automake-1.14 am_aux_dir

  AC_USE_SYSTEM_EXTENSIONS will cause AC_PROG_CC, which is overridden
  by automake-1.14, which will then init (part) of automake, in
  particular am_aux_dir expansion, which in turn relies on ac_aux-dir,
  which is not initialized at this point, and thus: certain doom (or
  fun, depending on your POV and mood :p)

  Hence call AC_USE_SYSTEM_EXTENSIONS only after
  AM_INIT_AUTOMAKE. This, of course, caused a lot of related macro
  shuffling.

  Tested against automake-1.10 (OSX Lion/XCode version) and
  automake-1.14 (homebrew version)

* Require external gettext for --enable-nls

  And stop using the internal flavor with ./intl

* Make AX_CXX_COMPILE_STDCXX_11 test for -stdlib=libc++ via std::shared_ptr

  The clang shipped with OSX XCode and clangs not build enabling
  libcpp, will default to the libstdc++ headers and lib installed on
  the system.  In the OSX case, that libstdc++ is the one bundles with
  gcc-4.2, which is far too old to provide all required C++11 types,
  such as std::shared_ptr.  Hence, the C++11 check should try to
  compile a program with a C++11 type and try -stdlib=libc++ if the
  default lib fails to compile said program.

* Make the configure check for C++11 compiler mandatory

  Remove stray "dnl", so that mandatory actually works with (my)
  autoreconf.

* Always build doc/manual-src

  Should sphinx-build be not available AND the man file not be prsent,
  then just "touch" it into existence (and warn about that)

* Win: Use SetConsoleCtrlHandler for SIGINT/SIGTERM

* Implement a simple resource lock (threading)

  In this initial implementation Locks are no-ops on platforms other
  than Windows.

* Check for sphinx-build during configure

* Add --with-disk-cache configure option

  Enables packagers more fine grained control over the default value
  without having to mess with config files.

  See GH-115

* Change defaults: Enable 16M disk cache by default.

* Always save control file if --force-save is given

* Set log level DEBUG for unittests

* Check that C++ compiler supports override keyword

  If the compiler supports override, define CXX11_OVERRIDE as
  override, otherwise define it as empty. Use CXX11_OVERRIDE instead
  of override.

* AppleTLS: Fix MessageDigestImpl

* AppleTLS: Fix session CFRelease stuff

* Use AX_CXX_COMPILE_STDCXX_11 macro to detect C++0x/C++11 support in
  compiler

* Require -std=c++11 and use std::shared_ptr instead of SharedHandle

* Join URI on redirect

* Send HAVE message to the peer which the piece is downloaded from

  Historically, aria2 did not send HAVE message to the peer which the
  piece is coming from, thinking it is obvious that the peer knows we
  have the piece. But it is not obvious if one piece is download from
  more than 1 peers (e.g., end game mode). So it is better to send
  HAVE to all peers connected.

* Improvements to --follow-torrent=false documentation.

  Patch from gt

* SessionSerializer: Truly unique URIs

  Before, only spent uris where sanitized not to be contained within
  remaining uris. Change this so that each uri in the
  union(remaining,spent) get saved once at most.  The order of the
  uris will won't be changed, with remaining uris going first followed
  by spent uris.

  Also avoid copying the uri std::strings around during dupe checking,
  usually resulting in better performance regarding CPU and space.

* Make getOption RPC method return option for stopped downloads

* SessionSerializer: Save spent URIs as well as remaining ones
jperkin pushed a commit that referenced this pull request Jan 21, 2014
- some address fixes to contrib
- fixed duplicate install-sh entry in archive
- set oid-mib-cache file for New_SNMP_util as well #106
- prevent spurious warnings about unknonwn values of inlast outlast in mrtg
- add the process id tmp file extensions, to guard against multiple rateup
  instances messing things up for each other. (attempt to fix #115)
- quell warning in CnTWaLK mode #111
- spelling fixes
- make threshold checking more robust against incomplete information in the
  config file #113
- support ifAlias for Vyatta gear
- CnTWaLK should add the count and not max index
- abort indexmaker if there is no data to be found
- fix for big5 translation
- in cfgmaker use ifdesc=alias only if there is actualy alias info
- fix of a file pointer leak found by coverity scan
- fix for kMG support in rateup
- add support for zyxel ifAlias
- add support for Matrix N7 Diamond
- enable warnings in cfgmaker and fix issues ...
- explicitly import SOCK_DGRAM and AF_UNSPEC to make ipv6 support work
- Updated Net_SNMP_util.pm and SNMP_util.pm to latest versions
jperkin pushed a commit that referenced this pull request Jan 21, 2014
=============

 - Tig now has its own tag on Stack Overflow, where users are invited to
   ask questions: http://stackoverflow.com/questions/tagged/tig

Improvements:

 - Make tig prompt commands bindable to keys. For example:
   `bind diff F :set diff-options = --full-diff`. (GH #69, #116)
 - Add a diff-options setting for specifying default diff options.
   Example: `set diff-options = --patience`. (GH #116)
 - Options in diff-options and blame-options matching tig browsing state
   variables are replaced.
 - Show diff stats as wide as the terminal. (GH #109)
 - Show line numbers in the branch view. (GH #135)
 - Add toggles for showing author email or email user names. (GH #115)
 - Open editor at the selected line by prefixing the file argument with
   `+<lineno>`. Tested in vi, vim, emacs, nano, gedit, geany. Disable
   by adding `set editor-line-number = no` to ~/.tigrc. (GH #118, #119)
 - Add toggle-files to control whether to show full commit diff or only
   the diff concerning the currently selected file, e.g. for blame.
 - Optionally highlight exceeding characters in long commit titles.
   The default title max width is 50 characters. Customize using:
   `set title-overflow = 50` (GH #125)
 - Add +ESC key bindings. Example: `bind generic ^[v move-page-up` (GH #120)
 - Create temporary files in TMPDIR, TEMP, or TMP before defaulting to /tmp.
 - Reenable `tig log` as a subcommand. (GH #146)
 - Enable tilde expansion in ~/.tigrc "source" commands. (GH #168)
 - Introduce the stash view, bound to the 'y' keybinding. (GH #169, #174)

Bug fixes:

 - Fix blame and status to work in directories starting with a dot. (GH #172)
 - Reload current branch name when reloading the status view. (GH #93)
 - Fix compile errors on old Solaris. (GH #97)
 - Reload HEAD info when reloading the stage view. (GH #104, #93)
 - Fix disappearing branch labels after external commands. (GH #148)
 - Fix diff view display for staged/unstaged changes when using 'd'.
 - Fix display of status messages when toggling view options. (GH #111)
 - Fix illegal memory access. (GH #98)
 - Fix display of all branches label in repos with short branch names.
 - Fix rendering glitch for branch names.
 - Do not apply diff styling to untracked files in the stage view. (GH #153)
 - Fix tree indentation for entries containing combining characters. (GH #170)
 - Ignore unrepresentable characters when transliterating text for rendering.
 - Transliterate text to output encoding before trimming it to avoid
   misalignment. (GH #86)
 - Introduce a more natural context-sensitive log display. (GH #155)
jperkin pushed a commit that referenced this pull request Jan 21, 2014
Release 3.0.9 - 2013/10/29
--------------------------

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

* [doc][httpd] Added documentation about :ref:`groonga-database-auto-create` directive.
* [httpd] Added :ref:`groonga-cache-limit` directive.
* [doc] Added description why zlib/lzo compression are disabled by default. [groonga-dev, 01845] [Suggested by Naoya Murakami]
* Remove a restriction related to RLIMIT_NOFILE on HTTP server.
  It enables HTTP server process to handle over 4096 files.
* [experimental] Added some API to integrate mruby into groonga. [GitHub#109, #110, #111, #112, #113, #114, #115, #116, #117, #118] [Patch by wanabe]
* [travis] Supported CMake build on Travis-CI.
* [doc] Added documentation about :doc:`reference/tuning`.
* [experimental] Added :doc:`ruby_load` command.
* [httpd] Supported multiple buffered body of POST request.
  The load command caused timeout in such a case. [GitHub #120] [Patch by Motoi Washida]
* [gqtp] Supported error message. The body is changed to return
  raw text insted of double quoted text. This is incompatible changes.
* [http] Supported "400 Bad request" for invalid argument error.
* [doc] Added examples for :doc:`/suggest/completion`
* Supported Ubuntu 13.10 (Saucy Salamander).

Fixes
^^^^^

* Fixed a bug that it cause SEGV by arithmetic overflow.
  This problem occurs when the size of indexes exceeds
  the size of virtual memory. [groonga-dev,01661]
  [Reported by Naoya Murakami]
* Fixed needless lock for creating table.
  This change fixes a performance regression instroduced at Groonga 3.0.5.
* Fixed a bug that database which has reference column can't be removed.
  It affects the case that indexed tables/columns and referenced tables
  are removed at first, then remove operation to index columns and
  reference columns fails. [Reported by Eito Katagiri] [GitHub Rroonga #13]
* Fixed a bug that removing database which uses DAT key may remain garbage.
* [http] Fixed a small memory leak which is caused by shared HTTP header buffer in the same worker thread.
* [httpd] Fixed a bug that :ref:`groonga-database-auto-create` parameter
  isn't inherited. It means that these parameters are just ignored in non location blocks.
* Fixed a bug that status command may returns invalid cache hit rate.
* Fix a bug that casting to Time may causes overflow issue.
  It affects the case that assignment of the Time value which indicate over 32bit value.
jperkin pushed a commit that referenced this pull request Jan 21, 2014
14 Nov 2013, PHP 5.5.6

- Core:
  . Fixed bug #65947 (basename is no more working after fgetcsv in certain
    situation). (Laruence)
  . Improved performance of array_merge() and func_get_args() by eliminating
    useless copying. (Dmitry)
  . Fixed bug #65939 (Space before ";" breaks php.ini parsing).
    (brainstorm at nopcode dot org)
  . Fixed bug #65911 (scope resolution operator - strange behavior with $this).
    (Bob Weinand)
  . Fixed bug #65936 (dangling context pointer causes crash). (Tony)

- FPM:
  . Changed default listen() backlog to 65535. (Tony)

- MySQLi:
  . Fixed bug #66043 (Segfault calling bind_param() on mysqli). (Laruence)

- OPcache
  . Increased limit for opcache.max_accelerated_files to 1,000,000. (Chris)
  . Fixed issue #115 (path issue when using phar). (Dmitry)
  . Fixed issue #149 (Phar mount points not working with OPcache enabled).
  (Dmitry)

- ODBC
  . Fixed bug #65950 (Field name truncation if the field name is bigger than
    32 characters). (patch submitted by: michael dot y at zend dot com, Yasuo)

- PDO:
  . Fixed bug #66033 (Segmentation Fault when constructor of PDO statement
    throws an exception). (Laruence)
  . Fixed bug 65946 (sql_parser permanently converts values bound to strings)

- Standard:
  . Fixed bug #64760 (var_export() does not use full precision for floating-point
    numbers) (Yasuo)
jperkin pushed a commit that referenced this pull request Jan 21, 2014
* This package requires gcc 4.7 later from pkgsrc

Changelog:
aria2 1.18.2
============

Release Note
------------

This release fixes the wrong handling of return value of fork(), which
leads to high CPU usage. The progress readout has some color output.
Mingw32 build now receives colorized output. Mingw32 build now can
read unicode command-line arguments. The build script of OSX was
rewritten. The --bt-max-open-files now limits the number of opened
file globally for multi-file downloads instead of per download basis.

Changes
-------

* Remove the outdated, broken build_osx_release.sh

* Initial revision of the a new OSX release Makefile

* Allow using libgmp with AppleTLS/WinTLS

* Fix crash when metaurl contains unsupported URI or text

* Fix bad fork() return value handling

* Use some colors in progress reports (where available)

* Implement basic color support for the Windows console

  Only \033[*m (SGR) is supported, with a 16+16 color terminal.

* AppleTLS: Implement PKCS12 loading.

* Limit number of opened file globally with --bt-max-open-files option

  This change changes the behavior of --bt-max-open-files. Previously,
  it specifies the maximum number of opened files for each multi-file
  download. Since it is more useful to limit the number globally, the
  option now specifies the global limit. This change suggests that
  aria2.changeOption() method now ignores --bt-max-open-files and
  aria2.changeGlobalOption now reads it and dynamically change the
  limit.

* Don't fail multiple concurrent dl same file if auto-file-renaming is
  enabled

* mingw32: Use CommandLineToArgvW() and GetCommandLineW() to read
  cmd-line args

  This change enables aria2 to read unicode characters in
  command-line.



aria2 1.18.1
============

Release Note
------------

This release fixes the percent-encoding bug which affects file name
encodings. It adds PKCS12 support in certificate import. It also adds
experimental internal implementation of message digest functions, ARC4
cipher and bignum. It means that no external libraries are required to
build BitTorrent support, but this feature is still marked as
experimental. This release also fixes the android build with NDK r9.

Changes
-------

* LibsslTLSContext: Remove weak cipher suite

* AppleTLS: Enable --certificate

* util::percentEncodeMini: Fix regression bug removed unsignedness

  srange-based for around std::string is convenient but several
  functions depend unsigned char for correctness and readability.

* Log exception; throw error if loading private key and/or certificate
  failed

* Provide internal ARC4 implementation

  Now you can build bittorrent support without without external
  libraries, meaning you can skip libnettle, libgmp, libgcrypt, GnuTLS
  and OpenSSL on OSX (for now).

* Internal implementation of DHKeyExchange

  Reusing a bignum (well, unsigned very-long) implementation I had
  lying around for years and just cleaned up a bit and brought to
  C++11 land.

  It might not be the most performant implementation, but it shoud be
  fast enough for our purposes and will go a long way of removing
  gcrypt, nettle, gmp, openssl dependencies when using AppleTLS and
  WinTLS (upcoming).

* PKCS12 support in --certificate and --rpc-certificate options.

* Add --disable-ssl configure option

* Add internal md5 and sha1 message digests

* Fix AppleMessageDigestImpl use with large data

* Set old cookie's creation-time to new cookie on replacement

  As described in http://tools.ietf.org/html/rfc6265#section-5.3

* Fix link error with Android NDK r9

  Since Android ndk r9, __set_errno is deprecated. It is now defined
  as inline function in errno.h. The syscall assembly calls
  __set_errno, but since libc.so does not export it, the link
  fails. To workaround this, replace all occurrences of __set_errno
  with a2_set_errno and define it as normal C function.



aria2 1.18.0
============

Release Note
------------

This release changes the default disk cache size to 16 MiB. To change
the default size, --with-disk-cache configure option was added.  Now
used URIs are also saved by --save-session option. The control file is
now always saved if --force-save is given. The ctrl-c handling on
Mingw build was improved. The internal intl library is no longer
supplied. From this release, C++11 compiler is required to build aria2
executable. For gcc, at least 4.6.3 is required.

Changes
-------

* Use AM subdir-objects

  Doing so in AM_INIT_AUTOMAKE seems to be the most compatible way of
  doing so.

  Closes GH-120

* AM_SILENT_RULES([yes]) with backwards-compatiblity

  Supported since automake-1.11. There is no point in having the very
  verbose compile stuff running about, which cannot even silenced
  properly with `make -s` by default. Otherwise, `make V=1` or
  `--disable-silent-rules` are your friends

* Fix automake-1.14 am_aux_dir

  AC_USE_SYSTEM_EXTENSIONS will cause AC_PROG_CC, which is overridden
  by automake-1.14, which will then init (part) of automake, in
  particular am_aux_dir expansion, which in turn relies on ac_aux-dir,
  which is not initialized at this point, and thus: certain doom (or
  fun, depending on your POV and mood :p)

  Hence call AC_USE_SYSTEM_EXTENSIONS only after
  AM_INIT_AUTOMAKE. This, of course, caused a lot of related macro
  shuffling.

  Tested against automake-1.10 (OSX Lion/XCode version) and
  automake-1.14 (homebrew version)

* Require external gettext for --enable-nls

  And stop using the internal flavor with ./intl

* Make AX_CXX_COMPILE_STDCXX_11 test for -stdlib=libc++ via std::shared_ptr

  The clang shipped with OSX XCode and clangs not build enabling
  libcpp, will default to the libstdc++ headers and lib installed on
  the system.  In the OSX case, that libstdc++ is the one bundles with
  gcc-4.2, which is far too old to provide all required C++11 types,
  such as std::shared_ptr.  Hence, the C++11 check should try to
  compile a program with a C++11 type and try -stdlib=libc++ if the
  default lib fails to compile said program.

* Make the configure check for C++11 compiler mandatory

  Remove stray "dnl", so that mandatory actually works with (my)
  autoreconf.

* Always build doc/manual-src

  Should sphinx-build be not available AND the man file not be prsent,
  then just "touch" it into existence (and warn about that)

* Win: Use SetConsoleCtrlHandler for SIGINT/SIGTERM

* Implement a simple resource lock (threading)

  In this initial implementation Locks are no-ops on platforms other
  than Windows.

* Check for sphinx-build during configure

* Add --with-disk-cache configure option

  Enables packagers more fine grained control over the default value
  without having to mess with config files.

  See GH-115

* Change defaults: Enable 16M disk cache by default.

* Always save control file if --force-save is given

* Set log level DEBUG for unittests

* Check that C++ compiler supports override keyword

  If the compiler supports override, define CXX11_OVERRIDE as
  override, otherwise define it as empty. Use CXX11_OVERRIDE instead
  of override.

* AppleTLS: Fix MessageDigestImpl

* AppleTLS: Fix session CFRelease stuff

* Use AX_CXX_COMPILE_STDCXX_11 macro to detect C++0x/C++11 support in
  compiler

* Require -std=c++11 and use std::shared_ptr instead of SharedHandle

* Join URI on redirect

* Send HAVE message to the peer which the piece is downloaded from

  Historically, aria2 did not send HAVE message to the peer which the
  piece is coming from, thinking it is obvious that the peer knows we
  have the piece. But it is not obvious if one piece is download from
  more than 1 peers (e.g., end game mode). So it is better to send
  HAVE to all peers connected.

* Improvements to --follow-torrent=false documentation.

  Patch from gt

* SessionSerializer: Truly unique URIs

  Before, only spent uris where sanitized not to be contained within
  remaining uris. Change this so that each uri in the
  union(remaining,spent) get saved once at most.  The order of the
  uris will won't be changed, with remaining uris going first followed
  by spent uris.

  Also avoid copying the uri std::strings around during dupe checking,
  usually resulting in better performance regarding CPU and space.

* Make getOption RPC method return option for stopped downloads

* SessionSerializer: Save spent URIs as well as remaining ones
jperkin pushed a commit that referenced this pull request Jan 21, 2014
0.999
~~~~~

Released on December 23, 2013

* Fix #127: add work-around for CPython issue #20007: .read(0) on
  http.client.HTTPResponse drops the rest of the content.

* Fix #115: lxml treewalker can now deal with fragments containing, at
  their root level, text nodes with non-ASCII characters on Python 2.


0.99
~~~~

Released on September 10, 2013

* No library changes from 1.0b3; released as 0.99 as pip has changed
  behaviour from 1.4 to avoid installing pre-release versions per
  PEP 440.


1.0b3
~~~~~

Released on July 24, 2013

* Removed ``RecursiveTreeWalker`` from ``treewalkers._base``. Any
  implementation using it should be moved to
  ``NonRecursiveTreeWalker``, as everything bundled with html5lib has
  for years.

* Fix #67 so that ``BufferedStream`` to correctly returns a bytes
  object, thereby fixing any case where html5lib is passed a
  non-seekable RawIOBase-like object.


1.0b2
~~~~~

Released on June 27, 2013

* Removed reordering of attributes within the serializer. There is now
  an ``alphabetical_attributes`` option which preserves the previous
  behaviour through a new filter. This allows attribute order to be
  preserved through html5lib if the tree builder preserves order.

* Removed ``dom2sax`` from DOM treebuilders. It has been replaced by
  ``treeadapters.sax.to_sax`` which is generic and supports any
  treewalker; it also resolves all known bugs with ``dom2sax``.

* Fix treewalker assertions on hitting bytes strings on
  Python 2. Previous to 1.0b1, treewalkers coped with mixed
  bytes/unicode data on Python 2; this reintroduces this prior
  behaviour on Python 2. Behaviour is unchanged on Python 3.


1.0b1
~~~~~

Released on May 17, 2013

* Implementation updated to implement the `HTML specification
  <http://www.whatwg.org/specs/web-apps/current-work/>`_ as of 5th May
  2013 (`SVN <http://svn.whatwg.org/webapps/>`_ revision r7867).

* Python 3.2+ supported in a single codebase using the ``six`` library.

* Removed support for Python 2.5 and older.

* Removed the deprecated Beautiful Soup 3 treebuilder.
  ``beautifulsoup4`` can use ``html5lib`` as a parser instead. Note that
  since it doesn't support namespaces, foreign content like SVG and
  MathML is parsed incorrectly.

* Removed ``simpletree`` from the package. The default tree builder is
  now ``etree`` (using the ``xml.etree.cElementTree`` implementation if
  available, and ``xml.etree.ElementTree`` otherwise).

* Removed the ``XHTMLSerializer`` as it never actually guaranteed its
  output was well-formed XML, and hence provided little of use.

* Removed default DOM treebuilder, so ``html5lib.treebuilders.dom`` is no
  longer supported. ``html5lib.treebuilders.getTreeBuilder("dom")`` will
  return the default DOM treebuilder, which uses ``xml.dom.minidom``.

* Optional heuristic character encoding detection now based on
  ``charade`` for Python 2.6 - 3.3 compatibility.

* Optional ``Genshi`` treewalker support fixed.

* Many bugfixes, including:

  * #33: null in attribute value breaks XML AttValue;

  * #4: nested, indirect descendant, <button> causes infinite loop;

  * `Google Code 215
    <http://code.google.com/p/html5lib/issues/detail?id=215>`_: Properly
    detect seekable streams;

  * `Google Code 206
    <http://code.google.com/p/html5lib/issues/detail?id=206>`_: add
    support for <video preload=...>, <audio preload=...>;

  * `Google Code 205
    <http://code.google.com/p/html5lib/issues/detail?id=205>`_: add
    support for <video poster=...>;

  * `Google Code 202
    <http://code.google.com/p/html5lib/issues/detail?id=202>`_: Unicode
    file breaks InputStream.

* Source code is now mostly PEP 8 compliant.

* Test harness has been improved and now depends on ``nose``.

* Documentation updated and moved to http://html5lib.readthedocs.org/.
jperkin pushed a commit that referenced this pull request Jan 21, 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 Jan 29, 2014
Changes from 2.2.1 to 2.2.2
===========================

* The `copy_args` argument of `NumExpr` function has been brought
  back.  This has been mainly necessary for compatibility with
  PyTables < 3.0, which I decided to continue to support.  Fixed #115.

* The `__nonzero__` method in `ExpressionNode` class has been
  commented out.  This is also for compatibility with PyTables < 3.0.
  See #24 for details.

* Fixed the type of some parameters in the C extension so that s390
  architecture compiles.  Fixes #116.  Thank to Antonio Valentino for
  reporting and the patch.


Changes from 2.2 to 2.2.1
=========================

* Fixes a secondary effect of "from numpy.testing import `*`", where
  division is imported now too, so only then necessary functions from
  there are imported now.  Thanks to Christoph Gohlke for the patch.

Changes from 2.1 to 2.2
=======================

* [LICENSE] Fixed a problem with the license of the
  numexpr/win32/pthread.{c,h} files emulating pthreads on Windows
  platforms.  After persmission from the original authors is granted,
  these files adopt the MIT license and can be redistributed without
  problems.  See issue #109 for details
  (https://code.google.com/p/numexpr/issues/detail?id=110).

* [ENH] Improved the algorithm to decide the initial number of threads
  to be used.  This was necessary because by default, numexpr was
  using a number of threads equal to the detected number of cores, and
  this can be just too much for moder systems where this number can be
  too high (and counterporductive for performance in many cases).
  Now, the 'NUMEXPR_NUM_THREADS' environment variable is honored, and
  in case this is not present, a maximum number of *8* threads are
  setup initially.  The new algorithm is fully described in the Users
  Guide now in the note of 'General routines' section:
  https://code.google.com/p/numexpr/wiki/UsersGuide#General_routines.
  Closes #110.

* [ENH] numexpr.test() returns `TestResult` instead of None now.
  Closes #111.

* [FIX] Modulus with zero with integers no longer crashes the
  interpreter.  It nows puts a zero in the result.  Fixes #107.

* [API CLEAN] Removed `copy_args` argument of `evaluate`.  This should
  only be used by old versions of PyTables (< 3.0).

* [DOC] Documented the `optimization` and `truediv` flags of
  `evaluate` in Users Guide
  (https://code.google.com/p/numexpr/wiki/UsersGuide).

Changes from 2.0.1 to 2.1
===========================

* Dropped compatibility with Python < 2.6.

* Improve compatibiity with Python 3:

  - switch from PyString to PyBytes API (requires Python >= 2.6).
  - fixed incompatibilities regarding the int/long API
  - use the Py_TYPE macro
  - use the PyVarObject_HEAD_INIT macro instead of PyObject_HEAD_INIT

* Fixed several issues with different platforms not supporting
  multithreading or subprocess properly (see tickets #75 and #77).

* Now, when trying to use pure Python boolean operators, 'and',
  'or' and 'not', an error is issued suggesting that '&', '|' and
  '~' should be used instead (fixes #24).

Changes from 2.0 to 2.0.1
=========================

* Added compatibility with Python 2.5 (2.4 is definitely not supported
  anymore).

* `numexpr.evaluate` is fully documented now, in particular the new
  `out`, `order` and `casting` parameters.

* Reduction operations are fully documented now.

* Negative axis in reductions are not supported (they have never been
  actually), and a `ValueError` will be raised if they are used.


Changes from 1.x series to 2.0
==============================

- Added support for the new iterator object in NumPy 1.6 and later.

  This allows for better performance with operations that implies
  broadcast operations, fortran-ordered or non-native byte orderings.
  Performance for other scenarios is preserved (except for very small
  arrays).

- Division in numexpr is consistent now with Python/NumPy.  Fixes #22
  and #58.

- Constants like "2." or "2.0" must be evaluated as float, not
  integer.  Fixes #59.

- `evaluate()` function has received a new parameter `out` for storing
  the result in already allocated arrays.  This is very useful when
  dealing with large arrays, and a allocating new space for keeping
  the result is not acceptable.  Closes #56.

- Maximum number of threads raised from 256 to 4096.  Machines with a
  higher number of cores will still be able to import numexpr, but
  limited to 4096 (which is an absurdly high number already).
jperkin pushed a commit that referenced this pull request Mar 14, 2014
= Changes in 2.3.2 =

  January 5, 2013 - version 2.3.2

  * Changes

    * #138 Revert Timeout change unintentionally included in v2.3.1.  It's
      reported that the change causes background processes not terminated
      properly.

= Changes in 2.3.1 =

  January 1, 2013 - version 2.3.1

  * Changes

    * #137 Signing key is expiring for cacert_sha1.p7s.
      Deleted p7s signature check for default cacerts.  Sorry for many troubles
      in the past. This feature is not useful without having online/real-time
      CA certs update but I don't think I can implement it in near future.
      Users depend on this signature check (who puts cacert.p7s in R/W
      filesystem and ssl_config.rb in R/O filesystem) should take care the
      tampering by themself.

  * Bug fixes

    * #122 Support IPv6 address in URI


= Changes in 2.3.0 =

  October 10, 2012 - version 2.3.0

    * Features

      * Added debug mode CLI.  bin/httpclient is installed as CLI.
          Usage: 1) % httpclient get https://www.google.co.jp/ q=ruby
          Usage: 2) %httpclient
        For 1) it issues a GET request to the given URI and shows the wiredump
        and the parsed result.  For 2) it invokes irb shell with the binding
        that has a HTTPClient as 'self'.  You can call HTTPClient instance
        methods like;
          > get "https://www.google.co.jp/", :q => :ruby

      * #119 Addressable gem support (only if it exists); should handle IRI
        properly.

    * Bug fixes

      * #115 Cookies couldn't work properly if the path in an URI is ommited.
      * #112, #117 Proper handling of sized IO (the IO object that responds to
        :size) for chunked POST. HTTPClient did read till EOF even if the
        given IO has :size method.
      * Handle '303 See Other' properly.  RFC2616 says it should be redirected
        with GET.
      * #116 Fix "100-continue" support.  It was just ignored.
      * #118 Support for boolean values when making POST/PUT requests with
        multiipart/form Content-Type.
      * #110 Allows leading dots in no_proxy hostname suffixes.
jperkin pushed a commit that referenced this pull request Mar 14, 2014
- some address fixes to contrib
- fixed duplicate install-sh entry in archive
- set oid-mib-cache file for New_SNMP_util as well #106
- prevent spurious warnings about unknonwn values of inlast outlast in mrtg
- add the process id tmp file extensions, to guard against multiple rateup
  instances messing things up for each other. (attempt to fix #115)
- quell warning in CnTWaLK mode #111
- spelling fixes
- make threshold checking more robust against incomplete information in the
  config file #113
- support ifAlias for Vyatta gear
- CnTWaLK should add the count and not max index
- abort indexmaker if there is no data to be found
- fix for big5 translation
- in cfgmaker use ifdesc=alias only if there is actualy alias info
- fix of a file pointer leak found by coverity scan
- fix for kMG support in rateup
- add support for zyxel ifAlias
- add support for Matrix N7 Diamond
- enable warnings in cfgmaker and fix issues ...
- explicitly import SOCK_DGRAM and AF_UNSPEC to make ipv6 support work
- Updated Net_SNMP_util.pm and SNMP_util.pm to latest versions
jperkin pushed a commit that referenced this pull request Mar 14, 2014
=============

 - Tig now has its own tag on Stack Overflow, where users are invited to
   ask questions: http://stackoverflow.com/questions/tagged/tig

Improvements:

 - Make tig prompt commands bindable to keys. For example:
   `bind diff F :set diff-options = --full-diff`. (GH #69, #116)
 - Add a diff-options setting for specifying default diff options.
   Example: `set diff-options = --patience`. (GH #116)
 - Options in diff-options and blame-options matching tig browsing state
   variables are replaced.
 - Show diff stats as wide as the terminal. (GH #109)
 - Show line numbers in the branch view. (GH #135)
 - Add toggles for showing author email or email user names. (GH #115)
 - Open editor at the selected line by prefixing the file argument with
   `+<lineno>`. Tested in vi, vim, emacs, nano, gedit, geany. Disable
   by adding `set editor-line-number = no` to ~/.tigrc. (GH #118, #119)
 - Add toggle-files to control whether to show full commit diff or only
   the diff concerning the currently selected file, e.g. for blame.
 - Optionally highlight exceeding characters in long commit titles.
   The default title max width is 50 characters. Customize using:
   `set title-overflow = 50` (GH #125)
 - Add +ESC key bindings. Example: `bind generic ^[v move-page-up` (GH #120)
 - Create temporary files in TMPDIR, TEMP, or TMP before defaulting to /tmp.
 - Reenable `tig log` as a subcommand. (GH #146)
 - Enable tilde expansion in ~/.tigrc "source" commands. (GH #168)
 - Introduce the stash view, bound to the 'y' keybinding. (GH #169, #174)

Bug fixes:

 - Fix blame and status to work in directories starting with a dot. (GH #172)
 - Reload current branch name when reloading the status view. (GH #93)
 - Fix compile errors on old Solaris. (GH #97)
 - Reload HEAD info when reloading the stage view. (GH #104, #93)
 - Fix disappearing branch labels after external commands. (GH #148)
 - Fix diff view display for staged/unstaged changes when using 'd'.
 - Fix display of status messages when toggling view options. (GH #111)
 - Fix illegal memory access. (GH #98)
 - Fix display of all branches label in repos with short branch names.
 - Fix rendering glitch for branch names.
 - Do not apply diff styling to untracked files in the stage view. (GH #153)
 - Fix tree indentation for entries containing combining characters. (GH #170)
 - Ignore unrepresentable characters when transliterating text for rendering.
 - Transliterate text to output encoding before trimming it to avoid
   misalignment. (GH #86)
 - Introduce a more natural context-sensitive log display. (GH #155)
jperkin pushed a commit that referenced this pull request Mar 14, 2014
Release 3.0.9 - 2013/10/29
--------------------------

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

* [doc][httpd] Added documentation about :ref:`groonga-database-auto-create` directive.
* [httpd] Added :ref:`groonga-cache-limit` directive.
* [doc] Added description why zlib/lzo compression are disabled by default. [groonga-dev, 01845] [Suggested by Naoya Murakami]
* Remove a restriction related to RLIMIT_NOFILE on HTTP server.
  It enables HTTP server process to handle over 4096 files.
* [experimental] Added some API to integrate mruby into groonga. [GitHub#109, #110, #111, #112, #113, #114, #115, #116, #117, #118] [Patch by wanabe]
* [travis] Supported CMake build on Travis-CI.
* [doc] Added documentation about :doc:`reference/tuning`.
* [experimental] Added :doc:`ruby_load` command.
* [httpd] Supported multiple buffered body of POST request.
  The load command caused timeout in such a case. [GitHub #120] [Patch by Motoi Washida]
* [gqtp] Supported error message. The body is changed to return
  raw text insted of double quoted text. This is incompatible changes.
* [http] Supported "400 Bad request" for invalid argument error.
* [doc] Added examples for :doc:`/suggest/completion`
* Supported Ubuntu 13.10 (Saucy Salamander).

Fixes
^^^^^

* Fixed a bug that it cause SEGV by arithmetic overflow.
  This problem occurs when the size of indexes exceeds
  the size of virtual memory. [groonga-dev,01661]
  [Reported by Naoya Murakami]
* Fixed needless lock for creating table.
  This change fixes a performance regression instroduced at Groonga 3.0.5.
* Fixed a bug that database which has reference column can't be removed.
  It affects the case that indexed tables/columns and referenced tables
  are removed at first, then remove operation to index columns and
  reference columns fails. [Reported by Eito Katagiri] [GitHub Rroonga #13]
* Fixed a bug that removing database which uses DAT key may remain garbage.
* [http] Fixed a small memory leak which is caused by shared HTTP header buffer in the same worker thread.
* [httpd] Fixed a bug that :ref:`groonga-database-auto-create` parameter
  isn't inherited. It means that these parameters are just ignored in non location blocks.
* Fixed a bug that status command may returns invalid cache hit rate.
* Fix a bug that casting to Time may causes overflow issue.
  It affects the case that assignment of the Time value which indicate over 32bit value.
jperkin pushed a commit that referenced this pull request Mar 14, 2014
14 Nov 2013, PHP 5.5.6

- Core:
  . Fixed bug #65947 (basename is no more working after fgetcsv in certain
    situation). (Laruence)
  . Improved performance of array_merge() and func_get_args() by eliminating
    useless copying. (Dmitry)
  . Fixed bug #65939 (Space before ";" breaks php.ini parsing).
    (brainstorm at nopcode dot org)
  . Fixed bug #65911 (scope resolution operator - strange behavior with $this).
    (Bob Weinand)
  . Fixed bug #65936 (dangling context pointer causes crash). (Tony)

- FPM:
  . Changed default listen() backlog to 65535. (Tony)

- MySQLi:
  . Fixed bug #66043 (Segfault calling bind_param() on mysqli). (Laruence)

- OPcache
  . Increased limit for opcache.max_accelerated_files to 1,000,000. (Chris)
  . Fixed issue #115 (path issue when using phar). (Dmitry)
  . Fixed issue #149 (Phar mount points not working with OPcache enabled).
  (Dmitry)

- ODBC
  . Fixed bug #65950 (Field name truncation if the field name is bigger than
    32 characters). (patch submitted by: michael dot y at zend dot com, Yasuo)

- PDO:
  . Fixed bug #66033 (Segmentation Fault when constructor of PDO statement
    throws an exception). (Laruence)
  . Fixed bug 65946 (sql_parser permanently converts values bound to strings)

- Standard:
  . Fixed bug #64760 (var_export() does not use full precision for floating-point
    numbers) (Yasuo)
jperkin pushed a commit that referenced this pull request Mar 14, 2014
* This package requires gcc 4.7 later from pkgsrc

Changelog:
aria2 1.18.2
============

Release Note
------------

This release fixes the wrong handling of return value of fork(), which
leads to high CPU usage. The progress readout has some color output.
Mingw32 build now receives colorized output. Mingw32 build now can
read unicode command-line arguments. The build script of OSX was
rewritten. The --bt-max-open-files now limits the number of opened
file globally for multi-file downloads instead of per download basis.

Changes
-------

* Remove the outdated, broken build_osx_release.sh

* Initial revision of the a new OSX release Makefile

* Allow using libgmp with AppleTLS/WinTLS

* Fix crash when metaurl contains unsupported URI or text

* Fix bad fork() return value handling

* Use some colors in progress reports (where available)

* Implement basic color support for the Windows console

  Only \033[*m (SGR) is supported, with a 16+16 color terminal.

* AppleTLS: Implement PKCS12 loading.

* Limit number of opened file globally with --bt-max-open-files option

  This change changes the behavior of --bt-max-open-files. Previously,
  it specifies the maximum number of opened files for each multi-file
  download. Since it is more useful to limit the number globally, the
  option now specifies the global limit. This change suggests that
  aria2.changeOption() method now ignores --bt-max-open-files and
  aria2.changeGlobalOption now reads it and dynamically change the
  limit.

* Don't fail multiple concurrent dl same file if auto-file-renaming is
  enabled

* mingw32: Use CommandLineToArgvW() and GetCommandLineW() to read
  cmd-line args

  This change enables aria2 to read unicode characters in
  command-line.



aria2 1.18.1
============

Release Note
------------

This release fixes the percent-encoding bug which affects file name
encodings. It adds PKCS12 support in certificate import. It also adds
experimental internal implementation of message digest functions, ARC4
cipher and bignum. It means that no external libraries are required to
build BitTorrent support, but this feature is still marked as
experimental. This release also fixes the android build with NDK r9.

Changes
-------

* LibsslTLSContext: Remove weak cipher suite

* AppleTLS: Enable --certificate

* util::percentEncodeMini: Fix regression bug removed unsignedness

  srange-based for around std::string is convenient but several
  functions depend unsigned char for correctness and readability.

* Log exception; throw error if loading private key and/or certificate
  failed

* Provide internal ARC4 implementation

  Now you can build bittorrent support without without external
  libraries, meaning you can skip libnettle, libgmp, libgcrypt, GnuTLS
  and OpenSSL on OSX (for now).

* Internal implementation of DHKeyExchange

  Reusing a bignum (well, unsigned very-long) implementation I had
  lying around for years and just cleaned up a bit and brought to
  C++11 land.

  It might not be the most performant implementation, but it shoud be
  fast enough for our purposes and will go a long way of removing
  gcrypt, nettle, gmp, openssl dependencies when using AppleTLS and
  WinTLS (upcoming).

* PKCS12 support in --certificate and --rpc-certificate options.

* Add --disable-ssl configure option

* Add internal md5 and sha1 message digests

* Fix AppleMessageDigestImpl use with large data

* Set old cookie's creation-time to new cookie on replacement

  As described in http://tools.ietf.org/html/rfc6265#section-5.3

* Fix link error with Android NDK r9

  Since Android ndk r9, __set_errno is deprecated. It is now defined
  as inline function in errno.h. The syscall assembly calls
  __set_errno, but since libc.so does not export it, the link
  fails. To workaround this, replace all occurrences of __set_errno
  with a2_set_errno and define it as normal C function.



aria2 1.18.0
============

Release Note
------------

This release changes the default disk cache size to 16 MiB. To change
the default size, --with-disk-cache configure option was added.  Now
used URIs are also saved by --save-session option. The control file is
now always saved if --force-save is given. The ctrl-c handling on
Mingw build was improved. The internal intl library is no longer
supplied. From this release, C++11 compiler is required to build aria2
executable. For gcc, at least 4.6.3 is required.

Changes
-------

* Use AM subdir-objects

  Doing so in AM_INIT_AUTOMAKE seems to be the most compatible way of
  doing so.

  Closes GH-120

* AM_SILENT_RULES([yes]) with backwards-compatiblity

  Supported since automake-1.11. There is no point in having the very
  verbose compile stuff running about, which cannot even silenced
  properly with `make -s` by default. Otherwise, `make V=1` or
  `--disable-silent-rules` are your friends

* Fix automake-1.14 am_aux_dir

  AC_USE_SYSTEM_EXTENSIONS will cause AC_PROG_CC, which is overridden
  by automake-1.14, which will then init (part) of automake, in
  particular am_aux_dir expansion, which in turn relies on ac_aux-dir,
  which is not initialized at this point, and thus: certain doom (or
  fun, depending on your POV and mood :p)

  Hence call AC_USE_SYSTEM_EXTENSIONS only after
  AM_INIT_AUTOMAKE. This, of course, caused a lot of related macro
  shuffling.

  Tested against automake-1.10 (OSX Lion/XCode version) and
  automake-1.14 (homebrew version)

* Require external gettext for --enable-nls

  And stop using the internal flavor with ./intl

* Make AX_CXX_COMPILE_STDCXX_11 test for -stdlib=libc++ via std::shared_ptr

  The clang shipped with OSX XCode and clangs not build enabling
  libcpp, will default to the libstdc++ headers and lib installed on
  the system.  In the OSX case, that libstdc++ is the one bundles with
  gcc-4.2, which is far too old to provide all required C++11 types,
  such as std::shared_ptr.  Hence, the C++11 check should try to
  compile a program with a C++11 type and try -stdlib=libc++ if the
  default lib fails to compile said program.

* Make the configure check for C++11 compiler mandatory

  Remove stray "dnl", so that mandatory actually works with (my)
  autoreconf.

* Always build doc/manual-src

  Should sphinx-build be not available AND the man file not be prsent,
  then just "touch" it into existence (and warn about that)

* Win: Use SetConsoleCtrlHandler for SIGINT/SIGTERM

* Implement a simple resource lock (threading)

  In this initial implementation Locks are no-ops on platforms other
  than Windows.

* Check for sphinx-build during configure

* Add --with-disk-cache configure option

  Enables packagers more fine grained control over the default value
  without having to mess with config files.

  See GH-115

* Change defaults: Enable 16M disk cache by default.

* Always save control file if --force-save is given

* Set log level DEBUG for unittests

* Check that C++ compiler supports override keyword

  If the compiler supports override, define CXX11_OVERRIDE as
  override, otherwise define it as empty. Use CXX11_OVERRIDE instead
  of override.

* AppleTLS: Fix MessageDigestImpl

* AppleTLS: Fix session CFRelease stuff

* Use AX_CXX_COMPILE_STDCXX_11 macro to detect C++0x/C++11 support in
  compiler

* Require -std=c++11 and use std::shared_ptr instead of SharedHandle

* Join URI on redirect

* Send HAVE message to the peer which the piece is downloaded from

  Historically, aria2 did not send HAVE message to the peer which the
  piece is coming from, thinking it is obvious that the peer knows we
  have the piece. But it is not obvious if one piece is download from
  more than 1 peers (e.g., end game mode). So it is better to send
  HAVE to all peers connected.

* Improvements to --follow-torrent=false documentation.

  Patch from gt

* SessionSerializer: Truly unique URIs

  Before, only spent uris where sanitized not to be contained within
  remaining uris. Change this so that each uri in the
  union(remaining,spent) get saved once at most.  The order of the
  uris will won't be changed, with remaining uris going first followed
  by spent uris.

  Also avoid copying the uri std::strings around during dupe checking,
  usually resulting in better performance regarding CPU and space.

* Make getOption RPC method return option for stopped downloads

* SessionSerializer: Save spent URIs as well as remaining ones
jperkin pushed a commit that referenced this pull request Mar 14, 2014
0.999
~~~~~

Released on December 23, 2013

* Fix #127: add work-around for CPython issue #20007: .read(0) on
  http.client.HTTPResponse drops the rest of the content.

* Fix #115: lxml treewalker can now deal with fragments containing, at
  their root level, text nodes with non-ASCII characters on Python 2.


0.99
~~~~

Released on September 10, 2013

* No library changes from 1.0b3; released as 0.99 as pip has changed
  behaviour from 1.4 to avoid installing pre-release versions per
  PEP 440.


1.0b3
~~~~~

Released on July 24, 2013

* Removed ``RecursiveTreeWalker`` from ``treewalkers._base``. Any
  implementation using it should be moved to
  ``NonRecursiveTreeWalker``, as everything bundled with html5lib has
  for years.

* Fix #67 so that ``BufferedStream`` to correctly returns a bytes
  object, thereby fixing any case where html5lib is passed a
  non-seekable RawIOBase-like object.


1.0b2
~~~~~

Released on June 27, 2013

* Removed reordering of attributes within the serializer. There is now
  an ``alphabetical_attributes`` option which preserves the previous
  behaviour through a new filter. This allows attribute order to be
  preserved through html5lib if the tree builder preserves order.

* Removed ``dom2sax`` from DOM treebuilders. It has been replaced by
  ``treeadapters.sax.to_sax`` which is generic and supports any
  treewalker; it also resolves all known bugs with ``dom2sax``.

* Fix treewalker assertions on hitting bytes strings on
  Python 2. Previous to 1.0b1, treewalkers coped with mixed
  bytes/unicode data on Python 2; this reintroduces this prior
  behaviour on Python 2. Behaviour is unchanged on Python 3.


1.0b1
~~~~~

Released on May 17, 2013

* Implementation updated to implement the `HTML specification
  <http://www.whatwg.org/specs/web-apps/current-work/>`_ as of 5th May
  2013 (`SVN <http://svn.whatwg.org/webapps/>`_ revision r7867).

* Python 3.2+ supported in a single codebase using the ``six`` library.

* Removed support for Python 2.5 and older.

* Removed the deprecated Beautiful Soup 3 treebuilder.
  ``beautifulsoup4`` can use ``html5lib`` as a parser instead. Note that
  since it doesn't support namespaces, foreign content like SVG and
  MathML is parsed incorrectly.

* Removed ``simpletree`` from the package. The default tree builder is
  now ``etree`` (using the ``xml.etree.cElementTree`` implementation if
  available, and ``xml.etree.ElementTree`` otherwise).

* Removed the ``XHTMLSerializer`` as it never actually guaranteed its
  output was well-formed XML, and hence provided little of use.

* Removed default DOM treebuilder, so ``html5lib.treebuilders.dom`` is no
  longer supported. ``html5lib.treebuilders.getTreeBuilder("dom")`` will
  return the default DOM treebuilder, which uses ``xml.dom.minidom``.

* Optional heuristic character encoding detection now based on
  ``charade`` for Python 2.6 - 3.3 compatibility.

* Optional ``Genshi`` treewalker support fixed.

* Many bugfixes, including:

  * #33: null in attribute value breaks XML AttValue;

  * #4: nested, indirect descendant, <button> causes infinite loop;

  * `Google Code 215
    <http://code.google.com/p/html5lib/issues/detail?id=215>`_: Properly
    detect seekable streams;

  * `Google Code 206
    <http://code.google.com/p/html5lib/issues/detail?id=206>`_: add
    support for <video preload=...>, <audio preload=...>;

  * `Google Code 205
    <http://code.google.com/p/html5lib/issues/detail?id=205>`_: add
    support for <video poster=...>;

  * `Google Code 202
    <http://code.google.com/p/html5lib/issues/detail?id=202>`_: Unicode
    file breaks InputStream.

* Source code is now mostly PEP 8 compliant.

* Test harness has been improved and now depends on ``nose``.

* Documentation updated and moved to http://html5lib.readthedocs.org/.
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 14, 2014
Changes from 2.2.1 to 2.2.2
===========================

* The `copy_args` argument of `NumExpr` function has been brought
  back.  This has been mainly necessary for compatibility with
  PyTables < 3.0, which I decided to continue to support.  Fixed #115.

* The `__nonzero__` method in `ExpressionNode` class has been
  commented out.  This is also for compatibility with PyTables < 3.0.
  See #24 for details.

* Fixed the type of some parameters in the C extension so that s390
  architecture compiles.  Fixes #116.  Thank to Antonio Valentino for
  reporting and the patch.


Changes from 2.2 to 2.2.1
=========================

* Fixes a secondary effect of "from numpy.testing import `*`", where
  division is imported now too, so only then necessary functions from
  there are imported now.  Thanks to Christoph Gohlke for the patch.

Changes from 2.1 to 2.2
=======================

* [LICENSE] Fixed a problem with the license of the
  numexpr/win32/pthread.{c,h} files emulating pthreads on Windows
  platforms.  After persmission from the original authors is granted,
  these files adopt the MIT license and can be redistributed without
  problems.  See issue #109 for details
  (https://code.google.com/p/numexpr/issues/detail?id=110).

* [ENH] Improved the algorithm to decide the initial number of threads
  to be used.  This was necessary because by default, numexpr was
  using a number of threads equal to the detected number of cores, and
  this can be just too much for moder systems where this number can be
  too high (and counterporductive for performance in many cases).
  Now, the 'NUMEXPR_NUM_THREADS' environment variable is honored, and
  in case this is not present, a maximum number of *8* threads are
  setup initially.  The new algorithm is fully described in the Users
  Guide now in the note of 'General routines' section:
  https://code.google.com/p/numexpr/wiki/UsersGuide#General_routines.
  Closes #110.

* [ENH] numexpr.test() returns `TestResult` instead of None now.
  Closes #111.

* [FIX] Modulus with zero with integers no longer crashes the
  interpreter.  It nows puts a zero in the result.  Fixes #107.

* [API CLEAN] Removed `copy_args` argument of `evaluate`.  This should
  only be used by old versions of PyTables (< 3.0).

* [DOC] Documented the `optimization` and `truediv` flags of
  `evaluate` in Users Guide
  (https://code.google.com/p/numexpr/wiki/UsersGuide).

Changes from 2.0.1 to 2.1
===========================

* Dropped compatibility with Python < 2.6.

* Improve compatibiity with Python 3:

  - switch from PyString to PyBytes API (requires Python >= 2.6).
  - fixed incompatibilities regarding the int/long API
  - use the Py_TYPE macro
  - use the PyVarObject_HEAD_INIT macro instead of PyObject_HEAD_INIT

* Fixed several issues with different platforms not supporting
  multithreading or subprocess properly (see tickets #75 and #77).

* Now, when trying to use pure Python boolean operators, 'and',
  'or' and 'not', an error is issued suggesting that '&', '|' and
  '~' should be used instead (fixes #24).

Changes from 2.0 to 2.0.1
=========================

* Added compatibility with Python 2.5 (2.4 is definitely not supported
  anymore).

* `numexpr.evaluate` is fully documented now, in particular the new
  `out`, `order` and `casting` parameters.

* Reduction operations are fully documented now.

* Negative axis in reductions are not supported (they have never been
  actually), and a `ValueError` will be raised if they are used.


Changes from 1.x series to 2.0
==============================

- Added support for the new iterator object in NumPy 1.6 and later.

  This allows for better performance with operations that implies
  broadcast operations, fortran-ordered or non-native byte orderings.
  Performance for other scenarios is preserved (except for very small
  arrays).

- Division in numexpr is consistent now with Python/NumPy.  Fixes #22
  and #58.

- Constants like "2." or "2.0" must be evaluated as float, not
  integer.  Fixes #59.

- `evaluate()` function has received a new parameter `out` for storing
  the result in already allocated arrays.  This is very useful when
  dealing with large arrays, and a allocating new space for keeping
  the result is not acceptable.  Closes #56.

- Maximum number of threads raised from 256 to 4096.  Machines with a
  higher number of cores will still be able to import numexpr, but
  limited to 4096 (which is an absurdly high number already).
jperkin pushed a commit that referenced this pull request Mar 14, 2015
…kages

Collection.

This extention was previously known as ZendOptimizerPlus and has been renamed by
upstream.

Changes:

7.0.4
  Added function opcache_is_script_cached()
- Fix bug #67111 (Loop variables need to be freed for both "break" and
  "continue")
- Fix opcache.revalidate_freq per-request behavior
- Fixed bug #67215 (php-cgi work with opcache, may be segmentation fault happen)
- Fixed issue #183 (TMP_VAR is not only used once)
7.0.3
 - Fixed bug #66298 (ext/opcache/Optimizer/zend_optimizer.c has dos-style
^M as lineend)
- Added suggestion about opcache.revalidate_freq setting in development
  environmento
- Fixed Issue #140: "opcache.enable_file_override" doesn't respect
  "opcache.revalidate_freq"
- Fixed reavlidate_path=1 behavior to avoid caching of symlinks values.
- Fixed opcahce_reset() crash when opcache.protect_memory is set
- Fixed bug #66176 (Invalid constant substitution)
- Fixed bug #65559 (Opcache: cache not cleared if changes occur while running)
- Fixed compatibility with old PHP versions
- Fixed bug #65915 (Inconsistent results with require return value)
- Fixed issue #115 (path issue when using phar)
- Fixed issue #149 (Phar mount points not working with OPcache enabled)
- Fixed bug #65845 (Error when Zend Opcache Optimizer is fully enabled).
- Added function opcache_compile_file() to load PHP scripts into cache without
  execution.
- Fixed issue #135 (segfault in interned strings if initial memory is too low)
- Fixed bug #65665 (Exception not properly caught when opcache enabled)
- Fixed issue #128 (opcache_invalidate segmentation fault)
- Fixed bug #65510 (5.5.2 crashes in _get_zval_ptr_ptr_var)
- Fixed bug #65561 (Zend Opcache on Solaris 11 x86 needs ZEND_MM_ALIGNMENT=4)
- Replce ZEND_FETCH_* instructions with IS_CV if possible
- Added opcache.restrict_api configuration directive that may limit usage of
  OPcahce API functions only to patricular script(s)
- Added support for glob symbols in blacklist entries (?, *, **)
- Improved implementation of NOP removal pass from O(n^2) to O(n)
- Fixed bug #65338 (Enabling both php_opcache and php_wincache AVs on shutdown).
- Fixed bug #64827 Segfault in zval_mark_grey (zend_gc.c)
7.0.2
- Fixed issue #26 (added opcache_invalidate(string $filename [, bool
$force = false]) function)
- Fixed issue #74 (Allowed per request OPcache disabling)
- Fixed issue #76 (actually we don't need zend_shared_meory_block_header at all)
- Fixed issue #78 (incorrect file path validation)
- Fixed issue #79 (Optimization Problem/Bug)
- Fixed issue #82 (allow comments in blacklist file, lines started with ";")
- Fixed issue #91 (fix x64 fixed addresses)
- Fxied issue #92 (Compilation warnings)
- Fixed issue #97 (Use size_t instead of int to support a cache larger than 2G)
- Fixed bug (Avoid possible conditional jump depended on uninitialised value)
7.0.1
- Fixed Bug #64490 (add __FreeBSD_kernel__ to allowed FreeBSD defs)
- Fixed Bug #64482 (Opcodes for dynamic includes should not be cached)
- Fixed Bug #64353 (Built-in classes can be unavailable with dynamic includes
  and Optimizer+)
- Fixed compatibility with ext/phar
- Fixed Issue #58 (PHP-5.2 compatibility)
- Fixed Issue #57 (segfaults in drupal7)
- Fixed Issue #54 (PECL install adds extension= instead of zend_extension= to
  php.ini)-iii
- Allows exclusion of large files from being cached
- Save a stat() call by calling sapi_module.get_stat()
- Add optional flag to opcache_get_status()
- Separate "start_time" from "last_restart_time"
jperkin pushed a commit that referenced this pull request Mar 16, 2015
Changelog:

Summary of changes from RPM 4.12.0
Package building

    Fix RPMTAG_ARCHIVESIZE / RPMTAG_LONGARCHIVESIZE generation (RhBug:1142949)
    Reduce double separator in dependency EVR error into a warning (RhBug:1065563)

Build process

    Add testcase for RhBug:1142949


Summary of changes from RPM 4.11.2
General bugfixes and enhancements

    New --nopretrans and --noposttrans disabler switches (previously tied to --nopre/--nopost)
    New --noplugins switch to disable all plugins
    New --reinstall mode which can handle changing file policies (RhBug:966715)
    New --exportdb and --importdb switches in rpmdb(8)
    New --recommends, --suggests, --supplements and --enhances query aliases for querying weak dependencies
    New optional payload format to support large (> 4GB) files within packages (ticket #41)
    New rpm2archive utility for converting rpm payload to tar archives

    Fix curl globbing being enabled on remote retrieval (RhBug:1076277)
    Fix $1 argument to %pretrans, %posttrans and %verifyscript to behave like all other scripts
    Fix mixed binary + source rpm installation progress (RhBug:984724)
    Fix file actions sometimes carrying state across multiple rpmtsRun() calls (RhBug:1076552)
    Fix duplicate usernames causing false positives on verification (ticket #872)
    Fix ordering to prefer self-provides on ordering when appropriate (RhBug:1111349)
    Fix a double-free on unpadded signature header

    Add support for "new" architectures:
        m68k (again)
        Sparc Niagara (detection)
        ARM v6 and v7 (hardware FPU detection)
    Documentation, translation updates

Package building

    New warnings on invalid / dubious spec constructs:
        Detect multiple %files sections per package
        Detect empty %files -f manifest files
        Detect multiple %changelog sections per spec
        Detect duplicate Group, Summary, Description, Distribution, Vendor, License and Packager tags per package (ticket #27)
    Add support for specifying weak dependencies (Recommends, Suggests, Supplements and Enhances) tags in spec
    Add support for automatic generation of weak dependencies (RhBug:1117912)

    New %{load:<path>} macro to load custom macro files (from eg spec)
    New %_smp_ncpus_max macro to configure CPU limit for parallel builds (related to RhBug:669638)
    New %make_build macro for hiding parallel-build magic from specs (ticket #115)
    New %_rundir macro for referring to /run (formerly /var/run) directory
    New %__gpg_reserved_space macro allows preallocating space for signatures which allows very fast package signing
    Add support for detecting and warning on macro scoping violations (RhBug:552944) when %trace is active
    Add support for %autosetup -S git_am variant (RhBug:???)
    Fix parametrized macros eating newlines (RhBug:1045723)
    Fix around macro scoping problems in %autosetup (RhBug:???)

    Fix ELF soname dependencies getting generated for non-library DSO's too (RhBug:???)
    Fix garbage sonames sometimes getting added as dependencies (ticket #158)
    Fix various issues in dependency generator
    Fix libtool dependency generation with libtool >= 2.4.2 version
    Fix external dependency generator to use the same generators as internal one by default
    Fix crash on missing name-argument to %package (RhBug:1123722)

    Fix non-canonical path usage for matching in debugedit (RhBug:1077148)
    Fix PPC ABI change in default configuration (RhBug:1085127)

Removed features

    Remove support for %_noPayloadPrefix (rpm < 3.0.5 compatibility)
    Remove experimental support for "collections", added in 4.9.0

API changes

    New rpmtxnBegin() and rpmtxnEnd() to permit clients to control transaction locking
    New rpmtsImportHeader() to permit importing "detached" headers into rpmdb
    New rpmtsAddReinstallElement() function for reinstalling packages

    New rpmdbIndexIteratorNextTd() provides a nicer iterator interface to rpmdb indexes

    New file info set iterator functions: rpmfiFLinks(), rpmfiFindFN(), rpmfiStat()...
    New file info set iterator functions for accessing original paths from relocated packages: rpmfiOFN(), rpmfiOBN(), rpmfiODN(), rpmfiFindOFN()
    New archive API on top of file info iterators: (FIXME: describe...)
    New "rpmfiles" object + related API for random access to file info sets
    Many new file info set iteration modes (FIXME: describe...)

    New rpmteFiles() to return transaction element file info set, to be used instead of rpmteFI()
    New rpmdsTagF(), rpmdsTagEVR(), rpmdsD(), rpmdsPutToHeader(), rpmdsTi(), rpmdsTagTi() and rpmdsSinglePoolTix() methods to rpmds objects

Internal improvements and cleanups

    Lots of cleanups all over the codebase
        Former "file state manager" eliminated and rewritten
        "Package state manager" largely eliminated
        File IO subsystem sanity & improvements
        Berkeley DB dependencies isolated to backend code
        File info sets are finally properly opaque
        Handle trigger indexes within rpmds objects
    Partial thread-safety by added locks/mutexes (FIXME: describe...)
        Configuration and macros
        Logging
        Keyrings and keys
        ...
    Fix symlink timestamp on install on systems which support it
    Fix problematic license on internal mergesort() implementation (removed)
    Fix rpm dependency on libselinux (moved to a plugin)
    Fix installation to always use header, not payload metadata
    Fix global macro state side-effects from rpmInstallSourcePackage()

    Fix oversized stack allocation on verify (RhBug:1106594)
    Fix buffer overflows on malformed macro define/undefine (RhBug:1087000)
    Optimize package generation and signing considerably
    Optimize file requires processing
    Optimize installed dependency processing

Plugins

    A new plugin system, internal-only for now (FIXME: describe...)
    Plugins included in this release:
        systemd_inhibit plugin - preventing shutdown while transaction is in progress (RhBug:1109927)
        selinux plugin - basic SELinux support, previously in librpm directly
        syslog - example plugin for logging rpm activity to syslog

Python bindings

    Database index iteration returns proper types for non-strings
    New rpm.fi methods: FLinks(), FindFN(), OFN()...
    New fi.FLinks() method added
    New rpm.files object + related API for random access to file info sets
    New rpm.archive object + related API for manipulating package payloads
    New te.Files() method added
    New addReinstall() method in transaction set objects (related to RhBug:966715, RhBug:1071854...)
    New rpm.strpool object for utilizing shared string pool with eg rpm.fi and rpm.ds objects
    New rpm.header_magic constant exported
    Fix several Python 3 compatibility issues (RhBug:1064758
        Fix build- and sign-module initialization (RhBug:1064758)
        Fix sign-module missing module methods
        Fix incompatible module name usage (foomodule.so vs foo.so)
        Fix misc Python 2 vs 3 API difference issues
    ... FIXME:this list is very incomplete

Lua interface

    New rpm.load() function for loading macro files

Build process

    New test-cases for various issues
    Fix dist tarballs to use PAX format to overcome UID/GID limitations
    Fix in-tree python binding build with setup.py (related to RhBug:531543)
    Fix librpmsign library to follow same versioning as other rpm libraries for consistency's sake


Summary of changes from RPM 4.11.1
General bugfixes and enhancements

    Fix removed symlinks affecting fingerprinting (RhBug:???)
    Fix bogus dependency check errors from installed packages with self-obsoletes and -conflicts
    Fix bogus header growth on export in some circumstances, such as install (RhBug:953719)
    Fix byteorder for 64bit tags on big-endian systems (RhBug:1012946)
    Fix signature generation using RPMSIGTAG_LONGSIZE when not needed (RhBug:1012595)
    Fix segfault executing a -p <lua> scriptlet without a body (RhBug:1004062)
    Fix failure to install relocated package with unowned directories (RhBug:1001553)
    Fix scriptlets in relocatable packages not always executing with $RPM_INSTALL_PREFIX* defined (RhBug:979443)
    Fix RPMTAG_NOSOURCE and RPMTAG_NOPATCH tags defined as non-arrays (RhBug:991329)
    Fix a possible loophole in file triplet sanity-checking
    Fix name service initialization where passwd and group service differs from host (ticket #157)
    Add support for ppc64le architecture

Package building

    Fix double-free on %caps() wildcard %files entry (RhBug:956190)
    Fix sub-package names not getting sanity-checked (RhBug:1039520)
    Fix invalid separators in EVR passing sanity checking
    Fix some invalid characters in dependency range operators passing sanity checking
    Fix autogenerated dependencies bypassing sanity-checking (related to RhBug:503846)
    Fix python libdirs in non-root prefix not getting bytecompiled (RhBug:868332)
    Fix (remove) bogus __find_requires|provides macro definitions in macros.perl (RhBug:1043149)
    Fix (really) debugedit choking on .debug_gdb_scripts section (SuseBug:818502)
    Fix %autosetup git patch application to handle file additions (RhBug:1059285)
    Add automatic generation for appdata() and application() provides
    Add support for (quoted) whitespace in automatically generated dependencies (RhBug:503846)

Python bindings

    Fix mode and flags not honored when reopening a file descriptor as rpm.fd
    Fix RPMFILE_ICON and RPMFILE_SPECFILE constants missing
    Fix rpm.dsSingle() swapped arguments (regession introduced in rpm 4.8.0)
    Fix Python 3 compatibility issues in rpm.TransactionSet class
    Fix module import succeeding on rpm initialization failure
    Add .open() class-method to rpm.fd
    Add open-mode and -flags to rpm.fd as properties
    Add support for reopening an rpm.fd file descriptor
    Add accessor for spec %check section
    Add bindings for rpm stringpool
    Add support for shared stringpool with rpm.fi and rpm.ds objects (optional pool argument to constructor)

Internal improvements and cleanups

    Fix minor memory leak in %files parsing
    Fix rpmstrPoolRehash() missing last id
    Fix string pool artifacts (unreliable rpmstrPoolNumStr(), empty strings showing up on rehash etc) caused by dummy entries
    Fix unnecessary /proc dependency if getauxval(3) is available
    Fix various minor issues in beecrypt crypto backend
    Fix possible mishandling of handing environment open on EACCESS and EROFS returns
    Optimize / cleanup %attr() and %defattr() string storage
    Optimize dependency set management in file classifier
    Optimize MPI length validation
    Optimize beecrypt crypto backend

Build process

    Add upport 7za and 7z as alternatives to 7-zip
    Fix an include portability issue
    Add several new test-cases
jperkin pushed a commit that referenced this pull request Jun 17, 2015
### 1.7.2 / 2015-04-19

#### Bug fixes
* Fix #138 (a regression of #131). PR #139.

### 1.7.1 / 2015-02-24

#### Enhancements
* Add travis CI configuration (Eli Young (@elyscape), #130)
* Add Rubinius to Build Matrix with Allowed Failure (Brandon Fish
(bjfish), #132)
* Make some adjustments on tests (Abinoam Marques Jr., #133, #134)
* Drop support for Ruby 1.8 (Abinoam Marques Jr., #134)

#### Bug fixes
* Fix IO.console.winsize returning reversed column and line values (Fission Xuiptz (@fissionxuiptz)), #131)

### 1.7.0 / 2015-02-18

#### Bug fixes
* Fix correct encoding of statements to output encoding (Dāvis (davispuh), #110)
* Fix character echoing when echo is false and multibyte character is typed (Abinoam Marques Jr., #117 #118)
* Fix backspace support on Cyrillic (Abinoam Marques Jr., #115 #118)
* Fix returning wrong encoding when echo is false (Abinoam Marques Jr., #116 #118)
* Fix Question #limit and #realine incompatibilities (Abinoam Marques Jr. #113 #120)
* Fix/improve string coercion on #say (Abinoam Marques Jr., #98 #122)
* Fix #terminal_size returning nil in some terminals (Abinoam Marques Jr., #85 #123)

#### Enhancements
* Improve #format_statement String coercion (Michael Bishop
(michaeljbishop), #104)
* Update homepage url on gemspec (Rubyforge->GitHub) (Edward Anderson
(nilbus), #107)
* Update COPYING file (Vít Ondruch (voxik), #109)
* Improve multi-byte encoding support (Abinoam Marques Jr., #115 #116 #117 #118)
* Make :grey -> :gray and :light -> :bright aliases (Abinoam Marques Jr., #114 #119)
* Return the default object (as it is) when no answer given (Abinoam Marques Jr., #112 #121)
* Added test for Yaml serialization of HighLine::String (Abinoam Marques Jr., #69 #124)
* Make improvements on Changelog and Rakefile (Abinoam Marques Jr., #126 #127 #128)
jperkin pushed a commit that referenced this pull request Sep 1, 2015
v1.2.1

Nothing changed from v1.2.0.

v1.2.0

    Out-of-line mode: int a[][...]; can be used to declare a
    structure field or global variable which is, simultaneously,
    of total length unknown to the C compiler (the a[] part) and
    each element is itself an array of N integers, where the value
    of N is known to the C compiler (the int and [...] parts around
    it). Similarly, int a[5][...]; is supported (but probably less
    useful: remember that in C it means int (a[5])[...];).
    PyPy: the lib.some_function objects were missing the attributes
    __name__, __module__ and __doc__ that are expected e.g. by some
    decorators-management functions from functools.
    Out-of-line API mode: you can now do from _example.lib import
    x to import the name x from _example.lib, even though the lib
    object is not a standard module object. (Also works in from
    _example.lib import *, but this is even more of a hack and will
    fail if lib happens to declare a name called __all__. Note that
    * excludes the global variables; only the functions and constants
    make sense to import like this.)
    lib.__dict__ works again and gives you a copy of the dictâassuming
    that lib has got no symbol called precisely __dict__. (In
    general, it is safer to use dir(lib).)
    Out-of-line API mode: global variables are now fetched on demand
    at every access. It fixes issue #212 (Windows DLL variables),
    and also allows variables that are defined as dynamic macros
    (like errno) or __thread -local variables. (This change might
    also tighten the C compilerâs check on the variablesâ type.)
    Issue #209: dereferencing NULL pointers now raises RuntimeError
    instead of segfaulting. Meant as a debugging aid. The check is
    only for NULL: if you dereference random or dead pointers you
    might still get segfaults.
    Issue #152: callbacks: added an argument ffi.callback(...,
    onerror=...). If the main callback function raises an exception
    and onerror is provided, then onerror(exception, exc_value,
    traceback) is called. This is similar to writing a try: except:
    in the main callback function, but in some cases (e.g. a signal)
    an exception can occur at the very start of the callback
    functionâbefore it had time to enter the try: except: block.
    Issue #115: added ffi.new_allocator(), which officializes
    support for alternative allocators.
jperkin pushed a commit that referenced this pull request Dec 14, 2015
Pkgsrc changes:

- use ${PREFIX} for icon path in example.jwmrc
- rename patch files per new format
- add patch comments
- take maintainership


Upstream changes list from
 http://joewing.net/projects/jwm/release-2.3.shtml

JWM v2.3 Release Notes

This is a collection of major changes between JWM v2.2 and JWM v2.3.
Version 2.3.0 was released 20150618.
You can download the latest snapshot of JWM here: jwm-1356.tar.xz.

New Features

  * Added support for client requested XRaiseWindow (issue #117).
  * Added native language support for the confirm dialog.
  * Added support for _NET_RESTACK_WINDOW (issue #118).
  * Added key binding to send the current window to a different desktop (issue
    #119).
  * Support the specification of an alternate configuration file (patch from
    Brian Bidulock)
  * Added Corner option to configure the roundedness of windows.
  * Updated the look of borders around menus and trays.
  * Add support for _NET_WM_MOVERESIZE (issue #142).
  * Add the fullscreen group option (patch from George Shaw).
  * Made window style configuration more consistent (may break old
    configuration files).
  * Add scale background type.
  * Added group options: nomin, nomax, noclose, nomove, noresize (issue #152),
    and nofullscreen (issue #163).
  * Added the Outline tag to MenuStyle to specify the color of menu outlines
    (issue #31).
  * Added the Outline tag to TrayStyle to specify the color of tray outlines.
  * To conform with GNU standards, running "make install" no longer strips the
    executable. To strip the executable, "make install?strip" can be used
    instead.
  * Added the ability to swallow the same client into a tray multiple times.
  * Added the ability to specify where the tray is hidden when auto-hide is
    enabled (issue #34).
  * Menu Includes are now loaded dynamically when a menu is shown rather than
    when JWM starts.
  * Added the sendu, sendd, sendl and sendr key bindings to send a window to a
    different desktop (issue #119).
  * Added the maxh, maxv, maxtop, maxbottom, maxleft and maxright key bindings
    (issues #120 and #157).
  * Added the ability to have separate actions per mouse button for tray
    buttons (issue #171). This is accomplished using the Button tag. For
    example:
    <TrayButton label="My Button">
      <Button mask="1">
        exec:program_for_left_click
      </Button>
      <Button mask="45">
        exec:program_for_scroll_wheel
      </Button>
    </TrayButton>
    The Button tags are optional. By default the action will use mouse button
    mask 123.
  * Add the ability to have separate actions per mouse button for clock tray
    components (issue #171) and the ability to have clock tray components run
    actions like tray buttons (issue #172).
  * Add support for more than 10 menus. Now 26 additional menus can be defined
    using the letters a through z.

Configuration Changes

The following XSLT is available to update JWM v2.2 configuration files for use
with JWM v2.3: jwm-2.3.xslt.

To convert an existing v2.2 configuration file using xsltproc, run:

cp ~/.jwmrc ~/.jwmrc.old
xsltproc jwm-2.3.xslt ~/.jwmrc.old > ~/.jwmrc

If you have multiple configuration files, it may be necessary to apply the XSLT
to some or all of them depending on what configuration options are stored in
the file.

A summary of configuration changes follows.

  * The ActiveBackground and ActiveForeground tags have been replaced by
    Background and Foreground under the Active tag. This applies to TrayStyle,
    TaskListStyle, TrayButtonStyle, PagerStyle, and MenuStyle.
  * The Inactive tag under WindowStyle has been removed. The tags that used to
    go within this tag now go directly under the WindowStyle tag.
  * The autohide attribute in Tray now determines where the tray should be
    hidden (left, right, top, bottom, or off) instead of true or false.
  * Now actions in the Clock tag must be prefixed with exec: to run an external
    program.

See the configuration documentation for documentation on all configuration
options.

Bug Fixes

  * ICCCM 2.0 WM_S selection compliance (patch from Brian Bidulock).
  * Fixed client window position after maximize/restore (issue #115, patch from
    Biran Bidulock).
  * Fixed window mapping bug with show desktop (issue #114).
  * Give focus to the top-most window after show desktop (issue #64).
  * Fix uninitialized memory when loading images (patch from Brian Bidulock).
  * Fix overlapping string issue with FriBidi (patch from Brian Bidulock).
  * Fixed non-UTF8 locales (issue #56).
  * Fixed transparency issue with some applications (issue #130).
  * Fixed focus after key events (patch from Brian Bidulock).
  * Fixed loss of focus after restoring windows (issue #131).
  * Fix setting of _NET_WM_STATE_HIDDEN when a window is minimized (issue #133,
    patch from Brian Bidulock).
  * Grab input focus at startup if not already set (issue #148).

Updated Translations

  * Russian (Aleksandr Samusenko)
  * French (Pierrick)
  * Italian (Flavio aka Man from Mars)
  * Spanish (Pablo Lezaeta)

Changes in 2.3.1 (20150628)

  * Added an option to group windows by class in the task bar. (the group
    attribute of the TrayStyle tag).
  * Fixed an issue with menus showing up across monitors when Xinerama is
    enabled.
  * Added the ability to show Motif-style handles on windows (the decorations
    attribute of WindowStyle).
  * Fixed an issue where the next/prev key bindings would not advance past a
    window that does not accept input focus.
  * Fixed the behavior of the Include tag within menus so that it no longer
    creates a submenu.
  * Menus included using Include are no longer loaded each time the menu is
    accessed.
  * Added a Dynamic submenu that will re-load its menu contents each time it is
    accessed.

Changes in 2.3.2 (20150913)

  * Restored the ability to specifiy that windows should not have an icon
    (using the "icon:" group option).
  * JWM will now try several common extensions when loading icons.
  * Fixed the height and default label for dynamic menus (issue #188).
  * Improved handling of colormaps for pseudo-color displays.
  * Fixed handling of WM_STATE on big-endian machines.
  * Fixed an issue with menus getting stuck open.
  * Removed the TaskListStyle, TrayButtonStyle, and ClockStyle configuration
    options. These options are now set from TrayStyle.
  * Added the Hungarian translation (from Hermit).
  * Added the ability to give a 3D look to menus and trays by specifying
    decorations="motif" in MenuStyle and TrayStyle respectively.
  * Fixed an issue where JWM key bindings would not be available to
    applications (issue #201).
  * JWM now highlights the first menu item when opening a menu with the
    keyboard (issue #102).
  * Add the ability to selectively enable popups (issue #189).
  * Various other fixes.

Changes in 2.3.3 (20151118)

  * JWM windows now set _NET_WM_WINDOW_TYPE (issue #223).
  * Added the Chinese translation (from Christopher Meng).
  * Added the height attribute to TaskList (issue #227).
  * Fixed tray button mouse bindings for the scroll wheel buttons (issue #229).
  * Added the restore key binding (issue #233).
  * Made middle-click on a task list item close the window (issue #232).
  * Added support for tooltips in menus (issue #111).
  * Added Portuguese (Brazil) translation (from Holmes).
  * Fixed an issue where the dock would change size if its size was not
    explicitly set (issue #238).
  * Fixed the height calculation of vertical trays (issue #228).

Changes in 2.3.4 (20151122)

  * Now a negative tray width/height can be specified to subtract from the
    screen width/height (issue #250).
  * Added the list configuration option to TrayStyle to allow displaying
    windows from all desktops (all) or only the current desktop (the default,
    desktop) in task lists.
  * Improved scaling of JPEG and SVG images (issue #253).
  * Fixed the rendering of fixed-aspect background images.
  * Added the drag group option (issue #235).
  * Fixed rendering of window borders without a title bar.
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 Aug 24, 2016
NEWS:
Version 2.5.3
-------------
- Updated zoneinfo to 2016d
- Fixed parser bug where unambiguous datetimes fail to parse when dayfirst is
  set to true. (gh issue #233, pr #234)
- Bug in zoneinfo file on platforms such as Google App Engine which do not
  do not allow importing of subprocess.check_call was reported and fixed by
  @savraj (gh issue #239, gh pr #240)
- Fixed incorrect version in documentation (gh issue #235, pr #243)

Version 2.5.2
-------------
- Updated zoneinfo to 2016c
- Fixed parser bug where yearfirst and dayfirst parameters were not being
  respected when no separator was present. (gh issue #81 and #217, pr #229)

Version 2.5.1
-------------
- Updated zoneinfo to 2016b
- Changed MANIFEST.in to explicitly include test suite in source distributions,
  with help from @koobs (gh issue #193, pr #194, #201, #221)
- Explicitly set all line-endings to LF, except for the NEWS file, on a
  per-repository basis (gh pr #218)
- Fixed an issue with improper caching behavior in rruleset objects (gh issue
  #104, pr #207)
- Changed to an explicit error when rrulestr strings contain a missing BYDAY
  (gh issue #162, pr #211)
- tzfile now correctly handles files containing leapcnt (although the leapcnt
  information is not actually used). Contributed by @hjoukl (gh issue #146, pr
  #147)
- Fixed recursive import issue with tz module (gh pr #204)
- Added compatibility between tzwin objects and datetime.time objects (gh issue
  #216, gh pr #219)
- Refactored monolithic test suite by module (gh issue #61, pr #200 and #206)
- Improved test coverage in the relativedelta module (gh pr #215)
- Adjusted documentation to reflect possibly counter-intuitive properties of
  RFC-5545-compliant rrules, and other documentation improvements in the rrule
  module (gh issue #105, gh issue #149 - pointer to the solution by @phep,
  pr #213).


Version 2.5.0
-------------
- Updated zoneinfo to 2016a
- zoneinfo_metadata file version increased to 2.0 - the updated updatezinfo.py
  script will work with older zoneinfo_metadata.json files, but new metadata
  files will not work with older updatezinfo.py versions. Additionally, we have
  started hosting our own mirror of the Olson databases on a github pages
  site (https://dateutil.github.io/tzdata/) (gh pr #183)
- dateutil zoneinfo tarballs now contain the full zoneinfo_metadata file used
  to generate them. (gh issue #27, gh pr #85)
- relativedelta can now be safely subclassed without derived objects reverting
  to base relativedelta objects as a result of arithmetic operations.
  (lp:1010199, gh issue #44, pr #49)
- relativedelta 'weeks' parameter can now be set and retrieved as a property of
  relativedelta instances. (lp: 727525, gh issue #45, pr #49)
- relativedelta now explicitly supports fractional relative weeks, days, hours,
  minutes and seconds. Fractional values in absolute parameters (year, day, etc)
  are now deprecated. (gh issue #40, pr #190)
- relativedelta objects previously did not use microseconds to determine of two
  relativedelta objects were equal. This oversight has been corrected.
  Contributed by @elprans (gh pr #113)
- rrule now has an xafter() method for retrieving multiple recurrences after a
  specified date. (gh pr #38)
- str(rrule) now returns an RFC2445-compliant rrule string, contributed by
  @schinckel and @armicron (lp:1406305, gh issue #47, prs #50, #62 and #160)
- rrule performance under certain conditions has been significantly improved
  thanks to a patch contributed by @dekoza, based on an article by Brian Beck
  (@exogen) (gh pr #136)
- The use of both the 'until' and 'count' parameters is now deprecated as
  inconsistent with RFC2445 (gh pr #62, #185)
- Parsing an empty string will now raise a ValueError, rather than returning the
  datetime passed to the 'default' parameter. (gh issue #78, pr #187)
- tzwinlocal objects now have a meaningful repr() and str() implementation
  (gh issue #148, prs #184 and #186)
- Added equality logic for tzwin and tzwinlocal objects. (gh issue #151,
  pr #180, #184)
- Added some flexibility in subclassing timelex, and switched the default
  behavior over to using string methods rather than comparing against a fixed
  list. (gh pr #122, #139)
- An issue causing tzstr() to crash on Python 2.x was fixed. (lp: 1331576,
  gh issue #51, pr #55)
- An issue with string encoding causing exceptions under certain circumstances
  when tzname() is called was fixed. (gh issue #60, #74, pr #75)
- Parser issue where calling parse() on dates with no day specified when the
  day of the month in the default datetime (which is "today" if unspecified) is
  greater than the number of days in the parsed month was fixed (this issue
  tended to crop up between the 29th and 31st of the month, for obvious reasons)
  (canonical gh issue #25, pr #30, #191)
- Fixed parser issue causing fuzzy_with_tokens to raise an unexpected exception
  in certain circumstances. Contributed by @MichaelAquilina (gh pr #91)
- Fixed parser issue where years > 100 AD were incorrectly parsed. Contributed
  by @Bachmann1234 (gh pr #130)
- Fixed parser issue where commas were not a valid separator between seconds
  and microseconds, preventing parsing of ISO 8601 dates. Contributed by
  @RyansS (gh issue #28, pr #106)
- Fixed issue with tzwin encoding in locales with non-Latin alphabets
  (gh issue #92, pr #98)
- Fixed an issue where tzwin was not being properly imported on Windows.
  Contributed by @labrys. (gh pr #134)
- Fixed a problem causing issues importing zoneinfo in certain circumstances.
  Issue and solution contributed by @alexxv (gh issue #97, pr #99)
- Fixed an issue where dateutil timezones were not compatible with basic time
  objects. One of many, many timezone related issues contributed and tested by
  @labrys. (gh issue #132, pr #181)
- Fixed issue where tzwinlocal had an invalid utcoffset. (gh issue #135,
  pr #141, #142)
- Fixed issue with tzwin and tzwinlocal where DST transitions were incorrectly
  parsed from the registry. (gh issue #143, pr #178)
- updatezinfo.py no longer suppresses certain OSErrors. Contributed by @bjamesv
  (gh pr #164)
- An issue that arose when timezone locale changes during runtime has been
  fixed by @carlosxl and @mjschultz (gh issue #100, prs #107, #109)
- Python 3.5 was added to the supported platforms in the metadata (@tacaswell
  gh pr #159) and the test suites (@moreati gh pr #117).
- An issue with tox failing without unittest2 installed in Python 2.6 was fixed
  by @moreati (gh pr #115)
- Several deprecated functions were replaced in the tests by @moreati
  (gh pr #116)
- Improved the logic in Travis and Appveyor to alleviate issues where builds
  were failing due to connection issues when downloading the IANA timezone
  files. In addition to adding our own mirror for the files (gh pr #183), the
  download is now retried a number of times (with a delay) (gh pr #177)
- Many failing doctests were fixed by @moreati. (gh pr #120)
- Many fixes to the documentation (gh pr #103, gh pr #87 from @radarhere,
  gh pr #154 from @gpoesia, gh pr #156 from @awsum, gh pr #168 from @ja8zyjits)
- Added a code coverage tool to the CI to help improve the library. (gh pr #182)
- We now have a mailing list - [email protected], graciously hosted by
  Python.org.


Version 2.4.2
-------------
- Updated zoneinfo to 2015b.
- Fixed issue with parsing of tzstr on Python 2.7.x; tzstr will now be decoded
  if not a unicode type. gh #51 (lp:1331576), gh pr #55.
- Fix a parser issue where AM and PM tokens were showing up in fuzzy date
  stamps, triggering inappropriate errors. gh #56 (lp: 1428895), gh pr #63.
- Missing function "setcachesize" removed from zoneinfo __all__ list by @RyansS,
  fixing an issue with wildcard imports of dateutil.zoneinfo. (gh pr #66).
- (PyPi only) Fix an issue with source distributions not including the test
  suite.


Version 2.4.1
-------------

- Added explicit check for valid hours if AM/PM is specified in parser.
  (gh pr #22, issue #21)
- Fix bug in rrule introduced in 2.4.0 where byweekday parameter was not
  handled properly. (gh pr #35, issue #34)
- Fix error where parser allowed some invalid dates, overwriting existing hours
  with the last 2-digit number in the string. (gh pr #32, issue #31)
- Fix and add test for Python 2.x compatibility with boolean checking of
  relativedelta objects. Implemented by @nimasmi (gh pr #43) and Cédric Krier
  (lp: 1035038)
- Replaced parse() calls with explicit datetime objects in unit tests unrelated
  to parser. (gh pr #36)
- Changed private _byxxx from sets to sorted tuples and fixed one currently
  unreachable bug in _construct_byset. (gh pr #54)
- Additional documentation for parser (gh pr #29, #33, #41) and rrule.
- Formatting fixes to documentation of rrule and README.rst.
- Updated zoneinfo to 2015a.
mamash pushed a commit that referenced this pull request Oct 10, 2016
v1.2.1

Nothing changed from v1.2.0.

v1.2.0

    Out-of-line mode: int a[][...]; can be used to declare a
    structure field or global variable which is, simultaneously,
    of total length unknown to the C compiler (the a[] part) and
    each element is itself an array of N integers, where the value
    of N is known to the C compiler (the int and [...] parts around
    it). Similarly, int a[5][...]; is supported (but probably less
    useful: remember that in C it means int (a[5])[...];).
    PyPy: the lib.some_function objects were missing the attributes
    __name__, __module__ and __doc__ that are expected e.g. by some
    decorators-management functions from functools.
    Out-of-line API mode: you can now do from _example.lib import
    x to import the name x from _example.lib, even though the lib
    object is not a standard module object. (Also works in from
    _example.lib import *, but this is even more of a hack and will
    fail if lib happens to declare a name called __all__. Note that
    * excludes the global variables; only the functions and constants
    make sense to import like this.)
    lib.__dict__ works again and gives you a copy of the dictâassuming
    that lib has got no symbol called precisely __dict__. (In
    general, it is safer to use dir(lib).)
    Out-of-line API mode: global variables are now fetched on demand
    at every access. It fixes issue #212 (Windows DLL variables),
    and also allows variables that are defined as dynamic macros
    (like errno) or __thread -local variables. (This change might
    also tighten the C compilerâs check on the variablesâ type.)
    Issue #209: dereferencing NULL pointers now raises RuntimeError
    instead of segfaulting. Meant as a debugging aid. The check is
    only for NULL: if you dereference random or dead pointers you
    might still get segfaults.
    Issue #152: callbacks: added an argument ffi.callback(...,
    onerror=...). If the main callback function raises an exception
    and onerror is provided, then onerror(exception, exc_value,
    traceback) is called. This is similar to writing a try: except:
    in the main callback function, but in some cases (e.g. a signal)
    an exception can occur at the very start of the callback
    functionâbefore it had time to enter the try: except: block.
    Issue #115: added ffi.new_allocator(), which officializes
    support for alternative allocators.
jperkin pushed a commit that referenced this pull request Dec 16, 2016
-----------------------------------
1.991     2016-08-23 16:04:29CEST+0200 Europe/Paris
  * release as a normal release after successful testing of the dev releases

1.990_02  2016-08-06 20:30:30CEST+0200 Europe/Paris
   * move reconnection test in reconnect test file to avoid test issues
     (skip_all but still run some tests)

1.990_01  2016-08-05 17:17:28CEST+0200 Europe/Paris
   * fix issue #122: don't attempt to close an already closed or undefined socket
   * fix issue #120 and #111: don't depend on locales for matching error messages
   * fix issue #118: spelling mistake
   * fix issue #116: forbid continuing using socket after a read timeout
   * fix issue #115: Unexpected error condition 54/freebsd
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