Changes in version 1.1.4.9013 Continuous integration - Update ccache-action reference. - Bump action version. Changes in version 1.1.4.9012 - Ci: Unify fledge.yaml across cynkratemplate and fledge (#86). Changes in version 1.1.4.9011 Chore - Add ccache to .gitignore and .Rbuildignore. Continuous integration - Create snapshot update PR against correct branch. - Add reference to /apply-patch workflow in commit message. - Clarify rationale for not deploying on schedule. - Only run fledge on pushes to main. - Tweak fledge workflow and ccache action. Changes in version 1.1.4.9010 Continuous integration - Cosmetics. - Bump action versions. - Install clang-format-21. - Align fledge workflow. - Harmonize. Changes in version 1.1.4.9009 Chore - Auto-update from GitHub Actions (#206). Changes in version 1.1.4.9008 Documentation - Update Plausible analytics snippet (@jeroenjanssens, #204). - Add "Supported By Posit" badge to website (@jeroenjanssens, #187). Changes in version 1.1.4.9007 Chore - Auto-update from GitHub Actions (#202). Changes in version 1.1.4.9006 Continuous integration - Fix comment (#200). - Tweaks (#199). - Test all R versions on branches that start with cran- (#198). Changes in version 1.1.4.9005 Continuous integration - Install binaries from r-universe for dev workflow (#196). Changes in version 1.1.4.9004 Continuous integration - Fix reviewdog and add commenting workflow (#194). Changes in version 1.1.4.9003 Continuous integration - Sync (#192). Changes in version 1.1.4.9002 Continuous integration - Sync (#190). Changes in version 1.1.4.9001 - Merge tag 'v1.1.4'. - Sub-second value parsing accurately (@eitsupi, #127, #128). - is.hms() and as.hms() now warn even when called indirectly (@moodymudskipper, #121, #163). - Implement ceiling_hms() and floor_hms() (@moodymudskipper, #118, #160). - Parsing now holds the date part fixed, removing unlikely errors during clock wraparound. - Spring cleaning (@schochastics, #174, #175). - Use rlang instead of ellipsis (#106). Changes in version 1.1.4.9000 fledge - CRAN release v1.1.4 (#185). Changes in version 1.1.4 (2025-10-17) Features - Sub-second value parsing accurately (@eitsupi, #127, #128). - is.hms() and as.hms() now warn even when called indirectly (@moodymudskipper, #121, #163). - Implement ceiling_hms() and floor_hms() (@moodymudskipper, #118, #160). Bug fixes - Parsing now holds the date part fixed, removing unlikely errors during clock wraparound. Chore - Spring cleaning (@schochastics, #174, #175). - Use rlang instead of ellipsis (#106). Changes in version 1.1.3 (2023-03-21) Bug fixes - Fix method consistency, checked by R-devel. Internal - Use rlang instead of ellipsis (#106). Changes in version 1.1.2 (2022-08-19) - Re-rendered documentation for compatibility with R-devel. Changes in version 1.1.1 (2021-09-26) - Avoid blanket import for lifecycle package for compatibility with upcoming rlang. - Establish compatibility with development version of testthat (#101, @lionel-). Changes in version 1.1.0 (2021-05-17) Breaking changes - "hms" objects no longer have a common type with character and numeric. Combining such values previously threw a warning, now throws an error (#94). - vec_cast() and as_hms() throw error instead of a warning if input can't be parsed (#68). Features - New unique.hms() method (#98, @joethorley). - as_hms() is a generic again (#81). Internal - Avoid LazyData in DESCRIPTION. - Bump required versions of ellipsis and vctrs to avoid warning during package load. - Using lifecycle package (#94). Changes in version 1.0.0 (2021-01-13) Life cycle - hms is now marked as "stable". Breaking changes - "hms" objects no longer have a common type with character and numeric. Combining such values previously threw a warning, now throws an error (#94). - vec_cast() and as_hms() now throw error instead of a warning if input can't be parsed (#68). Features - as_hms() is a generic again (#81). - round_hms() and trunc_hms() gain digits argument (#78, @hglanz). Bug fixes - as_hms() and vec_cast() now correctly treat objects of class "difftime" with integer mode (#84). Internal - Using lifecycle package (#94). - hms has been re-licensed as MIT (#86). Changes in version 0.5.3 (2020-01-08) - Use vec_default_ptype2(), remove vec_ptype2.hms.unspecified() (#80, @romainfrancois). - vec_ptype2.hms.default() forwards to vec_default_ptype2() for compatibility with vctrs 0.2.1. - Remove as.data.frame.hms(), handeld by vctrs. Changes in version 0.5.2.9000 - Internal changes only. Changes in version 0.5.2 (2019-10-30) - Work around parsing error that occurs on DST changeover dates (https://bugs.r-project.org/bugzilla/show_bug.cgi?id=16764). Changes in version 0.5.1 (2019-08-23) - Lossy casts from character vectors to hms now also trigger a warning if the cast succeeds in the first element of the vector but fails for other elements. Changes in version 0.5.0 (2019-07-09) Breaking changes - Now based on vctrs >= 0.2.0 (#61). This adds support for vec_cast() and vec_ptype2(). Some operations (such as subset assignment) are now stricter. The new_hms() constructor permits safe construction of hms objects from a numeric vector. - The new is_hms() deprecates the existing is.hms(). as.hms() is deprecated in favor of vec_cast() or the new as_hms() (which is just a thin wrapper around vec_cast()). Printing - Always show seconds in a pillar if they are different from zero (#54). - Values with nonzero hours, seconds and split-seconds are now displayed correctly in tibbles (#56), even with a very small distance to the full second (#64). Internal - Don't test colored output on CRAN. - Correct reference link on r4ds (#58, @evanhaldane). Changes in version 0.4.2 (2018-03-10) - Adapted tests to pillar 1.2.1. Changes in version 0.4.1 (2018-01-24) - Preserve NA when converting to character (#51, @jeroen). - Adapted tests to pillar 1.1.0. Changes in version 0.4.0 (2017-11-22) Breaking changes - as.hms.POSIXt() now defaults to the current time zone, the previous default was "UTC" and can be restored by calling pkgconfig::set_config("hms::default_tz", "UTC"). New features - Pillar support, will display hms columns in tibbles in color on terminals that support it (#43). - New round_hms() and trunc_hms() for rounding or truncating to a given multiple of seconds (#31). - New parse_hms() and parse_hm() to parse strings in "HH:MM:SS" and "HH:MM" formats (#30). - as.hms.POSIXt() gains tz argument, default "UTC" (#28). - as.hms.character() and parse_hms() accept fractional seconds (#33). Bug fixes - hms() now works correctly if all four components (days, hours, minutes, seconds) are passed (#49). - hms() creates a zero-length object of class hms that prints as "hms()". - hms(integer()) and as.hms(integer()) both work and are identical to hms(). - Values with durations of over 10000 hours are now printed correctly (#48). - c() now returns a hms (#41, @qgeissmann). Documentation and error messages - Fix and enhance examples in ?hms. - Documentation is in Markdown format now. - Improved error message if calling hms() with a character argument (#29). Changes in version 0.3 (2016-11-22) - Fix lubridate test for compatibility with 1.6.0 (#23, @vspinu). - NA values are formatted as NA (#22). Changes in version 0.2 (2016-06-17) Minor fixes and improvements. - Subsetting keeps hms class (#16). - format.hms() right-justifies the output by padding with spaces from the left, as.character.hms() remains unchanged. - Times larger than 24 hours or with split seconds are now formatted correctly (#12, #13). - Sub-second part is printed with up to six digits, for even smaller values trailing zeros are shown (#17). Changes in version 0.1 (2016-05-02) First CRAN release. - Values are stored as a numeric vector that contains the number of seconds since midnight. - Inherits from difftime class. - Updating units is a no-op, anything different from "secs" issues a warning. - Supports construction from time values, coercion to and from various data types, and formatting. - Conversion from numeric treats input as seconds. - Negative times are formatted with a leading -. - Can be used as a regular column in a data frame. - Full test coverage. - Test for arithmetic with Date, POSIXt and hms classes. - Test basic compatibility with lubridate package (#5). - Interface: - hms() (with rigorous argument checks) - as.hms() for character, numeric, POSIXct and POSIXlt - as.xxx.hms() for character, numeric (implicitly), POSIXct and POSIXlt - is.hms() - as.data.frame.hms() (forwards to as.data.frame.difftime()) - format.hms() - print.hms() (returns unchanged input invisibly)