diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 000000000..2257fd662 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,784 @@ +# Changelog for [`duckling` package](https://github.com/facebook/duckling) + +## 0.2.0.0 + +### Core + * Bump versions on dependencies + * ExampleMain: add support for setting the port + * Support for GHC >= 8.8.x && GHC <= 9.0.1 + * Relicense to BSD-3 + * Probabilistic layer bug fix + * Remove dependency on Data.Some + * Depend on regex-pcre-builtin on Windows + * Update cabal-version to 2.2 + * Migrate to GitHub CI over Travis + * Some attempts at getting smaller parse trees (less exploitable) + +### Rulesets + +* Common + * Correct CDT TimeZone offset CDT is (-300), not 540. + * Fixed BST and IST offsets. BST is +1 (60) and IST is +5:30 (330) + * Make unicode output in tests sane by not relying on `Show` + * Add type=value to JSON response for Email, PhoneNumber, and Url, for consistency + * CreditCardNumber: **new!** (duckling can now recognise credit cards) + * Email: Add DE (German) + IS (Icelandic) spelled out email + * Numeral: Don't accept dashes ('-') as token separators + * Time: Add Karva Chauth holiday + * Time: Add Vaisakhi holiday + * Time: Add daylight savings start/endtimes to holidays + * Time: Add Purim and Shushan Purim (Jewish holidays) + * Time: Add Guru Gobind Singh Jayanti holiday + * Time: Extend support for Ramadan and Eid al-Fitr from 1950 to 2050 + * Time: Add support for Parsi New Year + * Time: Add support for Dayananda Saraswati Jayanti holiday + * Time: Extend support for Mawlid from 1950 to 1998 + * Time: Add Rabindra Jayanti holiday + * Time: Add Guru Ravidass Jayanti holiday + * Time: Extend support for Eid al-Adha from 1950 to 2000 + * Time: Add Krishna Janmashtami holiday + * Time: Add Mahavir Jayanti holiday + * Time: Add Maha Shivaratri holiday + * Time: add Ugadi holiday + * Volume: interval support + +* AF (Afrikaans) + * Numeral: **new!** + +* AR (Arabic) + * Add a new locale: EG (Egyptian) + * AmountOfMoney: Add more variants of EGP + * Numeral: Add support for numerals written in Arabic script + * Numeral: Support decimals and comma-separated integers + * PhoneNumber: **new!** + * Time: Add periodic times + * Time: Add rule for a week ago + +* BG (Bulgarian) + * Time: **new!** + +* BN (Bengali) + * Numeral: **new!** + +* CA (Catalan) + * Numeral: **new!** + * Ordinal: **new!** + +* DA (Danish) + * Ordinal: Add support for larger spelled-out ordinals + * Time: recognise abbreviation 'kl' + +* DE (German) + * Distance: **new!** + * Duration: Add more common durations + * Numeral: Fix typo on "fünfzehn"(15) + * Time: Fix wrong parsing of YYYY-MM-DD dates + * Time: Add rule for 'the day before yesterday' + * Time: Fix a bug for "fünfter"¬ + * Time: support for "am ersten Dezember" to " am einunddreißigsten Dezember"¬ + * Time: now recognise "der fünfte Dezember"¬ + * Time: Add support for (pre-)computed holidays + * Time: Don't parse 'so' + * Time: improve approximations + * Time: Add rule for week after next + * Time: Add rule for montag in n wochen + * Volume: **new!** + +* EN (English) + * AmountOfMoney: Add support for subunits of dollars, e.g. nickels, dimes, quarters, as well as the number of coins + * AmountOfMoney: Add support for latent + * AmountOfMoney: Add support for lakh and crore + * AmountOfMoney: correct regex to match three letter currency codes beginning with C + * AmountOfMoney: Make ruleInterval{Max,Min} symmetric + * AmountOfMoney: Support abbreviations of lakh and crore + * AmountOfMoney: Add UAH currency + * AmountOfMoney: Add HKD + * AmountOfMoney: dollar and \ + * AmountOfMoney: dollar and a half + * AmountOfMoney: intersection for \ and a half + * AmountOfMoney: extend interval support + * AmountOfMoney: Add more variants of EGP + * Distance: Support composite distances + * Distance: one meter and \ + * Distance: \ meters and \ + * Distance: Add interval support + * Duration: Fix composite durations without delimiters. + It previously only worked with + commas/'and'-separated tokens + * Duration: Support more words in `ruleDurationNumeralMore` + * Duration: \ and a half minutes + * Duration: support for \ hour and \ + * Duration: parse Xm as X minutes and X.Y hrs as X.Y hours + * Duration: Leverage TimeGrain for x.y hours + * Duration: Support composite duration + * Numeral: Fix ambiguous parses when both ruleNegative and ruleMultiply apply + * Numeral: Extend fraction rule + * Numeral: Add mixed fraction rules + * Numeral: Add prefix of 10/100/10_000 rules + * Quantity: Support 'k.g' and 'k.g.' for kilograms + * Temperature: Support temperatures with decimal values + * Time: Fix palm sunday regex + * Time: Fix latent time of days like "ten thirty" + * Time: Don't parse time of days above 12 with meridiem + like "13 am" + * Time: Add rule to match \ + \ + * Time: Add "all week"/"rest of the week" rules + * Time: Parse time intervals like: 2015-03-28 17:00:00/2015-03-28 21:00:00 + * Time: Add rules to handle "DD/MM/YYYY" or "DD MM YYYY" + * Time: Add support for YYYYQQ and YYQQ expressions, like + '2018Q4' and '18Q4' + * Time: Add rule for 'during \' + * Time: Restrict 'on' absorption to days + * Time: Fix durations, upper intervals should all be exclusive + * Time: Fix grain on some intervals for time-of-days + * Time: Add rule 'in \ at \ + * Time: Add \ - \ (interval) timezone rule + * Time: '\ in \ should only operate on grain \> Hour + * Time: Add '\ \ from \' rule + * Time: Add \ past \ + * Time: Make 'the week' resolve to interval from `today` to `end of week` + * Time: Add support for \h\ + * Time: Add rule for a quarter after \ + * Time: Support 'Martin Luther Kings Day' + * Time: Add more holiday aliases (Veteran Day, Mardi Gras, St. Paddy's Day) + * Time: Intersect "9 tomorrow morning" + * Time: Support 'Chinese New Years' + * Time: Support "Saint" Patrick's Day + * Time: Add Ratha-Yatra Holiday + * Time: Add support for Ganesh Chaturthi holiday + * Time: Add rama navami holiday + * Time: Add '\ at \' rule + * Time: Modify 'this|last|next \' to capture things like "the month" in "the first Saturday of the month" + * Time: Support 'the \ of \' + * Time: Add Orthodox Good Friday holiday + * Time: The (nth) closest (day) to (time) + * Time: Add rule for 'midday' + * Time: Fix a problem with parsing fractional minutes + * Time: parse 'upcoming xxx weeks' and 'xxx upcoming weeks' + * Time: Add new rule to parse phrase in the pattern 'xxx minutes to \ + * Time: Add support for spelled-out times + * Time: Add support to parse \ \ + * Time: Fix parsing 'next \' + * Time: Treat 'coming' as 'next' + * Time: Make duckling time not treat 0:xx and 12:xx ambiguously + * Add 'asap', 'at the moment' to EN time + * Parse latent year intervals + * Time: last \ + * Time: \ \ + * Volume: Extend interval support + * Time: Handle 2-digit date in existing DD/MM/YYYY rule + +* EN_UK (English, United Kingdom) + * Duration: **new!** + * Time: **new!** + +* EN_US (English, United States) + * Time: Super Tuesday + +* ES (Spanish) + * AmountOfMoney: Add support for intervals + * Duration: Add support for parsing phrases like half hour, quarter of an hour + * Duration: Support composite durations + * Numeral: Fix typo of 22 (veinto -> venti) + * Numeral: Add locale rules, since Spain and South America use different decimal separators + * Numeral: parse 'cero dos' as 'dos' + * Numeral: composite numerals + * Ordinal: Add missing 'tercer' regex + * Quantity: **new!** + * Time: Add support for periodic holidays + * Time: Fix `ruleYearLatent` to not match numerals that could be hours + * Time: Make 'n horas' latent + * Time: Fixed a problem with parsing 'day of month' that contains 'dia' + * Time: Add rule for 'next week' + * Time: \ \ + * Time: support for 'noon' + * Time: Allow para before timestamps + * Time: Add rule to parse '\ (in the afternoon)' + * Time: Add rule to parse 'last \ of \' + * Time: Add rule for next week + * Time: Add more corpus for tomorrow so that tomorrow latent doesn't prevail + * Time: Fix multi-word timestamps + +* FA (Persian) + * Numeral: **new!** + +* FI (Finnish) + * Numeral: **new!** + +* FR (French) + * Temperature: Support temperatures with decimal values + * Time: Update month interval rules to handle ordinals + and spelled-out numerals (e.g. "du premier au + quinze juin") + * Volume: Add 'Centilitre' type + +* HE (Hebrew) + * AmountOfMoney: add more rules + +* HI (Hindi) + * Duration: Pakhwada (पखवाड़ा) is 15 days n, not a fortnight + * Duration: Add support for composite duration + * Duration: Add support for specific times + * Numeral: Support more numerals + * Temperature: **new!** + * Time: Add support for quarter till, quarter past, and half + +* ID (Indonesian) + * AmountOfMoney: support intervals + +* IS (Icelandic) + * Numeral: **new!** + +* IT (Italian) + * AmountOfMoney: **new!** + * Distance: **new!** + * Duration: Fix ruleDurationAgo + +* KA (Georgian) + * AmountOfMoney: **new!** + * Duration: **new!** + * Numeral: **new!** + * Ordinal: **new!** + * Time: **new!** + * Time: Improvements for times in the past + * Time: Add support for quarters + +* KM (Khmer) + * Distance: **new!** + * Numeral: **new!** + * Ordinal: **new!** + * Quantity: **new!** + * Temperature: **new!** + * Volume: **new!** + +* KN (Kannada) + * Numeral: **new!** + +* KO (Korean) + * AmountOfMoney: support intervals + +* LO (Lao) + * Numeral: **new!** + +* ML (Malayalam) + * Numeral: **new!** + * Ordinal: **new!** + +* MN (Mongolian) + * Numeral: **new!** + +* NL (Dutch) + * AmountOfMoney: make decimal thousands separator optional + * Duration: Add 'anderhalf uur' + * Duration: support composite durations + * Quantity: **new!** + * Time: Add support for King's Day (Koningsdag) + * Time: stop 'for \' from resolving as times + * Volume: remove gallon + * Volume: Fix typo in milliliter + +* NO (Norwegian) + * AmountOfMoney: Parse more currencies + * Numeral: The written numeral 8 had a typo: "otte" -> "åtte" + * Numeral: Parse powers of ten with spaces as well as dots + * Numeral: Add more textual powers of ten + * Numeral: Parse textual numbers from 21 to 99 with _and_ without spaces + * Time: Add support for half an hour before as e.g. "halv to" + * Time: Add support for alternative clock denotation "klokka" + * Time: Add support for alternative tomorrow denotation "i morra" + * Time: Add some more unambiguous datetime parsing + +* PL (Polish) + * Numeral: Add support for seventy, eighty, ninety + * Duration: Fix typo: miej -> mniej + * Time: Add 'evening' to corpus + +* PT (Portuguese) + * Ordinal: Add 13..99 + * Ordinal: Corpus, keep accents consistent + * Time: Last and quarter expressions + +* RO (Romanian) + * Numeral: Fix multipliers with values above 20 + In Romanian, for numerals above 20, we + say '20 de milioane', not '20 milioane'. + * Time: Implement 'the day after tomorrow' + +* RU (Russian) + * AmountOfMoney: Add UAH currency + * Numeral: Be more permissive with numerals [20, 90] + * Time: **new!** + +* SK (Slovak) + * Numeral: **new!** + +* SW (Swahili) + * Numeral: **new!** + +* TA (Tamil) + * Ordinal: **new!** + +* TE (Telugu) + * Numeral: **new!** + +* TH (Thai) + * Numeral: **new!** + +* TR (Turkish) + * AmountOfMoney: **new!** + * Time: **new!** + +* VI (Vietnamese) + * AmountOfMoney: Add interval support + * AmountOfMoney: ruleNg, ruleDollar, ruleVND modified to better capture usage of VI + * Numeral: Add "ngàn" common synonym of "nghìn", and "chục", + colloquially used to count tens. + * Numeral: Remove ? in some regex where they don't make sense + * Time: Fix double-digit month matching + * Time: don't parse ngày + +* ZH (Chinese) + * Duration: Add more common expressions + * Numeral: Add more common expressions + * Time: Parse YYYY-MM + * Time: Value before month can be integer or chinese char + * Time: Add support for (pre-)computed holidays + * Time: Add more common expressions + * Volume: **new!** + +### Server + * Skip logfile creation if no logging + * Document how example application can use specific dimensions only + * Use System.FilePath.Posix instead of System.FilePath + * Use all dimensions by default + * Load timezones more leniently + * Docker: Reduce size of image drastically + * Dockerfile: Use Debian Buster + +## 0.1.6.1 + +### Core + +* Warn against incomplete pattern matching in GHC options +* Updated readme for custom dimensions +* Coding style documentation + +### Rulesets + +* Common + * AmountOfMoney: change `financeWith` to `isAmountOfMoney` where applicable + * Temperature: implement temperature intervals + +* EN + * AmountOfMoney: support "grand" + * Time: Absorb "since" before month/year + * Time: Fix before/after/until/since + + * Time: Make partial meridies latent + * Time: Global Youth Service Day + * Time: Vesak + * Time: Earth Hour + * Time: Regex update for Rosh Hashanah and Chanukkah + * Time: add