
Feedjack current
--------------------

This list is not maintained beyond 144397e due to extra effort required.

See git-log for complete and up-to-date (albeit less comprehensible and more
noisy) list of changes.


Feedjack 13.09.0
--------------------

* Drop ad-hoc "X-Feedjack-Tracking" header usage - was a hack on "fern" theme only.
* Disable tagcloud by default.
* Add new default "bootstrap" theme with remoteStorage (0.6) protocol
  integration for tracking of read entries.
* Fetch/update media enclosures, though not displayed on any of themes.

* Added "feedjack_add_feed" django management command.
* Added "feedjack_status" django management command.
* Made "feedjack_update" into a django management command.
* "--adaptive-interval" option in feedjack_update" to avoid polling
  rarely-updated feeds often.
* "--report-after" option for feedjack_update command to skip reporting
  transient update errors.
* Install update script as setuptools entry_point.

* Python 2.6 compatibility. Not guaranteed to last long.
* Django 1.4/1.5 compatibility changes, incompatible with pre-1.5.
* Proper usage of STATIC_URL instead of MEDIA_URL, can be used with
  django.contrib.staticfiles now.
* Proper database migration info, using South module.
* MySQL compatibility fixes - field/index length limitations, mostly.

* Timestamp processing fixes. In particular, parse ones which feedparser failed
  to process with dateutil module or coreutils "date" command (if either one is
  available).
* More robust "/since" urls handling.
* Better reporing for database and transaction-related errors. Misc logging
  improvements.
* Better site detection from url.
* Some internal/extensibility improvents - new signals, better interfaces.


Feedjack 12.07.0
--------------------

* Updated versioning schema to be different from the original feedjack (to avoid
  possible clashes), be more sutable for automatic updates and not hold any
  specific meaning beyond just point-in-time.
* Updated setup.py with dependencies and other bits of info.
* Dropped ez_setup.py kludge.
* Updated CHANGES* to use Markdown.
* Added gitignore with generic distutils-generated cruft, dropped hgtags
  (useless w/o hg history).


Feedjack 0.9.16-fg5
--------------------

* Simple client-side "read items" tracking and folding, using html5
  localStorage, only used in "fern" theme atm.
* Server-side storage for "read items" is also implemented, but only accessible
  for agents that pass special X-Feedjack-Tracking header, and uses django cache
  backend, preferring the one, labelled "persistent" in CACHES. This will
  probably be changed in the future.
* Improved "requested site" detection mechanism - now it's not just static
  matching, but a scoring, based on domain name match, url path match and some
  other parameters. Result is that hosting several feedjack sites on a single
  domain will no longer fallback to "default" site when request doesn't fully
  match entered site url, but choose the most appropriate site.
* Etag / last-modified http headers for feed views and re-exported feeds.
* XML-violating C0 control characters are no longer passed through to the feeds
  unescaped.
* Lots of misc style improvements for "fern" theme. html5 doctype.
* Missing feed requests should now result in 404 error instead of 500.
* Bumped feed title/link length limits further to 2047 chars.
* Documented database changes in CHANGES_DATABASE file.


Feedjack 0.9.16-fg4
--------------------

* Added "skip_errors" flag to rely on feedparser resilence when processing broken
   feeds.
* Added "hidden" flag to mark posts that shouldn't be shown, particulary useful
   for first fetch of a new feeds.
* Major optimizations of cross-referincing filters' operation, added a flag to
   validate new posts against older ones only, not both ways.
* Fixes in db transaction logic, completely isolated db logic in models module.


Feedjack 0.9.16-fg3
--------------------

* Actually working feed filtering.
* Added a few default filter bases, with descriptions to these.
* Much more descriptive feed-fetching error messages.
* Tag clouds aren't calculated if they won't be displayed anymore.
* Deprecated whole "user" concept in favor of "feed", also deprecating
   "/feed/{atom,rss}" urls in favor of "/syndication/{atom,rss}", while retaining
   all the backward compatibility.
* "/feed/X" and "/tag/X" have no special ordering in urls anymore, just as
   long as there's at most one specification of each.
