The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
2023-05-22  3.0.3 Dave Cross <>

  * Fixed some old links (see

2023-05-15  3.0.2 Dave Cross <>

  * Removed a prereq that is no longer needed

2023-05-14  3.0.1 Dave Cross <>

  * Switch from using (unsupported) HTML::Tidy to HTML::T5

2023-03-10  3.0.0 Dave Cross <>

  * Change the name of the feed 'url' attribute to 'feed'
    (the old name is still supported, but warns)

2023-01-03  2.2.1 Dave Cross <>

  * Update the version requirement in Build.PL too

2022-12-31  2.2.0 Dave Cross <>

  * Only works on Perl >= 5.10.0

2022-12-29  2.1.0 Dave Cross <>

  * Make the "config" variable available in templates

2022-12-29  2.0.9 Dave Cross <>

  * Add config attribute which gives access to the
    configuation file

2022-08-30  2.0.8 Dave Cross <>

  * Fix Pod on the new module

2022-08-29  2.0.7 Dave Cross <>

  * Add missing file

2022-08-29  2.0.6 Dave Cross <>

  * Add config role to enable alternative storage for config
  * CI improvements
  * Test improvements (thanks choroba)

2021-01-15  2.0.5 Dave Cross <>

  * Added bugtracker to metadata
  * CI improvements
  * Code refactoring

2020-09-24  2.0.4 Dave Cross <>

  * Added missing new library to MANIFEST

2020-09-24  2.0.3 Dave Cross <>

  * Added "cutoff_duration" config option for feeds

  * Fixed a long-standing bug in date cutoff

2020-09-24  2.0.2 Dave Cross <>

  * Added "max_entries" config option for feeds

2020-09-22  2.0.1 Dave Cross <>

  * Require OPML module for testing.

2020-09-21  2.0.0 Dave Cross <>

  * Catch up on a few years of packaging and CI fixes.

  * Stop prepending feed name to entry titles.

2018-03-04  Dave Cross <>

  * bin/perlanet, lib/ Remove references to defunct mailing list.

  * Build.PL, MANIFEST.SKIP: Fix resources listed in metadata

2018-02-20  Dave Cross <>

  * docs/style.css, in/style.css: Another tweak

  * docs/style.css, in/style.css: Style tweak

  * docs/index.html, in/ Dealing with template tag idiocy.

  * docs/style.css, in/style.css: Make border full-width.

  * docs/style.css, in/style.css: Improve the footer.

  * docs/index.html, in/ Less shouting.

  * docs/index.html, in/, in/ More text.

  * docs/CNAME, docs/index.html, docs/style.css: Generate the web site.

  * in/CNAME, in/, in/style.css, layouts/page: Move the web site
  from a branch into a directory.

2018-02-16  Dave Cross <>

  * Build.PL: Better home page. Remove reference to long-dead mailing list.

2018-02-15  Dave Cross <>

  * lib/ Bump version for release.

2018-01-22  Dave Cross <>

  * lib/ Correct TODO link

2018-01-22  Mohammad S Anwar <>

  * lib/ - TODO link is now clickable.

2017-10-03  Dave Cross <>

  * t/01_basic.t, t/02_phases.t, t/03_noconf.t, t/04_mps.t, t/05_cache.t:
  Switched all tests to use done_testing()

2017-10-02  JJ Merelo <>

  * t/01_basic.t: Adds some tests for OPML  It's not improving coverage, but at
  least generates an object of that kind. Before I go any further, I would need
  some help; I really can't figure out how to add feeds, for instance. Refs #4
  Refs #3

  * lib/, t/01_basic.t: Adds example to test\n\nDoes not improve

2017-07-03  Dave Cross <>

  * lib/Perlanet/Trait/ Improvements to HTML scrubbing.

2017-07-02  Dave Cross <>

  * t/06_youtube.t, t/data/youtube.xml, t/youtube2rc, t/youtuberc: Added tests
  for new sorting functionality.

  * MANIFEST, bin/perlanet, lib/ Version 1.1.0. Allow sorting by
  issued date (as well as modified date)

2017-06-23  Dave Cross <>

  * lib/ Typo in version number FFS!

  * lib/ Bumped version for release (version 1.0.0!)

  * lib/, lib/Perlanet/Trait/, t/02_phases.t, t/04_mps.t,
  t/05_cache.t: Change various methods to take array refs, not lists.

2017-04-01  Dave Cross <>

  * .travis.yml: Force installation of XML::OPML::SimpleGen

2017-03-29  Dave Cross <>

  * lib/ Bump version for release.

  * lib/Perlanet/Trait/ Remove border attributes

  * lib/Perlanet/Trait/ Best to allow https images these days. 
  Also, the idiocy of some feeds makes it well worth including width and height
  on image tags.

2015-07-19  Dave Cross <>

  * .travis.yml, Build.PL: Another go at building HMTL::Tidy on Travis CI

  * .travis.yml: Ensure HTML tidy is installed

2015-07-18  Dave Cross <>

  * t/atom.xml: Added t/atom.xml

  * .travis.yml, MANIFEST.SKIP: Added .travis.yml and MANIFEST.SKIP

  * .gitignore: Changed .gitignore

2013-04-22  Dave Cross <>

  * examples/ Change to HTML5 and remove excess <html> tag.

2013-04-22  Tom Bloor <>

  * .gitignore, lib/Perlanet/ POD Update  updated POD synopsis as per
  my Blog post

2012-07-27  Dave Cross <>

  * lib/Perlanet/Trait/ Argh! Scrubbing hasn't been working for
  about two years :/ Fixed now. Should write a test.

  * Build.PL: Added missing pre-req (namespace::autoclean)

2012-07-14  Dave Cross <>

  * .gitignore: Added some more stuff to .gitignore.

2012-03-17  Dave Cross <>

  * Build.PL, lib/ Switched from using TryCatch to Try::Tiny.
  Bumped version for release.

2012-03-14  Dave Cross <>

  * lib/ Bump version number for release.

  * Build.PL: Make MooseX::ConfigFromFile required for build (as it's used in
  the tests)


2011-02-22  Dave Cross <>

  * lib/ Bump version for release.

  * lib/Perlanet/Trait/, t/01_basic.t: Fix support for OPML generation
  (make it _really_ optional).

2010-11-04  Dave Cross <>

  * lib/ Bump to version 0.53 for release.

  * t/pod_coverage.t: Added more subroutines to be skipped in the pod coverage

2010-08-26  Dave Cross <>

  * lib/Perlanet/, lib/Perlanet/, lib/Perlanet/Trait/,
  lib/Perlanet/Trait/, lib/Perlanet/Trait/,
  lib/Perlanet/Trait/, lib/Perlanet/Trait/,
  lib/Perlanet/Trait/, lib/Perlanet/Trait/ Added 'use
  strict' and 'use warnings' to all modules.

2010-08-23  Dave Cross <>

  * lib/ Bump version number.

  * lib/Perlanet/Trait/ Pass the whole Perlanet object to
  the template in a variable called 'cfg'.

  * lib/Perlanet/ Renamed the 'website' attribute to 'web' (in line
  with old config files).

  * lib/ Improved reporting for HTTP errors.

2010-08-22  Dave Cross <>

  * lib/ Bumped to version 0.51. Fixing more problems.

  * MANIFEST: Added more data files to MANIFEST

  * MANIFEST, t/04_mps.t, t/data/stevebaker.xml, t/data/talkcarswell.xml,
  t/mprc: Added some more tests.

  * lib/Perlanet/Trait/ Minor reformatting.

  * lib/ Refactoring clean_entries method.

  * lib/Perlanet/Trait/ Documentation typo.

  * lib/ Fixed documentation.

  * lib/Perlanet/Trait/ Fixed broken OPML handling.

  * t/testrc: Added 'entries_per_feed' config option for tests.

  * lib/ Correct typo

  * MANIFEST, t/02_phases.t: Added tests for individual phases of the process.

2010-08-21  Dave Cross <>

  * lib/ Reinstating the "entries_per_feed" support. Not sure when
  it went missing. Renaming more config settings back to what they should be.

  * lib/Perlanet/Trait/ Fixed names of the attributes.

  * t/01_basic.t: Changed calls to reflect corrected config names.

  * lib/ Fix typo.

  * t/testrc: Fix config format.

  * lib/Perlanet/ Reformatting.

  * lib/ Bump to version 0.50.

  * lib/Perlanet/, lib/Perlanet/Trait/,
  lib/Perlanet/Trait/, lib/Perlanet/Trait/,
  lib/Perlanet/Trait/, lib/Perlanet/Trait/,
  lib/Perlanet/Trait/, lib/Perlanet/Trait/ Minor

  * lib/ Reformatting.

  * lib/ Refactored the calls in the main run method. Now they seem
  to work.

  * t/testrc: Changes to reflect the new format for author details.

2010-08-19  Dave Cross <>

  * bin/perlanet, lib/, lib/Perlanet/Trait/,
  lib/Perlanet/Trait/ Attempting to get perlanet
  comment-line program working again.

2010-08-18  Dave Cross <>

  * MANIFEST: Added missing files.

  * bin/perlanet: Command line program  now uses Perlanet::Simple rather than

  * lib/ Bump to version 0.47 for release.

  * lib/Perlanet/ Fixed called to 'agent' method. Removed nasty typo.

  * lib/ Added 'agent' to list of attributes.

  * t/01_basic.t: Minor reformatting.

  * t/testrc: Renamed opml attribute to opml_file.

  * lib/ Better error reporting on XML parsing failures.

2010-07-18  Oliver Charles <>

  * lib/Perlanet/, lib/Perlanet/Trait/,
  lib/Perlanet/Trait/, lib/Perlanet/Trait/,
  lib/Perlanet/Trait/, lib/Perlanet/Trait/ 100% POD

  * Build.PL: MooseX::ConfigFromFile is required for tests

2010-06-08  Oliver Charles <>

  * lib/ Be less strict about what properties the output feed must

2010-06-06  Oliver Charles <>

  * lib/Perlanet/ Fix POD syntax errors

  * Build.PL: Update Build.PL with new dependencies

  * lib/, lib/Perlanet/, lib/Perlanet/Trait/,
  t/02_basic.t, t/03_noconf.t, t/04_moose_constr.t, t/05_cache.t: Pass all
  tests  I have removed some fairly redundant tests for now. Now that Perlanet
  is much more segmented we need to rewrite these tests to do some *real*
  testing - but at least this gets us a green light for now.

2010-06-03  Oliver Charles <>

  * lib/, lib/Perlanet/Trait/,
  lib/Perlanet/Trait/ Slightly change the procedure for cleaning 
  IronMan needs the uncleaned posts and the cleaned posts. This allows us to by
  default clean all posts, but IronMan can take out the clean_entries routine
  and run clean_html itself

  * lib/, lib/Perlanet/, lib/Perlanet/Trait/,
  lib/Perlanet/Trait/, lib/Perlanet/Trait/,
  lib/Perlanet/Trait/, lib/Perlanet/Trait/,
  lib/Perlanet/Trait/, lib/Perlanet/Trait/, t/01_basic.t,
  t/testrc: Split more things up into traits. Improved some docs too

  * lib/ Removed any reference of cfg from core Perlanet

  * lib/, lib/Perlanet/ Drastically simplified run in
  Perlanet to act like a pipeline.  The process now takes a list of original
  feeds, finds valid ones, selects entries, sorts and filters them, cleans
  them, then renders them. The original behaviour of each of these steps has
  moved to Perlanet::Simple

  * lib/, lib/Perlanet/, lib/Perlanet/Trait/,
  lib/Perlanet/Trait/, t/01_basic.t: Begin work separating Perlanet. 
  Currently, Perlanet does too much work, which is making it hard to use for
  other uses (ie, IronMan). I have started splitting this apart into traits
  (OPML generation, caching) and a new Perlanet::Simple module that is mostly a
  DWIM-from-config module to do what Perlanet currently does.  This turns the
  main Perlanet into a pretty dumb module, that's mostly a pipeline of fetch
  posts, clean them, and then do something with them - it's up to subclasses or
  roles to decide what each of these steps actually means.

2010-04-25  Dave Cross <>

  * lib/ Fix typo.

  * lib/ Bump to version 0.46.

2010-04-19  Dave Cross <>

  * lib/Perlanet/ Add 'author' to the list of fields that
  Perlanet::Entry delegates to XML::Feed::Entry.

2010-03-05  Dave Cross <>

  * lib/ Removed unnecessary 'or next' logic.

2010-01-05  Dave Cross <>

  * lib/ Fix the (horribly broken) entries_per_feed code. Bump to
  version 0.45.

  * lib/, lib/Perlanet/ Perlanet::Entry also delegates the
  link method to XML::Feed::Entry. Bump version to 0.44.

  * lib/ Don't ignore the sorted list of entries - it's there for a
  reason :-/ Bumped to version 0.43.

  * t/05_cache.t: Fixed the previous fix.

  * Build.PL, t/05_cache.t: Add File::Path to build requirements. Ensure cache
  is deleted at start of caching test.

  * MANIFEST, lib/, t/05_cache.t, t/cacherc, t/perlanetrc: Found a
  bug in caching support. Added a test and fixed bug. Bumped to version 0.42.

2010-01-04  Dave Cross <>

  * MANIFEST: More stuff missing from MANIFEST

  * MANIFEST: Add missing tests to MANIFEST

  * MANIFEST, lib/ Fixed MANIFEST. Bumped version.

  * Build.PL, lib/ Pod fix

  * lib/ Bump to version 0.40 (coz there are some quite big

2009-12-24  Dave Cross <>

  * lib/ Bit of code tidying (including taking some advice from

  * lib/ Merge documentation patches from Jess Robinson.

2009-12-13  Oliver Charles <>

  * lib/, lib/Perlanet/, lib/Perlanet/ Pass 100% of

  * lib/, lib/Perlanet/, lib/Perlanet/ Go back to 2
  spaces for identing, like Dave Cross

  * lib/ Fixes to call to convert format

  * lib/, lib/Perlanet/ Perlanet::Entry to represent posts,
  with a back link to the feed

  * lib/, lib/Perlanet/ Represent entries as
  Perlanet::Entry objects

  * lib/ Split cleaning out to work as a function

  * lib/, lib/Perlanet/ * Introduced Perlanet::Feed object,
  which abstracts the "feeds" configuration option * select_entries now takes a
  list of feeds to fetch entries from

  * lib/ Flexible cutoff date

  * lib/ Refactor rendering and saving

  * lib/ Formatting stuff

  * lib/ Split out the cleaning stuff

  * lib/ Done sorting/grepping entries

  * lib/ Split out fetching a feed and selecting entries

  * lib/ Refactor body of run loop to fetch feeds

2009-11-23  Dave Cross <>

  * lib/ Bump to version 0.37.

  * lib/ Add support for HTTP proxy.

2009-10-28  Dave Cross <>

  * lib/ Version 0.34.

2009-10-15  Dave Cross <>

  * MANIFEST: Added t/data/davblog.xml to MANIFEST so the tests work as

2009-10-14  Dave Cross <>

  * lib/ Oops. One too many entries.

  * lib/ Sort individual feed entries before selecting ones to use.
  Fix really stupid date sort bug. Version 0.35.

2009-10-14  Dave Cross <>

  * bin/perlanet, lib/ Fix former change. And document it.

  * lib/ Support an 'entries_per_feed' config option.

2009-10-12  Dave Cross <>

  * Build.PL, lib/, t/01_basic.t, t/04_moose_constr.t: Make
  XML::OPML::SimpleGen optional.

  * lib/ Version 0.34.

  * lib/ Really make CHI optional.

2009-10-11  Dave Cross <>

  * lib/ Bumped to version 0.33.

  * lib/ Fixed stupid error where feeds weren't getting processed
  if they returned a 304 status.

  * lib/, t/perlanetrc, t/testrc: Couple of typos fixed. More test

  * t/01_basic.t, t/02_basic.t, t/03_noconf.t, t/04_moose_constr.t,
  t/data/davblog.xml, t/perlanetrc, t/testrc: Work to improve test coverage.

2009-10-10  Dave Cross <>

  * lib/ Bump version to 0.32

  * lib/ Work around bug in POSIX::setlocale.

  * lib/ Force config file to be opened as utf8

  * bin/perlanet: Perltidied.

  * lib/ Fixed typo

  * Build.PL: Added Moose as a requirement.

  * lib/ Improved error handling (used Carp).

2009-10-07  Dave Cross <>

  * Build.PL: Added CHI to recommended modules. Moved Compress::ZLib to
  recommended modules.

  * lib/ Sort by modified, then issued dates.

2009-10-05  Dave Cross <>

  * lib/ Add newline to the end of 'warn' call.

  * bin/perlanet: Added usage and version command line options.

  * lib/ Only show LWP progress if attached to a console. Show
  status of request for everything other than success. Bump to version 0.31.

  * bin/perlanet: Add documentation of cache facility.

2009-10-04  Dave Cross <>

  * lib/ Decided to bump to 0.30 as it's quite a big change.

  * lib/ fix typo

  * Build.PL, lib/ Use a number of kappa's fixes

  * lib/ Bump version in preparation for next release.

  * lib/ Attempted XML::Aton Unicode fix.

2009-09-02  Dave Cross <>

  * lib/ Version 0.21.

  * MANIFEST: Added t/ back into MANIFEST

2009-08-10  Dave Cross <>

  * lib/, t/pod_coverage.t: Initial port to Moose.

2009-06-21  Shlomi Fish <>

  * Build.PL: Added meta-resources and keywords.

  * Build.PL: Added strict and warnings to Build.PL.

2009-06-15  Dave Cross <>

  * lib/ Force TT output to utf8.

2009-06-14  Dave Cross <>

  * .gitignore, README, README.xml: Renamed README.xml to README.

  * lib/ Bump version number for release.

  * bin/perlanet, lib/ Fixed links to wiki

  * bin/perlanet, lib/ Typos in documentation

2009-04-28  Dave Cross <>

  * bin/perlanet: Corrected link to trac

2009-04-09  Dave Cross <>

  * t/01_basic.t, t/testrc: (Slightly) Better tests

  * .gitignore, t/ Adding .gitignore.

  * lib/ Moved opml initialisation into constructor.

  * lib/ Cleaned up code for dealing with extra entries.

  * lib/ Moved UA initialisation into constructor.

2009-04-07  Dave Cross <>

  * lib/ Only convert feeds if necessary. Use LWP::UserAgent
  instead of LWP::Simple.

  * bin/perlanet: Documented new 'agent' configuration option.

  * Build.PL: Removed unnecessary version string. Replace dependency on
  LWP::Simple with LWP::UserAgent.

  * t/testrc: Added agent string to test configuration

2008-10-23  Dave Cross <>

  * Build.PL: Requier version 0.22 of XML::Feed.

  * Build.PL: Bump version number for release

  * lib/ Fixes to make use of the code fixes in the recent releases
  of XML::Feed. This, in turn, means that we are now generating valid Atom
  feeds. Rah!

2008-09-29  Dave Cross <>

  * Build.PL: Bumped version number for release 0.07

2008-09-28  Alex Kapranoff <>

  * lib/ 1. Stop htmltidy from ruining entities. 2. Add title to
  OPML outline elements for compatibility.

2008-09-21  Dave Cross <>

  * Build.PL: Bumped version for new release.

  * MANIFEST: Added README and Changes to MANIFEST

  * README.xml: Added README.xml

2008-09-20  Dave Cross <>

  * Build.PL: Bumped version number.

  * bin/perlanet: Added a lot of documentation

  * lib/ Improved documentation.

2008-09-19  Dave Cross <>

  * Build.PL, MANIFEST: Bump version number (by 2). Added MANIFEST.

  * t/01_basic.t, t/testrc: Added a testrc and made t/01_basic.t look in the
  right place for it.

  *, perlanetrc: Moved some files around

  * examples/, examples/perlanetrc: Added examples directory

  * lib/ Added pod for the methods.

  * t/01_basic.t, t/pod.t, t/pod_coverage.t: Added (basic) tests

  * Build.PL, Makefile.PL: Switch from Makefile.PL to Build.PL

  * bin/perlanet, lib/, perlanet: First cut at separating most of
  the code out into a module

  * perlanet: Applying patches suggested by Alex Kapranoff. I think we're
  getting closer - but it's still not quite there.

  * Makefile.PL,, perlanet: Applied patch from Stephen Steneker. *
  Added Makefile.PL * Added Pod and tweaked perlanet * Added explicit charset
  meta element to HTML template

  * perlanetrc: Some changes to sample perlnetrc (now taken from planet

2008-09-17  Dave Cross <>

  * perlanet: Remove unfinished 'decode' function.

  * perlanet: Remove decode call

  * perlanet: Add "use open" line to specify encoding.

2008-09-01  Dave Cross <>

  * perlanetrc: Changed author section of sample config file to reflect latest

  * perlanet: Huge bodge to work around XML::Feed's shortcomings and set the
  author element correctly.

  * perlanet: Decode the data as it comes into the program

  * perlanet: Remove id attributes from spans as they are very unlikely to
  remain unique

2008-08-29  Dave Cross <>

  * perlanet: Add the ability to generate OPML files.

  * perlanet: Make previous fix into a global replacement

  * perlanet: Nasty hack (which really don't like) to get round blogspot

  * perlanet: Reverse order of HTML::Scrub and HTML::Tidy (scrub before tidy
  now) as HTML::Scrub seems to undo some of HTML::Tidy's good work. Possibly
  because the output I'm generating from HTML::Tidy is XHTML, not HTML.

2008-07-23  Dave Cross <>

  * perlanet: Pass $cfg to tt to enable increased cleverness in templates.

  * perlanet: Tweaks to allow style attributes in HTML.

2008-07-22  Dave Cross <>

  * perlanet: Allow align tags on images.

2008-04-06  Dave Cross <>

  * perlanet: Only show entries that are dated less than a week in the future.

2008-03-25  Dave Cross <>

  * perlanet: Corrected check for content type

  * perlanet: Process template in utf8 mode

2008-03-24  Dave Cross <>

  * perlanet: Added HTML::Scrubber support. Use 'min' rather than 'max' number
  of entries (d'oh!)

  * perlanet: Don't try to output more entries than you have.

2008-03-22  Dave Cross <>

  * perlanet: HTML::Tidy support now works correctly.

  * perlanet: Added support for HTML::Tidy

2008-03-17  Dave Cross <>

  * Better HTML output.

  * perlanet: Better error checking.

2008-03-11  Dave Cross <>

  * perlanet: Ignore any feeds we can't retrieve

2008-03-10  Dave Cross <>

  * perlanet: Deal with feeds with crappy dates. Actually output the feed in
  the required format.

2008-03-09  Dave Cross <>

  *, perlanet, perlanetrc: Initial import