Commit graph

3287 commits

Author SHA1 Message Date
Thomas Lauf
d925553116 Prevent the CLI to canonicalize the binary
Some checks failed
tests / tests (alpine-edge, Alpine Edge, ubuntu-latest) (push) Has been cancelled
tests / tests (alpine-latest, Alpine Latest, ubuntu-latest) (push) Has been cancelled
tests / tests (archlinux, Archlinux Base, ubuntu-latest) (push) Has been cancelled
tests / tests (centos-stream9, Centos Stream9, ubuntu-latest) (push) Has been cancelled
tests / tests (debianstable, Debian Stable, ubuntu-latest) (push) Has been cancelled
tests / tests (debiantesting, Debian Testing, ubuntu-latest) (push) Has been cancelled
tests / tests (fedora41, Fedora 41, ubuntu-latest) (push) Has been cancelled
tests / tests (fedora42, Fedora 42, ubuntu-latest) (push) Has been cancelled
tests / tests (opensuseleap, OpenSUSE Leap, ubuntu-latest) (push) Has been cancelled
tests / tests (opensusetumbleweed, OpenSUSE Tumbleweed, ubuntu-latest) (push) Has been cancelled
tests / tests (osx-13, macOS 13, macos-13) (push) Has been cancelled
tests / tests (osx-14, macOS 14, macos-14) (push) Has been cancelled
tests / tests (osx-15, macOS 15, macos-15) (push) Has been cancelled
tests / tests (ubuntu2204, Ubuntu 22.04, ubuntu-latest) (push) Has been cancelled
tests / tests (ubuntu2204, Ubuntu 24.04, ubuntu-latest) (push) Has been cancelled
For one, it is not necessary: the first argument on the command line is not used any
further when executing the command line. Also, if there is an extension that starts
with the same string as the binary, the binary gets also marked as an extension.
This in turn prohibits the detection of any other Timewarrior command such that e.g.
the command 'summary' in 'timew summary' is treated as an external report, which is
not present and thus makes the call fail.

