package timedesc-json
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=4727cf4405b4a0ee89170eba6d80dc2146e1e4ef688cf512256bf8d9a11b4b88
doc/CHANGELOG.html
Changelog
Timere-parse 0.0.7
- Added ISO week recognition rule with keyword
iso-week
Timere 0.8.0
Added ISO week pattern
iso_week_pattern
,iso_years
,iso_year_ranges
,iso_weeks
,iso_week_ranges
Pattern resolver optimization
- Added branch skipping for year, month, day, hour levels
- This starts the search closer to the first actual potential match
Fixed handling of
length
indeduce_child_result_space_bound_from_parent
- Previously leads to incorrect result space computation, and may lead to time slots missing despite meeting criteria
Fixed handling of negative month day
- Bug introduced in 84792815ccfa1f8ae4bd9c228e314491dc31456a during reintroduction of pattern resolver branch skipping optimization
- The commit was made after relese of Timere 0.7.0, so the bug only affected users who were pinning the repo directly
Timedesc 1.1.1
Fixed format string parser for functions in
Span.For_human
to_string
pp
Timedesc 1.1.0
Exposed the following functions in
Utils
iso_week_date_of_jd
jd_of_iso_week_date
Made
ISO_week.make
slightly more lenient in the year range accepted- Changing range from
[0, 9999]
to[-1, 10000]
- Previously,
Timedesc.iso_week
would sometimes fail in the edge cases year 0 and 9999
- Changing range from
Timedesc 1.0.0
- Fixed
get_local_tz_for_arg
error message - Refreshed tzdb
Added RFC9110 (HTTP Semantics) printers
pp_rfc9110
to_rfc9110
Timestamp.pp_rfc9110
Timestamp.to_rfc9110
Date.pp_rfc9110
Date.to_rfc9110
and parsers
of_rfc9110
of_rfc9110_exn
Timestamp.of_rfc9110
Timestamp.of_rfc9110_exn
Timedesc 0.9.1
Moved to using hand rolled parser for tzdb and related parsing
- Previous version using Angstrom causes stack overflow in JS targets
- Refreshed tzdb
Timedesc 0.9.0
- Moved sexp code into
timedesc-sexp
to further reduce core dependencies - Replaced use of mparser with angstrom
Timedesc 0.8.0
Significantly reduced number of dependencies, and moved JS, JSON code into separate packages
- Removed dependencies:
fmt
,containers
,oseq
- Moved JSON code into
timedesc-json
package along with Yojson dependency - Moved
tzlocal
andtzdb
stuff into their own separate packages (timedesc-tzlocal
andtimedesc-tzdb
respectively) - Moved JS tzlocal backend into
timedesc-tzlocal-js
package
- Removed dependencies:
Adjusted
Time_zone.Db.Compressed
API to remove use ofMarshal
- This in turn allows
timedesc-tzdb.full
to not depend ontimedesc
as the compressed copy is stable and can be stored in repo directly
- This in turn allows
Timedesc 0.7.0 (not released on OPAM)
- Added
tzlocal.js
backend forjs_of_ocaml
Added compressed binary encoding of time zone
tzdb-full
now only considers 1970 to 2040 to further cut down sizeUpdated string conversion functions based on pretty printers which raise
Date_time_cannot_deduce_offset_from_utc
to raise the exception instead of returningNone
- This simplifies the handling as return type is now simply just
string
. - And for serious stuff users are expected to use only unambiguous date times anyway, which would not trigger this exception
- This simplifies the handling as return type is now simply just
Added ISO8601 printing facilities to
Timestamp
module for consistency- They are just aliases to the RFC3339 printers
Timere-parse 0.0.6
- Bumped dependency of Timedesc to >= 0.6.0, Timere to >= 0.7.0
Timere 0.7.0
- Replaced
CCOpt
withCCOption
(this bumps dependency of Containers to >= 3.6) - Bumped dependency of Timedesc to >= 0.6.0
Timedesc 0.6.0
Main breaking changes:
- Changes in ISO week date functions (shorting label for arguments, quality of life changes)
- Removed
_date
suffix in names ofDate.Ymd_date
andDate.ISO_ord_date
- Replaced
CCOpt
withCCOption
(this bumps dependency of Containers to >= 3.6) Added "partial date" modules with ISO8601 parsing and printing facilities
ISO_week
Ym
Added additional ISO8601 printing facilities for all three calendar systems
Date.Ymd.pp/to_iso8601
(these are just aliases to the RFC3339 printers)Date.ISO_week_date.pp/to_iso8601
Date.ISO_ord.pp/to_iso8601
Added additional ISO8601 parsing facilities for all three calendar systems
Date.Ymd.of_iso8601[_exn]
Date.ISO_week_date.of_iso8601[_exn]
Date.ISO_ord.of_iso8601[_exn]
Added additional comparison functions to
Date
lt
,le
,gt
,ge
,compare
- Added arithemtic functions to
Date
- Added
pp/to_iso8601
functions as aliases to the rfc3339 functions toTimedesc
Patched ISO8601 parsers and RFC3339/ISO8601 printers to handle second level time zone offset
- Rare occurrence in tzdb but picked up by some new tests
Added additional date conversion functions to
Utils
ymd_of_jd
weekday_of_jd
doy_of_ymd
jd_of_ydoy
- Added
Time_zone.recorded_offsets
- Tzdb refresh
Timere-parse 0.0.5
- Updated use of Timedesc, Timere API
- Added support for parsing "24:00" and "24:00:00"
- Added exception raising version of functions
- Upgraded ruleset
- Renamed
Timere_parse.duration
toTimere_parse.span
Timedesc 0.5.1
- Added ISO week date and ISO ordinal date parsing support in ISO8601 date and date time parsers
- Added
Timedesc.Date.of_iso8601
- Added
Timedesc.Time.of_iso8601
- Added
_exn
variants of ISO8601 parsing functions - Small tuning of ISO8601 parsing behaviour
- Added
pp_rfc3339
andto_rfc3339
toTimedesc.Date
andTimedesc.Time
modules - Added sexp serialisation/deserialisation functions to
Timedesc.Date
andTimedesc.Time
Timere 0.6.0
Added
inc_exc
argument tobounded_intervals
- This fixes expressiveness issues caused by lack of an inclusive version
- Renamed
bounded_intervals
topattern_intervals
- Swapped to using
inc_exc
forhms_intervals
API - Added nanosecond support for
pattern
andPoints.t
- Added
Timere.resolve_exn
- Minor fixes of
resolve
for edge cases - Upgraded
Timere.Points.make
to do a lot more deduction of missing arguments - Renamed
&
to&&&
- Removed
Timere.Hms
module, replaced use ofTimere.Hms.t
withTimedesc.Time.t
Timedesc 0.5.0
- Made
Timedesc.Span.t
abstract - Added accessors
get_s
,get_ns_offset
and conversion functionto_s_ns
toTimedesc.Span
module - Made
Timedesc.Time_zone_info.t
abstract - Added accessors
tz
andfixed_offset_from_utc
toTimedesc.Time_zone_info
module - Added format string system to
Timedesc.Span.For_human.pp
andto_string
Timedesc 0.4.0
Added following to
Timedesc.Utils
jd_of_ymd
jd_of_date
jd_of_unix_epoch
jd_span_of_unix_epoch
Added
Zoneless
module- Moved "date and time" API into
Zoneless
module Zoneless
also includes extra ISO8601 parsing functions for handling ISO8601 strings with no time zone designators
- Moved "date and time" API into
- Updated definition of
Time_zone.equal
andTime_zone.utc
Added comparison functions
compare_chrono_min
compare_chrono_max
compare_struct
Timedesc 0.3.1
- Fixed
Timedesc.Span.make
handling ofns
whenns = Int.min_int
- Added
Timedesc.Span.Out_of_range
exception for when it is not possible represent the value even after normalization
Timere 0.5.0
- Fixed unhandled exception/crash due to trying to construct invalid date times when resolving patterns
- Fixed lossy behaviour in
Pattern_resolver.Branch.to_date_time
- Fixed incorrect resolution due to incorrect definition of
Resolver.timestamp_safe_sub
- General fixes in
pattern_resolver
andresolver
for edge cases nearingTimedesc.Timestamp.min_val
andTimedesc.Timestamp.max_val
Bumped Timedesc dep to
0.3.0
for easier to handle time zone transitions (due to the updated definition ofTimedesc.Timestamp.max_val
)- This makes resolver code simpler
- Fixed crash due to
Points.to_date_time
by changing to simply returnNone
if date time conversion fails - Added automatic bound deduction by default for
bounded_intervals
- Overhaul of search space optimization code in
resolver
Timedesc 0.3.0
- Added
ceil
,floor
andround
toTimedesc.Span
(and also re-exported them inTimedesc.Timestamp
) - Rounded down
Timedesc.Timestamp.max_val
to closest integer - Added automatic second fraction precision support for non-RFC3339 pretty printers
- Updated default format string for pretty printers to include second fraction
- Updated format string system to better support second fraction
Timere 0.4.0
- Migration of date time components to Timedesc
- Changed
inter []
to meanalways
instead ofempty
Fixed
overapproximate_search_space_bottom_up
handling of bounded intervals- Previously the default search time zone was used during points to date time conversion instead of the time zone passed during execution
Timedesc 0.2.0
- Added ISO int conversion functions for
weekday
- Fixed
Timedesc.Date.day
accessor, which is used byTimedesc.day
- Renamed
week
toiso_week
for ISO week date API - Replaced use of
CCOpt.get_exn
withCCOpt.get_exn_or
- Made
Timedesc.Time.t
abstract - Modified
Timedesc.Time.t
underlying representation - Fixed
Timedesc.Time.make
to handle24:00:00
"properly" by rewriting it to23:59:59.999_999_999
Timedesc 0.1.0
- Migration of date time components from Timere
Changes to date time components
- Added recognition of "UTC+/-offset", e.g. "UTC+7", "UTC-07:00", to
Timere.Time_zone.make
- Tuning behaviour of
Timere.Time_zone.make
for handling time zones withUTC
prefix - Updated ISO8601 parser to tolerate separator other than
T
- Updated ISO8601 parser to tolerate numbers expressed in only one digit
- Added size checking to
Timere.Time_zone.make_offset_only*
- Removed raising of
Invalid_argument
outside of Timere combinators,pp*
and some*_exn
functions - Fixed
Points.make
error checking - Moved hms into
Hms
module - Improved hms error returning
- Added
Timere.Week_date_time
module for handling ISO week date time - Removed type
month
, replaced use of it with justint
Documentation overhaul with readability improvement and introduction to date time handling added
- Renamed
Timere.Date_time.to_weekday
toTimere.Date_time.weekday
Unified
Duration
andSpan
module. Now there is onlySpan
module with human friendly constructors andview
type inTimere.Span.For_human
- See issue #27 for discussion
- Many changes and restructuring for better usability...
- Added recognition of "UTC+/-offset", e.g. "UTC+7", "UTC-07:00", to
Timere 0.3.1
- Minor refactoring on use of pattern resolver to simplify reasoning about undefined/uncertain behaviour
- Added
Timere.Span.make_small
Timere 0.3.0 (unreleased)
- Added support for parsing "24:00" and "24:00:00" in
Timere.Date_time.of_iso8601
- Changed
make_hms
to replace second with 59 when 60 is provided - Renamed
Date_time.make_precise
toDate_time.make_unambiguous
- Added leap second handling to
Date_time
- Fixed crash in
Timere.Date_time.of_iso8601
due to failed date time construction - Upgraded
Time_zone.make_offset_only
API - Updated
tz_info
andTime_zone.t
definition to remove overlap of functionality for representing time zone with only constant offset - Renamed constants
min
andmax
tomin_val
andmax_val
forTimere.Timestamp
andTimere.Date_time
- Added
since
andsince_timestamp
- Pattern resolver overhaul
Resolver search space slicing fix in
slice_search_space
overapproximate_search_space_bottom_up
restrict_search_space_top_down
- Changed
{mday:...}
to{day:...}
in format string system - Better error messages when local time zone cannot be determined (PR #23)
Timere 0.2.2
- Moved timestamp functions into
Timere.Timestamp
module - Added fractional second support to ISO8601 parsing
- Fixed
Span.of_float
handling of negative floats - Renamed label argument
precision
tofrac_s
for RFC3339 related functions - Removed rounding behaviour of fractional digits for RFC3339 related functions
- Changed
make_hms
to accept second field to be 60
Timere 0.2.1
- Fixed OCaml 4.06.1 compatibility
Timere 0.2.0 (unreleased)
- Added support for nanosecond precision for date times and timestamps
- Updated tzdb
- Fixed
Timere.Date_time.make
andTimere.Date_time.make_exn
types Timere.Date_time
API tuning- Extended format string to support number form of month
- Extended format string to support fractional seconds
- Formatted date time string construction now fails explicitly when tz offset is required but cannot be deduced
Timere-parse 0.0.4
- Replaced
Int
module withCCInt
for building in version 4.06.1
Timere-parse 0.0.3
- Ruleset update
- Added time zone support
- Improved bounded interval bound choosing (e.g. "10am to 2pm" would use a bound of 2 days now instead of 366 days)
- Fixed parsing of hmss
Timere 0.1.5
Fixed following functions which may exception when
tzlocal.none
backend is usedTimere.intervals
Timere.resolve
- Added
tzlocal.utc
backend - Fixed slowdowns in
inter
resolution caused by incorrect batch and search space slicing logic - Fixed
sexp_of_timestamp
which previously did not specify time zone explicitly as UTC after the default time zone parameter change in API - Fixed use of
Date_time'.of_timestamp
at places by specifying the time zone explicitly as UTC - Updated
bounded_intervals
to try to avoid constructing terms that result in (almost) non-termination
Timere-parse 0.0.2
- Added corpus
- General parser upgrade
- Added parser for
hms
Timere 0.1.4
- Added missing exception handling in
Time.pattern
forRange.Range_is_invalid
- Added local time zone detection (
Timere.Time_zone.local
) - Swapped to using local time zone by default in
Timere.Date_time
API - Added missing to/of sexp functions for
Date_time
andDuration
modules - Added pretty printers for
Timere.hms
Timere-parse 0.0.1
- Base version
Timere 0.1.3
- Base version
- Timere-parse 0.0.7
- Timere 0.8.0
- Timedesc 1.1.1
- Timedesc 1.1.0
- Timedesc 1.0.0
- Timedesc 0.9.1
- Timedesc 0.9.0
- Timedesc 0.8.0
- Timedesc 0.7.0 (not released on OPAM)
- Timere-parse 0.0.6
- Timere 0.7.0
- Timedesc 0.6.0
- Timere-parse 0.0.5
- Timedesc 0.5.1
- Timere 0.6.0
- Timedesc 0.5.0
- Timedesc 0.4.0
- Timedesc 0.3.1
- Timere 0.5.0
- Timedesc 0.3.0
- Timere 0.4.0
- Timedesc 0.2.0
- Timedesc 0.1.0
- Timere 0.3.1
- Timere 0.3.0 (unreleased)
- Timere 0.2.2
- Timere 0.2.1
- Timere 0.2.0 (unreleased)
- Timere-parse 0.0.4
- Timere-parse 0.0.3
- Timere 0.1.5
- Timere-parse 0.0.2
- Timere 0.1.4
- Timere-parse 0.0.1
- Timere 0.1.3