Revision history for Perl module XML::RSS

1.49 - April 7, 2011
    - Some correctness and Modern Perl changes to the
    script (it still appears to be very hairy.)
    - Add support for parsing rssCloud:
        - Thanks to STUIFZAND for the patch.

1.48 - April 23, 2010
    - Fix the $rss->parse($string)->other_method() display (had to add
    spaces between the << and >>). See:
        - Thanks to Slaven_Rezic for the report.

1.47 - December 8, 2009
    - Made sure XML::RSS::save() can do its thing when in taint mode:

1.46 - October 8, 2009
    - Updated the E-mail address of Adam Trickett.
    - Removed the perl-5.6.x-specific workarounds and made perl-5.8.x as
    a requirement. This was done in order to:
        - avoid a workaround that also caused an incomplete test coverage.
        - avoid various test failures due to a problem with XML-Parser
        on 5.6.x .
        - encourage people using ancient versions of perl in production.
    - Convert all occurences of "new XML::RSS" to "XML::RSS->new()" everywhere.
        - a best practice.

1.45 - August 5, 2009
    - Removed some unused module requirements statements from lib/**.pm.
    - Added a note about date parsing/generation (thanks to an email
    - Applied a patch by "David White" to have uppercase letter in 
    namespace/module identifiers.
    - Added "resources" and "keywords" to the Build.PL.

1.44 - April 1, 2009
    - Applied a patch from Simon Wistow (after some modifications) to
    add support for multiple enclosures.
    - Added the t/xml-base.t test file from Simon Wistow to test for
    xml:base. Corrected for style.

1.43 - January 12, 2009
    - Fixed the date on the last entry on this changelog, to say "2009"
    instead of "2008".

1.42 - January 3, 2009
    - When transforming elements with attributes into hash-refs - make
    sure they are placed in the correct namespace. Previously 
    <media:description> over-rided the plain <description>. (as in Flickr).

1.41 - December 4, 2008    
    - Made the default keys for the channel link, description and title undef 
    instead of ''. They become '' once they are opened.
    - Now keeping track of rdf:resource of <image> in RSS 1.0:
    - Made sure that channel/{link,description,title} are localized to
    the empty string before rendering, to allow for better backwards

1.40 - December 1, 2008
    - Now outputting an arrayref of <skipDays>/<day>'s and <skipHours>/<hours>
    - Now parsing multiple <category>'ies inside an <item> into an
    - Now outputting an arayref of <item>/<category> prpoerly.
    - Parsing multiple <channel>/<category> into arrays.
    - Rendering multiple <channel>/<category> elements from array refs.
    - Now parsing multiple dc:items into an array 
    reference (at least inside an <item>):
    - Added the modules_as_arrays option to parse repeatable module elements
    into an array ref.

1.38 - November 27, 2008
    - Added support for duplicate items of RSS modules.
    - Added support for multiple Dublin Core elements. One can point
    the field to an array and it will create multiple elements:
    - Now parsing several <skipDays>/<day>s and <skipHours>/<hour>s into
    an array reference instead of concatenating them together.

1.37 - November 18, 2008
    - Extracted the common parts of parse() and parsefile() into one
    method (Refactoring - Shlomi Fish)
    - Incorporated a modified version of a patch from Simon Wistow to
    add support for the "xml:base" attribute.
    - Renamed t/items-are-0.t into the more descriptive 
    t/test-generated-items.t , to highlight its significance and make
    it easier to notice.
    - Enabled backwards-compatibility mode for the "description" item
    to not become a hash-ref by default if xml:base is specified.

1.36 - October 7, 2008
    - ->parse() now explicitly returns $self.
    - ->parsefile() now explicitly returns $self.
    - Applied a patch to change the RSS-0.91 DTD URL from
    - Reformatted the Changes file to standardize on 4-space-indents.
    - Small documentation patch: (add_item with dc:date)

1.35 - September 13, 2008
    - Added a Module::Build-based Build.PL so we'll have an easier time 
    with the META.yml and the Kwalitee.
    - Kwalitee - added "use warnings" to all Perl files.
        - now depending on at least perl-5.6.0.
    - Kwalitee - fixed the "use" statement of
    "Test::Run::CmdLine::Iface" to a runtime require.

1.34 - September 12, 2008
    - fixed a typo in the documentation of lib/XML/ - 
    "regardless" instead of "regarless".
        - (Reported by Reuben Thomas, Fixed by Shlomif).
    - fixed a code fragment - pop() instead of shift() for older
    items, and while() instead of if():
        - (Reported by Dave, Fixed by Shlomif).

1.33 - June 8, 2008
    - Allowed the end-user to customise the _encode() routine in 
    XML::RSS::Private::Output::Base from XML::RSS using the
    encode_cb key.

1.32 - February 8, 2008
    - Fixed :
        - made sure the namespace specified elements can have a hash
        as a value in which case they'll be outputted as a standalone tag
        with attributes.
    - Fixed :
        - changed pop() to shift() to remove the oldest item in the
        example in lib/XML/, per the comments in the bug report.
    - Fixed :
        - updated the URLs for information about RSS mentioned under
        "=head1 DESCRIPTION", based on a Google search. 
        - (Shlomi Fish)
    - Fixed :
        - made sure that isPermalink is true if and only if the isPermalink
        attribute is "true". Not if it is non-existent, etc.
        - this modified the behaviour of the module.

1.31 - June 29, 2007
    - Fixed the save() function to handle perl-5.6.x (and possibly below)
    where the ":encoding(...)" filehandle are not available (Shlomi Fish)

1.30 - June 18, 2007
    - Same as 1.29_02 (from February 23, 2007)
    - Removed some methods that were not used.
    - Added more tests to increase the test coverage.
    - Fixed a bug where prefixes could be specified with invalid characters
      because there was a range (.-_) instead of three individual
      characters (.\-_).
    - Many files were left in the distribution or Subversion repository 
      that were executable but need not be. Made them non-executable.
    - Clean up examples/ directory and move generated files out of t/
    - isPermaLink / guid fixes (RT#23983, Shlomi)
    - increased the test coverage of XML::RSS up to 100%. (Shlomif)
    - SECURITY BUG FIX: eliminated a markup injection vulnerability in the
      taxo:topics output of RSS 1.0. (Shlomif)
    - Moved the append function, which is unused and cannot be effectively 
      used, out of the main module and into the rejects directory inside
      the repository (but outside the module). (Shlomif)
    - Added POD for full POD coverage. (Shlomif)
    - Several other bug fixes. (Shlomif)
    - Heavy refactoring of the code. (Shlomif)
    - perltidy configuration file; run perltidy on XML::RSS (and 
      intentionally not on the tests) (ABH).
    - Removed the remaining tab characters. (Shlomif)
    - Fixed a bug in one of the tests. (Shlomif)
    - Converted the rendering processes of the various RSS versions to 
      one class per RSS version and applied the "Convert Conditionals
      to Polymorphism" refactoring. (Shlomif)
    - Removed the languages hash which was completely unused. (Shlomif)
    - Converted the parsing routines to be methods of XML::RSS to increase
      modularity. XML::RSS no longer inherits from XML::Parser. (Shlomif)
    - Extracted several methods from the parsing stage. (Shlomif)
    - Added a regression test to   (Shlomif)
    - Tweaked the Makefile.PL Test::Run integration according to:

1.22 - December 17th, 2006 
    - Fix XML::Feed compatability. Make sure $item->{content} is always setup
      (broke in 1.20, RT#23822, Shlomi, Andreas J. Koenig)
    - Fix the tests to work on Win32 (RT#23752, Shlomi, Kenichi Ishigaki)
    - make add_module work for both RSS 1.0 and 2.0 (RT#16191,
      RT#18907, RT#13209, Ben Trott, Ivan Willis)
    - Fixed the problem with a version => "2.0" RSS not parsing correctly
      the namespaced elements in a RSS 1.0 feed (in RT#23822, Shlomi)
    - Channel->{link | textInput} (sic) property mapping in RSS 2.0
      (RT#9862, Shlomi / chatiman)
    - Don't fail the tests if Test::Pod::Coverage is missing
      (reported by Andreas J. Koenig)

1.21 - December 5th, 2006
    - Support inserting a XSL stylesheet URL into the XML output
      (RT#11569, Jason A. Smith, Shlomi Fish)
    - Remove empty lines in the test_manifest - some versions of
      Test::Manifest doesn't do the right thing with
      those. (RT#23678, Hugo van der Sanden)
    - Add Pod::Coverage tests
    - More Date Conversion (Shlomi) 
    - Fix for a Markup Injection Vulnerability (RT#23435, Shlomi)

1.20 - November 10th, 2006
    - Value for $XML::RSS::modules gets destroyed (RT#18755, Shlomi)
      - Note that YOU CAN NO LONGER USE $XML::RSS::modules, you
           have to use the add_modules call as documented!
    - encode generates warnings for undefined text (RT#13523, Mark Stosberg)
    - Missing last build date value in RSS 2.0 (RT#19417)
    - renamed the internal encode method to _encode
    - RSS 2.0 spec allows omission of title from entry (RT#18817,
      test from Shlomi)
    - Can't create "0" values in optional items (RT#11415, based on
      patch from Shlomi - thanks!)
    - Remove the executable bit from Makefile.PL
    - Add test to test regression of CPAN RT#5438 (Shlomi)
    - More tests...

1.12 - October 25, 2006
    - Add more tests
    - make sure META.yml is correctly generated
    - Fix enclosure parsing (RT#7920, Tatsuhiko Miyagawa)
    - Incorrect entity encoding in XML output (RT#22467, reported by Stephen Hall)

1.11 - October 19, 2006
    - use HTML::Entities instead of the "homegrown" entity encoding code
    - Minor doc fix (David Steinbrunner)
    - Fix encoding of the > char, added tests (RT#19420, Shlomi Fish)
    - XML::RSS ignores output encoding (RT#11124, RT#7343, test
      failures on win32, Vaclav Haisman, Steve Peters)
    - encoding of source element (RT#2285)
    - use base instead of @ISA
    - Thanks to Shlomi Fish for helping sorting through the RT queue!

1.10 - March 11, 2006
    - Module (for now) maintained by Ask Bjoern Hansen
    - Fixed category output in RSS 2.0 (RT#17303, Yasuhiro Onishi)
    - Update documentation with new Subversion server and bug tracking
    - Clean up distribution (tests, Makefile.PL, file locations, ...)

1.05 - Thu Aug 12 20:54:31 2004
    - fixed version number
    - improved RSS 2.0 generation support
    - typo and documentation fixes
1.04 - Web Mar 03 20:49:43 2004
    - update Changes to include changes for 1.03
1.03 - Web Mar 03 00:24:07 2004
    - quell warnings when parsing RSS 0.9x, RSS 2.0
1.02 - Mon Feb 20 15:34:21 2003
    - fixed bug in encode().  encode() did not respect CDATA
      sections and would mangle them when encountered.  now behaves
      properly (we hope) even when CDATA and #PCDATA are mixed
      together liberally

1.01 - Mon Feb  3 15:46:25 2003
    * fixed bug with handle_char().  i (brian d foy) mis-diagnosed a
    previous bug and broke handle_char() when what I should have done
    was initialise the object for each call to parse*()

    * if you have version 1.0, you should upgrade to this version, 1.01

1.00 - Fri Jan 31 11:26:41 2003
    * the as_string method now encodes special characters. valid output!
    * a new "Auto Add" feature can add modules for namespaces found
    while parsing (off by default)
    * can output RSS 2.0, but not parse it yet
    * this is the last major release in this track.  we are going to
    completely rewrite XML::RSS as something more extendable.

0.98_05 - Mon Jan 27 15:54:32 2003
    * The auto add_feature is not controlled by the $AUTO_ADD variable
    and is off by default
    * removed the distribution tests now that it is ready to distribute

0.98_04 - Fri Jan 17 20:00:29 2003
    * the parse and parsefile routines now automatically add non-
    standard namespace to the modules list

0.98_03 - Fri Jan 17 19:22:20 2003
    * changed the handle_char() routine to replace data rather than
    append to existing data.  this takes care of the doubling problem
    in the last issue.
    * set the RSS 2.0 namespace in the _initializer routine
    * all tests now pass.  if this works for people, it could turn into
    a release candidate

0.98_02 - Fri Jan 17 19:15:45 2003
    * changed the handle_char() routine to replace data rather than
    append to existing data.  this takes care of the doubling problem
    in the last issue.

    * set the RSS 2.0 namespace in the _initializer routine

    * all tests now pass.  if this works for people, it could turn into
    a release candidate

0.98_02 - Fri Jan 17 15:47:29 2003
    * added initial RSS 2.0 support
    * first fix to properly encode special characters in output
    * need to fix feature to add namespace (tests are TO DO)

0.98 Tue Nov 12 05:45:36 CST 2002
    - module taken over by brian d foy <>
    - module now in SourceForge (
    - added support for arbitrary namespaces (with defaults to the
    usual suspects)
    - fixed ommission of encoding with version 0.9 output

0.97 Wed Mar 21 03:13:29 EST 2001
    - added support for the Taxonomy module (taxo). It only works
      inside the channel or item elements and only supports one
      form of the module syntax. See the XML::RSS documentation
      for examples.      

0.96 Sat Mar 17 17:21:27 EST 2001
     - fixed RSS 0.91 output. When the source file that is parsed was
    1.0, it did not properly translate all of the dc elements to
    0.91 channel elements.

0.95 Sat Dec 23 11:28:03 EST 2000
     - added support for including external namespaces and elements

0.94 Sat Dec 16 12:42:21 EST 2000
     - added support for RSS1.0 RC1 release
     - added support for Syndication and Dublin Core modules

0.9 Mon Aug 14 17:05:00 EDT 2000
    - fixed DESTROY() error when using Perl 5.6
    - added support for RSS 1.0 and rss091 namespace

0.8 Mon Dec 27 03:42:27 EST 1999
    - fixed shallow copy problem when working with multiple instances

0.7 Wed Oct 20 22:41:05 EDT 1999
    - parameters were not getting set unless the strict parameter was set 
    - fixed spelling for managingEditor and webMaster

0.6 - numerous minor bug fixes
    - it no longer checks for size as specified by Netscape's RSS spec
      unless otherwise specified

0.5 - fixed handle_char method which croaked on cdata
      that contained entities. Reported by 
      Wojciech Zwiefka <>
    - prettied up the output from It's
      now more suitable for including news feeds on
      a Web site. Also added ability to give local
      filename or http URL.

0.4 - removed extraneous print
    - added stuff in examples/

0.3  Tue Aug 24 05:14:18 EDT 1999
     - added support for RSS 0.91

0.2  Sat Jul 24 21:12:22 EDT 1999
     - added documentation

0.1  Wed Jul  7 16:22:25 1999
    - original version; created by h2xs 1.19