- Detect GAS .s files as Assembly language.
- Sanitize heartbeats for all category types. #236
- Split bundled pygments library for Python 2.7+.
- Upgrade pygments for py27+ to v2.5.2 development master.
- Force requests to use bundled ca cert from certifi by default.
- Upgrade bundled certifi to v2019.11.28.
- Bundle cryptography, pyopenssl, and ipaddress packages for improved SSL support on Python2.
- Support slashes in Mercurial and Git branch names. #199
- Filter dependencies longer than 200 characters.
- Close sqlite connection even when error raised. #196
- Detect ColdFusion as root language instead of HTML.
- New arguments for reading and writing ini config file.
- Today argument shows categories when available.
- Prevent unnecessarily debug log when syncing offline heartbeats.
- Support for Python 3.7.
- New optional config option hide_branch_names. #183
- Rename argument --show-time-today to --today.
- New argument --show-time-today for printing Today's coding time.
- Use wakatime fork of certifi package. sublime-wakatime#95
- Upgrade certifi to version 2019.03.09.
- Detect go.mod files as Go language. jetbrains-wakatime#119
- Detect C++ language from all C++ file extensions. vscode-wakatime#87
- Add ssl_certs_file arg and config for custom ca bundles. #164
- Fix bug causing random project names when hide project names enabled. vscode-wakatime#162
- Add support for UNC network shares without drive letter mapped on Winows. #162
- Correctly parse include_only_with_project_file when set to false. #161
- Support language argument for non-file entity types.
- Send 25 heartbeats per API request.
- New category "Writing Tests". #156
- Fix bug caused by git config section without any submodule option defined. #152
- Send 50 offline heartbeats to API per request with 1 second delay in between.
- Support logging coding activity to remote network drive files on Windows platform by detecting UNC path from drive letter. #72
- Re-enable detecting projects from Subversion folder on Windows platform.
- Prevent opening cmd window on Windows when detecting project from Subversion.
- Run tests on Windows using Appveyor.
- Default --sync-offline-activity to 100 instead of 5, so offline coding is synced to dashboard faster.
- Batch heartbeats in groups of 10 per api request.
- New config hide_project_name and argument --hide-project-names for obfuscating project names when sending coding activity to api.
- Fix mispelled Gosu language. #137
- Remove metadata when hiding project or file names.
- New --local-file argument to be used when --entity is a remote file.
- New argument --sync-offline-activity for configuring the maximum offline heartbeats to sync to the WakaTime API.
- Support for project detection from git worktree folders.
- Force forward slash for file paths.
- New --category argument.
- New --exclude-unknown-project argument and corresponding config setting.
- Smarter C vs C++ vs Objective-C language detection.
- Detect dependencies from Elm, Haskell, Haxe, Kotlin, Rust, and Scala files.
- Improved Matlab vs Objective-C language detection. #129
- Detect dependencies from Swift, Objective-C, TypeScript and JavaScript files.
- Categorize .mjs files as JavaScript. #121
- Ability to only track folders containing a .wakatime-project file using new include_only_with_project_file argument and config option.
- Fix bug that caused heartbeats to be cached locally instead of sent to API.
- Improve Java dependency detection.
- Skip null or missing heartbeats from extra heartbeats argument.
- Support saving unicode heartbeats when working offline. #112
- Limit bulk syncing to 5 heartbeats per request. #109
- Parse array of results from bulk heartbeats endpoint, only saving heartbeats to local offline cache when they were not accepted by the api.
- Upload multiple heartbeats to bulk endpoint for improved network performance. #107
- Fix bug causing 401 response when hidefilenames is enabled. #106
- Detect project and branch names from git submodules. #105
- Use WAKATIME_HOME env variable for offline and session caching. #102
- Allow passing string arguments wrapped in extra quotes for plugins which cannot properly escape spaces in arguments.
- Upgrade pytz to v2017.2.
- Upgrade requests to v2.18.4.
- Upgrade tzlocal to v1.4.
- Improve Matlab language detection.
- Only treat proxy string as NTLM proxy after unable to connect with HTTPS and SOCKS proxy.
- Support running automated tests on Linux, OS X, and Windows.
- Ability to disable SSL cert verification. #90
- Disable line count stats for files larger than 2MB to improve performance.
- Print error saying Python needs upgrading when requests can't be imported.
- Config file not needed when passing api key via command line.
- Allow colons in [projectmap] config section. #83
- When unable to detect language and debug mode turned on, log any tracebacks.
- Increase priority of F# and TypeScript languages.
- Add six library to satisfy missing dependency from ntlm-auth.
- Ability to prioritize common languages over uncommon lanuages. #81
- Rename alternate_language to language in extra heartbeats json.
- Rename --alternate-language cli argument to --language.
- Existing --alternate-language cli argument now overwrites auto-detected language. Previously, was only used when unable to auto-detect language.
- Give TypeScript higher priority than TypoScript.
- Support for Python 3.6.
- Support NTLM proxy format like domain\user:pass. #23
- Upgrade pytz to v2016.10.
- Upgrade requests to v2.13.0.
- Upgrade pysocks to v1.6.6.
- Upgrade pygments library to v2.2.0 for improved language detection.
- Allow boolean or list of regex patterns for hidefilenames config setting.
- New WAKATIME_HOME env variable for setting path to config and log files. #67
- Improve debug warning message from unsupported dependency parsers. #65
- Exit with status code 104 when api key is missing or invalid. Exit with status code 103 when config file missing or invalid.
- Force file path to use system path separator.
- Handle exception from Python system library read permission problem.
- Prevent encoding errors when logging files with special characters.
- Upgrade pytz to v2016.6.1.
- Upgrade requests to v2.11.1.
- Upgrade simplejson to v3.8.2.
- Upgrade tzlocal to v1.2.2.
- Handle unknown exceptions from requests library by deleting cached session object because it could be from a previous conflicting version.
- New hostname setting in config file to set machine hostname. Hostname argument takes priority over hostname from config file.
- Prevent logging unrelated exception when logging tracebacks.
- Use correct namespace for pygments.lexers.ClassNotFound exception so it is caught when dependency detection not available for a language.
- Upgrade pygments to v2.1.3 for better language coverage.
- Upgrade urllib3 to master version to fix bug causing unhandled retry exceptions.
- Prevent tracking git branch with detached head.
- Upgrade requests dependency to v2.10.0.
- Support for SOCKS proxies.
- Prevent popup on Mac when xcode-tools is not installed.
- Fix bug which prevented plugin from being sent with extra heartbeats.
- Increase default network timeout to 60 seconds when sending heartbeats to the api.
- New --extra-heartbeats command line argument for sending a JSON array of extra queued heartbeats to STDIN.
- Change --entitytype command line argument to --entity-type.
- No longer allowing --entity-type of url.
- Support passing an alternate language to cli to be used when a language can not be guessed from the code file.
- Support regex patterns in projectmap config section for renaming projects.
- Upgrade pytz to v2016.3.
- Upgrade tzlocal to v1.2.2.
- Encode TimeZone as utf-8 before adding to headers.
- Encode hostname as utf-8 basestring before adding to X-Machine-Name header.
- Encode machine hostname as Unicode when adding to X-Machine-Name header.
- Accept 201 or 202 response codes as success from api.
- Upgrade requests package to v2.9.1.
- Improve C# dependency detection.
- Correctly log exception tracebacks.
- Log all unknown exceptions to wakatime.log file.
- Disable urllib3 SSL warning from every request.
- Detect dependencies from golang files.
- Use api.wakatime.com for sending heartbeats.
- Fix bug in guess_language function.
- Improve dependency detection.
- Default request timeout of 30 seconds.
- New --timeout command line argument to change request timeout in seconds.
- Allow passing command line arguments using sys.argv.
- Fix entry point for pypi distribution.
- New --entity and --entitytype command line arguments.
- Fix local session caching.
- Fix bug in offline caching which prevented heartbeats from being cleaned up.
- Send hostname in X-Machine-Name header.
- Catch exceptions from pygments.modeline.get_filetype_from_buffer.
- Upgrade requests package to v2.7.0.
- Handle non-ASCII characters in import path on Windows, won't fix for Python2.
- Upgrade argparse to v1.3.0.
- Move language translations to api server.
- Move extension rules to api server.
- Detect correct header file language based on presence of .cpp or .c files named the same as the .h file.
- Correct priority for project detection.
- Fix offline logging.
- Limit language detection to known file extensions, unless file contents has a vim modeline.
- Guess language using multiple methods, then use most accurate guess.
- Use entity and type for new heartbeats api resource schema.
- Correctly log message from py.warnings module.
- Fix bug with auto detecting project name.
- Correctly display caller and lineno in log file when debug is true.
- Project passed with --project argument will always be used.
- New --alternate-project argument.
- Reuse SSL connection across multiple processes for improved performance.
- New --cursorpos argument for passing index of cursor within the file contents.
- New --lineno argument for passing line number of cursor at time of heartbeat.
- Format py.warnings log messages same as other log messages.
- Include package namespace and line number in logger output.
- Added api_url config option and --apiurl cli argument for customizing api url.
- Capture warnings in log file.
- Add requests.packages directory to sys.path.
- Update requests package to v2.0.6.
- Update simplejson to v3.6.5.
- Add back --ignore argument for backwards compatibility.
- Refactor module structure.
- Include cacert.pem file in pypi distribution for SSL with requests package.
- Upgrade requests library to v2.5.3 to fix SSL problem on CentOS.
- New options for excluding and including directories.
- Use requests library instead of urllib2, so api SSL cert is verified.
- New --notfile argument to support logging time without a real file.
- New --proxy argument for https proxy support.
- Ignore errors from malformed markup (too many closing tags).
- Remove unused dependency, which is missing in some python environments.
- Detect JavaScript frameworks from script tags in Html template files.
- Detect frameworks from JavaScript and JSON files.
- Handle unknown language when parsing dependencies.
- Detect libraries and frameworks for C++, Java, .NET, PHP, and Python files.
- Fix offline logging when response from api is None.
- Prevent queuing offline heartbeats which will never be valid (400 errors).
- Fix bug preventing offline heartbeats from being purged after uploaded.
- Fix UnicodeDecodeError when building user agent string.
- Handle case where response is None.
- Upgrade pygments to v2.0.1.
- Always log an error when api key is incorrect.
- Fix list index error when detecting subversion project.
- Catch exceptions when getting current machine time zone.
- When Python was not compiled with https support, log an error to the log file.
- Correctly detect branch name for subversion projects.
- Still log heartbeat when something goes wrong while reading num lines in file.
- Fix bug where binary file opened as utf-8.
- Python3 compatibility changes.
- Supress output from svn command.
- Find svn binary location from common install directories.
- Encode json data as str when passing to urllib.
- Option in .wakatime.cfg to obfuscate file names.
- Use unique logger namespace to prevent collisions in shared plugin environments.
- Use project from command line arg when no revision control project is found.
- Include python3.2 compatible versions of simplejson, pytz, and tzlocal.
- Disable offline logging when Python was not compiled with sqlite3 module.
- Fix bug in queue preventing actions with NULL values from being purged.
- Offline time logging using sqlite3 to queue editor events.
- Ability to set project from command line argument.
- Use new domain name wakatime.com.
- Detect project name and branch name from mercurial revision control.
- Bug fix for unicode in Python3.
- Minor bug fix for Subversion on non-English systems.
- Second line in .wakatime-project file now sets branch name.
- Convert ~/.wakatime.conf to ~/.wakatime.cfg and use configparser format.
- new [projectmap] section in cfg file for naming projects based on folders.
- Placing .wakatime-project file in a folder will read the project's name from that file.
- New config for ignoring files from regular expressions.
- Parse more options from config file (verbose, logfile, ignore).
- Read git HEAD file to find current branch instead of running git command line.
- Sending local olson timezone string in api request.
- Sending total lines in file and language name to api.
- Fixed relative import error by adding packages directory to sys path.
- Using urllib2 again because of intermittent problems sending json with requests library.
- Encoding json as utf-8 before making request.
- Using requests package v1.2.3 from pypi.
- Fix bug causing requests library to omit POST content.
- Sending single branch instead of multiple tags.
- Using requests module instead of urllib2 to verify SSL certs.
- Allow importing directly from Python plugins.
- Refactored.
- Simplified action events schema.
- Birth.