We have migrated to GitHub, for more details about changelog please see git log documentation (http://git-scm.com/docs/git-log). One simple approach: git log --oneline --stat --decorate <since>..<until>

- pytrainer changes for 1.10.0:

- Known issues

Can't maximize main window. Issue related to graph subtab in register tab - SF tickets #113 #124

- New features:

Support for Garmin FIT format via file import (ticket #5)
    979b7c9 Adding test case for workout summary - ticket #5
    8e6f8d2 Removed print entry
    9a6245e Amended recursive addition issue when indenting - ticket #5
    0cb21ca Adding basic test case for TCXv2 file import - ticket #5
    d4d1b2b Code refactoring - ticket #5
    a0da00d Adding test case for Garmin FIT file import - ticket #5
    d63ce44 Renaming directory to avoid conflict with reserved 'import' word - ticket #5
    4581b67 Added perl dependency for garmin-fit plugin - ticket #5
    a7eeae2 Updated version to 0.11 - ticket #5
    de9a78b Updating ES localization
    577b0de Including garmin-fit plugin also with external perl files needed to translate from FIT to TCXv2 - ticket #5
    d17913f Plugins are executed from 'Import' tabs
    3c0e645 File imports only managed via 'Import' menu. Need to migrate import processes which read data directly from GPS device
    9444f5b Updating ES localization
    b8da65c Prevent importing already present activities
    222b89f Removed commented lines
    380a940 Removed commented lines. Amended minor localization issues
    6176111 First step to import Garmin FIT files. Quick parse for validation previous to actual import
    43a0e56 Updating ES locale
    cb936d4 Including more messages for localization. Updating status bar text when there is an error with a file
c58fb0a Extension to upload activities to Strava - credits to spaceyjase (971be41)
aa7fde6 Added gpx2garmin extension - thanks to spaceyjase (a139757)
d8f864f New "pace" column in ranking tab (thanks to cz8s)

- Improvements:

Localizations updated, added update_localizations script to automate process under utils directory
    037d91d Updated FR localization. Thanks to Christian Perrier
    09e40df Updating DE localization. Thanks to Wilfried
    f174af1 Amended filename in update_localizations script for mo files. Updated files
    dc21fa7 Removing mo binary files from repository
    9780a89 Updating localizations for 1.10.0 version. Includes script to automate process under utils directory
    286cba9 Updating GL localization - thanks to Aníbal
    8689009 Updating ES localization
c5ccfe9 Retrieving all record related data from DB when exporting to csv - #11
cdc639d Amended path issue when testing gpx files
ba37e2a Setting current date for new athlete log entry - on behalf of Andreas Mair
0f5c84a Defining version number in one place for the whole application
d2a0153 Looking for tag instead of non intuitive list indexes when using garmintools import
3e785c8 Finally showing product description from garmin_get_info
d256862 Added tests to check lap parsing with samples
    ef474c7 Accept date range object for actualize_weekview()
    56c038d Accept date range object for record.getrecordPeriod()
    4d10679 Accept date object for record.newRecord()
    4428a3e Accept date object for record.getRecordDayList()
    4af8a35 Accept date object for record.getrecordList()
    81ad5f5 Accept date object for date.getNameMonth()
    1a5af41 Return date object from date.getDate()
9ab01ab Use date range for week/month/year interval calculations ()
4bca25e Add date range utility class
    7f4578a Add pytrainer.util and pytrainer.core packages to setup script.
    25145e6 Move pytrainer.lib.color module to pytrainer.util package
    e9e6674 Move sport module to pytrainer.core package
    7c7ff55 Move equipment module to pytrainer.core package
8273a36 Create pytrainer.core package

- Bugs fixed:

dc795e9 Texts and units which can change when switching unit system are localized separately - ticket #16
46a1775 Fix year tab text labels/units (thanks to spaceyjase)
d4d988f Fixed unhandled exception by removing the Osmarender layer
41df1d8 Amended wrong value to average speed in totals graph. Thnx to lifo2 - ticket:173
72a84c8 Better duration estimation for activities with no laps and several breaks - ticket:167
d239c37 Matching xml parse with amended stylesheets data structure keeping backward compatibility
ac5261d Amended stylesheets to match GPXDATA schema
1dcf5fe Showing proper figures in graph title according to units. Thnx Jason for the hint

- Internal stuff:

2886ac4 (HEAD, pytrainer-git/master, master) Updated man file
bef3116 Getting closer to release: updated version
83d9e50 Updated pytrainer project url
f314697 Removed link to SourceForge and amended 'imports' directory name
5c25518 Updated links of some doc pages migrated to GitHub wiki
797b3af Update version to "1.10.0"
a6e7c49 Ignore generated artifacts
9fd8b0c Adding a description in name section. Renaming man file. No need for README file any more
e636650 Appending development suffix to version number

############################################################

- pytrainer changes for 1.9.1:

* Known issues

    - Can't maximize main window. Issue related to graph subtab in register tab - tickets #113 #124

* Fixes

    - Corrected german localization (thanks to Andreas) - [938]
    - Amended typo in translator credits - [937]
    - Coloring graph not working when selecting speed as reference - #154 [936]
    - Added support for sqlalchemy-migrate 0.5.4 - #153 [935] 


- pytrainer changes for 1.9.0:

* Known issues

    - Can't maximize main window. Issue related to graph subtab in register tab - tickets #113 #124

* New functionality or improvement

    - Updated DE localization. Thanks to Erik Pfannenstein from Debian DE group and Andreas Mair - [923] [927]
    - Added portuguese localization (thanks to Pedro Ribeiro) - [896]
    - Option added in localization script (utils/translator.sh) to generate only .pot file - [888 - 892] 
    - Galician localization (thanks to Kaptan) - [885 - 887] [893]
    - Manpage for pytrainer - #125 [872] [874]
    - Create sport service - #138 [838] [840 - 845] [850] [850 - 856] [875] [880]
    - Provide means to run all unit tests - #139 [837]
    - Discrete version migration - #132 [815 - 836] [839] [864] [865] [899 - 906] [911]
    - Totals tab - #60 [766] [800] [801] [802] [803]
    - Display projected times in record view, including ranking - #116 [782] [785] [811]
    - Ascent and descent figures shown in all views. Added time spent moving and paused in record view (thanks to Friso) - #114 [781]
    - Assign graph color to sports - #111 [780]
    - Display laps information on record summary page - #109 #122 [768 - 772] [775] [777] [778] [788] [812] [813]
    - Coloring Google Maps path by speed/pace - thanks to Jonathan - #107 [765] 
    - Added swedish localization (thanks to Per) - #98 [756 - 760]
    - Added startup option for choosing console or file logging. When "console" is chosen all logging messsages are sent to stdout instead of a log file. [755]

* Fixes

    - Syncing calculations of distance, time, speed and pace. Normalized pace format - #71 #152 [916] [918 - 919] [922] [924] [928]
    - pytrainer quits when exporting activities in csv format [912]
    - Importing TCXv2 files failed - [907 - 909]
    - Date value was not saved in "Athlete" tab - #149 [898]
    - Fixed encoding issue that prevented some days of the week and associated information to be shown in stacked bars graph under week tab [897]
    - Cannot edit record created from GPX import with null sport reference - #147 [881]
    - pytrainer crashes when closing edit record dialog - #146 [879]
    - Added zero padding to overcome lap order issue - #145 [878]
    - Updated french localization - thanks to Vincent, Pierr [876] [895]
    - Heartrate figures from profile are retrieved independently so only those which fail are set to default value [873]
    - Active/Rest times are not calculated for activities with only one lap - [811]
    - Activity's data (equipment and title) missing when importing activity from file - #105 #137 [866 - 868]
    - Wrong duration calculation when breaks are present - #103 [858 - 862]
    - GUI problems when resizing - #113 [857] [877] [882]
    - GPX file import fails - #141 [849]
    - Enabling localization for some labels - #99 [846] [847]
    - Broken MySQL support - #130 [810] [817] [818]
    - Moving from GtkMozEmbed to WebKit - thanks to Christian - #131 [809]
    - Support US units and display units in analytics view - [808]
    - Start time can be changed in manually entered activities - #127 [807]
    - Sort records in record tree view by time by default - #128 [806]
    - Graphical improvements - [795] [796] [797] [798] [799] [805]
    - Improved OSM performance through caching and also anonymize sensitive date before upload - [790] [791] [792]
    - Failed to build stacked bars graphic in week, month and year tabs - #123 [789]
    - Changed the way OS is checked to allow pytrainer run on other POSIX in addition to GNU/LINUX - thanks to Christian - #120 [784]
    - Renaming danish suffix in po file to avoid confusion - #119 [783]
    - Try using Google Maps Elevation API if all else fails - #102 [779]
    - Updated ES localization [773] [774] [776] [804] [848] [863] [883]
    - Better management of wrong/corrupted data - #118 [767] [786] [787] - [793] [794]
    - Elevation correction extension not handling properly errors #102 [764]
    - Equipment management fixes - #95 [763] #96 [762]
    - Distance data is retrieved from laps if present, calculated from trackpoints otherwise - #101 [761]
    - Remove non iso-8859-1 characters [754]
    - Fix so only once instance of preferences dialog can be open at a time - #74 [753]


- pytrainer changes for 1.8.0:

* New functionality
    - Equipment management (thx to Nathan) [571] [572] [573] [598] [678] [679] [680] [685] [698] [699] [707] [708] [711] [717] [718] #12
    - OpenStreetMap added as route map viewer (user selectable) - thanks to Druzee [578] [585] [590]
    - Anonymous data for OSM, cancel button (thx to Druzee, Arnd) [608] [611] [626]
    - Changes to graphing to allow user to change limits, color, line width etc [563] [567] [579] [599]
    - Remember size of main screen [581]
    - Function to merge tracks (work in progress) [597]
    - New Activity and ActivityPool classes to hold all info about an activity [582] [583] [584] [587] [589] [591] [677] [694]
    - Management of athlete data [605] [609] [649] [651] [653] [655] [656] [665] [668] [731] #13
    - New graphic approach [616] [617] [622] [624] [628] [638] [639] [640] [642] [644] [646] [648] [674] [675] [721] [726] [727] [730] [733]
    - Added support for Nokia exported GPX files [673]
    - Added support for new formats (csv, delimited file) in unified import [688] [689] [690] [692] [693] [695] [697] [701] 

* Fixes
    - Variables and configuration refactored to be 'global' (reused and not re-instantiated by each class) [561] [562] [564] [565] [566] [568] #28
    - Config file accepting non ascii characters [574] [575] [576]
    - Config file handling fixed to not fail with empty or missing file [586] #48
    - Fix list view to update after edit, delete, import. Added filters and improvements (tnx Arnd) [569] [650] [652] [658] [661] [663] [664] [735] [742] [745] [746]
    - Localization updates (thanks to Pierre, David) [570] [588] [595] [715] [737] [744] [747]
    - Fix wordpress extension to work with newer wordpress codebase and support US measurement [577] [601] [602] #45 #51
    - Update plugins to write UTF8 not ASCII GPX files [580] #47
    - Fix googlemaps lap data display [592] [632] [633]
    - Fix calories display in heartrate tab [593]
    - Fix html in map generation (thanks to Druzee) [594]
    - Change default graph colors [596]
    - Improve handling of US units [600] [669] [672] [683] [687] [696] [700] [702] [703] [704] [705] [710] [738] [739]
    - Fix bug in plugins where ESC during file open dialog causes error [603]
    - Fix to garmintools_full plugin to make progress bar work (thanks to Druzee) [604]
    - Avoid exiting when parsing problem is found, entry skipped [607] #
    - Activites without GPX data don't break application [610] [615]
    - Improvements (show and calculation) to pace and elevation as suggested by Arnd [612] [618] [619] [623] [627] [741]
    - Better troubleshooting for graphics issues and minor fixes [625] [629] [636]
    - Fixes to csv export (thx Arnd) [630]
    - Fixes to startup script to better handling different environments [631] [637] [713] [714]
    - Updates to wordpress extension - removed separate googlemaps [634]
    - Allowing zero calories entries [641]
    - Fixes to edit record [643] [647]
    - Fixing confusion with dates (start day of the week, week number) [654] [655] [657] [670] [750] #57
    - Fix for GPX files with no lap info [660]
    - Correction to date handling to work for mysql and sqlite [667]
    - Improving logging output [671] [748] [749]
    - Fix for HR percent graph so does not error in hr is None - thanks to Arnd [676]
    - Bug fixes for sports filtering from Patrick [681]
    - Updates for heartrate pie chart from Patrick [682]
    - Fixes in lap generation (divide by zero, empty laps) - thanks to Arnd [684] [686]
    - Fixes for record filtering from Patrick [691]
    - Tolerate non-unicode strings returned from DB for better MySQL support [706]
    - Add program argument for specifying config directory [709] #67
    - Better handling of floats and division. Thx to Martin [712]
    - Retrieving a real list with DB tables, comparison was failing [716]
    - Remove redundant Port option in preferences [719] #80
    - Fix to display blank sport properties correctly (not as None) [720] #78
    - Fix mysql code to match changes to sqlite tablelist handling [722]
    - Stop preferences sport list edit button disabling dialog buttons if no sport is selected [723] #75
    - Fix to stop crash on editing record with empty distance [724] #73
    - Update record summary after edit [725] #79
    - Fix sport filtering to work with non consecutive sport_ids [728]
    - Fix summary screens to update correctly with record add and deletes [729]
    - Make pace read only [732]
    - Display heartrate as integer in day, week, month and year views [734]
    - Update DB check to ensure time == duration [736]
    - Updating credits [740] [743] 

- pytrainer changes for 1.7.2:

    * Lap DB table created and code changed to populate and use the table [507] [508] [509]
    * Moved some global variables to class variables in main.py [513]
    * Google Earth plugin modified to work with new plugin architecture [515]
    * Waypoint editor modified to use handle_title_changed() call back instead of SOAP calls (thanks to David Fraser) and a few bugs fixed [516] [524] [543]
    * Firefox removed as a dependency [518]
    * Shebang tidied to be compatible with all python versions [520]
    * Extension code refactored to run extensions as internal classes [527]
    * Webservice / SOAP code removed [527] [531]
    * Incomplete webpublish extension removed from svn [528]
    * Upload to Openstreetmap extension added [536], [540]
    * pytrainer startup script modified to work with different install locations [532] [533]
    * Misc fixes and patches to pytrainer (thanks to David Fraser) [524] [530] [535]
    * Add support for with command for python versions <2.6 [541]
    * Removed bug that caused errors for activities with no GPX file [542]
    * Localisation updates [539]
    * New tab in preferences displays and allows changes to be made to pytrainer startup options [544] [545] [546]
    * Move individual screens into separate glade files [547]
    * Full screen map view reinstated [548]
    * Removed DB field order bug [549]
    * Removed fake error when importing entries [550]
    * Minor fixes to graph display options [551]
    * Minor cosmetic changes [552] [553] [554]
    * Added check for early detection of empty local configuration file [555]
    * EXPERIMENTAL Unified Import GUI modifications (disabled by default, enabled on startup with --testimport) [526]
    - file import supports multiple files at once [510] [511]
    - option to have file import window automatically start with a file selection dialog [519]
    - activities can be edited before import [514] [517] [521] [522] [534] [537] [538]
    - kml file import support [523] [525]
    - plugins tab added - provides alternative way of viewing and running import plugins [512]
    - device import NOT functional 

- pytrainer changes for 1.7.1:

    * New import plugin - Garmintools - svn [430], [431], [436], [452], [453], [459], [460], [461], [463], [464], [486], [487], [488]
    - both file (dump file) and device import implemented
    - smart import from device to cater for different start times compared to GPSBabel (to reduce duplicated activities) 
    * Move to Google maps API version 3 - svn [477]
    * Add lap functionality - svn [433], [447], [448], [451], [454], [455]
    - display individual laps under activity on treeview
    - visually display lap duration on record graphs (user selectable)
    - display lap markers on route map 
    * Improve check functionality - svn [437], [438], [439], [475], [478], [479], [480], [482]
    - Can be initiated by command line option --check
    - Will be initiated if DB version in code is newer than user's DB version
    - DB migration checks refactored and improved 
    * Timezone support - svn [434], [440], [442], [483]
    - DB updated with new field date_time_local
    - field populated on import (or when DB check is run)
    - field used in preference to UTC if present for display 
    * Cadence / RPM support and graph added (tcx v2 file import only) - svn [432]
    * Improved install process and remove unneeded files - svn [445], [446], [462], [467], [472], [473]
    * Bug fix to TCX v2 to cater for multiple activities per file - svn [435]
    * Bug fix for calorie calculation - svn [441], [474]
    * Bug fix for migration/new install error bug #2924209 - svn [456]
    * Bug fix for GPX import without elevation data - svn [490]
    * Bug fix to prevent adding empty entries - svn [496], [498], [499]
    * Updated localizations (es, fr) - svn [494], [495], [497]
    * Separate some GUI elements into separate files to ease development - svn [443], [457], [465]
    * EXPERIMENTAL Unified Import GUI begun (for testing/feedback only) - svn [458], [466], [468], [469], [470], [471], [476], [481], [489]
    - disabled by default
    - enabled on startup with --testimport
    - file import functional
    - device import NOT functional 

- pytrainer changes for 1.7.0:

Updated Spanish translation (svn rev 420,423,424)
Updated French translation (svn rev 421)
Migration to lxml for better performance (svn rev 412,413,414)
Start of rework for Google Map rendering - experimental!, test with --gmaps3 at startup (svn 411,415)
Modified on_sportlist_changed event to improve performance (svn rev 409)
Fix for minor bug in translation scripts (svn rev 402)
Fix for bug #2811470 - clickable link for further details on MET (links to wikipedia) (svn rev 391)
Fix for bug #2089342 auto refresh after import, edit and delete of records (svn rev 390,425)
Refactoring database and config file sanity checks (triggered with --check at startup) (svn rev 389,392,396,401)
Added weekly view (svn rev 388,393,394,395,398,403-410,426)
Fix for multiple graphs view (svn rev 386,387)
Better error handling preventing pytrainer to crash (svn rev 364,369)
Support for plugin validation (triggered with --valid at startup)(svn rev 361,363,371)
Import TCXv2 files (svn rev 351,355,356)
Improving import from TCXv1 format (svn rev 354,371,375,376)
Several improvements in plugins handling (svn rev 350,353,360,378,422)
Import GPX files (svn rev 349)

- pytrainer tasks for 1.6.0.9:

Added dynamic loading and unloading of plugin menu items (svn rev 344)
Removal of decommissioned plugin (garmin301) and addition of new ones (garmingpx). Update of project data (version and url) (svn rev 343)
Adding calories support suggested by JB (svn rev 342)
Maximum is misspelled Maximun, see http://bugs.debian.org/537723 (svn 341)
Fixed some hardcoded stuff that prevents pytrainer to copy entries to ~/.pytrainer/gpx (thanks to JB) (svn 340)
Major improvements in graphs (thanks to Fiz) (svn revs 339, 336, 332, 331)
Updated german translation - bug ID: 2811507 (thanks to Noèl) (svn revs 338, 333)
Minor project and license information updated (svn revs 337, 335, 334, 329)

- pytrainer tasks for 1.6.0.8:

Rotating log file support added (rev 322, http://sourceforge.net/tracker/?func=detail&aid=2717142&group_id=213157&atid=1024595)
Translations reviewed and added script to facilitate them (rev 319-321,323)
Several improvements to Wordpress extension (rev 315,317,326)
Changed potential problems when dealing with date objects using MySQL as DB (rev 311-314)
Removing redundant calls improving graphical performance (rev 310, linked to http://sourceforge.net/tracker/?func=detail&aid=2717135&group_id=213157&atid=1024592, not yet fully fixed)
Optimizing xml files parsing when retrieving data from them (rev 309)

- pytrainer tasks for 1.6.0.7:

Removing pytrainer gui minimal window size (svn rev 304)
Ordered shutdown of logging stuff (svn rev 303)
HR and elevation graphs included when exporting to wordpress (svn rev 302)
Removal of maps directory due to license issue: https://sourceforge.net/mailarchive/message.php?msg_name=1237752714.4330.15.camel%40thinker.domain.lan (svn rev 300) 
Removal of opensuse_mozpytrainer.sh launch script as it is included in (renamed) pytrainer.sh. Deleted README.txt file to avoid confusion (svn rev 298)
Updated INSTALL file with current package versions (svn rev 297)
Fixed Google Maps integration (svn rev 296)
Updated garmin-hr config file with correct usb port value (svn rev 294)
Fixed bug where track record was supposed to be updated in database. Type cast was missing (svn rev 293)
Bug #2100647 - Quick entry doesn't work if no gpx file - Fixed (svn rev. 287)
FR #2126411 - Package python-sqlite2 not needed anymore: http://www.python.org/doc/2.5.2/lib/module-sqlite3.html (svn rev. 286)

- pytrainer tasks for 1.6.0.6:

Close button in "About" dialog now works. Migrating from Glade to GTKBuilder
Fixed some properties in pytrainer.desktop (ID#2126616)
Added COPYING file with GPLv2 (ID#2126413)
Removal of garmin301 plugin
Fixed some issues with MySql tables creation (email from Jonas Liljenfeldt)

- pytrainer tasks for 1.6.0.5:

mozpytrainer launch script with log level support -> DONE (24.08.2008)
MET and extra weight values swapped when adding a new sport -> DONE (22.08.2008)
pytrainer crashes when adding an activity which sport is not yet in DB -> DONE (31.08.2008) 
Should be enough to check timestamps when adding new activities -> DONE (31.08.2008)
Correct initialization of pace and maxpace values -> DONE (31.08.2008)

- pytrainer tasks for 1.6.0.4:

Added support for date_time_utc field when importing new tracks via file upload
pytrainer/profile.py: fixed logging issue when removing sport from database

- pytrainer tasks for 1.6.0.3:

Complete review of migration scripts. Special attention to ~/.pytrainer/conf.xml file -> DONE (31.07.2008)
Number output always with two figures to avoid confusion -> DONE (02.08.2008)

- pytrainer tasks for 1.6.0.2:

Check paces in DB (maxspeed<->maxpace | average<->pace) -> DONE (19.07.2008)
Error when updating records because of new date_time_utc field in DB -> FIXED (20.07.2008)

- pytrainer tasks for 1.6.0.1:

Adjust migration scripts
	Sports saved in ddbb (new column in table sports) -> id_sports in table sports (nothing to do)
	Date_time saved for each record (new column in table records) -> main.addDateTimeUTC (DONE - 13.07.2008)
		ALTER TABLE records ADD date_time_utc varchar2(20);
		update records set date_time_utc="2008-07-11T10:21:31Z" where id_record='158';
		-> automate process reading gpx files at the beginning

Hardcoded sport whem importing
	record.shortFromLocal (retrieves sport from local files) -> retrieve from DB (shortFromLocalDB) DONE - 13.07.2008
	record.summaryFromGPX (retrieves what will be saved in DB) DONE (12.07.2008)

- Future releases

Loading of changed preferences seems weird
Incorrect timezone when importing tracks -> check gpx._getValues
garmintools integration (laps and calories support, real sport and complete history retrieved from gps device, overall performance improvement)
Logging improvements
XML output with cElementTree
Tracks regularization
Review visual output

Added from Pierre's email:

- Equipment management :
Ability to store a list of equipment (running shoes, ...) and associate it (or not) with records. It is to follow how many km have been done with some shoes for example.

- Graph improvement:
Many things here... Curve smoothing option. Ability to zoom in and out. Select a portion of track and extract some simple statistics information (avg speed, hr, max hr, Total Ascent, ...)

