Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixes to parsing and calculation of week numbers #966

Merged
merged 3 commits into from Mar 4, 2023

Conversation

esheppa
Copy link
Collaborator

@esheppa esheppa commented Feb 14, 2023

Continuation of #921

also fixes a bug reported here: #961

@esheppa esheppa changed the base branch from main to 0.4.x February 14, 2023 11:45
@djc
Copy link
Contributor

djc commented Feb 14, 2023

@esheppa thanks for continuing the old PR here! IMO it would be nice to clean up the commit history such that every commit passes tests (squash a bunch of the fixes into the original fixing commit, squash formatting fixes and cfg updates into the first commit), and then this should be good to merge.

One question: should we add a pub(crate) method to NaiveDate for weeks_from(Weekday) so that we have one implementation instead of multiple? (If so, that could/should probably be a separate commit.)

@djc djc mentioned this pull request Feb 16, 2023
raphaelroosz and others added 2 commits February 16, 2023 10:20
* math is 0 based while ordinal is 1 based => fix as 1 based logic
* add extensive testing against the "date" command format
* format: test sample instead of every day
* 2007 starts with saturday
* Last day of the year is thus the 52 on Monday weekly calendar, 53 on Sunday weekly calendar.
* update %U expected value in test
* Was the goal was to have a different value than with %W at next line ? another date to pick ?
* update cfg("unix") into cfg(target_os = "linux")
* format tests/dateutils.rs
@esheppa
Copy link
Collaborator Author

esheppa commented Feb 16, 2023

One question: should we add a pub(crate) method to NaiveDate for weeks_from(Weekday) so that we have one implementation instead of multiple? (If so, that could/should probably be a separate commit.)

This is a great idea, I've added in eb75271 but I'd like to add some more tests and squash them into that commit prior to this being merged

@djc
Copy link
Contributor

djc commented Feb 16, 2023

Looks great!

@djc
Copy link
Contributor

djc commented Mar 3, 2023

@esheppa are you able to continue on this or should I take over?

@esheppa
Copy link
Collaborator Author

esheppa commented Mar 3, 2023

Will get those tests added now

@djc
Copy link
Contributor

djc commented Mar 3, 2023

Cool, thanks!

@esheppa esheppa force-pushed the patch-week-number-parsing-2 branch from eb75271 to 793a02b Compare March 3, 2023 12:00
tests for weeks_from and num_days_from

