Skip to content

Latest commit

 

History

History
598 lines (432 loc) · 18.4 KB

CHANGELOG.rst

File metadata and controls

598 lines (432 loc) · 18.4 KB

Changelog

All notable changes to opening_hours.js will be documented in this file.

This project adheres to Semantic Versioning and human-readable changelog.

Note that most of the v2.X.Z releases have not been added to the changelog yet.

Authors

  • [AMDmi3] - Dmitry Marakasov (original author)
  • [ypid] - Robin Schneider (author, maintainer)

Contributors

Thanks very much to all contributors!

Supporters

Thanks for helping by allowing employees to work on the project during work hours!

master - unreleased

v3.6.0 milestone

Added

  • Public holiday definitions added:
  • Added Easter Sunday to Slovak holidays. [chiak597]
  • Localizations added: Hungarian [urbalazs, debyos]
  • School holiday definitions added:
  • Translate error tolerance warnings into German. [ypid]
  • Add additional warnings:
    • Misused . character. Example: Jan 01,Dec 24.-25.. [ypid]
    • Trailing , after time selector. Example: We 12:00-18:00,. [ypid]
    • Additional rule which evaluates to closed. Example: Mo-Fr 10:00-20:00, We off. [ypid]
    • Value consists of multiple rules each only using a time selector. Example: 11:30-14:30;17:30-23:00. [ypid]
    • Potentially missing use of <additional_rule_separator> if the previous rule has a time range which wraps over midnight and the current rule matches one of the following days of the previous rule. One that the warning is not emitted in case wide range selectors are used in both involved rules to avoid a false positive warning where the two rules would never match days directly following each other. Nevertheless this check has false positives and which can be ignored in cases mentioned in the warning. Example: Fr 22:00-04:00; Sa 21:00-04:00 [ypid]
  • Extend error tolerance:
    • Handle super/subscript digits properly. Example: Mo 00³°-¹⁴:⁰⁹. [ypid]
    • Handle misused . character following a number. Example: Jan 01,Dec 24.-25.. [ypid]

Changed

  • Public holiday definitions updated:
  • Migrated to use ES2015 modules and rollup for module bundling. [simon04]
  • Increased NodeJS version requirement to 6.0.0. Technically, the code should still work with 4.0.0 but support has been dropped because npm-install-peers depends on 6.0.0. [ypid]
  • Update to holiday definition format 2.2.0. Holidays are now maintained in YAML files, one for each country. [ypid]
  • Update to holiday definition format 3.0.0. Use nested key-value pairs instead of arrays with a known structure. [ypid]
  • Rework the way Nominatim responses are handled (used for testing). [ypid]
  • Allow "gaps" in school holiday definitions. This became necessary because countries/states might add/remove holidays like winter holidays from one year to another. [ypid]
  • Error tolerance: For a value such as Mo-Fr 08:00-12:00 by_appointment the tool did previously suggest to use Mo-Fr 08:00-12:00 "on appointment" but as whether to use by appointment or on appointment is not defined the tool now just uses the already given variant (Mo-Fr 08:00-12:00 "by appointment" in this case). [ypid]
  • Error tolerance: Interpret the German :regexp:`werktags?` as Mo-Sa instead of Mo-Fr. Ref: § 3 Bundesurlaubsgesetz (BUrlG). [ypid]
  • Make error tolerance warnings translatable. [ypid]
  • Improved performance of common constructor calls by factor 6! [ypid]
  • Improve number input in the evaluation tool and other HTML and CSS improvements. Useful for example on mobile devices. [HolgerJeromin, ypid]
  • Merge country into state holidays. This avoids repeating country-wide holidays. [simon04]

Fixed

  • Fix German public holiday definitions. Since 2018, Reformationstag is also a public holiday in Bremen, Schleswig-Holstein, Niedersachsen and Hamburg. [Discostu36, ypid]
  • Fix Russian public holiday definitions. Regions where not in local language and thus not matched properly. [ypid]
  • Fix school holiday selector code which caused the main selector traversal function to not advance any further (returning closed for all following dates) after the school holiday selector code hit a holiday definition ending on the last day of the year. [ypid]
  • Fix check-diff-%.js Makefile target. :command:`git diff` might not have shown changes or failed to return with an error before. [ypid]
  • Fix support for legacy browsers (IE) with using proper for...in loops. [shouze]
  • Error tolerance: Fix mapping of Spanish weekdays. [maxerickson]

v3.5.0 - 2017-02-17

v3.5.0 milestone

Added

Changed

  • Make the evaluation tool prettier. [MKnight]
  • Use peerDependencies to allow dependency reuse by other npm packages. [pke, ypid]
  • Use caret ranges for all npm dependencies. [ypid, pke]
  • Increased NodeJS version requirement to 0.12.3 which fixes one test case. [ypid]

Fixed

  • Public holiday definitions fixed:
    • Germany, Saxony: Add missing "Buß- und Bettag" to the public holiday definition of [bugvillage, ypid]
    • Fix the getDateOfWeekdayInDateRange helper function used to calculate PH of Sweden and Germany Saxony. PH definitions using this functions might have been wrong before. [ypid]
  • Fix timezone problem in PH_SH_exporter.js (local time was interpreted as UTC). [ypid]
  • Fix handling of legacy 12-hour clock format. 12:xxAM and 12:xxPM was handled incorrectly! [ypid]
  • Fix timezone issue for PH_SH_exporter.js unless the --omit-date-hyphens option was given. Exported dates which are in DST might be wrong when your system is in a timezone with DST and DST was not active when you run the script. [ypid]
  • Fix current week number calculation which was caused by incorrect use of new Date() which is a "Reactive" variable. [spawn-guy]

v3.4.0 - 2016-01-02

v3.4.0 milestone

Added

  • Public holiday definitions added:
  • School holiday definitions added: Romania [afita]
  • Localizations added: Dutch [marcgemis]
  • Added simple HTML usage example for using the library in a website. [ypid]
  • Browserified the library. [simon04]
  • oh.isEqualTo: Implemented check if two oh objects have the same meaning (are equal). [ypid]
  • Expose oh.isEqualTo in the evaluation tool. [ypid]

Changed

  • Changed license to LGPL-3.0. [ypid]
  • Refer to YoHours in the evaluation tool. [ypid]
  • Use HTTPS everywhere (in the documentation and in code comments). [ypid]

Fixed

  • Lots of small bugs and typos fixes. [ypid]
  • No global locale change. [ypid]

v3.3.0 - 2015-08-02

v3.3.0 milestone

Added

  • Public holiday definitions added: Czech Republic [edqd]
  • Support for localized error and warning messages. [amenk funded by iMi digital and AddisMap]
  • Support to localize oh.prettifyValue opening_hours value. [amenk funded by iMi digital and AddisMap]
  • Wrote SH_batch_exporter.sh and added support to write (SH) definitions for all states in Germany. [ypid]
  • Added more tests to the test framework. [ypid]

Changed

  • Updated translation modules to latest versions.

Fixed

  • Fixed false positive warning for missing PH for value 'PH'.
  • Fixed evaluation of SH after year wrap (of by one).

v3.2.0 - 2015-05-16

v3.2.0 milestone

Added

  • Show warning for missing PH. Required API extension (fully backwards compatible, upgrade recommended).
  • Show warning for year in past, not year range.
  • Added more error checking and tests for: Wrong constructor call, e.g bad parameters.
  • Added more tests to the test framework.

Changed

  • Improved input/error tolerance.
  • Refactored source code.
  • Updated examples in evaluation tool.
  • Statistics: Optimized Overpass import.
  • Statistics: Fixed wrong stats for 'not prettified'.
  • Statistics: real_test.js: Implemented punchcard weekly report generation. See blog post.
  • Statistics: Wrote gen_weekly_task_report.

v3.1.1 - 2015-04-12

v3.1.1 milestone

Added

  • Public holiday definitions added: Italian [damjang, ypid]
  • Added support to use data from the Overpass API to generate statistics.

Changed

  • Give better error message for wrong usage of <additional_rule_separator>.
  • Always use strict === comparison in JavaScript.

v3.1.0 - 2015-02-15

v3.1.0 milestone

Added

  • Public holiday definitions added:

Fixed

  • Public holiday definitions fixed: France

v3.0.2 - 2015-01-24

Added

  • Added make release target.

Changed

  • package.json: Narrowed down version of dependencies.
  • Enhanced Makefile.
  • Updated README.md

v3.0.1 - 2015-01-24

v3.0.1 milestone

Added

  • Public holiday definitions added: Russian [dmromanov]
  • Improved error tolerance for values bis open end and Sonn- und Feiertags.
  • real_test.js: Added the following OSM tags to the evaluation:
    • Key:happy_hours
    • Key:delivery_hours
    • Key:opening_hours:delivery
  • Evaluation tool: Added noscript tag to give a hint to the user to enable JavaScript.

Fixed

  • Fixed up README.md.
  • Fixed error when parsing input value SH off; Mo-Sa 18:00+.
  • Require 2.7.x of the moment library because of API change in recent versions.

v3.0.0 - 2014-09-08

v3.0.0 milestone

Added

  • Release notes.
  • oh.prettifyValue: Implemented selector reordering.
  • oh.prettifyValue: Changed API for optional parameters. API is backwards compatible in case you are not using any of the optional parameters.
  • Evaluation tool: Highlight selectors and other tokens and give more information.
  • real_test.js: Write verbose log file for all values and states.
  • real_test.js: Added tag filter command line parameter and csv stats output.
  • Created favicon.
  • Bundle (and test) minified version as opening_hours.min.js.
  • More unit tests:
    • Rule has no time selector.
    • Changed default state not first rule like Mo 12:00-14:00; closed.
    • Valid use of <separator_for_readability>.
    • And more.

Changed

  • oh.getMatchingRule: Changed API. Not backwards compatible.
  • Week selector rework. Using ISO 8601 week dates.
  • Made second rule of '07:00+,12:00-16:00; 16:00-24:00 closed "needed because of open end"' obsolete.
  • Improved error tolerance.
  • real_test.js: Enhanced implementation.

Fixed

  • Fixed evaluation for some (not to often used) values.
  • Optimized source code with JSHint. Some internal variables where defined in global scope.
  • Removed duplicate warnings for test.addShouldWarn in test framework.

v2.1.9 - 2014-08-17

Added

  • Many more unit tests.
  • Internal tokens array documentation.
  • Using moment.js for date localization.

Changed

  • Many improve error tolerance: comments, am/pm time format, …
  • Updated examples in the evaluation tool.
  • Internal refactoring and enhancements.

Fixed

  • Fixed problems reported by real_test
  • Fixed bug in test framework.

v2.1.8 - 2014-04-26

Added

Fixed

v2.1.0 - 2014-03-03

Added

Fixed

  • Docs: Improved understandability of overlapping rules in README.md. [sesam]

v2.0.0 - 2013-10-27

Added

v1.0.0 - 2013-01-12

Added

  • Initial coding and design. [AMDmi3]

Changed

  • demo page (now called evaluation tool) improvements. [putnik]