Closes #677

Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2025-06-25 19:07:42 +02:00
dependabot[bot]
d43e962c6c Bump sigstore/cosign-installer from 3.8.2 to 3.9.1
Some checks failed
tests / tests (alpine-edge, Alpine Edge, ubuntu-latest) (push) Has been cancelled
tests / tests (alpine-latest, Alpine Latest, ubuntu-latest) (push) Has been cancelled
tests / tests (archlinux, Archlinux Base, ubuntu-latest) (push) Has been cancelled
tests / tests (centos-stream9, Centos Stream9, ubuntu-latest) (push) Has been cancelled
tests / tests (debianstable, Debian Stable, ubuntu-latest) (push) Has been cancelled
tests / tests (debiantesting, Debian Testing, ubuntu-latest) (push) Has been cancelled
tests / tests (fedora41, Fedora 41, ubuntu-latest) (push) Has been cancelled
tests / tests (fedora42, Fedora 42, ubuntu-latest) (push) Has been cancelled
tests / tests (opensuseleap, OpenSUSE Leap, ubuntu-latest) (push) Has been cancelled
tests / tests (opensusetumbleweed, OpenSUSE Tumbleweed, ubuntu-latest) (push) Has been cancelled
tests / tests (osx-13, macOS 13, macos-13) (push) Has been cancelled
tests / tests (osx-14, macOS 14, macos-14) (push) Has been cancelled
tests / tests (osx-15, macOS 15, macos-15) (push) Has been cancelled
tests / tests (ubuntu2204, Ubuntu 22.04, ubuntu-latest) (push) Has been cancelled
tests / tests (ubuntu2204, Ubuntu 24.04, ubuntu-latest) (push) Has been cancelled
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 3.8.2 to 3.9.1.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](https://github.com/sigstore/cosign-installer/compare/v3.8.2...v3.9.1)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-version: 3.9.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-24 18:16:18 +02:00
Thomas Lauf
ae06f0526a Update download link for package downloads
Some checks failed
tests / tests (alpine-edge, Alpine Edge, ubuntu-latest) (push) Has been cancelled
tests / tests (alpine-latest, Alpine Latest, ubuntu-latest) (push) Has been cancelled
tests / tests (archlinux, Archlinux Base, ubuntu-latest) (push) Has been cancelled
tests / tests (centos-stream9, Centos Stream9, ubuntu-latest) (push) Has been cancelled
tests / tests (debianstable, Debian Stable, ubuntu-latest) (push) Has been cancelled
tests / tests (debiantesting, Debian Testing, ubuntu-latest) (push) Has been cancelled
tests / tests (fedora41, Fedora 41, ubuntu-latest) (push) Has been cancelled
tests / tests (fedora42, Fedora 42, ubuntu-latest) (push) Has been cancelled
tests / tests (opensuseleap, OpenSUSE Leap, ubuntu-latest) (push) Has been cancelled
tests / tests (opensusetumbleweed, OpenSUSE Tumbleweed, ubuntu-latest) (push) Has been cancelled
tests / tests (osx-13, macOS 13, macos-13) (push) Has been cancelled
tests / tests (osx-14, macOS 14, macos-14) (push) Has been cancelled
tests / tests (osx-15, macOS 15, macos-15) (push) Has been cancelled
tests / tests (ubuntu2204, Ubuntu 22.04, ubuntu-latest) (push) Has been cancelled
tests / tests (ubuntu2204, Ubuntu 24.04, ubuntu-latest) (push) Has been cancelled
2025-06-09 22:21:53 +02:00
dependabot[bot]
1fd82ec137 Bump docker/build-push-action from 6.17.0 to 6.18.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.17.0 to 6.18.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6.17.0...v6.18.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-version: 6.18.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-04 22:14:28 +02:00
Thomas Lauf
1d3dd8f440 Make display of ids and annotations the default in summary report for new users
Initialize a new 'timewarrior.cfg' file with the respective settings

Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2025-06-01 23:39:53 +02:00
Thomas Lauf
191ad1ec8a Update test zoo docker images
* Add Fedora 42
* Remove Fedora 40
* Remove Ubuntu 20.04

Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2025-05-31 21:43:31 +02:00
Thomas Lauf
817023f75d Update libshared to 121f757c3ec1b1f548f7835208b8c72d85d141a7
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2025-05-30 23:55:42 +02:00
Thomas Lauf
9b91a7ac71
Upgrade test infrastructure (#670)
* Drop Ubuntu 20.04 test runner
* Add macOS 15 test runner

Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2025-05-30 23:42:48 +02:00
Thomas Lauf
331433c688 Update ChangeLog
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2025-05-30 22:51:01 +02:00
Thomas Lauf
09ed1d1e22 Align id filtering of export command
Align code structure of CmdChart, CmdExport, CmdReport, CmdSummary

Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2025-05-30 22:51:01 +02:00
Thomas Lauf
6c74f7aa3c Add id filtering to reports
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2025-05-30 22:51:01 +02:00
Thomas Lauf
9cc2844595 Add id filtering to charts
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2025-05-30 22:51:01 +02:00
dependabot[bot]
ad838354a1 Bump docker/build-push-action from 6.16.0 to 6.17.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.16.0 to 6.17.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6.16.0...v6.17.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-version: 6.17.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-21 08:15:39 +02:00
Karam Abu Judom
dafced21ef fix typo in URL in README.md 2025-05-05 20:41:28 +02:00
dependabot[bot]
7dc7f54d3c Bump docker/build-push-action from 6.15.0 to 6.16.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.15.0 to 6.16.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6.15.0...v6.16.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-version: 6.16.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-29 20:53:40 +02:00
dependabot[bot]
7158687398 Bump sigstore/cosign-installer from 3.8.1 to 3.8.2
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 3.8.1 to 3.8.2.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](https://github.com/sigstore/cosign-installer/compare/v3.8.1...v3.8.2)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-version: 3.8.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-29 20:45:20 +02:00
Thomas Lauf
f36ad01788 Fix man page section numbers and reference formatting
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2025-04-26 19:49:10 +02:00
Thomas Lauf
e092041a38 Enter commit hash for release 1.8.0
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2025-04-20 21:38:42 +02:00
Thomas Lauf
2257084710 Release 1.8.0
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2025-04-20 19:57:23 +02:00
Thomas Lauf
549cb7ba61 Update copyright
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2025-04-19 23:00:44 +02:00
Thomas Lauf
576af3fd5f Add the sub-command range to the modify command.
Additionally, this also makes the syntax of the `modify` command more flexible.
Before, the sub-command had to follow right after the `modify` command, now one can also write it with the id between command and sub-command:
```
$ timew modify @1 start 09:30
```
The `range` sub-command modifies both start and end time of the interval. It expects a range as parameter, e.g.
```
$ timew modify @3 range 08:15 - 13:37
```

Closes #627

Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2025-04-19 22:59:33 +02:00
Thomas Lauf
e5bd6f2be4 Update libshared to 2aa844cb9b015fca81b947c57fde07999ede002b
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2025-04-13 23:24:41 +02:00
Thomas Lauf
3f763c031c Update ChangeLog
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2025-04-09 18:26:24 +02:00
Thomas Lauf
861f091bbb
Fix installation of man pages from tarball
Install man pages from tar ball

The generated man pages are already present in the tar ball.
Simply install those then, even if Asciidoctor is not present.
Optimize CMake files.

Closes #620

Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2025-04-04 23:50:37 +02:00
dependabot[bot]
278f2b065c Bump docker/login-action from 3.3.0 to 3.4.0
Bumps [docker/login-action](https://github.com/docker/login-action) from 3.3.0 to 3.4.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v3.3.0...v3.4.0)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-23 18:27:59 +01:00
Thomas Lauf
f926f7a9ca Remove outdated TODO, align description with other themes 2025-03-08 18:11:31 +01:00
dependabot[bot]
da59408463 Bump docker/build-push-action from 6.14.0 to 6.15.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.14.0 to 6.15.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6.14.0...v6.15.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-05 20:00:26 +01:00
Thomas Lauf
b4a0985584 Make Docker image workflow run on any 'workflow_dispatch' events 2025-03-02 12:23:58 +01:00
dependabot[bot]
b86bfbf631 Bump sigstore/cosign-installer from 3.8.0 to 3.8.1
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 3.8.0 to 3.8.1.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](https://github.com/sigstore/cosign-installer/compare/v3.8.0...v3.8.1)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-25 07:44:06 +01:00
dependabot[bot]
4bc16a386a Bump docker/build-push-action from 6.13.0 to 6.14.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.13.0 to 6.14.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6.13.0...v6.14.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-25 07:43:43 +01:00
dependabot[bot]
63f5ea20dd Bump sigstore/cosign-installer from 3.7.0 to 3.8.0
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 3.7.0 to 3.8.0.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](https://github.com/sigstore/cosign-installer/compare/v3.7.0...v3.8.0)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-13 21:10:40 +01:00
Thomas Lauf
9dad495dee Update libshared to e19bf08450d5b054550c38eebe4980b8fc412d22 2025-02-05 23:38:28 +01:00
Thomas Lauf
11e5f941fd Update macOS test script
Do not install CMake, is already provided by GitHub runner
Upgrade PYTHON to 3.10.16
Print Asciidoctor version in info output
2025-02-05 23:29:30 +01:00
Thomas Lauf
e735c3a403 Set CMake minimum version to 3.10 2025-02-05 22:42:14 +01:00
Thomas Lauf
a406f447bb Update libshared to d98ff854cf370d3aafdeb8ee6d231ec15f026c90
- Add 24bit color support (#86)
2025-02-05 22:18:19 +01:00
dependabot[bot]
2845427ffe Bump docker/build-push-action from 6.10.0 to 6.13.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.10.0 to 6.13.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6.10.0...v6.13.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-02 22:34:40 +01:00
Thomas Lauf
77f66969c5 Update test zoo
- Remove 'version' from docker-compose.yml
- Add Asciidoctor version to informative output
- Fix Asciidoctor install on OpenSUSE Tumbleweed
- Add Ubuntu 24.04 to test zoo
- Drop Ubuntu 18.04 from test zoo
- Add Fedora 40 to test zoo
- Add Fedora 41 to test zoo
- Drop Fedora 37 from test zoo
- Drop Fedora 38 from test zoo

Closes #648
2025-02-02 22:05:50 +01:00
dependabot[bot]
c0b049f469 Bump docker/build-push-action from 6.9.0 to 6.10.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.9.0 to 6.10.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6.9.0...v6.10.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-07 23:11:34 +01:00
Thomas Lauf
89fd60fe8a Remove 'macOS 12' runner
GitHub is removing the `macOS 12` runner image by 2024-12-03
See https://github.com/actions/runner-images/issues/10721

Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2024-11-22 21:07:12 +01:00
Thomas Lauf
70aea4b9bc Re-enable Debian Testing image
Was disabled in 4c9a39a because 'fiu-utils' was not available

Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2024-11-22 21:07:12 +01:00
Thomas Lauf
eee650e889 Enable running tests from GitHub 2024-11-22 15:13:08 +01:00
Thomas Lauf
e5b05cbe1b Update libshared to 47a750c385133dd14a0957691fe21cbe46e80b10
- Add defines for the values that are allowed for epoch timestamps
- Fix wrong week number output when weekstart=0
- Add bold color with 256 color space
2024-11-07 13:44:13 +01:00
dependabot[bot]
d389bba72c Bump sigstore/cosign-installer from 3.6.0 to 3.7.0
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 3.6.0 to 3.7.0.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](https://github.com/sigstore/cosign-installer/compare/v3.6.0...v3.7.0)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-08 23:12:38 +02:00
dependabot[bot]
8abb3c3c8e Bump docker/build-push-action from 6.7.0 to 6.9.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.7.0 to 6.9.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6.7.0...v6.9.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-06 11:30:24 +02:00
Thomas Lauf
2d05922390 Update ChangeLog 2024-09-13 16:12:01 +02:00
Scott Mcdermott
05724a9d21 Make python tests use timezone, py3.12 deprecated tz-less utcnow()
Python upstream is trying to eliminate tz-naive date functions that
imply anything to do with a timezone, even UTC.  They have deprecated
datetime.datetime.utcnow() in Python 3.12 and thus running tests emits
many warnings for us.

We switch to instantiate datetime objects taht are intended to reflect
UTC to have a timezone, or if we instantiate naive ones and then later
convert, we do the full conversion.

After the changes, the tests still work on Python 3.9, but now also on
Python 3.12 without warnings.

See PR description for #632 for more details.

Signed-off-by: Scott Mcdermott <scott@smemsh.net>
2024-09-13 15:45:11 +02:00
Scott Mcdermott
05b72bba6f Use raw python strings for regex escapes in test summary
Python warns about "\d" and friends that aren't in raw quotes, so we add
the 'r'aw string-qualifier.

Signed-off-by: Scott Mcdermott <scott@smemsh.net>
2024-09-13 15:45:11 +02:00
Thomas Lauf
d502bf8ee4 Update ChangeLog
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2024-09-13 14:29:15 +02:00
Scott Mcdermott
b9fa8c10c2 Update libshared to a63fa350413f598b3b55355a6460b7fd2efb2e69
Brings in new dayOfWeek() code from GothenburgBitFactory/libshared#81

Signed-off-by: Scott Mcdermott <scott@smemsh.net>
2024-09-13 14:27:50 +02:00
Scott Mcdermott
251c5b332a Make week number parsing conform to ISO8601 when Datetime::weekstart == 1
This is a duplicate of the changes from commit with same subject line in
GothenburgBitFactory/libshared#81 and also duplicates the commit
message below.  Timewarrior has copies of many functions from
libshared's Datetime class in its own DatetimeParser class, and until
such time as these classes are integrated, we have to maintain copies of
these functions here, and the changes need to be duplicated.  See
discussion in aforementioned PR.

The one difference with the patch over there is, this one is using the
public Datetime::dayOfWeek() and Datetime::daysInYear() methods from
libshared, rather than its own implementation.  The copy in Timewarrior
already was doing this before, but it's worth noting it's the only
difference with the corresponding patch in libshared PR 81, and only
amounts to a change in the namespace qualifier.

Copied commit message from libshared follows.

                           *     *    *

This patch makes the parsing of week numbers in dates ISO-8601 compliant
in the case that Datetime::weekstart == 1, while the existing behavior
remains available if Datetime::weekstart == 0.

The previous code parsed week numbers (given as "yyyy-Www") into dates
starting on Sunday.  Although the code had a "Datetime::weekstart"
variable, and this value was initialized to 1 (which is Monday) in
libshared, nonetheless week specifications would be parsed into calendar
days starting on Sunday.

Furthermore, week days in such given weeks ('d' in "yyyy-Www-d") used 0-6
for Sunday-Monday, while ISO8601 specifies 1-7 Monday-Sunday.
Therefore, yyyy-Www-0 was treated as valid (and should not be), while
yyyy-Www-7 was invalid (and should be valid).

Note that neither Taskwarrior nor Timewarrior ever set the value of
Datetime::weekstart.  Taskwarrior has an rc.weekstart, but this is only
used for "task calendar" output, not for parsing dates.

The patch does the following:

- Initialize "Datetime" instances with a weekday value from
  Datetime::weekstart.  This helps the case when weekday is not
  supplied, it won't default to zero and fail validation (when
  weekstart is '1').  Note that mktime() is usually used in the code
  to convert populated "struct tm" broken-down times into epoch-times,
  and this operation does not use tm.tm_wday for input, only as an
  output field, recomputed as a normalized value, so it appears to be
  safe to initialize it with a 1 (which we might wonder about since
  .tm_wday is supposed to be 0-6 Sunday based).

- Use the already-existing Datetime::parse_weekday() to parse the
  'ww' in "yyyy-Www" input dates (the function was not used by any
  caller previously; guessing it may have been intended for eventual
  use in order to respect weekstart(?))

- Teach parse_weekday() about weekstart.  Previously this assumed
  1-7, which is the reason I'm guessing this was intended to be used
  for ISO weeks eventually.  Now it can also use 0-6 if weekstart 0.

- Teach Datetime::validate to respect Datetime::weekstart also.
  Previously only 0-6 Sunday-Monday was considered valid.

- Default the weekday to Datetime::weekstart if not supplied, ie for
  "yyyy-Www-X" if the "-X" is not supplied, as recognized when
  Datetime::standaloneDateEnabled = true, which is the case for (1)
  tests, (2) timewarrior, but NOT for taskwarrior at this time
  (both the standalone 'calc' and 'task calc' (ie Context.cpp) set
  this to false).

- Implement the complete ISO week calculation algorithm in
  Datetime::resolve() if weekstart is '1', and keeps the existing
  algorithm if weekstart is '0'.  This will allow Taskwarrior and
  Timewarrior to offer the option of the old behavior for those
  who want to use Sunday-based weeks and ignore ISO week calculations
  (such as 2023-01-01 being in ISO week 2022-W52).

Signed-off-by: Scott Mcdermott <scott@smemsh.net>
2024-09-13 14:27:50 +02:00