* CLI, template bugfixes.


Feedjack 0.9.16-fg2
--------------------

* Added extensive feed filtering mechanism (still experimental).
* Replaced custom ObjectPaginator with native Paginator (now part of django),
   thus eliminating many DeprecationWarning's.
* Added "fern" and "fern_grid" minimalistic themes.
* feedjack_update now uses transactions/savepoints to isolate and rollback
   failures, instead of aborting whole update or leaving inconsistent data in db.
* Support for fine-grained updates (site, feed).
* Improved cache-invalidation mechanism (see ae18d26f66).
* Revised admin interface fields, added filtering subsystem models.
* Fixed feed entires time conversion bug (see 1d0fc79a96).
* Further extended model fields.
* Minor bugfixes.


Feedjack 0.9.16-fg1
--------------------

* Revised feedjack_update, models. Added "immutable"
   feed-flag to prevent updating posts based on content or mtime


Feedjack 0.9.16
--------------------

* Added compatibility with Django 1.0 beta 1: newforms admin and pagination


Feedjack 0.9.15
--------------------

* Fixing feedjack_update for posts without a modified date (yay rss 0.92!)


Feedjack 0.9.14
--------------------

* Lots of fixes/improvements in feedjack_update.py:
  - better unicode handling on logging, this will prevent feeds not updating
    when using the --verbose flag
  - Multithreaded feed fetching, needs the threadpool module, available in
    http://www.chrisarndt.de/projects/threadpool/
    By default 10 threads will be used, can be modified with the -w option
    If the threadpool module is not available, the old (SLOW) single
    threaded method will be used.
  - Improved logging. Since multiple feeds can be processed in parallel now,
    all log entries go in a single line, with the feed id as a prefix.
  - Stats in the logging, how many new posts, updated posts, unmodified posts
    and errors were found per feed and globally, and feed status (ok,
    unchanged, can't parse feed, http error, some exception)
  - Reporting slow feeds, if a feed takes longer than 10 seconds to process, it
    will appear in the logs with the tag "(SLOW FEED!)"


Feedjack 0.9.12
--------------------

* Feedjack is now django-unicode compliant
* Using max_length instead of maxlength in models.py to prevent warnings in
  syncdb
* Patched fjlib to use the new django refactored database backends
* Disabling autoscaping for post contents in the included templates
* Handling of feedparser returning an empty etag
* Fixing encoding related problems in tag urls
* Non-integer page parameters should be handled correctly


Feedjack 0.9.10
--------------------

* Fixing CSS tags for styles 4 and 5
* feedjack_update now strip()s tags before storing them
* feedjack_update shows the feed number being processed
* We no longer cache the tags in feedjack_update, it had encoding problems and
  makes the script safe to run more than one instance at the same time


Feedjack 0.9.9
--------------------

* Fixed i18n related bugs in the templates
* Fixed a bug related to the --settings option in feedjack_update.py
* The feeds per user, tag and user/tag are working again
* You can choose between rss2 and atom in the feeds for user, tag and user/tag
* The default /feed/ url now redirects to /feed/atom/ instead of /feed/rss/


Feedjack 0.9.8
--------------------

* Internationalization (petar)
* Fixed and infinite loop in feedjack_update.py (do'h!) (petar)
* Added Serbian (Latin) translation (petar)
* Updated the feedparser calls in feedjack_update.py (petar)
* Added Spanish translation (predius)


Feedjack 0.9.7
--------------------

* The request handler uses PATH_INFO when REQUEST_URI is not available (like
  in Django's development server)
* Etags keep their quotation marks when stored.
* The update_feeds.py got a lot of love:
  - Every option has a help string (try with --help)
  - A --verbose option. Default behavior is non-verbose and shows only the
    current feed being analyzed and errors.
  - A --timeout option to set the wait timeout in seconds when connecting to
    feeds.


Feedjack 0.9.6
--------------------

* Fixed a bug in the feedjack_update.py script that wasn't handling the
  same blog with multiple feeds correctly.


Feedjack 0.9.5
--------------------

* First public release