fix array iter MSRV issue
@esheppa esheppa force-pushed the patch-week-number-parsing-2 branch from 793a02b to 151f960 Compare March 4, 2023 03:05
@djc djc merged commit cf2a2f9 into 0.4.x Mar 4, 2023
@djc djc deleted the patch-week-number-parsing-2 branch March 4, 2023 11:18
crapStone pushed a commit to Calciumdibromid/CaBr2 that referenced this pull request Mar 15, 2023
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [chrono](https://github.com/chronotope/chrono) | dependencies | patch | `0.4.23` -> `0.4.24` |

---

### Release Notes

<details>
<summary>chronotope/chrono</summary>

### [`v0.4.24`](https://github.com/chronotope/chrono/releases/tag/v0.4.24): 0.4.24

[Compare Source](chronotope/chrono@v0.4.23...v0.4.24)

This is a small maintenance release with accumulated fixes and improvements.

-   Fix doc on `Days::new()` to refer to days, not months ([#&#8203;874](chronotope/chrono#874), thanks to [@&#8203;brotskydotcom](https://github.com/brotskydotcom))
-   Clarify out of range value for `from_timestamp_opt()` ([#&#8203;879](chronotope/chrono#879), thanks to [@&#8203;xmo-odoo](https://github.com/xmo-odoo))
-   Add `format_localized()` for `NaiveDate` ([#&#8203;881](chronotope/chrono#881), thanks to [@&#8203;mseele](https://github.com/mseele))
-   Fix bug in `Add`/`Sub` `Days`, add tests with DST timezone ([#&#8203;878](chronotope/chrono#878))
-   Make `NaiveTime::MIN` public ([#&#8203;890](chronotope/chrono#890))
-   Fix `from_timestamp_millis()` implementation and add more tests ([#&#8203;885](chronotope/chrono#885))
-   Fix typo in docstrings ([#&#8203;897](chronotope/chrono#897), thanks to [@&#8203;dandxy89](https://github.com/dandxy89))
-   Add test proving that [#&#8203;903](chronotope/chrono#903) is fixed in 0.4.x head ([#&#8203;905](chronotope/chrono#905), thanks to [@&#8203;umanwizard](https://github.com/umanwizard))
-   Add `from_timestamp_micros()` function ([#&#8203;906](chronotope/chrono#906), thanks to [@&#8203;umanwizard](https://github.com/umanwizard))
-   Check cargo-deny in CI ([#&#8203;909](chronotope/chrono#909))
-   Derive `Hash` for most pub types that also derive `PartialEq` ([#&#8203;938](chronotope/chrono#938), thanks to [@&#8203;bruceg](https://github.com/bruceg))
-   Update deprecated methods in `from_utc()` example ([#&#8203;939](chronotope/chrono#939), thanks to [@&#8203;greg-el](https://github.com/greg-el))
-   Fix panic in `DateTime::checked_add_days()` ([#&#8203;942](chronotope/chrono#942), thanks to [@&#8203;Ekleog](https://github.com/Ekleog))
-   More documentation for dates before 1 BCE or after 9999 CE ([#&#8203;950](chronotope/chrono#950), thanks to [@&#8203;cgit](https://github.com/cgit))
-   Improve `FixedOffset` docs ([#&#8203;953](chronotope/chrono#953), thanks to [@&#8203;klnusbaum](https://github.com/klnusbaum))
-   Add chrono-fuzz to CI and update its libfuzzer-sys dependency ([#&#8203;968](chronotope/chrono#968), thanks to [@&#8203;LingMan](https://github.com/LingMan))
-   Fixes to parsing and calculation of week numbers ([#&#8203;966](chronotope/chrono#966), thanks to [@&#8203;raphaelroosz](https://github.com/raphaelroosz))
-   Make iana-time-zone a target specific dependency ([#&#8203;980](chronotope/chrono#980), thanks to [@&#8203;krtab](https://github.com/krtab))
-   Make eligible functions `const` ([#&#8203;984](chronotope/chrono#984), thanks to [@&#8203;tormeh](https://github.com/tormeh))

Thanks to all contributors from the chrono team, [@&#8203;esheppa](https://github.com/esheppa) and [@&#8203;djc](https://github.com/djc).

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS42LjAiLCJ1cGRhdGVkSW5WZXIiOiIzNS42LjAifQ==-->

Co-authored-by: cabr2-bot <cabr2.help@gmail.com>
Reviewed-on: https://codeberg.org/Calciumdibromid/CaBr2/pulls/1815
Reviewed-by: crapStone <crapstone@noreply.codeberg.org>
Co-authored-by: Calciumdibromid Bot <cabr2_bot@noreply.codeberg.org>
Co-committed-by: Calciumdibromid Bot <cabr2_bot@noreply.codeberg.org>
lopopolo added a commit to artichoke/strftime-ruby that referenced this pull request Apr 2, 2023
These tests currently fail. These tests were pulled from the following PR in
chrono:

- chronotope/chrono#966

They were validated with MRI v3.1.2. The third test case differs between
chrono and MRI.
lopopolo added a commit to artichoke/strftime-ruby that referenced this pull request Apr 2, 2023
These tests were pulled from the following PR in chrono:

- chronotope/chrono#966

Add a single test with these boundary condition dates. The dates were
validated with MRI Ruby v3.1.2. The third test case differs between
chrono and MRI, but since we target MRI, use it as the source of truth.

No logic was changed as part of this commit, only additional tests were
added.

Co-authored-by: x-hgg-x <39058530+x-hgg-x@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants