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

www/ijb: fix build on SmartOS #145

Closed
wants to merge 1 commit into from
Closed

Conversation

wiedi
Copy link

@wiedi wiedi commented Dec 8, 2013

fix build on SmartOS

jperkin pushed a commit that referenced this pull request Dec 9, 2013
GObject Introspection based bindings on Windows support release!

=== Changes

==== NEWS

  * Fixes
    * Fixed a typo. [Reported by Masafumi Yokoyama]
    * FIxed a typo. [Reported by Toyo Abe]

==== Ruby/GLib2

  * Improvements
    * Moved lib/gnome2-*.rb files to lib/gnome2/ directory.
    * Supported GLib 2.34. [Reported by OBATA Akio]

==== Ruby/GdkPixbuf2

  * Fixes
    * [windows] Fixed PNG can't be handled problem.
      [ruby-gnoem2-devel-ja] [Reported by Masafumi Yokoyama]

==== Ruby/GDK3

  * Improvements
    * [windows] Removed needless Greybird theme.
      [ruby-gnome2-devel-en] [Reported by Regis d'Aubarede]
    * Added Gdk::Window#create_cairo_context
      [ruby-gnome2-devel-en] [Reported by Detlef Reichl]

==== Ruby/GTK3

  * Improvements
    * Updated samples.
      [GitHub #140][GitHub #141][GitHub #144]
      [Patch by Simon Arnaud]
      [GitHub #142][GitHub #143][GitHub #145][GitHub #146][GitHub #148]
      [Patch by Detlef Reichl]

==== Ruby/GObjectIntrospection

  * Improvements
    * [windows] Supported!

==== Ruby/GStreamer

  * Improvements
    * Supported GStreamer 1.0!
    * Migrated to GObject Introspection bindings!
    * Dropped GStreamer 0.10 support.

==== Ruby/Clutter

  * Improvements
    * [windows] Supported!

==== Ruby/ClutterGTK

  * Improvements
    * [windows] Supported!
jperkin pushed a commit that referenced this pull request Dec 9, 2013
== v0.15.0 [2013-03-03] Michael Granger <ged@FaerieMUD.org>

Bugfixes:

- Fix segfault in PG::Result#field_values when called with non String value.
- Fix encoding of messages delivered by notice callbacks.
- Fix text encoding for Connection#wait_for_notify and Connection#notifies.
- Fix 'Bad file descriptor' problems under Windows: wrong behaviour of
  #wait_for_notify() and timeout handling of #block on Ruby 1.9.

Documentation fixes:

- conn#socket() can not be used with IO.for_fd() on Windows.

Enhancements:

- Tested under Ruby 2.0.0p0.
- Add single row mode of PostgreSQL 9.2.
- Set fallback_application_name to programm name $0. Thanks to Will Leinweber
  for the patch.
- Release Ruby's GVL while calls to blocking libpq functions to allow better
  concurrency in threaded applications.
- Refactor different variants of waiting for the connection socket.
- Make use of rb_thread_fd_select() on Ruby 1.9 and avoid deprecated
  rb_thread_select().
- Add an example of how to insert array data using a prepared statement (#145).
- Add continous integration tests on travis-ci.org.
- Add PG::Result#each_row for iterative over result sets by row. Thanks to
  Aaron Patterson for the patch.
- Add a PG::Connection#socket_io method for fetching a (non-autoclosing) IO
  object for the connection's socket.

Specs:

- Fix various specs to run on older PostgreSQL and Ruby versions.
- Avoid fork() in specs to allow usage on Windows and JRuby.
jperkin pushed a commit that referenced this pull request Dec 9, 2013
Changelog:

libmp3splt version 0.8.2
-------------------------------------------------------------

- added option to specify the input tags encoding for when writing ID3v2 tags
(SPLT_OPT_INPUT_TAGS_ENCODING)
- enable -O3 by default
- added LIBMP3SPLT_MAJOR_VERSION, LIBMP3SPLT_MINOR_VERSION and LIBMP3SPLT_MICRO_VERSION
(feature request #96)
- added option SPLT_TAGS_ORIGINAL for mp3splt_tags_set
- added option to keep the original tags and just replace them when importing a CUE or CDDB file
(SPLT_OPT_CUE_CDDB_ADD_TAGS_WITH_KEEP_ORIGINAL_TAGS) (feature request #95)
- added 'split into memory' ability with a callback function for use with 'pretend to split'
(feature request #94)
- replaced mp3splt.m4 with pkg-config (bug #145)
- corrected build files (configure.ac, Makefile.am, ...) and check using 'make distcheck' (bug #147)
- fixed a lot of doxygen issues

libmp3splt version 0.8.1a
-------------------------------------------------------------

- corrected ChangeLog file of 0.8.1 release
- added minimal.c in the distribution for the doxygen documentation
- added libmp3splt_ico.svg in the distribution for the doxygen documentation
- added something in the empty_footer.html file to avoid doxygen segfault

libmp3splt version 0.8.1
-------------------------------------------------------------

- fixed a bug - was crashing when removing tags from skippoints
- added option to set output ID3v2 tags encoded in latin1, UTF-8 or UTF16
- forgot to add 'empty_footer.html' in the distribution

libmp3splt version 0.8
-------------------------------------------------------------

- rewritten libmp3splt public API to target future 1.0 stable release
- written complete documentation of the public API
- done issues #40 and #85 - added minimum silence length parameter for auto adjust
- implemented back the proxy feature with basic authentification - feature #50
- added option to generate exactly the same input tags bytes using @o
- added minimum silence length for trim silence mode (minimum silence to trigger a trimming)
- done issue #12 - added option to output the full silence log useful to plot a graph
- enhanced the CUE export to export the tags as REM comments and also the splitpoint names
- fixed bug when detecting the input tags version - output had no tags when the input only had ID3v1
- fixed bug: output tags versions was not equal to the input file tags versions when the user was
setting custom tags without any @o to get the original tags
- done issue #79 - added 0 to the number of digits to output in order to be able to support
the old mp3splt output format
- fixed bug #141 - when input file is a symlink and output directory is the one of the input file
- amplitude more precise with ogg vorbis files
- plugins are now installed in $(libdir)/libmp3splt$(SONAME) instead of $(libdir)/libmp3splt
- fixed bug #131 - use /usr/lib64 instead of /usr/lib on x64 in mp3splt.m4
- fixed bug #133 - updated GPLv2 COPYING file
- fixed bug on mp3 trim silence scan: last frame was skipped
- fixed bug #134 - use of deprecated gethostbyname()

-------------------------------------------------------------
libmp3splt version 0.7.3

- added the trackjoin parameter for silence detection split: tracks shorter than trackjoin will be joined with others
- fixed bug: removing TLEN id3v2 tag from the split files
- fixed bug #3530488 - regression introduced with ogg multiple logical streams

libmp3splt version 0.7.2
-------------------------------------------------------------

- fixed error when ID3v2 was containing what appears a valid frame; make sure we skip the ID3v2 after looking for the first frames
- fixed bug #3497957 libtoolize vs glibtoolize
- fixed #3487543 - compilation without pcre support
- added the shots parameter to silence detection

libmp3splt version 0.7.1
-------------------------------------------------------------

- added minimum track length option for silence scan - closes #2393766
- added option to set original tags when using 'replace tags in tags' - closes #3407314
- added support for multiple ogg/vorbis logical streams (mail)
- fixed mp3 frame mode with skippoint when skippoint too small (on the same frame as previous)
- fixed some regression regarding mp3splt v2.1c - removed some checks relative to the total
time - we cannot rely on the total time - for example with concatenated mp3s
- fixed several audacity labels issues
- fixed inconsistency (extra 0 padding) between @n of custom tags and @n of output filename (mail)
- fixed compilation error without libid3tag
- fixed #3385833 - don't apply debugging flags or warnings flags by default:
added --enable-c-debug --enable-optimise --enable-extra-warnings
- fixed #3385827 - added --disable-doxygen_doc
- fixed #3385829 - building doxygen documentation by itself + installing doxygen files
jperkin pushed a commit that referenced this pull request Dec 9, 2013
Changelog:

#mp3splt version 2.5.2

- added option -I to specify the input tags encoding for when writing ID3v2 tags (ISO-8859-1, UTF-8
or UTF-16)
- added option -K to keep the original tags and just replace them when importing a CUE or CDDB file
(feature request #95)
- fixed bug #149 - use of getline() on mac
- libmp3splt check is now more correct and checks for the exact version of libmp3splt with = instead
of >=; will be changed to >= when final version of libmp3splt will be released
- now using pkg-config instead of mp3splt.m4 (bug #145)
- corrected build files (configure.ac, Makefile.am, ...) and check using 'make distcheck' (bug #147)

#mp3splt version 2.5.1

- fixed a bug when removing the tags from skippoints (libmp3splt)
- added option to set output ID3v2 tags encoded in latin1, UTF-8 or UTF16

#mp3splt version 2.5

- done issues #40 and #85 - added minimum silence length parameter for auto adjust (mainly libmp3splt)
- added minimum silence length for trim silence mode (minimum silence to trigger a trimming)
(mainly libmp3splt)
- done issue #12 - added option to output the full silence log useful to plot a graph
(mainly libmp3splt)
- implemented back the proxy feature with basic authentification - feature #50 (mainly libmp3splt)
- added option to generate exactly the same input tags bytes using @o (mainly libmp3splt)
- enhanced the CUE export to export the tags as REM comments and also the splitpoint names (libmp3splt)
- fixed bug when detecting the input tags version - output had no tags when the input only had ID3v1
(libmp3splt)
- fixed bug: output tags versions was not equal to the input file tags versions when the user was
setting custom tags without any @o to get the original tags (libmp3splt)
- done issue #79 - added 0 to the number of digits to output in order to be able to support
the old mp3splt output format (libmp3splt)
- fixed bug #141 - when input file is a symlink and output directory is the one of the input file
(libmp3splt)
- fixed bug on mp3 trim silence scan: last frame was skipped (libmp3splt)
- fixed bug #133 - updated GPLv2 COPYING file
- fixed bug #142 - skipped splitpoints were handled wrong by '-c'

#mp3splt version 2.4.3

- added the trackjoin parameter for silence detection split: tracks shorter than trackjoin will be joined with others
- fixed bug: removing TLEN id3v2 tag from the split files (libmp3splt)
- fixed bug #3530488 - regression introduced with ogg multiple logical streams (libmp3splt)

#mp3splt version 2.4.2

- fixed error when ID3v2 was containing what appears a valid frame; make sure we skip the ID3v2 after looking for the first frames (libmp3splt)
- added the shots parameter to silence detection
(-p shots=INTEGER - minimum number of shots to be found as non silence after the silence)

#mp3splt version 2.4.1

- added minimum track length option for silence scan: 'trackmin' parameter to '-p' - closes #2393766
- added option to set original tags when using 'replace tags in tags' - use of #t, #a, ... - closes #3407314
- fixed #3399950 - regression on windows regarding the current working directory
- fixed some regression regarding mp3splt v2.1c - removed some checks relative to the total
- fixed #3385833 - don't apply debugging flags or warnings flags by default:
added --enable-c-debug --enable-optimise --enable-extra-warnings
- fixed #3424143 - added a small check for the -O option
- added support for multiple ogg/vorbis logical streams (mail) (libmp3splt)
- fixed mp3 frame mode with skippoint when skippoint too small (on the same frame as previous) (libmp3splt)
- fixed several audacity labels issues (libmp3splt)
- fixed inconsistency (extra 0 padding) between @n of -g and @n of -o (mail)
time - we cannot rely on the total time - for example with concatenated mp3s (libmp3splt)
jperkin pushed a commit that referenced this pull request Dec 9, 2013
Changelog:

-------------------------------------------------------------
mp3splt-gtk version 0.8.2

- fixed important bug in mp3splt-gtk: split using cue file was not splitting the last part
- fixed tags encoding issue in mp3splt-gtk: encode in UTF-8 tags if not valid UTF-8
- implemented "prelisten a section to its ending splitpoint" in mp3splt-gtk (feature request #98)
- libmp3splt check is now more correct and checks for the exact version of libmp3splt with = instead
of >=; will be changed to >= when final version of libmp3splt will be released
- now using pkg-config instead of mp3splt.m4 (bug #145)
- corrected build files (configure.ac, Makefile.am, ...) and check using 'make distcheck' (bug #147)

-------------------------------------------------------------
mp3splt-gtk version 0.8.1

- fixed important bug: application was crashing when pushing the split button without any
splitpoint (libmp3splt)
- fixed important bug: split by time was in hundreths of seconds instead of seconds

-------------------------------------------------------------
mp3splt-gtk version 0.8

- added tags edition from the splitpoints table - closes feature #92
- added cloning features for mass copying of tags using right click on the splitpoints table
- enhanced the CUE export to export the tags as REM comments and also the splitpoint names
- automatically save & restore splitpoints in '~/.mp3splt-gtk/splitpoints.cue'
- better amplitude wave display (wave does not "shake" anymore)
- done issue #37 & #138 - nicer GUI for the option 'same output directory as the input file'
- fixed amplitude wave to be more precise with ogg vorbis files (libmp3splt)
- fixed important bug on mp3splt-gtk 'Queue to player' button
- fixed bug #128 - hash symbol in filename breaks the player
- done feature #38 - reorder filenames in mp3splt-gtk (description_here_partXX)
- fixed bug #133 - updated GPLv2 COPYING file
- fixed bug #137 - autogen.sh should run libtoolize before aclocal/automake
- fixed bug #143 - be able to add splitpoint at the end from the player
- fixed bug #136 - various compilation issues
- fixed issue #90 - added back the icons to split preview and play preview in the splitpoints table
- added a lot of tooltip and GUI renamings
- done feature #91 - amplitude wave now persists in preferences
- added one more interpolation level for the amplitude wave (level 6)
- more precise wave preview in preferences
- fixed bug when detecting the input tags version - output had no tags when the input only had ID3v1
(libmp3splt)
- fixed bug #141 - when input file is a symlink and output directory is the one of the input file
(libmp3splt)
- amplitude more precise with ogg vorbis files (libmp3splt)
- fixed bug on mp3 trim silence scan: last frame was skipped (libmp3splt)

-------------------------------------------------------------
mp3splt-gtk version 0.7.3

- redesigned the mp3splt-gtk user interface
- added option to specify the wave quality in the parameters (for performance reasons)
- wave interpolation is now much correct - we use the douglas peucker algorithm instead of the previous one which was stupid
- added gray areas where no splitpoints - regarding #3520736
- added seek key shortcuts to the player - #1811400 & #3528001
- heavy refactoring of mp3splt-gtk code
- fixed bug: removing TLEN id3v2 tag from the split files (libmp3splt)
- fixed bug #3530488 - regression introduced with ogg multiple logical streams (libmp3splt)

-------------------------------------------------------------
mp3splt-gtk version 0.7.2

- fixed an important bug of memory leak in player drawing when using GTK+-2
- fixed bug not showing icon and image in the about dialog
- fix for the '--disable-gtk3' option; also fixed the gtk 2.x/3.x check
- made some player graphic optimisations
- added player refresh rate option in Preferences->Player
- added expanders to the player history and player splitpoints view
- we don't need gtk 2 version >= 2.20; changed it to 2.18

-------------------------------------------------------------
mp3splt-gtk version 0.7.1

- added minimum track length option for silence scan - closes #2393766
- added gtk3 support (auto detection or --enable-gtk3, --disable-gtk3) - almost closes #3385903
(some tests still need to be done)
- fixed #3385841 - removed scrollkeeper warnings
- fixed #3385827 - added --disable-doxygen_doc
- fixed #3385829 - building doxygen documentation by itself + installing doxygen files
- fixed #3385833 - don't apply debugging flags or warnings flags by default:
added --enable-c-debug --enable-optimise --enable-extra-warnings
- added support for multiple ogg/vorbis logical streams (mail) (libmp3splt)
- fixed mp3 frame mode with skippoint when skippoint too small (on the same frame as previous) (libmp3splt)
- fixed several audacity labels issues (libmp3splt)
- fixed some regression regarding mp3splt v2.1c - removed some checks relative to the total
time - we cannot rely on the total time - for example with concatenated mp3s (libmp3splt)
jperkin pushed a commit that referenced this pull request Dec 9, 2013
REPLACE_PYTHON in two files. From ChangeLog.txt:

## 2012-06-26 0.37

* Fixed datestr issue on Windows -- #155
* Fixed Python 2.4 compatability issues (tx fredludlow)
* Fixed error in utils.safewrite (tx shuge) -- #95
* Allow use of web.data() with app.request() -- #105
* Fixed an issue with session initializaton (tx beardedprojamz) -- #109
* Allow custom message on 400 Bad Request (tx patryk) -- #121
* Made djangoerror work on GAE. -- #80
* Handle malformatted data in the urls. -- #117
* Made it easier to stop the dev server -- #100, #122
* Added support fot customizing cookie_path in session (tx larsga) -- #89
* Added exception for "415 Unsupported Media" (tx JirkaChadima) -- #145
* Added GroupedDropdown to support `<optgroup>` tag (tx jzellman) -- #152
* Fixed failure in embedded interpreter - #87
* Optimized web.cookies (tx benhoyt) - #148
jperkin pushed a commit that referenced this pull request Dec 9, 2013
2.08    Thu Aug 22 23:11:45 CDT 2013
====================================
[ENHANCEMENTS]
ack now ignores CMake's build/cache directories by default.  Thanks,
Volodymyr Medvid.

Add shebang matching for --lua files.

Add documentation for --ackrc.

Add Elixir filetype.

Add --cathy option.  Thanks to Joe McMahon.

Add some helpful debugging tips when an invalid option is found.
Thanks to Charles Lee.

Ignore PDF files by default, because Perl will detect them as text.

Ignore .gif, .jpg, .jpeg and .png files.  They won't normally be
selected, but this is an optimization so that ack doesn't have to
open them to know.

[FIXES]
Ack's colorizing of output would get confused with multiple sets
of parentheses.  This has been fixed.  (Issue #276)

Ack would get confused when trying to colorize the output in
DOS-format files.  This has been fixed.  (Issue #145)


2.05_01 Tue May 28 10:12:04 CDT 2013
====================================
[ENHANCEMENTS]
We now ignore the node_modules directories created by npm.  Thanks,
Konrad Borowski.

--pager without an argument implies --pager=$PAGER.

--perl now recognizes Plack-style .psgi files.  Thanks, Ron Savage.

Added filetypes for Coffescript, JSON, LESS, and Sass.

[FIXES]
Command-line options now override options set in ackrc files.

ACK_PAGER and ACK_PAGER_COLOR now work as advertised.

Fix a bug resulting in uninitialized variable warnings when more
than one capture group was specified in the search pattern.

Make sure ack is happy to build and test under cron and other
console-less environments.

Colored output is now supported and on by default on Windows.
jperkin pushed a commit that referenced this pull request Dec 9, 2013
Babel Changelog
===============

Version 1.3
-----------

(bugfix release, released on July 29th 2013)

- Fixed a bug in likely-subtag resolving for some common locales.
  This primarily makes ``zh_CN`` work again which was broken
  due to how it was defined in the likely subtags combined with
  our broken resolving.  This fixes #37.
- Fixed a bug that caused pybabel to break when writing to stdout
  on Python 3.
- Removed a stray print that was causing issues when writing to
  stdout for message catalogs.

Version 1.2
-----------

(bugfix release, released on July 27th 2013)

- Included all tests in the tarball.  Previously the include
  skipped past recursive folders.
- Changed how tests are invoked and added separate standalone
  test command.  This simplifies testing of the package for
  linux distributors.

Version 1.1
-----------

(bugfix release, released on July 27th 2013)

- added dummy version requirements for pytz so that it installs
  on pip 1.4.
- Included tests in the tarball.

Version 1.0
-----------

(Released on July 26th 2013, codename Revival)

- support python 2.6, 2.7, 3.3+ and pypy - drop all other versions
- use tox for testing on different pythons
- Added support for the locale plural rules defined by the CLDR.
- Added `format_timedelta` function to support localized formatting of
  relative times with strings such as "2 days" or "1 month" (ticket #126).
- Fixed negative offset handling of Catalog._set_mime_headers (ticket #165).
- Fixed the case where messages containing square brackets would break with
  an unpack error.
- updated to CLDR 23
- Make the CLDR import script work with Python 2.7.
- Fix various typos.
- Sort output of list-locales.
- Make the POT-Creation-Date of the catalog being updated equal to
  POT-Creation-Date of the template used to update (ticket #148).
- Use a more explicit error message if no option or argument (command) is
  passed to pybabel (ticket #81).
- Keep the PO-Revision-Date if it is not the default value (ticket #148).
- Make --no-wrap work by reworking --width's default and mimic xgettext's
  behaviour of always wrapping comments (ticket #145).
- Add --project and --version options for commandline (ticket #173).
- Add a __ne__() method to the Local class.
- Explicitly sort instead of using sorted() and don't assume ordering
  (Jython compatibility).
- Removed ValueError raising for string formatting message checkers if the
  string does not contain any string formattings (ticket #150).
- Fix Serbian plural forms (ticket #213).
- Small speed improvement in format_date() (ticket #216).
- Fix so frontend.CommandLineInterface.run does not accumulate logging
  handlers (#227, reported with initial patch by dfraser)
- Fix exception if environment contains an invalid locale setting (#200)
- use cPickle instead of pickle for better performance (#225)
- Only use bankers round algorithm as a tie breaker if there are two nearest
  numbers, round as usual if there is only one nearest number (#267, patch by
  Martin)
- Allow disabling cache behaviour in LazyProxy (#208, initial patch from Pedro
  Algarvio)
- Support for context-aware methods during message extraction (#229, patch
  from David Rios)
- "init" and "update" commands support "--no-wrap" option (#289)
- fix formatting of fraction in format_decimal() if the input value is a float
  with more than 7 significant digits (#183)
- fix format_date() with datetime parameter (#282, patch from Xavier Morel)
- fix format_decimal() with small Decimal values (#214, patch from George Lund)
- fix handling of messages containing '\\n' (#198)
- handle irregular multi-line msgstr (no "" as first line) gracefully (#171)
- parse_decimal() now returns Decimals not floats, API change (#178)
- no warnings when running setup.py without installed setuptools (#262)
- modified Locale.__eq__ method so Locales are only equal if all of their
  attributes (language, territory, script, variant) are equal
- resort to hard-coded message extractors/checkers if pkg_resources is
  installed but no egg-info was found (#230)
- format_time() and format_datetime() now accept also floats (#242)
- add babel.support.NullTranslations class similar to gettext.NullTranslations
  but with all of Babel's new gettext methods (#277)
- "init" and "update" commands support "--width" option (#284)
- fix 'input_dirs' option for setuptools integration (#232, initial patch by
  Étienne Bersac)
- ensure .mo file header contains the same information as the source .po file
  (#199)
- added support for get_language_name() on the locale objects.
- added support for get_territory_name() on the locale objects.
- added support for get_script_name() on the locale objects.
- added pluralization support for currency names and added a '¤¤¤'
  pattern for currencies that includes the full name.
- depend on pytz now and wrap it nicer.  This gives us improved support
  for things like timezone transitions and an overall nicer API.
- Added support for explicit charset to PO file reading.
- Added experimental Python 3 support.
- Added better support for returning timezone names.
- Don't throw away a Catalog's obsolete messages when updating it.
- Added basic likelySubtag resolving when doing locale parsing and no
  match can be found.
@jperkin
Copy link
Collaborator

jperkin commented Dec 10, 2013

Fixed upstream, thanks!

@jperkin jperkin closed this Dec 10, 2013
jperkin pushed a commit that referenced this pull request Jan 21, 2014
== v0.15.0 [2013-03-03] Michael Granger <ged@FaerieMUD.org>

Bugfixes:

- Fix segfault in PG::Result#field_values when called with non String value.
- Fix encoding of messages delivered by notice callbacks.
- Fix text encoding for Connection#wait_for_notify and Connection#notifies.
- Fix 'Bad file descriptor' problems under Windows: wrong behaviour of
  #wait_for_notify() and timeout handling of #block on Ruby 1.9.

Documentation fixes:

- conn#socket() can not be used with IO.for_fd() on Windows.

Enhancements:

- Tested under Ruby 2.0.0p0.
- Add single row mode of PostgreSQL 9.2.
- Set fallback_application_name to programm name $0. Thanks to Will Leinweber
  for the patch.
- Release Ruby's GVL while calls to blocking libpq functions to allow better
  concurrency in threaded applications.
- Refactor different variants of waiting for the connection socket.
- Make use of rb_thread_fd_select() on Ruby 1.9 and avoid deprecated
  rb_thread_select().
- Add an example of how to insert array data using a prepared statement (#145).
- Add continous integration tests on travis-ci.org.
- Add PG::Result#each_row for iterative over result sets by row. Thanks to
  Aaron Patterson for the patch.
- Add a PG::Connection#socket_io method for fetching a (non-autoclosing) IO
  object for the connection's socket.

Specs:

- Fix various specs to run on older PostgreSQL and Ruby versions.
- Avoid fork() in specs to allow usage on Windows and JRuby.
jperkin pushed a commit that referenced this pull request Jan 21, 2014
Changelog:

libmp3splt version 0.8.2
-------------------------------------------------------------

- added option to specify the input tags encoding for when writing ID3v2 tags
(SPLT_OPT_INPUT_TAGS_ENCODING)
- enable -O3 by default
- added LIBMP3SPLT_MAJOR_VERSION, LIBMP3SPLT_MINOR_VERSION and LIBMP3SPLT_MICRO_VERSION
(feature request #96)
- added option SPLT_TAGS_ORIGINAL for mp3splt_tags_set
- added option to keep the original tags and just replace them when importing a CUE or CDDB file
(SPLT_OPT_CUE_CDDB_ADD_TAGS_WITH_KEEP_ORIGINAL_TAGS) (feature request #95)
- added 'split into memory' ability with a callback function for use with 'pretend to split'
(feature request #94)
- replaced mp3splt.m4 with pkg-config (bug #145)
- corrected build files (configure.ac, Makefile.am, ...) and check using 'make distcheck' (bug #147)
- fixed a lot of doxygen issues

libmp3splt version 0.8.1a
-------------------------------------------------------------

- corrected ChangeLog file of 0.8.1 release
- added minimal.c in the distribution for the doxygen documentation
- added libmp3splt_ico.svg in the distribution for the doxygen documentation
- added something in the empty_footer.html file to avoid doxygen segfault

libmp3splt version 0.8.1
-------------------------------------------------------------

- fixed a bug - was crashing when removing tags from skippoints
- added option to set output ID3v2 tags encoded in latin1, UTF-8 or UTF16
- forgot to add 'empty_footer.html' in the distribution

libmp3splt version 0.8
-------------------------------------------------------------

- rewritten libmp3splt public API to target future 1.0 stable release
- written complete documentation of the public API
- done issues #40 and #85 - added minimum silence length parameter for auto adjust
- implemented back the proxy feature with basic authentification - feature #50
- added option to generate exactly the same input tags bytes using @o
- added minimum silence length for trim silence mode (minimum silence to trigger a trimming)
- done issue #12 - added option to output the full silence log useful to plot a graph
- enhanced the CUE export to export the tags as REM comments and also the splitpoint names
- fixed bug when detecting the input tags version - output had no tags when the input only had ID3v1
- fixed bug: output tags versions was not equal to the input file tags versions when the user was
setting custom tags without any @o to get the original tags
- done issue #79 - added 0 to the number of digits to output in order to be able to support
the old mp3splt output format
- fixed bug #141 - when input file is a symlink and output directory is the one of the input file
- amplitude more precise with ogg vorbis files
- plugins are now installed in $(libdir)/libmp3splt$(SONAME) instead of $(libdir)/libmp3splt
- fixed bug #131 - use /usr/lib64 instead of /usr/lib on x64 in mp3splt.m4
- fixed bug #133 - updated GPLv2 COPYING file
- fixed bug on mp3 trim silence scan: last frame was skipped
- fixed bug #134 - use of deprecated gethostbyname()

-------------------------------------------------------------
libmp3splt version 0.7.3

- added the trackjoin parameter for silence detection split: tracks shorter than trackjoin will be joined with others
- fixed bug: removing TLEN id3v2 tag from the split files
- fixed bug #3530488 - regression introduced with ogg multiple logical streams

libmp3splt version 0.7.2
-------------------------------------------------------------

- fixed error when ID3v2 was containing what appears a valid frame; make sure we skip the ID3v2 after looking for the first frames
- fixed bug #3497957 libtoolize vs glibtoolize
- fixed #3487543 - compilation without pcre support
- added the shots parameter to silence detection

libmp3splt version 0.7.1
-------------------------------------------------------------

- added minimum track length option for silence scan - closes #2393766
- added option to set original tags when using 'replace tags in tags' - closes #3407314
- added support for multiple ogg/vorbis logical streams (mail)
- fixed mp3 frame mode with skippoint when skippoint too small (on the same frame as previous)
- fixed some regression regarding mp3splt v2.1c - removed some checks relative to the total
time - we cannot rely on the total time - for example with concatenated mp3s
- fixed several audacity labels issues
- fixed inconsistency (extra 0 padding) between @n of custom tags and @n of output filename (mail)
- fixed compilation error without libid3tag
- fixed #3385833 - don't apply debugging flags or warnings flags by default:
added --enable-c-debug --enable-optimise --enable-extra-warnings
- fixed #3385827 - added --disable-doxygen_doc
- fixed #3385829 - building doxygen documentation by itself + installing doxygen files
jperkin pushed a commit that referenced this pull request Jan 21, 2014
Changelog:

#mp3splt version 2.5.2

- added option -I to specify the input tags encoding for when writing ID3v2 tags (ISO-8859-1, UTF-8
or UTF-16)
- added option -K to keep the original tags and just replace them when importing a CUE or CDDB file
(feature request #95)
- fixed bug #149 - use of getline() on mac
- libmp3splt check is now more correct and checks for the exact version of libmp3splt with = instead
of >=; will be changed to >= when final version of libmp3splt will be released
- now using pkg-config instead of mp3splt.m4 (bug #145)
- corrected build files (configure.ac, Makefile.am, ...) and check using 'make distcheck' (bug #147)

#mp3splt version 2.5.1

- fixed a bug when removing the tags from skippoints (libmp3splt)
- added option to set output ID3v2 tags encoded in latin1, UTF-8 or UTF16

#mp3splt version 2.5

- done issues #40 and #85 - added minimum silence length parameter for auto adjust (mainly libmp3splt)
- added minimum silence length for trim silence mode (minimum silence to trigger a trimming)
(mainly libmp3splt)
- done issue #12 - added option to output the full silence log useful to plot a graph
(mainly libmp3splt)
- implemented back the proxy feature with basic authentification - feature #50 (mainly libmp3splt)
- added option to generate exactly the same input tags bytes using @o (mainly libmp3splt)
- enhanced the CUE export to export the tags as REM comments and also the splitpoint names (libmp3splt)
- fixed bug when detecting the input tags version - output had no tags when the input only had ID3v1
(libmp3splt)
- fixed bug: output tags versions was not equal to the input file tags versions when the user was
setting custom tags without any @o to get the original tags (libmp3splt)
- done issue #79 - added 0 to the number of digits to output in order to be able to support
the old mp3splt output format (libmp3splt)
- fixed bug #141 - when input file is a symlink and output directory is the one of the input file
(libmp3splt)
- fixed bug on mp3 trim silence scan: last frame was skipped (libmp3splt)
- fixed bug #133 - updated GPLv2 COPYING file
- fixed bug #142 - skipped splitpoints were handled wrong by '-c'

#mp3splt version 2.4.3

- added the trackjoin parameter for silence detection split: tracks shorter than trackjoin will be joined with others
- fixed bug: removing TLEN id3v2 tag from the split files (libmp3splt)
- fixed bug #3530488 - regression introduced with ogg multiple logical streams (libmp3splt)

#mp3splt version 2.4.2

- fixed error when ID3v2 was containing what appears a valid frame; make sure we skip the ID3v2 after looking for the first frames (libmp3splt)
- added the shots parameter to silence detection
(-p shots=INTEGER - minimum number of shots to be found as non silence after the silence)

#mp3splt version 2.4.1

- added minimum track length option for silence scan: 'trackmin' parameter to '-p' - closes #2393766
- added option to set original tags when using 'replace tags in tags' - use of #t, #a, ... - closes #3407314
- fixed #3399950 - regression on windows regarding the current working directory
- fixed some regression regarding mp3splt v2.1c - removed some checks relative to the total
- fixed #3385833 - don't apply debugging flags or warnings flags by default:
added --enable-c-debug --enable-optimise --enable-extra-warnings
- fixed #3424143 - added a small check for the -O option
- added support for multiple ogg/vorbis logical streams (mail) (libmp3splt)
- fixed mp3 frame mode with skippoint when skippoint too small (on the same frame as previous) (libmp3splt)
- fixed several audacity labels issues (libmp3splt)
- fixed inconsistency (extra 0 padding) between @n of -g and @n of -o (mail)
time - we cannot rely on the total time - for example with concatenated mp3s (libmp3splt)
jperkin pushed a commit that referenced this pull request Jan 21, 2014
Changelog:

-------------------------------------------------------------
mp3splt-gtk version 0.8.2

- fixed important bug in mp3splt-gtk: split using cue file was not splitting the last part
- fixed tags encoding issue in mp3splt-gtk: encode in UTF-8 tags if not valid UTF-8
- implemented "prelisten a section to its ending splitpoint" in mp3splt-gtk (feature request #98)
- libmp3splt check is now more correct and checks for the exact version of libmp3splt with = instead
of >=; will be changed to >= when final version of libmp3splt will be released
- now using pkg-config instead of mp3splt.m4 (bug #145)
- corrected build files (configure.ac, Makefile.am, ...) and check using 'make distcheck' (bug #147)

-------------------------------------------------------------
mp3splt-gtk version 0.8.1

- fixed important bug: application was crashing when pushing the split button without any
splitpoint (libmp3splt)
- fixed important bug: split by time was in hundreths of seconds instead of seconds

-------------------------------------------------------------
mp3splt-gtk version 0.8

- added tags edition from the splitpoints table - closes feature #92
- added cloning features for mass copying of tags using right click on the splitpoints table
- enhanced the CUE export to export the tags as REM comments and also the splitpoint names
- automatically save & restore splitpoints in '~/.mp3splt-gtk/splitpoints.cue'
- better amplitude wave display (wave does not "shake" anymore)
- done issue #37 & #138 - nicer GUI for the option 'same output directory as the input file'
- fixed amplitude wave to be more precise with ogg vorbis files (libmp3splt)
- fixed important bug on mp3splt-gtk 'Queue to player' button
- fixed bug #128 - hash symbol in filename breaks the player
- done feature #38 - reorder filenames in mp3splt-gtk (description_here_partXX)
- fixed bug #133 - updated GPLv2 COPYING file
- fixed bug #137 - autogen.sh should run libtoolize before aclocal/automake
- fixed bug #143 - be able to add splitpoint at the end from the player
- fixed bug #136 - various compilation issues
- fixed issue #90 - added back the icons to split preview and play preview in the splitpoints table
- added a lot of tooltip and GUI renamings
- done feature #91 - amplitude wave now persists in preferences
- added one more interpolation level for the amplitude wave (level 6)
- more precise wave preview in preferences
- fixed bug when detecting the input tags version - output had no tags when the input only had ID3v1
(libmp3splt)
- fixed bug #141 - when input file is a symlink and output directory is the one of the input file
(libmp3splt)
- amplitude more precise with ogg vorbis files (libmp3splt)
- fixed bug on mp3 trim silence scan: last frame was skipped (libmp3splt)

-------------------------------------------------------------
mp3splt-gtk version 0.7.3

- redesigned the mp3splt-gtk user interface
- added option to specify the wave quality in the parameters (for performance reasons)
- wave interpolation is now much correct - we use the douglas peucker algorithm instead of the previous one which was stupid
- added gray areas where no splitpoints - regarding #3520736
- added seek key shortcuts to the player - #1811400 & #3528001
- heavy refactoring of mp3splt-gtk code
- fixed bug: removing TLEN id3v2 tag from the split files (libmp3splt)
- fixed bug #3530488 - regression introduced with ogg multiple logical streams (libmp3splt)

-------------------------------------------------------------
mp3splt-gtk version 0.7.2

- fixed an important bug of memory leak in player drawing when using GTK+-2
- fixed bug not showing icon and image in the about dialog
- fix for the '--disable-gtk3' option; also fixed the gtk 2.x/3.x check
- made some player graphic optimisations
- added player refresh rate option in Preferences->Player
- added expanders to the player history and player splitpoints view
- we don't need gtk 2 version >= 2.20; changed it to 2.18

-------------------------------------------------------------
mp3splt-gtk version 0.7.1

- added minimum track length option for silence scan - closes #2393766
- added gtk3 support (auto detection or --enable-gtk3, --disable-gtk3) - almost closes #3385903
(some tests still need to be done)
- fixed #3385841 - removed scrollkeeper warnings
- fixed #3385827 - added --disable-doxygen_doc
- fixed #3385829 - building doxygen documentation by itself + installing doxygen files
- fixed #3385833 - don't apply debugging flags or warnings flags by default:
added --enable-c-debug --enable-optimise --enable-extra-warnings
- added support for multiple ogg/vorbis logical streams (mail) (libmp3splt)
- fixed mp3 frame mode with skippoint when skippoint too small (on the same frame as previous) (libmp3splt)
- fixed several audacity labels issues (libmp3splt)
- fixed some regression regarding mp3splt v2.1c - removed some checks relative to the total
time - we cannot rely on the total time - for example with concatenated mp3s (libmp3splt)
jperkin pushed a commit that referenced this pull request Jan 21, 2014
REPLACE_PYTHON in two files. From ChangeLog.txt:

## 2012-06-26 0.37

* Fixed datestr issue on Windows -- #155
* Fixed Python 2.4 compatability issues (tx fredludlow)
* Fixed error in utils.safewrite (tx shuge) -- #95
* Allow use of web.data() with app.request() -- #105
* Fixed an issue with session initializaton (tx beardedprojamz) -- #109
* Allow custom message on 400 Bad Request (tx patryk) -- #121
* Made djangoerror work on GAE. -- #80
* Handle malformatted data in the urls. -- #117
* Made it easier to stop the dev server -- #100, #122
* Added support fot customizing cookie_path in session (tx larsga) -- #89
* Added exception for "415 Unsupported Media" (tx JirkaChadima) -- #145
* Added GroupedDropdown to support `<optgroup>` tag (tx jzellman) -- #152
* Fixed failure in embedded interpreter - #87
* Optimized web.cookies (tx benhoyt) - #148
jperkin pushed a commit that referenced this pull request Jan 21, 2014
2.08    Thu Aug 22 23:11:45 CDT 2013
====================================
[ENHANCEMENTS]
ack now ignores CMake's build/cache directories by default.  Thanks,
Volodymyr Medvid.

Add shebang matching for --lua files.

Add documentation for --ackrc.

Add Elixir filetype.

Add --cathy option.  Thanks to Joe McMahon.

Add some helpful debugging tips when an invalid option is found.
Thanks to Charles Lee.

Ignore PDF files by default, because Perl will detect them as text.

Ignore .gif, .jpg, .jpeg and .png files.  They won't normally be
selected, but this is an optimization so that ack doesn't have to
open them to know.

[FIXES]
Ack's colorizing of output would get confused with multiple sets
of parentheses.  This has been fixed.  (Issue #276)

Ack would get confused when trying to colorize the output in
DOS-format files.  This has been fixed.  (Issue #145)


2.05_01 Tue May 28 10:12:04 CDT 2013
====================================
[ENHANCEMENTS]
We now ignore the node_modules directories created by npm.  Thanks,
Konrad Borowski.

--pager without an argument implies --pager=$PAGER.

--perl now recognizes Plack-style .psgi files.  Thanks, Ron Savage.

Added filetypes for Coffescript, JSON, LESS, and Sass.

[FIXES]
Command-line options now override options set in ackrc files.

ACK_PAGER and ACK_PAGER_COLOR now work as advertised.

Fix a bug resulting in uninitialized variable warnings when more
than one capture group was specified in the search pattern.

Make sure ack is happy to build and test under cron and other
console-less environments.

Colored output is now supported and on by default on Windows.
jperkin pushed a commit that referenced this pull request Jan 21, 2014
Babel Changelog
===============

Version 1.3
-----------

(bugfix release, released on July 29th 2013)

- Fixed a bug in likely-subtag resolving for some common locales.
  This primarily makes ``zh_CN`` work again which was broken
  due to how it was defined in the likely subtags combined with
  our broken resolving.  This fixes #37.
- Fixed a bug that caused pybabel to break when writing to stdout
  on Python 3.
- Removed a stray print that was causing issues when writing to
  stdout for message catalogs.

Version 1.2
-----------

(bugfix release, released on July 27th 2013)

- Included all tests in the tarball.  Previously the include
  skipped past recursive folders.
- Changed how tests are invoked and added separate standalone
  test command.  This simplifies testing of the package for
  linux distributors.

Version 1.1
-----------

(bugfix release, released on July 27th 2013)

- added dummy version requirements for pytz so that it installs
  on pip 1.4.
- Included tests in the tarball.

Version 1.0
-----------

(Released on July 26th 2013, codename Revival)

- support python 2.6, 2.7, 3.3+ and pypy - drop all other versions
- use tox for testing on different pythons
- Added support for the locale plural rules defined by the CLDR.
- Added `format_timedelta` function to support localized formatting of
  relative times with strings such as "2 days" or "1 month" (ticket #126).
- Fixed negative offset handling of Catalog._set_mime_headers (ticket #165).
- Fixed the case where messages containing square brackets would break with
  an unpack error.
- updated to CLDR 23
- Make the CLDR import script work with Python 2.7.
- Fix various typos.
- Sort output of list-locales.
- Make the POT-Creation-Date of the catalog being updated equal to
  POT-Creation-Date of the template used to update (ticket #148).
- Use a more explicit error message if no option or argument (command) is
  passed to pybabel (ticket #81).
- Keep the PO-Revision-Date if it is not the default value (ticket #148).
- Make --no-wrap work by reworking --width's default and mimic xgettext's
  behaviour of always wrapping comments (ticket #145).
- Add --project and --version options for commandline (ticket #173).
- Add a __ne__() method to the Local class.
- Explicitly sort instead of using sorted() and don't assume ordering
  (Jython compatibility).
- Removed ValueError raising for string formatting message checkers if the
  string does not contain any string formattings (ticket #150).
- Fix Serbian plural forms (ticket #213).
- Small speed improvement in format_date() (ticket #216).
- Fix so frontend.CommandLineInterface.run does not accumulate logging
  handlers (#227, reported with initial patch by dfraser)
- Fix exception if environment contains an invalid locale setting (#200)
- use cPickle instead of pickle for better performance (#225)
- Only use bankers round algorithm as a tie breaker if there are two nearest
  numbers, round as usual if there is only one nearest number (#267, patch by
  Martin)
- Allow disabling cache behaviour in LazyProxy (#208, initial patch from Pedro
  Algarvio)
- Support for context-aware methods during message extraction (#229, patch
  from David Rios)
- "init" and "update" commands support "--no-wrap" option (#289)
- fix formatting of fraction in format_decimal() if the input value is a float
  with more than 7 significant digits (#183)
- fix format_date() with datetime parameter (#282, patch from Xavier Morel)
- fix format_decimal() with small Decimal values (#214, patch from George Lund)
- fix handling of messages containing '\\n' (#198)
- handle irregular multi-line msgstr (no "" as first line) gracefully (#171)
- parse_decimal() now returns Decimals not floats, API change (#178)
- no warnings when running setup.py without installed setuptools (#262)
- modified Locale.__eq__ method so Locales are only equal if all of their
  attributes (language, territory, script, variant) are equal
- resort to hard-coded message extractors/checkers if pkg_resources is
  installed but no egg-info was found (#230)
- format_time() and format_datetime() now accept also floats (#242)
- add babel.support.NullTranslations class similar to gettext.NullTranslations
  but with all of Babel's new gettext methods (#277)
- "init" and "update" commands support "--width" option (#284)
- fix 'input_dirs' option for setuptools integration (#232, initial patch by
  Étienne Bersac)
- ensure .mo file header contains the same information as the source .po file
  (#199)
- added support for get_language_name() on the locale objects.
- added support for get_territory_name() on the locale objects.
- added support for get_script_name() on the locale objects.
- added pluralization support for currency names and added a '¤¤¤'
  pattern for currencies that includes the full name.
- depend on pytz now and wrap it nicer.  This gives us improved support
  for things like timezone transitions and an overall nicer API.
- Added support for explicit charset to PO file reading.
- Added experimental Python 3 support.
- Added better support for returning timezone names.
- Don't throw away a Catalog's obsolete messages when updating it.
- Added basic likelySubtag resolving when doing locale parsing and no
  match can be found.
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 30, 2014
Release 3.1.2 - 2014/01/29
--------------------------

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

* [doc] Updated to caplitalized "Groonga" terms in documentation. [Patch by cosmo0920] [GitHub#136, #137, #138, #139, #140, #141, #142, #143, #144, #145, #146, #147, #148, #149, #150, #151]
* Supported to customize the value of lock timeout. See :doc:`/reference/api/global_configurations` about details.
  [groonga-dev,02017] [Suggested by yoku]
* [doc] Added description about the value of lock timeout.
* Enabled ``GRN_JA_SKIP_SAME_VALUE_PUT`` by default. In the previous releases, the value of
  this configuration is 'no'. This change affects reducing the size of Groonga database.
* Supported multiple indexes including a nested index and multiple keywords query.
  This change improves missing search results isssue when narrowing down by multiple keywords query.
* Added API to customize normalizer for snippet.

Fixes
^^^^^

* Fixed not to use index for empty query. This change enables you to search even though empty query.
  Note that this means that there is performance penalty if many empty records exist.
  [groonga-dev,02052] [Reported by Naoya Murakami]
* Fixed the behaviour about return value of "X || Y" and "X && Y" for adjusting to ECMAScript.
  In "X || Y" case, if either X or Y satisfy the condition, it returns X itself or Y itself instead of 1 or 0.
* In "X && Y" case, if X and Y satisfy the condition, it returns X itself instead of 1.
  if X doesn't satisfy the condition, it returns false instead of 0.
* Fixed to return null when no snippet is found. This change enables you to set the default value
  of :doc:`/reference/functions/snippet_html`. In such a purpose, use "snippet_html(XXX) || 'default value'".

Thanks
^^^^^^

* cosmo0920
* yoku
* Naoya Murakami
jperkin pushed a commit that referenced this pull request Mar 14, 2014
GObject Introspection based bindings on Windows support release!

=== Changes

==== NEWS

  * Fixes
    * Fixed a typo. [Reported by Masafumi Yokoyama]
    * FIxed a typo. [Reported by Toyo Abe]

==== Ruby/GLib2

  * Improvements
    * Moved lib/gnome2-*.rb files to lib/gnome2/ directory.
    * Supported GLib 2.34. [Reported by OBATA Akio]

==== Ruby/GdkPixbuf2

  * Fixes
    * [windows] Fixed PNG can't be handled problem.
      [ruby-gnoem2-devel-ja] [Reported by Masafumi Yokoyama]

==== Ruby/GDK3

  * Improvements
    * [windows] Removed needless Greybird theme.
      [ruby-gnome2-devel-en] [Reported by Regis d'Aubarede]
    * Added Gdk::Window#create_cairo_context
      [ruby-gnome2-devel-en] [Reported by Detlef Reichl]

==== Ruby/GTK3

  * Improvements
    * Updated samples.
      [GitHub #140][GitHub #141][GitHub #144]
      [Patch by Simon Arnaud]
      [GitHub #142][GitHub #143][GitHub #145][GitHub #146][GitHub #148]
      [Patch by Detlef Reichl]

==== Ruby/GObjectIntrospection

  * Improvements
    * [windows] Supported!

==== Ruby/GStreamer

  * Improvements
    * Supported GStreamer 1.0!
    * Migrated to GObject Introspection bindings!
    * Dropped GStreamer 0.10 support.

==== Ruby/Clutter

  * Improvements
    * [windows] Supported!

==== Ruby/ClutterGTK

  * Improvements
    * [windows] Supported!
jperkin pushed a commit that referenced this pull request Mar 14, 2014
== v0.15.0 [2013-03-03] Michael Granger <ged@FaerieMUD.org>

Bugfixes:

- Fix segfault in PG::Result#field_values when called with non String value.
- Fix encoding of messages delivered by notice callbacks.
- Fix text encoding for Connection#wait_for_notify and Connection#notifies.
- Fix 'Bad file descriptor' problems under Windows: wrong behaviour of
  #wait_for_notify() and timeout handling of #block on Ruby 1.9.

Documentation fixes:

- conn#socket() can not be used with IO.for_fd() on Windows.

Enhancements:

- Tested under Ruby 2.0.0p0.
- Add single row mode of PostgreSQL 9.2.
- Set fallback_application_name to programm name $0. Thanks to Will Leinweber
  for the patch.
- Release Ruby's GVL while calls to blocking libpq functions to allow better
  concurrency in threaded applications.
- Refactor different variants of waiting for the connection socket.
- Make use of rb_thread_fd_select() on Ruby 1.9 and avoid deprecated
  rb_thread_select().
- Add an example of how to insert array data using a prepared statement (#145).
- Add continous integration tests on travis-ci.org.
- Add PG::Result#each_row for iterative over result sets by row. Thanks to
  Aaron Patterson for the patch.
- Add a PG::Connection#socket_io method for fetching a (non-autoclosing) IO
  object for the connection's socket.

Specs:

- Fix various specs to run on older PostgreSQL and Ruby versions.
- Avoid fork() in specs to allow usage on Windows and JRuby.
jperkin pushed a commit that referenced this pull request Mar 14, 2014
Changelog:

libmp3splt version 0.8.2
-------------------------------------------------------------

- added option to specify the input tags encoding for when writing ID3v2 tags
(SPLT_OPT_INPUT_TAGS_ENCODING)
- enable -O3 by default
- added LIBMP3SPLT_MAJOR_VERSION, LIBMP3SPLT_MINOR_VERSION and LIBMP3SPLT_MICRO_VERSION
(feature request #96)
- added option SPLT_TAGS_ORIGINAL for mp3splt_tags_set
- added option to keep the original tags and just replace them when importing a CUE or CDDB file
(SPLT_OPT_CUE_CDDB_ADD_TAGS_WITH_KEEP_ORIGINAL_TAGS) (feature request #95)
- added 'split into memory' ability with a callback function for use with 'pretend to split'
(feature request #94)
- replaced mp3splt.m4 with pkg-config (bug #145)
- corrected build files (configure.ac, Makefile.am, ...) and check using 'make distcheck' (bug #147)
- fixed a lot of doxygen issues

libmp3splt version 0.8.1a
-------------------------------------------------------------

- corrected ChangeLog file of 0.8.1 release
- added minimal.c in the distribution for the doxygen documentation
- added libmp3splt_ico.svg in the distribution for the doxygen documentation
- added something in the empty_footer.html file to avoid doxygen segfault

libmp3splt version 0.8.1
-------------------------------------------------------------

- fixed a bug - was crashing when removing tags from skippoints
- added option to set output ID3v2 tags encoded in latin1, UTF-8 or UTF16
- forgot to add 'empty_footer.html' in the distribution

libmp3splt version 0.8
-------------------------------------------------------------

- rewritten libmp3splt public API to target future 1.0 stable release
- written complete documentation of the public API
- done issues #40 and #85 - added minimum silence length parameter for auto adjust
- implemented back the proxy feature with basic authentification - feature #50
- added option to generate exactly the same input tags bytes using @o
- added minimum silence length for trim silence mode (minimum silence to trigger a trimming)
- done issue #12 - added option to output the full silence log useful to plot a graph
- enhanced the CUE export to export the tags as REM comments and also the splitpoint names
- fixed bug when detecting the input tags version - output had no tags when the input only had ID3v1
- fixed bug: output tags versions was not equal to the input file tags versions when the user was
setting custom tags without any @o to get the original tags
- done issue #79 - added 0 to the number of digits to output in order to be able to support
the old mp3splt output format
- fixed bug #141 - when input file is a symlink and output directory is the one of the input file
- amplitude more precise with ogg vorbis files
- plugins are now installed in $(libdir)/libmp3splt$(SONAME) instead of $(libdir)/libmp3splt
- fixed bug #131 - use /usr/lib64 instead of /usr/lib on x64 in mp3splt.m4
- fixed bug #133 - updated GPLv2 COPYING file
- fixed bug on mp3 trim silence scan: last frame was skipped
- fixed bug #134 - use of deprecated gethostbyname()

-------------------------------------------------------------
libmp3splt version 0.7.3

- added the trackjoin parameter for silence detection split: tracks shorter than trackjoin will be joined with others
- fixed bug: removing TLEN id3v2 tag from the split files
- fixed bug #3530488 - regression introduced with ogg multiple logical streams

libmp3splt version 0.7.2
-------------------------------------------------------------

- fixed error when ID3v2 was containing what appears a valid frame; make sure we skip the ID3v2 after looking for the first frames
- fixed bug #3497957 libtoolize vs glibtoolize
- fixed #3487543 - compilation without pcre support
- added the shots parameter to silence detection

libmp3splt version 0.7.1
-------------------------------------------------------------

- added minimum track length option for silence scan - closes #2393766
- added option to set original tags when using 'replace tags in tags' - closes #3407314
- added support for multiple ogg/vorbis logical streams (mail)
- fixed mp3 frame mode with skippoint when skippoint too small (on the same frame as previous)
- fixed some regression regarding mp3splt v2.1c - removed some checks relative to the total
time - we cannot rely on the total time - for example with concatenated mp3s
- fixed several audacity labels issues
- fixed inconsistency (extra 0 padding) between @n of custom tags and @n of output filename (mail)
- fixed compilation error without libid3tag
- fixed #3385833 - don't apply debugging flags or warnings flags by default:
added --enable-c-debug --enable-optimise --enable-extra-warnings
- fixed #3385827 - added --disable-doxygen_doc
- fixed #3385829 - building doxygen documentation by itself + installing doxygen files
jperkin pushed a commit that referenced this pull request Mar 14, 2014
Changelog:

#mp3splt version 2.5.2

- added option -I to specify the input tags encoding for when writing ID3v2 tags (ISO-8859-1, UTF-8
or UTF-16)
- added option -K to keep the original tags and just replace them when importing a CUE or CDDB file
(feature request #95)
- fixed bug #149 - use of getline() on mac
- libmp3splt check is now more correct and checks for the exact version of libmp3splt with = instead
of >=; will be changed to >= when final version of libmp3splt will be released
- now using pkg-config instead of mp3splt.m4 (bug #145)
- corrected build files (configure.ac, Makefile.am, ...) and check using 'make distcheck' (bug #147)

#mp3splt version 2.5.1

- fixed a bug when removing the tags from skippoints (libmp3splt)
- added option to set output ID3v2 tags encoded in latin1, UTF-8 or UTF16

#mp3splt version 2.5

- done issues #40 and #85 - added minimum silence length parameter for auto adjust (mainly libmp3splt)
- added minimum silence length for trim silence mode (minimum silence to trigger a trimming)
(mainly libmp3splt)
- done issue #12 - added option to output the full silence log useful to plot a graph
(mainly libmp3splt)
- implemented back the proxy feature with basic authentification - feature #50 (mainly libmp3splt)
- added option to generate exactly the same input tags bytes using @o (mainly libmp3splt)
- enhanced the CUE export to export the tags as REM comments and also the splitpoint names (libmp3splt)
- fixed bug when detecting the input tags version - output had no tags when the input only had ID3v1
(libmp3splt)
- fixed bug: output tags versions was not equal to the input file tags versions when the user was
setting custom tags without any @o to get the original tags (libmp3splt)
- done issue #79 - added 0 to the number of digits to output in order to be able to support
the old mp3splt output format (libmp3splt)
- fixed bug #141 - when input file is a symlink and output directory is the one of the input file
(libmp3splt)
- fixed bug on mp3 trim silence scan: last frame was skipped (libmp3splt)
- fixed bug #133 - updated GPLv2 COPYING file
- fixed bug #142 - skipped splitpoints were handled wrong by '-c'

#mp3splt version 2.4.3

- added the trackjoin parameter for silence detection split: tracks shorter than trackjoin will be joined with others
- fixed bug: removing TLEN id3v2 tag from the split files (libmp3splt)
- fixed bug #3530488 - regression introduced with ogg multiple logical streams (libmp3splt)

#mp3splt version 2.4.2

- fixed error when ID3v2 was containing what appears a valid frame; make sure we skip the ID3v2 after looking for the first frames (libmp3splt)
- added the shots parameter to silence detection
(-p shots=INTEGER - minimum number of shots to be found as non silence after the silence)

#mp3splt version 2.4.1

- added minimum track length option for silence scan: 'trackmin' parameter to '-p' - closes #2393766
- added option to set original tags when using 'replace tags in tags' - use of #t, #a, ... - closes #3407314
- fixed #3399950 - regression on windows regarding the current working directory
- fixed some regression regarding mp3splt v2.1c - removed some checks relative to the total
- fixed #3385833 - don't apply debugging flags or warnings flags by default:
added --enable-c-debug --enable-optimise --enable-extra-warnings
- fixed #3424143 - added a small check for the -O option
- added support for multiple ogg/vorbis logical streams (mail) (libmp3splt)
- fixed mp3 frame mode with skippoint when skippoint too small (on the same frame as previous) (libmp3splt)
- fixed several audacity labels issues (libmp3splt)
- fixed inconsistency (extra 0 padding) between @n of -g and @n of -o (mail)
time - we cannot rely on the total time - for example with concatenated mp3s (libmp3splt)
jperkin pushed a commit that referenced this pull request Mar 14, 2014
Changelog:

-------------------------------------------------------------
mp3splt-gtk version 0.8.2

- fixed important bug in mp3splt-gtk: split using cue file was not splitting the last part
- fixed tags encoding issue in mp3splt-gtk: encode in UTF-8 tags if not valid UTF-8
- implemented "prelisten a section to its ending splitpoint" in mp3splt-gtk (feature request #98)
- libmp3splt check is now more correct and checks for the exact version of libmp3splt with = instead
of >=; will be changed to >= when final version of libmp3splt will be released
- now using pkg-config instead of mp3splt.m4 (bug #145)
- corrected build files (configure.ac, Makefile.am, ...) and check using 'make distcheck' (bug #147)

-------------------------------------------------------------
mp3splt-gtk version 0.8.1

- fixed important bug: application was crashing when pushing the split button without any
splitpoint (libmp3splt)
- fixed important bug: split by time was in hundreths of seconds instead of seconds

-------------------------------------------------------------
mp3splt-gtk version 0.8

- added tags edition from the splitpoints table - closes feature #92
- added cloning features for mass copying of tags using right click on the splitpoints table
- enhanced the CUE export to export the tags as REM comments and also the splitpoint names
- automatically save & restore splitpoints in '~/.mp3splt-gtk/splitpoints.cue'
- better amplitude wave display (wave does not "shake" anymore)
- done issue #37 & #138 - nicer GUI for the option 'same output directory as the input file'
- fixed amplitude wave to be more precise with ogg vorbis files (libmp3splt)
- fixed important bug on mp3splt-gtk 'Queue to player' button
- fixed bug #128 - hash symbol in filename breaks the player
- done feature #38 - reorder filenames in mp3splt-gtk (description_here_partXX)
- fixed bug #133 - updated GPLv2 COPYING file
- fixed bug #137 - autogen.sh should run libtoolize before aclocal/automake
- fixed bug #143 - be able to add splitpoint at the end from the player
- fixed bug #136 - various compilation issues
- fixed issue #90 - added back the icons to split preview and play preview in the splitpoints table
- added a lot of tooltip and GUI renamings
- done feature #91 - amplitude wave now persists in preferences
- added one more interpolation level for the amplitude wave (level 6)
- more precise wave preview in preferences
- fixed bug when detecting the input tags version - output had no tags when the input only had ID3v1
(libmp3splt)
- fixed bug #141 - when input file is a symlink and output directory is the one of the input file
(libmp3splt)
- amplitude more precise with ogg vorbis files (libmp3splt)
- fixed bug on mp3 trim silence scan: last frame was skipped (libmp3splt)

-------------------------------------------------------------
mp3splt-gtk version 0.7.3

- redesigned the mp3splt-gtk user interface
- added option to specify the wave quality in the parameters (for performance reasons)
- wave interpolation is now much correct - we use the douglas peucker algorithm instead of the previous one which was stupid
- added gray areas where no splitpoints - regarding #3520736
- added seek key shortcuts to the player - #1811400 & #3528001
- heavy refactoring of mp3splt-gtk code
- fixed bug: removing TLEN id3v2 tag from the split files (libmp3splt)
- fixed bug #3530488 - regression introduced with ogg multiple logical streams (libmp3splt)

-------------------------------------------------------------
mp3splt-gtk version 0.7.2

- fixed an important bug of memory leak in player drawing when using GTK+-2
- fixed bug not showing icon and image in the about dialog
- fix for the '--disable-gtk3' option; also fixed the gtk 2.x/3.x check
- made some player graphic optimisations
- added player refresh rate option in Preferences->Player
- added expanders to the player history and player splitpoints view
- we don't need gtk 2 version >= 2.20; changed it to 2.18

-------------------------------------------------------------
mp3splt-gtk version 0.7.1

- added minimum track length option for silence scan - closes #2393766
- added gtk3 support (auto detection or --enable-gtk3, --disable-gtk3) - almost closes #3385903
(some tests still need to be done)
- fixed #3385841 - removed scrollkeeper warnings
- fixed #3385827 - added --disable-doxygen_doc
- fixed #3385829 - building doxygen documentation by itself + installing doxygen files
- fixed #3385833 - don't apply debugging flags or warnings flags by default:
added --enable-c-debug --enable-optimise --enable-extra-warnings
- added support for multiple ogg/vorbis logical streams (mail) (libmp3splt)
- fixed mp3 frame mode with skippoint when skippoint too small (on the same frame as previous) (libmp3splt)
- fixed several audacity labels issues (libmp3splt)
- fixed some regression regarding mp3splt v2.1c - removed some checks relative to the total
time - we cannot rely on the total time - for example with concatenated mp3s (libmp3splt)
jperkin pushed a commit that referenced this pull request Mar 14, 2014
REPLACE_PYTHON in two files. From ChangeLog.txt:

## 2012-06-26 0.37

* Fixed datestr issue on Windows -- #155
* Fixed Python 2.4 compatability issues (tx fredludlow)
* Fixed error in utils.safewrite (tx shuge) -- #95
* Allow use of web.data() with app.request() -- #105
* Fixed an issue with session initializaton (tx beardedprojamz) -- #109
* Allow custom message on 400 Bad Request (tx patryk) -- #121
* Made djangoerror work on GAE. -- #80
* Handle malformatted data in the urls. -- #117
* Made it easier to stop the dev server -- #100, #122
* Added support fot customizing cookie_path in session (tx larsga) -- #89
* Added exception for "415 Unsupported Media" (tx JirkaChadima) -- #145
* Added GroupedDropdown to support `<optgroup>` tag (tx jzellman) -- #152
* Fixed failure in embedded interpreter - #87
* Optimized web.cookies (tx benhoyt) - #148
jperkin pushed a commit that referenced this pull request Mar 14, 2014
2.08    Thu Aug 22 23:11:45 CDT 2013
====================================
[ENHANCEMENTS]
ack now ignores CMake's build/cache directories by default.  Thanks,
Volodymyr Medvid.

Add shebang matching for --lua files.

Add documentation for --ackrc.

Add Elixir filetype.

Add --cathy option.  Thanks to Joe McMahon.

Add some helpful debugging tips when an invalid option is found.
Thanks to Charles Lee.

Ignore PDF files by default, because Perl will detect them as text.

Ignore .gif, .jpg, .jpeg and .png files.  They won't normally be
selected, but this is an optimization so that ack doesn't have to
open them to know.

[FIXES]
Ack's colorizing of output would get confused with multiple sets
of parentheses.  This has been fixed.  (Issue #276)

Ack would get confused when trying to colorize the output in
DOS-format files.  This has been fixed.  (Issue #145)


2.05_01 Tue May 28 10:12:04 CDT 2013
====================================
[ENHANCEMENTS]
We now ignore the node_modules directories created by npm.  Thanks,
Konrad Borowski.

--pager without an argument implies --pager=$PAGER.

--perl now recognizes Plack-style .psgi files.  Thanks, Ron Savage.

Added filetypes for Coffescript, JSON, LESS, and Sass.

[FIXES]
Command-line options now override options set in ackrc files.

ACK_PAGER and ACK_PAGER_COLOR now work as advertised.

Fix a bug resulting in uninitialized variable warnings when more
than one capture group was specified in the search pattern.

Make sure ack is happy to build and test under cron and other
console-less environments.

Colored output is now supported and on by default on Windows.
jperkin pushed a commit that referenced this pull request Mar 14, 2014
Babel Changelog
===============

Version 1.3
-----------

(bugfix release, released on July 29th 2013)

- Fixed a bug in likely-subtag resolving for some common locales.
  This primarily makes ``zh_CN`` work again which was broken
  due to how it was defined in the likely subtags combined with
  our broken resolving.  This fixes #37.
- Fixed a bug that caused pybabel to break when writing to stdout
  on Python 3.
- Removed a stray print that was causing issues when writing to
  stdout for message catalogs.

Version 1.2
-----------

(bugfix release, released on July 27th 2013)

- Included all tests in the tarball.  Previously the include
  skipped past recursive folders.
- Changed how tests are invoked and added separate standalone
  test command.  This simplifies testing of the package for
  linux distributors.

Version 1.1
-----------

(bugfix release, released on July 27th 2013)

- added dummy version requirements for pytz so that it installs
  on pip 1.4.
- Included tests in the tarball.

Version 1.0
-----------

(Released on July 26th 2013, codename Revival)

- support python 2.6, 2.7, 3.3+ and pypy - drop all other versions
- use tox for testing on different pythons
- Added support for the locale plural rules defined by the CLDR.
- Added `format_timedelta` function to support localized formatting of
  relative times with strings such as "2 days" or "1 month" (ticket #126).
- Fixed negative offset handling of Catalog._set_mime_headers (ticket #165).
- Fixed the case where messages containing square brackets would break with
  an unpack error.
- updated to CLDR 23
- Make the CLDR import script work with Python 2.7.
- Fix various typos.
- Sort output of list-locales.
- Make the POT-Creation-Date of the catalog being updated equal to
  POT-Creation-Date of the template used to update (ticket #148).
- Use a more explicit error message if no option or argument (command) is
  passed to pybabel (ticket #81).
- Keep the PO-Revision-Date if it is not the default value (ticket #148).
- Make --no-wrap work by reworking --width's default and mimic xgettext's
  behaviour of always wrapping comments (ticket #145).
- Add --project and --version options for commandline (ticket #173).
- Add a __ne__() method to the Local class.
- Explicitly sort instead of using sorted() and don't assume ordering
  (Jython compatibility).
- Removed ValueError raising for string formatting message checkers if the
  string does not contain any string formattings (ticket #150).
- Fix Serbian plural forms (ticket #213).
- Small speed improvement in format_date() (ticket #216).
- Fix so frontend.CommandLineInterface.run does not accumulate logging
  handlers (#227, reported with initial patch by dfraser)
- Fix exception if environment contains an invalid locale setting (#200)
- use cPickle instead of pickle for better performance (#225)
- Only use bankers round algorithm as a tie breaker if there are two nearest
  numbers, round as usual if there is only one nearest number (#267, patch by
  Martin)
- Allow disabling cache behaviour in LazyProxy (#208, initial patch from Pedro
  Algarvio)
- Support for context-aware methods during message extraction (#229, patch
  from David Rios)
- "init" and "update" commands support "--no-wrap" option (#289)
- fix formatting of fraction in format_decimal() if the input value is a float
  with more than 7 significant digits (#183)
- fix format_date() with datetime parameter (#282, patch from Xavier Morel)
- fix format_decimal() with small Decimal values (#214, patch from George Lund)
- fix handling of messages containing '\\n' (#198)
- handle irregular multi-line msgstr (no "" as first line) gracefully (#171)
- parse_decimal() now returns Decimals not floats, API change (#178)
- no warnings when running setup.py without installed setuptools (#262)
- modified Locale.__eq__ method so Locales are only equal if all of their
  attributes (language, territory, script, variant) are equal
- resort to hard-coded message extractors/checkers if pkg_resources is
  installed but no egg-info was found (#230)
- format_time() and format_datetime() now accept also floats (#242)
- add babel.support.NullTranslations class similar to gettext.NullTranslations
  but with all of Babel's new gettext methods (#277)
- "init" and "update" commands support "--width" option (#284)
- fix 'input_dirs' option for setuptools integration (#232, initial patch by
  Étienne Bersac)
- ensure .mo file header contains the same information as the source .po file
  (#199)
- added support for get_language_name() on the locale objects.
- added support for get_territory_name() on the locale objects.
- added support for get_script_name() on the locale objects.
- added pluralization support for currency names and added a '¤¤¤'
  pattern for currencies that includes the full name.
- depend on pytz now and wrap it nicer.  This gives us improved support
  for things like timezone transitions and an overall nicer API.
- Added support for explicit charset to PO file reading.
- Added experimental Python 3 support.
- Added better support for returning timezone names.
- Don't throw away a Catalog's obsolete messages when updating it.
- Added basic likelySubtag resolving when doing locale parsing and no
  match can be found.
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
Release 3.1.2 - 2014/01/29
--------------------------

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

* [doc] Updated to caplitalized "Groonga" terms in documentation. [Patch by cosmo0920] [GitHub#136, #137, #138, #139, #140, #141, #142, #143, #144, #145, #146, #147, #148, #149, #150, #151]
* Supported to customize the value of lock timeout. See :doc:`/reference/api/global_configurations` about details.
  [groonga-dev,02017] [Suggested by yoku]
* [doc] Added description about the value of lock timeout.
* Enabled ``GRN_JA_SKIP_SAME_VALUE_PUT`` by default. In the previous releases, the value of
  this configuration is 'no'. This change affects reducing the size of Groonga database.
* Supported multiple indexes including a nested index and multiple keywords query.
  This change improves missing search results isssue when narrowing down by multiple keywords query.
* Added API to customize normalizer for snippet.

Fixes
^^^^^

* Fixed not to use index for empty query. This change enables you to search even though empty query.
  Note that this means that there is performance penalty if many empty records exist.
  [groonga-dev,02052] [Reported by Naoya Murakami]
* Fixed the behaviour about return value of "X || Y" and "X && Y" for adjusting to ECMAScript.
  In "X || Y" case, if either X or Y satisfy the condition, it returns X itself or Y itself instead of 1 or 0.
* In "X && Y" case, if X and Y satisfy the condition, it returns X itself instead of 1.
  if X doesn't satisfy the condition, it returns false instead of 0.
* Fixed to return null when no snippet is found. This change enables you to set the default value
  of :doc:`/reference/functions/snippet_html`. In such a purpose, use "snippet_html(XXX) || 'default value'".

Thanks
^^^^^^

* cosmo0920
* yoku
* Naoya Murakami
jperkin pushed a commit that referenced this pull request Mar 17, 2014
# Release Notes

## 1.0.0

### External changes
* Assume 'mocha' has been required when requiring 'mocha/setup'.
* Provide shortcuts for integrating with specific test library i.e. `require 'mocha/test_unit'` or `require 'mocha/mini_test'`
as alternatives to `require 'mocha/setup'`.
* Do not automatically try to integrate with test libraries. Since the automatic test library integration functionality
requires the test library to be loaded and this doesn't usually happen until *after* the bundle is loaded, it makes things
simpler if we use `require 'mocha/setup'` to explicitly setup Mocha when we know the test library has been loaded. Fixes #146 & #155.
* Consider stubs on superclasses if none exist on primary receiver. Largely based on changes suggested by @ccutrer in #145.
Note: this may break existing tests which rely on the old behaviour. Stubbing a superclass method and then invoking that
method on a child class would previously cause an unexpected invocation error. By searching up through the inheritance
hierarchy for each of the delegate mock objects, we can provide more intuitive behaviour. Instead of an unexpected invocation
error, invoking the method on the child class will cause the stubbed method on the superclass to be used.
* Avoid recursion when constructing unexpected invocation message. Fixes #168.
* Add explanation of method dispatch. Heavily based on the relevant jMock v1 documentation. Fixes #172.
* Make class_eval line number more accurate. This sets the line number as the line number of the `def` statement. Closes #169.
* Allow nesting of `responds_with` parameter matcher. Closes #166.
* Define `Mocha` module before it's referenced. The test helper defines a class `TestCase` within the `Mocha` module. When
running the tests inside the bundle, the `Mocha` module happens to be defined at this point. However when running the tests outside the bundle, it is not defined and so an exception is raised: `uninitialized constant Mocha (NameError)`. Fixes #163.
* Document lack of thread-safety. Fixes #154.
* Document how to use the build-matrix script. Fixes #160.
* Stubbing non-public method should use same visibility. This will probably break some existing tests that were somehow relying
on the stubbed method being public while the original method was protected or private. Fixes #150.

### Internal changes
* Use lastest Rubygems in Travis CI builds.
* Run the standard test suite against Ruby 2.1.0 in the build matrix.
* Run integration tests against Ruby 2.0.0 with latest Test::Unit gem in the build matrix.
* Test::Unit is not available in Ruby v1.9.3 standard library, so remove it from the build matrix.
* Force use of Test::Unit runner, etc in relevant integration tests. Prior to this, I don't think we were really testing the
Mocha integration with Test::Unit much, because, although `TestUnitTest` was a subclass of `Test::Unit::TestCase`, the
important test case instances are the temporary ones built by `TestRunner#run_as_test` et al. Prior to this change, these
would only have used Test::Unit where MiniTest was not available *at all* i.e. only in early versions of Ruby and when the
MiniTest gem was not loaded.
* Reset environment variables between build matrix builds.
* Only activate integration with relevant test library for each of the integration tests.
* Include standard build combinations from Travis CI config i.e. builds using standard library versions of test libraries.
* Fix `build-matrix.rb` script. Also use `.travis.yml` to decide what combinations to run. This means we
can now simulate the Travis CI build locally and avoid duplication. Fixes #157.
* Remove Ruby version map from build matrix script. I'm using the `rbenv-aliases` plugin to alias minor versions to the
relevant patch version.
jperkin pushed a commit that referenced this pull request Mar 18, 2014
# Release Notes

## 1.0.0

### External changes
* Assume 'mocha' has been required when requiring 'mocha/setup'.
* Provide shortcuts for integrating with specific test library i.e. `require 'mocha/test_unit'` or `require 'mocha/mini_test'`
as alternatives to `require 'mocha/setup'`.
* Do not automatically try to integrate with test libraries. Since the automatic test library integration functionality
requires the test library to be loaded and this doesn't usually happen until *after* the bundle is loaded, it makes things
simpler if we use `require 'mocha/setup'` to explicitly setup Mocha when we know the test library has been loaded. Fixes #146 & #155.
* Consider stubs on superclasses if none exist on primary receiver. Largely based on changes suggested by @ccutrer in #145.
Note: this may break existing tests which rely on the old behaviour. Stubbing a superclass method and then invoking that
method on a child class would previously cause an unexpected invocation error. By searching up through the inheritance
hierarchy for each of the delegate mock objects, we can provide more intuitive behaviour. Instead of an unexpected invocation
error, invoking the method on the child class will cause the stubbed method on the superclass to be used.
* Avoid recursion when constructing unexpected invocation message. Fixes #168.
* Add explanation of method dispatch. Heavily based on the relevant jMock v1 documentation. Fixes #172.
* Make class_eval line number more accurate. This sets the line number as the line number of the `def` statement. Closes #169.
* Allow nesting of `responds_with` parameter matcher. Closes #166.
* Define `Mocha` module before it's referenced. The test helper defines a class `TestCase` within the `Mocha` module. When
running the tests inside the bundle, the `Mocha` module happens to be defined at this point. However when running the tests outside the bundle, it is not defined and so an exception is raised: `uninitialized constant Mocha (NameError)`. Fixes #163.
* Document lack of thread-safety. Fixes #154.
* Document how to use the build-matrix script. Fixes #160.
* Stubbing non-public method should use same visibility. This will probably break some existing tests that were somehow relying
on the stubbed method being public while the original method was protected or private. Fixes #150.

### Internal changes
* Use lastest Rubygems in Travis CI builds.
* Run the standard test suite against Ruby 2.1.0 in the build matrix.
* Run integration tests against Ruby 2.0.0 with latest Test::Unit gem in the build matrix.
* Test::Unit is not available in Ruby v1.9.3 standard library, so remove it from the build matrix.
* Force use of Test::Unit runner, etc in relevant integration tests. Prior to this, I don't think we were really testing the
Mocha integration with Test::Unit much, because, although `TestUnitTest` was a subclass of `Test::Unit::TestCase`, the
important test case instances are the temporary ones built by `TestRunner#run_as_test` et al. Prior to this change, these
would only have used Test::Unit where MiniTest was not available *at all* i.e. only in early versions of Ruby and when the
MiniTest gem was not loaded.
* Reset environment variables between build matrix builds.
* Only activate integration with relevant test library for each of the integration tests.
* Include standard build combinations from Travis CI config i.e. builds using standard library versions of test libraries.
* Fix `build-matrix.rb` script. Also use `.travis.yml` to decide what combinations to run. This means we
can now simulate the Travis CI build locally and avoid duplication. Fixes #157.
* Remove Ruby version map from build matrix script. I'm using the `rbenv-aliases` plugin to alias minor versions to the
relevant patch version.
jperkin pushed a commit that referenced this pull request Apr 22, 2014
Upstream changes:
1.001003     Fri Mar  21 21:12:32 PST 2014
    * Doc updates for maintainer change

1.001002     Mon Nov  4 15:13:58 EST 2013
    * no changes since 0.99

1.001001_001 Wed Oct 30 20:47:23 EDT 2013
    * no code changes, just a new version number with more room to grow

0.99     Tue Oct 29 13:21:03 2013 EDT 2013
    * restore ability to use regex with test_err and test_out
      (Zefram) [rt.cpan.org #89655] [github #389] [github #387]

0.99     Sat Oct 12 15:05:41 EDT 2013
    * no changes since 0.98_06

0.98_06  Fri Sep 27 10:11:05 EDT 2013
    Bug Fixes
    * Fix precedence error with (return ... and ...)
      (nthykier) [github #385]

0.98_05  Tue Apr 23 17:33:51 PDT 2013
    Doc Changes
    * Add a shorter work around for the UTF-8 output problem.
      (Michael G Schwern)

    Bug Fixes
    * Test::Builder::Tester now works with subtests.
      (Michael G Schwern) [github 350]
    * Fix test_fail() inside a do statement.
      (nnutter) [github #369]

    New Features
    * A subtest will put its name at the front of its results to make
      subtests easier to read. [github #290] [github #364]
      (Brendan Byrd)

    Feature Changes
    * like() and unlike() no longer warn about undef. [github #335]
      (Michael G Schwern)


0.98_04  Sun Apr 14 10:54:13 BST 2013
    Distribution Changes
    * Scalar::Util 1.13 (ships with Perl 5.8.1) is now required.
      (Michael G Schwern)

    Feature Changes
    * The default name and diagnostics for isa_ok() and new_ok() have
      changed. (Michael G Schwern)

    Docs Fixes
    * Added a COMPATIBILITY section so users know what major features were
      added with what version of Test::More or perl. [github 343] [github 344]
      (pdl)
    * Fix the ok() example with grep(). (derek.mead@gmail.com)

    Bug Fixes
    * A test with no plan and missing done_testing() now exits with non-zero.
      [github #341] (tokuhirom)
    * isa_ok() tests were broken in 5.17 because of a change in
      method resolution. [github #353] (Michael G Schwern)


0.98_03  Thu Jun 21 13:04:19 PDT 2012
    New Features
    * cmp_ok() will error when used with something which is not a
      comparison operator, including =, += and the like.
      [github 141] (Matthew Horsfall)

    Bug Fixes
    * use_ok() was calling class->import without quoting which could
      cause problems if "class" is also a function.

    Doc Fixes
    * use_ok() has been discouraged and de-emphasized as a general
      replacement for `use` in tests. [github #288]
    * $thing is now $this in the docs to avoid confusing users of
      other languages. [Karen Etheridge]

    Incompatible Changes With Previous Alphas (0.98_01)
    * use_ok() will no longer apply lexical pragams.  The incompatibilities
      and extra complexity is not worth the marginal use.
      [github #287]


0.98_02  Thu Nov 24 01:13:53 PST 2011
    Bug Fixes
    * use_ok() in 0.98_01 was leaking pragmas from inside Test::More.
      This looked like Test::More was forcing strict. [rt.cpan.org 67538]
      (Father Chrysostomos)


0.98_01  Tue Nov  8 17:07:58 PST 2011
    Bug Fixes
    * BAIL_OUT works inside a subtest. (Larry Leszczynski) [github #138]
    * subtests now work with threads turned on. [github #145]

    Feature Changes
    * use_ok() will now apply lexical effects. [rt.cpan.org 67538]
      (Father Chrysostomos)

    Misc
    * Test::More, Test::Simple and Test::Builder::Module now require
      a minimum version of Test::Builder.  This avoids Test::More and
      Test::Builder from getting out of sync. [github #89]
jperkin pushed a commit that referenced this pull request May 7, 2014
* Issue #145: Don't exclude the platform specific 'path' modules (like ntpath)
jperkin pushed a commit that referenced this pull request Jun 2, 2014
Upstream changes:
1.001003     Fri Mar  21 21:12:32 PST 2014
    * Doc updates for maintainer change

1.001002     Mon Nov  4 15:13:58 EST 2013
    * no changes since 0.99

1.001001_001 Wed Oct 30 20:47:23 EDT 2013
    * no code changes, just a new version number with more room to grow

0.99     Tue Oct 29 13:21:03 2013 EDT 2013
    * restore ability to use regex with test_err and test_out
      (Zefram) [rt.cpan.org #89655] [github #389] [github #387]

0.99     Sat Oct 12 15:05:41 EDT 2013
    * no changes since 0.98_06

0.98_06  Fri Sep 27 10:11:05 EDT 2013
    Bug Fixes
    * Fix precedence error with (return ... and ...)
      (nthykier) [github #385]

0.98_05  Tue Apr 23 17:33:51 PDT 2013
    Doc Changes
    * Add a shorter work around for the UTF-8 output problem.
      (Michael G Schwern)

    Bug Fixes
    * Test::Builder::Tester now works with subtests.
      (Michael G Schwern) [github 350]
    * Fix test_fail() inside a do statement.
      (nnutter) [github #369]

    New Features
    * A subtest will put its name at the front of its results to make
      subtests easier to read. [github #290] [github #364]
      (Brendan Byrd)

    Feature Changes
    * like() and unlike() no longer warn about undef. [github #335]
      (Michael G Schwern)


0.98_04  Sun Apr 14 10:54:13 BST 2013
    Distribution Changes
    * Scalar::Util 1.13 (ships with Perl 5.8.1) is now required.
      (Michael G Schwern)

    Feature Changes
    * The default name and diagnostics for isa_ok() and new_ok() have
      changed. (Michael G Schwern)

    Docs Fixes
    * Added a COMPATIBILITY section so users know what major features were
      added with what version of Test::More or perl. [github 343] [github 344]
      (pdl)
    * Fix the ok() example with grep(). (derek.mead@gmail.com)

    Bug Fixes
    * A test with no plan and missing done_testing() now exits with non-zero.
      [github #341] (tokuhirom)
    * isa_ok() tests were broken in 5.17 because of a change in
      method resolution. [github #353] (Michael G Schwern)


0.98_03  Thu Jun 21 13:04:19 PDT 2012
    New Features
    * cmp_ok() will error when used with something which is not a
      comparison operator, including =, += and the like.
      [github 141] (Matthew Horsfall)

    Bug Fixes
    * use_ok() was calling class->import without quoting which could
      cause problems if "class" is also a function.

    Doc Fixes
    * use_ok() has been discouraged and de-emphasized as a general
      replacement for `use` in tests. [github #288]
    * $thing is now $this in the docs to avoid confusing users of
      other languages. [Karen Etheridge]

    Incompatible Changes With Previous Alphas (0.98_01)
    * use_ok() will no longer apply lexical pragams.  The incompatibilities
      and extra complexity is not worth the marginal use.
      [github #287]


0.98_02  Thu Nov 24 01:13:53 PST 2011
    Bug Fixes
    * use_ok() in 0.98_01 was leaking pragmas from inside Test::More.
      This looked like Test::More was forcing strict. [rt.cpan.org 67538]
      (Father Chrysostomos)


0.98_01  Tue Nov  8 17:07:58 PST 2011
    Bug Fixes
    * BAIL_OUT works inside a subtest. (Larry Leszczynski) [github #138]
    * subtests now work with threads turned on. [github #145]

    Feature Changes
    * use_ok() will now apply lexical effects. [rt.cpan.org 67538]
      (Father Chrysostomos)

    Misc
    * Test::More, Test::Simple and Test::Builder::Module now require
      a minimum version of Test::Builder.  This avoids Test::More and
      Test::Builder from getting out of sync. [github #89]
jperkin pushed a commit that referenced this pull request Jun 2, 2014
* Issue #145: Don't exclude the platform specific 'path' modules (like ntpath)
jperkin pushed a commit that referenced this pull request Aug 12, 2014
## python-markdown2 2.2.1

- [issue #142 pull #141] Fix parentheses and spaces in urls.
- [issue #88 issue #95 pull #145] Fix code blocks in code blocks with syntax highlighting.
- [issue #113 issue #127 via pull #144] Fix fenced-code-blocks html and code output.
- [pull #133] Unify the -/= and ## style headers and fix TOC order
- [pull #146] tag-friendly extra to require that atx headers have a space after #
jperkin pushed a commit that referenced this pull request Oct 6, 2014
Add `stack_from_top` option to reverse stack graph data order
Minor fix for empty logarithmic chart
Reorders axes in SVG output. Fix #145 (thanks sirlark)

V 1.5.0
Add per serie configuration
Add half pie (thanks philt2001)
Make lxml an optionnal dependency (huge speed boost in pypy)
Add render_table (WIP)
Support colors in rgb / rgba for parametric styles
jperkin pushed a commit that referenced this pull request Dec 1, 2014
Changelog:
================================================================================
GLM 0.9.5.4: 2014-06-21
--------------------------------------------------------------------------------
- Fixed non-utf8 character #196
- Added FindGLM install for CMake #189
- Fixed GTX_color_space - saturation #195
- Fixed glm::isinf and glm::isnan for with Android NDK 9d #191
- Fixed builtin GLM_ARCH_SSE4 #204
- Optimized Quaternion vector rotation #205
- Fixed missing doxygen @endcond tag #211
- Fixed instruction set detection with Clang #158
- Fixed orientate3 function #207
- Fixed lerp when cosTheta is close to 1 in quaternion slerp #210
- Added GTX_io for io with <iostream> #144
- Fixed fastDistance ambiguity #215
- Fixed tweakedInfinitePerspective #208 and added user-defined epsilon to
  tweakedInfinitePerspective
- Fixed std::copy and std::vector with GLM types #214
- Fixed strict aliasing issues #212, #152
- Fixed std::nextafter not supported with C++11 on Android #213
- Fixed corner cases in exp and log functions for quaternions #199

================================================================================
GLM 0.9.5.3: 2014-04-02
--------------------------------------------------------------------------------
- Added instruction set auto detection with Visual C++ using _M_IX86_FP - /arch
  compiler argument
- Fixed GTX_raw_data code dependency
- Fixed GCC instruction set detection
- Added GLM_GTX_matrix_transform_2d extension (#178, #176)
- Fixed CUDA issues (#169, #168, #183, #182)
- Added support for all extensions but GTX_string_cast to CUDA
- Fixed strict aliasing warnings in GCC 4.8.1 / Android NDK 9c (#152)
- Fixed missing bitfieldInterleave definisions
- Fixed usubBorrow (#171)
- Fixed eulerAngle*** not consistent for right-handed coordinate system (#173)
- Added full tests for eulerAngle*** functions (#173)
- Added workaround for a CUDA compiler bug (#186, #185)

================================================================================
GLM 0.9.5.2: 2014-02-08
--------------------------------------------------------------------------------
- Fixed initializer list ambiguity (#159, #160)
- Fixed warnings with the Android NDK 9c
- Fixed non power of two matrix products
- Fixed mix function link error
- Fixed SSE code included in GLM tests on "pure" platforms
- Fixed undefined reference to fastInverseSqrt (#161)
- Fixed GLM_FORCE_RADIANS with <glm/ext.hpp> build error (#165)
- Fix dot product clamp range for vector angle functions. (#163)
- Tentative fix for strict aliasing warning in GCC 4.8.1 / Android NDK 9c (#152)
- Fixed GLM_GTC_constants description brief (#162)

================================================================================
GLM 0.9.5.1: 2014-01-11
--------------------------------------------------------------------------------
- Fixed angle and orientedAngle that sometimes return NaN values (#145)
- Deprecated degrees for function parameters and display a message
- Added possible static_cast conversion of GLM types (#72)
- Fixed error 'inverse' is not a member of 'glm' from glm::unProject (#146)
- Fixed mismatch between some declarations and definitions
- Fixed inverse link error when using namespace glm; (#147)
- Optimized matrix inverse and division code (#149)
- Added intersectRayPlane function (#153)
- Fixed outerProduct return type (#155)

================================================================================
GLM 0.9.5.0: 2013-12-25
--------------------------------------------------------------------------------
- Added forward declarations (glm/fwd.hpp) for faster compilations
- Added per feature headers
- Minimized GLM internal dependencies
- Improved Intel Compiler detection
- Added bitfieldInterleave and _mm_bit_interleave_si128 functions
- Added GTX_scalar_relational
- Added GTX_dual_quaternion
- Added rotation function to GTX_quaternion (#22)
- Added precision variation of each type
- Added quaternion comparison functions
- Fixed GTX_multiple for negative value
- Removed GTX_ocl_type extension
- Fixed post increment and decrement operators
- Fixed perspective with zNear == 0 (#71)
- Removed l-value swizzle operators
- Cleaned up compiler detection code for unsupported compilers
- Replaced C cast by C++ casts
- Fixed .length() that should return a int and not a size_t
- Added GLM_FORCE_SIZE_T_LENGTH and glm::length_t
- Removed unnecessary conversions
- Optimized packing and unpacking functions
- Removed the normalization of the up argument of lookAt function (#114)
- Added low precision specializations of inversesqrt
- Fixed ldexp and frexp implementations
- Increased assert coverage
- Increased static_assert coverage
- Replaced GLM traits by STL traits when possible
- Allowed including individual core feature
- Increased unit tests completness
- Added creating of a quaternion from two vectors
- Added C++11 initializer lists
- Fixed umulExtended and imulExtended implementations for vector types (#76)
- Fixed CUDA coverage for GTC extensions
- Added GTX_io extension
- Improved GLM messages enabled when defining GLM_MESSAGES
- Hidden matrix _inverse function implementation detail into private section

================================================================================
GLM 0.9.4.6: 2013-09-20
--------------------------------------------------------------------------------
- Fixed detection to select the last known compiler if newer version #106
- Fixed is_int and is_uint code duplication with GCC and C++11 #107
- Fixed test suite build while using Clang in C++11 mode
- Added c++1y mode support in CMake test suite
- Removed ms extension mode to CMake when no using Visual C++
- Added pedantic mode to CMake test suite for Clang and GCC
- Added use of GCC frontend on Unix for ICC and Visual C++ fronted on Windows
  for ICC
- Added compilation errors for unsupported compiler versions
- Fixed glm::orientation with GLM_FORCE_RADIANS defined #112
- Fixed const ref issue on assignment operator taking a scalar parameter #116
- Fixed glm::eulerAngleY implementation #117

================================================================================
GLM 0.9.4.5: 2013-08-12
--------------------------------------------------------------------------------
- Fixed CUDA support
- Fixed inclusion of intrinsics in "pure" mode #92
- Fixed language detection on GCC when the C++0x mode isn't enabled #95
- Fixed issue #97: register is deprecated in C++11
- Fixed issue #96: CUDA issues
- Added Windows CE detection #92
- Added missing value_ptr for quaternions #99

================================================================================
GLM 0.9.4.4: 2013-05-29
--------------------------------------------------------------------------------
- Fixed slerp when costheta is close to 1 #65
- Fixed mat4x2 value_type constructor #70
- Fixed glm.natvis for Visual C++ 12 #82
- Added assert in inversesqrt to detect division by zero #61
- Fixed missing swizzle operators #86
- Fixed CUDA warnings #86
- Fixed GLM natvis for VC11 #82
- Fixed GLM_GTX_multiple with negative values #79
- Fixed glm::perspective when zNear is zero #71

================================================================================
GLM 0.9.4.3: 2013-03-20
--------------------------------------------------------------------------------
- Detected qualifier for Clang
- Fixed C++11 mode for GCC, couldn't be enabled without MS extensions
- Fixed squad, intermediate and exp quaternion functions
- Fixed GTX_polar_coordinates euclidean function, takes a vec2 instead of a vec3
- Clarify the license applying on the manual
- Added a docx copy of the manual
- Fixed GLM_GTX_matrix_interpolation
- Fixed isnan and isinf on Android with Clang
- Autodetected C++ version using __cplusplus value
- Fixed mix for bool and bvec* third parameter

================================================================================
GLM 0.9.4.2: 2013-02-14
--------------------------------------------------------------------------------
- Fixed compAdd from GTX_component_wise
- Fixed SIMD support for Intel compiler on Windows
- Fixed isnan and isinf for CUDA compiler
- Fixed GLM_FORCE_RADIANS on glm::perspective
- Fixed GCC warnings
- Fixed packDouble2x32 on XCode
- Fixed mix for vec4 SSE implementation
- Fixed 0x2013 dash character in comments that cause issue in Windows
  Japanese mode
- Fixed documentation warnings
- Fixed CUDA warnings

================================================================================
GLM 0.9.4.1: 2012-12-22
--------------------------------------------------------------------------------
- Improved half support: -0.0 case and implicit conversions
- Fixed Intel Composer Compiler support on Linux
- Fixed interaction between quaternion and euler angles
- Fixed GTC_constants build
- Fixed GTX_multiple
- Fixed quat slerp using mix function when cosTheta close to 1
- Improved fvec4SIMD and fmat4x4SIMD implementations
- Fixed assert messages
- Added slerp and lerp quaternion functions and tests

================================================================================
GLM 0.9.4.0: 2012-11-18
--------------------------------------------------------------------------------
- Added Intel Composer Compiler support
- Promoted GTC_espilon extension
- Promoted GTC_ulp extension
- Removed GLM website from the source repository
- Added GLM_FORCE_RADIANS so that all functions takes radians for arguments
- Fixed detection of Clang and LLVM GCC on MacOS X
- Added debugger visualizers for Visual C++ 2012

================================================================================
GLM 0.9.3.4: 2012-06-30
--------------------------------------------------------------------------------
- Added SSE4 and AVX2 detection.
- Removed VIRTREV_xstream and the incompatibility generated with GCC
- Fixed C++11 compiler option for GCC
- Removed MS language extension option for GCC (not fonctionnal)
- Fixed bitfieldExtract for vector types
- Fixed warnings
- Fixed SSE includes

================================================================================
GLM 0.9.3.3: 2012-05-10
--------------------------------------------------------------------------------
- Fixed isinf and isnan
- Improved compatibility with Intel compiler
- Added CMake test build options: SIMD, C++11, fast math and MS land ext
- Fixed SIMD mat4 test on GCC
- Fixed perspectiveFov implementation
- Fixed matrixCompMult for none-square matrices
- Fixed namespace issue on stream operators
- Fixed various warnings
- Added VC11 support
jperkin pushed a commit that referenced this pull request Dec 1, 2014
Version 0.10.2
--------------

Released 2014/09/03

- Update translation for reCaptcha via `#146`_.

.. _`#146`: wtforms/flask-wtf#146


Version 0.10.1
--------------

Released 2014/08/26

- Update RECAPTCHA API SERVER URL via `#145`_.
- Update requirement Werkzeug>=0.9.5
- Fix CsrfProtect exempt for blueprints via `#143`_.

.. _`#145`: wtforms/flask-wtf#145
.. _`#143`: wtforms/flask-wtf#143
jperkin pushed a commit that referenced this pull request Aug 29, 2015
Update DEPENDS

Upstream changes:
3.3.7 2015-08-28 13:45:00+0900
    - Fix for older Perl 5.8.8 or lower(#145)
    - Enable 5.8 tests again

3.3.6 2015-08-25 13:50:00+0900
    - Fix issue 'include' makes stack pointer incorrect(#130)

3.3.5 2015-08-05 18:50:00+0900
    - Update Mouse version for Perl 5.22 or higher
jperkin pushed a commit that referenced this pull request Sep 6, 2015
pkgsrc changes:
 * Now liferea depends on www/webkit24-gtk3 (and x11/gtk3)
 * Update DESCR, MASTER_SITES, HOMEPAGE

Changes:
2015-06-19  Lars Windolf <lars.windolf@gmx.de>
	Version 1.10.16
	* Fixes Github #180: Removing item from (v)folder marks all read
	  (reported by GreenLunar)
	* Fixes Github #140, #158: Vertical pane placement is forgotten.
	  (patch by foresto)
	* Fixes Github #182: Missing config.h include in date.c
	  (reported by Paul Gevers)

2015-04-20  Lars Windolf <lars.windolf@gmx.de>
	Version 1.10.15
	* Fixes launching URLs in Firefox 36+
	  (reported by Geoffrey Leach)
	* Fixes Github #30: Segfault after updating from 1.8 to 1.10
	  (reported by vakuum)
	* Improves Github #36, #113: UI lock up during refresh
	  (suggested by mozbugbox)
	* Fixes typo in Italian translation.

2015-02-26   Lars Windolf <lars.windolf@gmx.de>
	Version 1.10.14
	* Fixes Github #154: Crashes while starting (on corrupt icon)
	  (reported by jcamposz)
	* Fixes Github #134: Broken default news feed.
	  (reported by pvdl)
	* Fixes Github #122: Crashes at launch, "segmentation fault"
	  (reported by geoffm)
	* Fixes some memory leaks
	  (patch by Rich Coe)
	* Fixes Github #145: Wrong method triggered on 'Launch External'
	  (patch by mozbugbox)
	* Fixes Github #149: Fixes a random crash on startup
	  (patch by mozbugbox)
	* Fixes all issues reported by Coverity scan

2015-01-07   Lars Windolf <lars.windolf@gmx.de>
	Version 1.10.13
	* Fixes Github #112: Wrapping issue in folder display
	  (reported by Jeff Fortin)
	* Fixes Github #114: Avoid termination on UTF-8 validation error
	* Fixes Github #132: Broken link in documentation
	  (reported by kallus)

2014-10-14   Lars Windolf <lars.windolf@gmx.de>
	Version 1.10.12
	* Fixes Github #86: Support HTTP content negotiation
	  (suggested by DanMan)
	* Fixes Github #98:  Stop calling Atom person constructs w/ URI invalid
	  (patch by Aristotle Pagaltzis)
	* Fixes Github #100: Problems with dark Adwaita theme in GTK 3.14
	  (reported by majutsushi)

2014-08-24   Lars Windolf <lars.windolf@gmx.de>
	Version 1.10.11
	* Fixes Github #53: Doesn't automatically update feed name and favicon
	  for new feed (reported by asl97)
	* Fixes Github #67: Missing dist files for documentation
	  (patch by Mikel Olasagasti)
	* Fixes Javascript links not opening in new browser tabs
	* Updated French translation (Guillaume Bernard)
	* Updated Hebrew translation (Genghis Khan)

2014-07-20   Lars Windolf <lars.lindner@gmail.com>
	Version 1.10.10
	* Fixes Github #26: RTL comments appear incorrectly
	  (reported by yaronf)
	* Fixes Github #21: No notifications for Tiny Tiny RSS feeds
	  (reported by simontunnat)

2014-04-21   Lars Windolf <lars.lindner@gmail.com>
	Version 1.10.9
	* Fixes Github #19: non void function should return value
	  (reported by kwm81)
	* Fixes SF #1141: Liferea does not update feeds with TinyTinyRSS
	  (reported by Dominik Grafenhofer, denk_mal, Fabian Henze)
	* Fixes SF #1150: subscription prop/source: not all fields and
	  buttons visible (reported by David Smith)

2014-03-26   Lars Windolf <lars.lindner@gmail.com>
	Version 1.10.8
	* Fixes Github #13: Parsing errors not visible with dark themes
	  (reported by Steve Kelly)
	* Fixes SF #1137, #1142: startup race with LifereaHtmlView
	  (reported by Yanko Kaneti)

2014-03-17   Lars Windolf <lars.lindner@gmail.com>
	Version 1.10.7
	* Make Liferea use ETags and send If-None-Match
	  (patch by Chris Siebenmann)

2014-02-24   Lars Windolf <lars.lindner@gmail.com>
	Version 1.10.6
	* Fixes SF #1135: liferea-add-feed doesn't process feed:https//
	  (patch by Kevin Walke)
	* Fixes SF #1137: crash on startup in enclosure_list_view_load
	  (reported in Redhat #1048499, Fedora #214888)

2014-01-15   Lars Windolf <lars.lindner@gmail.com>
	Version 1.10.5
	* Fixes #1056, #1089, #1098: Honor preferences when opening links
	  (patch by Daniel Seither)
	* Fixes SF #1096: missing installation of liferea.convert file
	  (reported by stqn)
	* Fixes Redhat #947358: popup notification only for new items
	  (patch by Fabrice Bellet)

2014-01-13   Lars Windolf <lars.lindner@gmail.com>
	Version 1.10.4
	* Fixes SF #1123: Mistakenly claims "TinyTinyRSS source is not self-updating"
	  (reported by Dominik Grafenhoher)
	* Fixes SF #1119: Crash on font resize at startup.
	  (reported by David Smith)
	* Fixes #1117: Selecting last unread item in reduced feed list jumps to next feed
	  (reported by Bruce Guenter)
	* Updated Arabic translation (Khaled Hosny)

2013-10-08   Lars Windolf <lars.lindner@gmail.com>
	Version 1.10.3
	* Asking for credentials again if TinyTinyRSS login fails
	* Asking for TinyTinyRSS credentials only 3 times
	* Checking wether TinyTinyRSS base URL is lost
	* Added warning on TinyTinyRSS login when source is not self-updating
	* "--debug-net --debug-verbose" now traces POST data
	* Patch #230 Add GNOME AppData XML (Mikel Olasagasti)
	* Updated Italian translation (Gianvito Cavasoli)
	* Updated Italian localized feed list (Gianvito Cavasoli)

2013-09-05   Lars Windolf <lars.lindner@gmail.com>
	Version 1.10.2
	* Patch SF #222: Make media player seekable
	  (Simon Kågedal Reimer)
	* Fixes SF #1102: Spelling error in man page
	  (David Smith)
	* Fixes SF #1104: liferea.desktop missing keywords
	  (David Smith)
	* Fixes SF #1105: Start Minimized to Tray Does Not Work
	  (reported by bitlord)
	* Fixes SF #1114: Crashes opening browser on item without link via popup
	  (reported by Rich Coe, David Smith)
	* Improved handling of broken Atom author information.
	  (Lars Windolf)
	* Removed dead Google Reader code to avoid doing requests to Google.
	  Replaced with dummy source that even allows normal feed updates.
	  (Lars Windolf)
	* Added hint to FAQ on how to workaround broken Flash support
	  (Lars Windolf)
	* Dumping feedlist.opml with indentation for readability.
	  (suggested by Christoph Temmel and Simon Kågedal Reimer)

2013-07-28   Lars Windolf <lars.lindner@gmail.com>
	Version 1.10.1a
	* Fixes SF #1102: Liferea does not show a window
	  (reported by genodeftest)

2013-07-28   Lars Windolf <lars.lindner@gmail.com>
	Version 1.10.1
	* Fixes SF #1059: Liferea crashes with system proxy enabled
	  (reported by genodeftest)
	* Fixes SF #1095: Theme color detection bug / white fonts.
	  (reported by David Smith and others)
	* Fixes SF #1097: Default feed refresh interval cannot be set to 0
	  (reported by stqn)
	* Fixes SF #1100: --debug-gui crashes with segmentation fault
	  (reported by genodeftest)
	* Fixes SF #1101: Outdated manpage
	  (reported by genodeftest)
	* Patch SF #225: Make media player work with GStreamer 1.0
	  (Simon Kågedal Reimer)
	* Patch SF #226: Add trailing semi-colon to MimeType so that the desktop
	  file validates (Yanko Kaneti)
	* Patch SF #227: Remove letfover square bracket configure.ac
	  (Yanko Kaneti)
	* Patch SF #228: Add net.sf.liferea.gschema.xml to AC_CONFIG_FILES
	  (Yanko Kaneti)

2013-07-10   Lars Windolf <lars.lindner@gmail.com>
	Version 1.10.0
	* Added experimental sync support for TheOldReader
	  (Lars Windolf)
	* Removed 'Update' link in comments display as it is pretty useless
	  (Lars Windolf)
	* Removed 'No Comments' display as it is rather useless
	  (Lars Windolf)
	* Prevent re-rendering item display on setting item flagged
	  (Lars Windolf)
	* Changed unread number rendering to be right bound and non-ellipsized
	  (Lars Windolf)
	* Fixes g_strstr_len assertions caused by search folder item matching
	  (Rich Coe)
	* Updated documentation to reflect Google Reader, TheOldReader changes
	  (Lars Windolf)
	* Removed welcome text, restoring last feed/item selection instead
	  (Lars Windolf)
	* autogen.sh now reports errors on missing autoconf or intltool
	  (suggested by Scott Kostyshak)
	* Correctly check for gobject-introspection build dependency
	  (suggested by Scott Kostyshak)
	* Updated Basque translation (Mikel Olasagasti Uranga)
	* Updated Danish translation (Joe Hansen)
	* Updated Dutch translation (Erwin Poeze)
	* Updated Finnish translation (Jorma Karvonen)
	* Updated Russian translation (Leonid Selivanov)
	* Updated Ukrainian translation (Yuri Chornoivan)
	* Updated Vietnamese translation (Trần Ngọc Quân)
	* Updated German translation (Lars Windolf)

2013-05-22   Lars Windolf <lars.lindner@gmail.com>
	Version 1.10-RC4
	* Added an option to convert Google Reader subscriptions
	  to local feeds (Lars Windolf)
	* Fixes SF #1080: segfault opening attachment due to incorrect g_free()
	  (reported by Adam Nielsen)
	* Fixes SF #1075: GLib warnings of "string != NULL" assertion failure
	  (reported by Simon Kågedal Reimer)
	* Fixes missing shading in 2-pane mode rendering
	  (reported by Zoho Vignochi)
	* Fixes search folders including comment items
	  (reported by David Willmore)

2013-05-22   Lars Windolf <lars.lindner@gmail.com>
	Version 1.10-RC3
	* Fixes SF #1069: broken rendering in tt-rss feeds
	  (patch by Simon Kågedal Reimer)
	* Merged SF #219: View *.xml files along with *.opml files in file chooser
	  (patch by Simon Kågedal Reimer)
	* Merged SF #233: Show feed name in item view when in merged views.
	  (patch by Simon Kågedal Reimer)
	* Merged SF #193: Use GtkInfoBar for note in preferences window
	  (patch by Fred Morcos)
	* Require intltool >= 0.40.4 (Adrian Bunk)
	* Updated Catalan translation (Gil Forcada)
	* Updated Danish translation (Joe Hansen)
	* Updated Polish translation (Piotr Sokół)

2013-05-12   Lars Windolf <lars.lindner@gmail.com>
	Version 1.10-RC2
	* Extended user agent by "AppleWebKit (KHTML, like Gecko)"
	  to solve incorrect mobile redirect with zdf.de
	* Added social bookmarking support for Mister Wong
	* Added social bookmarking support for Google Bookmarks
	* Update of German FAQ
	* Update of English FAQ
	* Added MimeType to .desktop file (Craig Barnes)
	* Fixes SF #1063: Can't open preferences twice
	  (Emilio Pozuelo Monfort, reported by David Smith)
	* Fixes SF #1040: In feed entries, spaces are replaced with "+"
	  (reported by Emmanuel Seyman)
	* Fixes SF #1051: Issues in RTL GUI of Liferea
	  (reported by phixy)
	* Fixes SF #1038, #1074: Updates ttrss feeds over and over
	  (reported by many users)
	* Fix several memory leaks (Emilio Pozuelo Monfort)
	* Require glib >= 2.28 for GApplication (Adrian Bunk)
	* Use the GTK+ 3 version, not wrongly the GTK+ 2 version,
	  of the libindicate GTK+ bindings (Adrian Bunk)
	* Updated the default feedlists (Adrian Bunk)
	* Removed support for libnotify < 0.7 (Adrian Bunk)
	* Added Vietnamese translation (Trần Ngọc Quân)
	* Updated Albanian translation (Besnik Bleta)
	* Updated Asturian translation (Iñigo Varela)
	* Updated Basque translation (Mikel Olasagasti Uranga)
	* Updated Danish translation (Joe Hansen)
	* Updated Finnish translation (Jorma Karvonen)
	* Updated German translation (Christian Stadelmann)
	* Updated Hungarian translation (Gabor Kelemen)
	* Updated Japanese translation (Takeshi Hamasaki)
	* Updated Latvian translation (Rihards Priedītis)
	* Updated Ukrainian translation (Yuri Chornoivan)

2013-01-30  Lars Windolf <lars.lindner@gmail.com>
	Version 1.10-RC1
	Please note that due to the SourceForge upgrade bug ticket numbering
	did change. This might be confusing... Old numbers are 7 figures,
	newer ones only 4!
	* Patch SF #3407290: Migrate to GSettings
	  (by Mikel Olasagasti)
	* Patch SF #3579177: Change .desktop category to News;Feed;
	  (by Stanislav Brabec)
	* Fix for Debian #668197: x-www-browser preference not working
	  (David Smith)
	* Added slider and time display to media player plugin.
	* Added Google Plus to social bookmarking options.
	* Removing deprecated g_thread_init() call
	* Auto-enable plugins on migration
	* Added missing -a option to manpage
	* Updated manpage to reflect XDG path migration
	* Changing GSettings path from /apps/liferea to /org/gnome/liferea
	* Changes default download thread concurrency from 2 to 3
	* Fixes regression about using the GNOME default font
	* Improves all item/link launching menus to consistently provide
	  three options: Tab, Browser and External Browser
	* Fixes SF #1037: Incorrect notifications for Google Reader
	  (patch by David Smith)
	* Fixes SF #1048: Removed all feedvalidator.org references from FAQ
	  and XSLT as it was reported to host malware.
	  (reported by bkat)
	* Fixes SF #1041: Some GPLv2 license headers were outdated
	  (reported by Emmanuel Seyman)
	* Fixes SF #1044: tt-rss API changed (we now support only 1.6 API)
	  (patch by Sebastian Noel)
	* Fixes assertion when creating new tt-rss subscriptions
	* Fixes XHTML errors caused by extra <body> tags returned by tt-rss
	* Fixes missing item list update when browsing item URLs in Liferea

2012-10-28  Lars Windolf <lars.lindner@gmail.com>
	Version 1.9.7
	* Added new preference for default viewing mode.
	* Changing toolbar button order to prevent accidental clicks on
	  "Mark All Read" when clicking on more frequent buttons like
	  "Next Unread".
	* Added Google Chrome as a browser choice to preferences.
	* Roughly reordered browser choices after browser market share.
	* Removed shading behaviour for unread items in combined view
	  as it doesn't match GTK theming well
	* Removed auto-hide Javascript menu from combined view to simplify
	  rendering in 3-pane modes.
	* Fixes items not removed from search folder count when feed is removed.
	* Fixes search folder rebuilding (do not include comment items).
	* Fixes SELECT offset handling when rebuilding search folders.
	* Now gives feedback when rebuilding search folders in feed list.
	* Update of German translation

2012-10-09  Lars Windolf <lars.lindner@gmail.com>
	Version 1.9.6
	* Removed "pass URL" check box from MIME type dialog.
	* Removed "Save In" entry from "Download" tab in preferences.
	* Removed "curl" choice in download tool preferences.
	* Removed "wget" choice in download tool preferences.
	* Added "steadyflow" choice in download tool preferences.
	* Patch SF #3569056: Use symbolic close buttons and spacing on tabs like gedit
	  (Sebastian Keller)
	* Fixes reloading item when browsing the web inside the item view.
	* Fixes preferences dialog not opening up a second time.
	* Fixes padding/alignments in preferences dialog.
	* Fixes SF #1418701: Remote server pounded into dirt on auto-download
	  (reported by anonymous)
	* Fixes SF #3567827: Double border around webview
	  (reported by borschty)
	* Fixes SF #3572660: crash in google_source_remove_node
	  (reported by Yanko Kaneti)
	* Prevents adding folders/search folders/newsbins to Google Reader
	* Prevents sorting subscriptions in Google Reader
	* Updated Polish translation (Wojciech Myrda)

2012-09-14  Lars Windolf <lars.lindner@gmail.com>
	Version 1.9.5
	* GIR dependencies are now mandatory
	* Migration to XDG directory layout in $HOME
	* Migrate from X session manager to GtkApplication
	* Raising GTK dependency to 3.4 for GtkApplication
	* Storing last window state in GConf now instead in the session command
	* Added Instapaper.com to social bookmarking sites (SF #3564393)
	  (patch by prurigro)
	* Use hint label for manual browser command preference (SF #3129429)
	  (patch by Fred Morcos)
	* Fixes comments_deinit() never being called
	* Fixes search folder counter update on feed removal
	* Fixes SF #3567715: Crash on network online status changes
	  (patch by Yanko Kaneti)

2012-08-24  Lars Windolf <lars.lindner@gmail.com>
	Version 1.9.4
	* Changes (c) name "Lars Lindner" -> "Lars Windolf" due to marriage
	* Removed compilation support for GTK2
	* Added GIR plugin system with libpeas
	* Added GnomeKeyring plugin that stores password in a keyring
	  instead of in the exported OPML.
	* Added simple media player plugin to play audio and video enclosures.
	* Only present enclosures of audio and video MIME type
	* Raise libindicate minimum dependency to 0.6
	* Patch SF #3515882: Also support libindicate 0.7 (Chow Loong Jin)
	* Dropping SIGSEGV signal handler to allow distro crash report tools to
	  work (as found in Ubuntu)
	* Ensure node ids are in DB node relation on startup.
	* Adding AM_PROG_AR to configure.ac to work with automake 1.12
	* Moved tab close button from the URL bar to the right of the tab label.
	* Smarter browser toolbar: appears now also in the item view when
	  browsing external content.
	* Don't ask for Google Reader authentication more than three times
	  with auto-update to avoid annoying the user.
	* Fixes SF Trac #10: Crash on empty search folders within folders
	  (reported by phyxi)
	* Fixes SF Trac #19: Auto-load-link doesn't work with feeds with comments
	  (reported by wonk0)
	* Fixes SF #2855990: Crash when dragging Google Reader feeds outside
	  Google Reader. This is now prevented.
	  (reported by algnod)
	* Fixes SF #3515880: missing include when compiling with libindicate
	  (patch by Chow Loong Jin)
	* Fixes search folders being invisible in reduced mode.
	* Fixes ever growing temporary DB files.
	  (patch by Sven Hartge)
	* Fixes visibility of enclosure list view for Ubuntu.
	* Fixes crashes on enclosure list context menu.
	* Fixes SF #3557513: Fixes crash on empty links in auto-load-link mode.
	  (patch by msquared84)
	* Fixes unknown metadata types reported in trace when loading Google
	  Reader subscriptions from DB.

2012-03-30  Lars Lindner <lars.lindner@gmail.com>
	Version 1.9.3
	* Added a new item history feature that allows navigating
	  through recently viewed items.
	* Added new "Fullscreen" toggle menu option.
	* For GTK+3: request dark theme variant for better contrast
	  between GUI and content. (Jeff Fortin)
	* Change schema defaults for folder display. Now unread
	  items are loaded per-default when clicking a folder.
	* Patch SF #3473743: GTK2 dependency has to be 2.24 (bento)
	* Improve DB item counting statements.
	  (patch by Regis Floret)
	* Change OpenStreetMap rendering from osmarender to mapnik.
	  (patch by Mikel Olasagasti)
	* Patch SF #3127016: Automatic scrollbars on enclosure actions view
	  (patch by Fred Morcos)
	* SF Trac #7: Removing icon from "Cancel All" in update dialog
	  so that .gtkrc "gtk-button-images=0" does have correct effect.
	  (reported by phixy)
	* Fixes SF #3480238: crashes when double clicking find
	  (reported by joeserneem)
	* Fixes Debian #660602: Item pane may be reset during feed update
	  (reported by Ben Hutchings)
	* Reimplemented search folder rule for item with enclosures.
	* Reimplemented search folder rule for item categories.
	* Reimplemented feed title matching rule for search folders.
	  (patch by John Levon)
	* Updated Catalan translation (Gil Forcada)

2012-03-23  Lars Lindner <lars.lindner@gmail.com>
	Version 1.9.2
	* Fixes another migration issue left from 1.9.1
	* Increasing sqlite3 dependency to 3.7+ for WAL journaling.
	* Removed sqliteasync code in favour of WAL journaling.
	  This significantly improves performance for ext4.
	* Added indices for parent_item_id and parent_node_id
	  to avoid slow item removal. (suggested by Paulo Anes)

2012-03-18  Lars Lindner <lars.lindner@gmail.com>
	Version 1.9.1
	* Disabled migration to ~/.liferea_1.9
	* Revert ISO 8601 parsing using Glib due to Debian #653196
	  This fixes SF #3465106 (reported by Vincent Lefevre)
	* Fixes SF #3477582: welcome screen not using theme colors.
	  (reported by stqn)
	* Do not update DB node and subscription info on startup
	  for performance reasons.
	* Perform VACCUM only when page fragmentation ratio < 10%.
	  (suggested by adriatic)
	* Removed tooltip on the "Next Unread Item" button to avoid
	  having it flashing each time it is clicked when skimming
	  through items.

2011-12-23  Lars Lindner <lars.lindner@gmail.com>
	Version 1.9.0
	* Add configure switch to compile against GTK2 or GTK3.
	  (Emilio Pozuelo Monfort, Adrian Bunk)
	* Raise dependencies and updated code to compile against GTK3.
	  (Emilio Pozuelo Monfort, Adrian Bunk)
	* Fixes proxy preference not affecting the HTML widget.
	  (reported by Chris Siebenmann)
	* Fixes SF #3363481: Feeds fail to update properly when entries ordered
	  "wrong" (patch by Robert Trace)
	* Fixes writing subscriptions into DB when importing from OPML
	  (reported by Dennis Nezic)
mamash pushed a commit that referenced this pull request Apr 6, 2016
v2.1
- Issue #156 parsedatetime 2.0 doesn't work on py26

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

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

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

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

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

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

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

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

New features:

Usually there are no new features in a bugfix release, but these were added
due to their high impact on security/safety/speed or because they are fixes
also:

- append-only mode for repositories, #809, #36 (see docs)
- borg create: add --ignore-inode option to make borg detect unmodified files
  even if your filesystem does not have stable inode numbers (like sshfs and
  possibly CIFS).
- add options --warning, --error, --critical for missing log levels, #826.
  it's not recommended to suppress warnings or errors, but the user may decide
  this on his own.
  note: --warning is not given to borg serve so a <= 1.0.0 borg will still
  work as server (it is not needed as it is the default).
  do not use --error or --critical when using a <= 1.0.0 borg server.

Bug fixes:

- fix silently skipping EIO, #748
- add context manager for Repository (avoid orphan repository locks), #285
- do not sleep for >60s while waiting for lock, #773
- unpack file stats before passing to FUSE
- fix build on illumos
- don't try to backup doors or event ports (Solaris and derivates)
- remove useless/misleading libc version display, #738
- test suite: reset exit code of persistent archiver, #844
- RemoteRepository: clean up pipe if remote open() fails
- Remote: don't print tracebacks for Error exceptions handled downstream, #792
- if BORG_PASSPHRASE is present but wrong, don't prompt for password, but fail
  instead, #791
- ArchiveChecker: move "orphaned objects check skipped" to INFO log level, #826
- fix capitalization, add ellipses, change log level to debug for 2 messages,
  #798

Other changes:

- update llfuse requirement, llfuse 1.0 works
- update OS / dist packages on build machines, #717
- prefer showing --info over -v in usage help, #859
- docs:

  - fix cygwin requirements (gcc-g++)
  - document how to debug / file filesystem issues, #664
  - fix reproducible build of api docs
  - RTD theme: CSS !important overwrite, #727
  - Document logo font. Recreate logo png. Remove GIMP logo file.


Version 1.0.0
-------------

The major release number change (0.x -> 1.x) indicates bigger incompatible
changes, please read the compatibility notes, adapt / test your scripts and
check your backup logs.

Compatibility notes:

- drop support for python 3.2 and 3.3, require 3.4 or 3.5, #221 #65 #490
  note: we provide binaries that include python 3.5.1 and everything else
  needed. they are an option in case you are stuck with < 3.4 otherwise.
- change encryption to be on by default (using "repokey" mode)
- moved keyfile keys from ~/.borg/keys to ~/.config/borg/keys,
  you can either move them manually or run "borg upgrade <REPO>"
- remove support for --encryption=passphrase,
  use borg migrate-to-repokey to switch to repokey mode, #97
- remove deprecated --compression <number>,
  use --compression zlib,<number> instead
  in case of 0, you could also use --compression none
- remove deprecated --hourly/daily/weekly/monthly/yearly
  use --keep-hourly/daily/weekly/monthly/yearly instead
- remove deprecated --do-not-cross-mountpoints,
  use --one-file-system instead
- disambiguate -p option, #563:

  - -p now is same as --progress
  - -P now is same as --prefix
- remove deprecated "borg verify",
  use "borg extract --dry-run" instead
- cleanup environment variable semantics, #355
  the environment variables used to be "yes sayers" when set, this was
  conceptually generalized to "automatic answerers" and they just give their
  value as answer (as if you typed in that value when being asked).
  See the "usage" / "Environment Variables" section of the docs for details.
- change the builtin default for --chunker-params, create 2MiB chunks, #343
  --chunker-params new default: 19,23,21,4095 - old default: 10,23,16,4095

  one of the biggest issues with borg < 1.0 (and also attic) was that it had a
  default target chunk size of 64kiB, thus it created a lot of chunks and thus
  also a huge chunk management overhead (high RAM and disk usage).

  please note that the new default won't change the chunks that you already
  have in your repository. the new big chunks do not deduplicate with the old
  small chunks, so expect your repo to grow at least by the size of every
  changed file and in the worst case (e.g. if your files cache was lost / is
  not used) by the size of every file (minus any compression you might use).

  in case you want to immediately see a much lower resource usage (RAM / disk)
  for chunks management, it might be better to start with a new repo than
  continuing in the existing repo (with an existing repo, you'ld have to wait
  until all archives with small chunks got pruned to see a lower resource
  usage).

  if you used the old --chunker-params default value (or if you did not use
  --chunker-params option at all) and you'ld like to continue using small
  chunks (and you accept the huge resource usage that comes with that), just
  explicitly use borg create --chunker-params=10,23,16,4095.
- archive timestamps: the 'time' timestamp now refers to archive creation
  start time (was: end time), the new 'time_end' timestamp refers to archive
  creation end time. This might affect prune if your backups take rather long.
  if you give a timestamp via cli this is stored into 'time', therefore it now
  needs to mean archive creation start time.

New features:

- implement password roundtrip, #695

Bug fixes:

- remote end does not need cache nor keys directories, do not create them, #701
- added retry counter for passwords, #703

Other changes:

- fix compiler warnings, #697
- docs:

  - update README.rst to new changelog location in docs/changes.rst
  - add Teemu to AUTHORS
  - changes.rst: fix old chunker params, #698
  - FAQ: how to limit bandwidth


Version 1.0.0rc2
----------------

New features:

- format options for location: user, pid, fqdn, hostname, now, utcnow, user
- borg list --list-format
- borg prune -v --list enables the keep/prune list output, #658

Bug fixes:

- fix _open_rb noatime handling, #657
- add a simple archivename validator, #680
- borg create --stats: show timestamps in localtime, use same labels/formatting
  as borg info, #651
- llfuse compatibility fixes (now compatible with: 0.40, 0.41, 0.42)

Other changes:

- it is now possible to use "pip install borgbackup[fuse]" to automatically
  install the llfuse dependency using the correct version requirement
  for it. you still need to care about having installed the FUSE / build
  related OS package first, though, so that building llfuse can succeed.
- Vagrant: drop Ubuntu Precise (12.04) - does not have Python >= 3.4
- Vagrant: use pyinstaller v3.1.1 to build binaries
- docs:

  - borg upgrade: add to docs that only LOCAL repos are supported
  - borg upgrade also handles borg 0.xx -> 1.0
  - use pip extras or requirements file to install llfuse
  - fix order in release process
  - updated usage docs and other minor / cosmetic fixes
  - verified borg examples in docs, #644
  - freebsd dependency installation and fuse configuration, #649
  - add example how to restore a raw device, #671
  - add a hint about the dev headers needed when installing from source
  - add examples for delete (and handle delete after list, before prune), #656
  - update example for borg create -v --stats (use iso datetime format), #663
  - added example to BORG_RSH docs
  - "connection closed by remote": add FAQ entry and point to issue #636


Version 1.0.0rc1
----------------

New features:

- borg migrate-to-repokey ("passphrase" -> "repokey" encryption key mode)
- implement --short for borg list REPO, #611
- implement --list for borg extract (consistency with borg create)
- borg serve: overwrite client's --restrict-to-path with ssh forced command's
  option value (but keep everything else from the client commandline), #544
- use $XDG_CONFIG_HOME/keys for keyfile keys (~/.config/borg/keys), #515
- "borg upgrade" moves the keyfile keys to the new location
- display both archive creation start and end time in "borg info", #627


Bug fixes:

- normalize trailing slashes for the repository path, #606
- Cache: fix exception handling in __init__, release lock, #610

Other changes:

- suppress unneeded exception context (PEP 409), simpler tracebacks
- removed special code needed to deal with imperfections / incompatibilities /
  missing stuff in py 3.2/3.3, simplify code that can be done simpler in 3.4
- removed some version requirements that were kept on old versions because
  newer did not support py 3.2 any more
- use some py 3.4+ stdlib code instead of own/openssl/pypi code:

  - use os.urandom instead of own cython openssl RAND_bytes wrapper, #493
  - use hashlib.pbkdf2_hmac from py stdlib instead of own openssl wrapper
  - use hmac.compare_digest instead of == operator (constant time comparison)
  - use stat.filemode instead of homegrown code
  - use "mock" library from stdlib, #145
  - remove borg.support (with non-broken argparse copy), it is ok in 3.4+, #358
- Vagrant: copy CHANGES.rst as symlink, #592
- cosmetic code cleanups, add flake8 to tox/travis, #4
- docs / help:

  - make "borg -h" output prettier, #591
  - slightly rephrase prune help
  - add missing example for --list option of borg create
  - quote exclude line that includes an asterisk to prevent shell expansion
  - fix dead link to license
  - delete Ubuntu Vivid, it is not supported anymore (EOL)
  - OS X binary does not work for older OS X releases, #629
  - borg serve's special support for forced/original ssh commands, #544
  - misc. updates and fixes


Version 0.30.0
--------------

Compatibility notes:

- you may need to use -v (or --info) more often to actually see output emitted
  at INFO log level (because it is suppressed at the default WARNING log level).
  See the "general" section in the usage docs.
- for borg create, you need --list (additionally to -v) to see the long file
  list (was needed so you can have e.g. --stats alone without the long list)
- see below about BORG_DELETE_I_KNOW_WHAT_I_AM_DOING (was:
  BORG_CHECK_I_KNOW_WHAT_I_AM_DOING)

Bug fixes:

- fix crash when using borg create --dry-run --keep-tag-files, #570
- make sure teardown with cleanup happens for Cache and RepositoryCache,
  avoiding leftover locks and TEMP dir contents, #285 (partially), #548
- fix locking KeyError, partial fix for #502
- log stats consistently, #526
- add abbreviated weekday to timestamp format, fixes #496
- strip whitespace when loading exclusions from file
- unset LD_LIBRARY_PATH before invoking ssh, fixes strange OpenSSL library
  version warning when using the borg binary, #514
- add some error handling/fallback for C library loading, #494
- added BORG_DELETE_I_KNOW_WHAT_I_AM_DOING for check in "borg delete", #503
- remove unused "repair" rpc method name

New features:

- borg create: implement exclusions using regular expression patterns.
- borg create: implement inclusions using patterns.
- borg extract: support patterns, #361
- support different styles for patterns:

  - fnmatch (`fm:` prefix, default when omitted), like borg <= 0.29.
  - shell (`sh:` prefix) with `*` not matching directory separators and
    `**/` matching 0..n directories
  - path prefix (`pp:` prefix, for unifying borg create pp1 pp2 into the
    patterns system), semantics like in borg <= 0.29
  - regular expression (`re:`), new!
- --progress option for borg upgrade (#291) and borg delete <archive>
- update progress indication more often (e.g. for borg create within big
  files or for borg check repo), #500
- finer chunker granularity for items metadata stream, #547, #487
- borg create --list now used (additionally to -v) to enable the verbose
  file list output
- display borg version below tracebacks, #532

Other changes:

- hashtable size (and thus: RAM and disk consumption) follows a growth policy:
  grows fast while small, grows slower when getting bigger, #527
- Vagrantfile: use pyinstaller 3.1 to build binaries, freebsd sqlite3 fix,
  fixes #569
- no separate binaries for centos6 any more because the generic linux binaries
  also work on centos6 (or in general: on systems with a slightly older glibc
  than debian7
- dev environment: require virtualenv<14.0 so we get a py32 compatible pip
- docs:

  - add space-saving chunks.archive.d trick to FAQ
  - important: clarify -v and log levels in usage -> general, please read!
  - sphinx configuration: create a simple man page from usage docs
  - add a repo server setup example
  - disable unneeded SSH features in authorized_keys examples for security.
  - borg prune only knows "--keep-within" and not "--within"
  - add gource video to resources docs, #507
  - add netbsd install instructions
  - authors: make it more clear what refers to borg and what to attic
  - document standalone binary requirements, #499
  - rephrase the mailing list section
  - development docs: run build_api and build_usage before tagging release
  - internals docs: hash table max. load factor is 0.75 now
  - markup, typo, grammar, phrasing, clarifications and other fixes.
  - add gcc gcc-c++ to redhat/fedora/corora install docs, fixes #583
jperkin pushed a commit that referenced this pull request Oct 5, 2016
2016.9.19
=========
----

* Default image alt text option created and set to a default of empty string "" to maintain backward compatibility
* Fix #136: --default-image-alt now takes a string as argument
* Fix #113: Stop changing quiet levels on \/script tags.
* Merge #126: Fix deprecation warning on py3 due to html.escape
* Fix #145: Running test suite on Travis CI for Python 2.6.
jperkin pushed a commit that referenced this pull request Oct 22, 2016
+ Version 2.15 (18.10.2016)

  - PR #121: Update bundled PLY version to 3.8
  - Issue #117: Fix parsing of extra semi-colons inside structure declarations.
  - PR #109: Update c_generator to add {} around nested named initializers.
  - PR #101: Added support for parsing pragmas into the AST.
  - Additional fake headers and typedefs, manifest fixes (#97, #106, #111).
  - Testing with Python 3.5 instead of 3.3 now (3.4 and 3.5 are the 3.x versions
    tested).
  - PR #145: More complete support for offsetof()
  - Issue #116: Fix line numbers recorded for empty and compound statements.
  - Minor performance improvement to the invalid string literal regex.
jperkin pushed a commit that referenced this pull request May 19, 2017
2.5.1 (2017-05-11)
------------------

* Fixed xdist breakage (regression in ``2.5.0``).
  Fixes `#157 <https://github.com/pytest-dev/pytest-cov/issues/157>`_.
* Allow setting custom ``data_file`` name in ``.coveragerc``.
  Fixes `#145 <https://github.com/pytest-dev/pytest-cov/issues/145>`_.
  Contributed by Jannis Leidel & Ionel Cristian Mărieș in
  `#156 <https://github.com/pytest-dev/pytest-cov/pull/156>`_.

2.5.0 (2017-05-09)
------------------

* Always show a summary when ``--cov-fail-under`` is used. Contributed by Francis Niu in `PR#141
  <https://github.com/pytest-dev/pytest-cov/pull/141>`_.
* Added ``--cov-branch`` option. Fixes `#85 <https://github.com/pytest-dev/pytest-cov/issues/85>`_.
* Improve exception handling in subprocess setup. Fixes `#144 <https://github.com/pytest-dev/pytest-cov/issues/144>`_.
* Fixed handling when ``--cov`` is used multiple times. Fixes `#151 <https://github.com/pytest-dev/pytest-cov/issues/151>`_.
jperkin pushed a commit that referenced this pull request Jun 6, 2017
=== 0.5.3 2017-05-24

* Removing legacy scripts (James Pinto)
* Fix #145 - broken CLI required loading active_support (James Pinto)

=== 0.5.2 2017-05-17

* Adding a development dependency that had not been mentioned (James Pinto)
* Use assert_nil so as to silence a Minitest 6 deprecation warning (James Pinto)
* Stop bundling tests files in the gem (Michal Papis)
* Minor cleanup on tests (James Pinto)
* TravisCI no longer needs libcurl-dev (James Pinto)
* Nokogiri 1.7 does not accept Ruby 2.0 (James Pinto)
* Upgrading to CodeClimate 1.0 (James Pinto)
* Adding support to Ruby 2.4 and head (James Pinto)
* Locking gemspec to Rails 4 so as to allow our next version for Rails 5 (James Pinto)
* Fix #113 adding paths when a full URL has been specified   (James Pinto)
* moving development dependency to gemspec (James Pinto)
* Silencing 'Net::HTTPResponse#header is obsolete' (James Pinto)
* Silencing some test warnings (James Pinto)
* Silencing 'loading in progress, circular require considered harmful' (James Pinto)
* Silence 'URI.escape obsolete' (James Pinto)
* Refactored CLI (James Pinto)
* Bug Fix, webmock 2.0 has introduced a new bug (James Pinto)
* Moving test files into test/units/ (James Pinto)
* Adding CodeClimate (James Pinto)
* Reimplementing #82 - Debug Output Option (James Pinto)
* Making a test/support dir (James Pinto)
* Fix #177 - Adjusting to webmock latest recommended implementation for minitest (James Pinto)
* Adding support to Ruby 2.4 and head (James Pinto)
* Upgrading to CodeClimate 1.0 (James Pinto)
* Nokogiri 1.7 does not accept Ruby 2.0 (James Pinto)
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