Commit graph

10549 commits

Author SHA1 Message Date
Dustin J. Mitchell
2812a8c77a Refactor getDOM to use a pointer for the optional context
It's possible to call getDOM without a contextual task.  Previously,
this was done by referencing a "dummy" task which necessitated a way to
distinguish such dummy tasks.  This switches to using a pointer and
treating the NULL value as meaning there is no context.

Note that this cannot use `std::optional<&Task>`, as optional does not
support reference types.
2021-12-16 23:03:44 -05:00
Dustin J. Mitchell
3af5ceadc1 Return early from getDOM if there is no contextual task (refactor)
Before this change, all conditionals checked `have_ref`; returning early
is clearer.
2021-12-16 23:03:44 -05:00
Dustin J. Mitchell
0d9e402d3e Add Task.is_empty, needed to identify "dummy" tasks (simple refactor)
getDOM takes an &Task that may be a reference to a dummy, or may be a
real task.  The is_empty method replaces `task.data.size() == 0` as a
way to distinguish the two.
2021-12-16 23:03:44 -05:00
Dustin J. Mitchell
dede40bc4e Replace direct Task.data access with a temp getter (syntactic refactor)
Now this getter, `data_removeme`, can easily be grepped out and
replaced, one usage at a time in small PRs.
2021-12-16 23:03:44 -05:00
Tomas Babej
3a00956144 ColDepends: Allow specifying short(er) UUIDs 2021-12-03 03:57:37 -05:00
Siôn le Roux
01add8a34a docs: Fix typo in XDG news
This had XFG written in it, it's surely a typo of XDG since on the next
line it's written correctly.
2021-11-23 21:05:01 +01:00
Tomas Babej
a09712d5d2 docs: Document #2655 2021-11-22 15:51:27 +01:00
Tomas Babej
8074e509ba tests: Add bulk removal test for tags attribute 2021-11-22 15:51:27 +01:00
Tomas Babej
af10774aec tests: Add bulk removal test for depends attribute 2021-11-22 15:51:27 +01:00
Tomas Babej
d54c7e090e Task: Correctly handle bulk removal of virtual tags/depends attributes
This edge case would happen if a user issued a following command

    $ task 1 mod depends:
or

    $ task 1 mod tags:

which would not perform as expected for tasks with non-empty depends /
tags attributes.

The problem under the hood is the fact that current synchronization
between 'tags" attribute and its constituent decomposed `tag_X`
attributes is performed in a way where the set of tags obtained from
`tag_X` attributes is taken as the source of truth.

If the legacy 'tags:' attribute was set to empty, the fixTags() method
would then restore its previous value from the `tag_X` attributes,
effectively leading to a no-op.

The same happens with dependencies. The fix here is to detect removal of
depends and tags attributes, and instead of setting the legacy
attributes to empty values, we iteratively remove all tags/dependencies.

Closes #2655.
2021-11-22 15:51:27 +01:00
Dustin J. Mitchell
3937f1efb0 Don't look for a specific sha when testing task version
This allows tests to pass even with a dirty working copy or when running
tests via `git rebase`.
2021-11-21 23:34:46 +01:00
Tomas Babej
3e8190831c docs: Document #502 2021-11-20 15:19:34 -05:00
Tomas Babej
3c2b74a36f tests: Remove expected failure for ID-range based dependencies 2021-11-20 15:19:34 -05:00
Tomas Babej
0558b6c7aa ColDepends: Recognize and properly handle ID ranges 2021-11-20 15:19:34 -05:00
Tomas Babej
774f6df210 docs: Document #2671 2021-11-09 08:00:05 -05:00
Tomas Babej
1e1c0e8f04 libshared: Bump to include fix for soww
See https://github.com/GothenburgBitFactory/libshared/pull/66 for
reference. Closes #2671.
2021-11-09 07:57:37 -05:00
Tomas Babej
caf0f9db3e
tests: Clarify we're testing OpenSUSE 15.x rolling 2021-11-06 13:08:51 -04:00
Tomas Babej
da43078eba
tests: Add Ubuntu 21.10 into the test matrix 2021-11-06 12:59:16 -04:00
Tomas Babej
6fae705b43
tests: Add Ubuntu 20.10 into the test matrix 2021-11-06 12:57:26 -04:00
Tomas Babej
e4f1e05c1d
tests: Add Fedora 35 into the test matrix 2021-11-06 12:54:46 -04:00
Tomas Babej
4559287d07
tests: Remove tests on F31
This distribution release is more than a year out of its support window.
2021-11-06 12:52:24 -04:00
Tomas Babej
2d4776586d
README: Remove inacurrate badge
The commit count has been inacurrate for some time, undercounting
(perhaps due to aggreessive caching), but also overcounting at times
(due to merges).
2021-11-06 12:39:22 -04:00
Tomas Babej
ed4b932530
tests: Add test to cover invalid contexts due to tag exclusion 2021-11-06 11:58:47 -04:00
Tomas Babej
f0f704fc99
tests: Fix copy-paste error
The context name in these two tests was invalid in some assertions.
2021-11-06 11:58:46 -04:00
Tomas Babej
403c44b1fa
docs: Document #2664 2021-11-06 11:58:45 -04:00
Tomas Babej
493f36ecdd
CmdContext: Utilize new reason-providing validateWriteContext 2021-11-06 11:53:45 -04:00
Tomas Babej
5d8f8dac35
validateWriteContext: Refactor to return the underlying reason for invalidity directly 2021-11-06 11:53:44 -04:00
Tomas Babej
f5dce013ce
CmdContext: Expand the definition of an invalid write context to incllude tag exclusion 2021-11-06 11:53:44 -04:00
Tomas Babej
531881f651
validateWriteContext: Tag exclusion should also be detected as invalid write context 2021-11-06 11:53:43 -04:00
Tomas Babej
7de681aa3b
validateWriteContext: Apply early break when detected the OR operator 2021-11-06 11:53:42 -04:00
Jakub Wilk
04ef785eea Fix typo 2021-11-06 11:50:02 -04:00
Tomas Babej
e1cfb91d42
docs: Document #2648 2021-11-06 11:28:05 -04:00
Tomas Babej
72930708ec
CmdNews: Support Mac OS-X url opener 2021-11-04 22:07:39 -04:00
Tomas Babej
58763fd49f
reproduce: Make vim available in the reproduction image 2021-10-30 06:12:48 -04:00
Steven Kreuzer
a89c875c49 Fix typo in ChangeLog
Change 'precendence' to 'precedence'
2021-10-22 18:54:32 -04:00
Tomas Babej
e0f598f91c
Changelog: Document 2.6.1 release commit hash 2021-10-19 00:30:53 -04:00
Tomas Babej
a696b6b155
cmake: Bump project version to 2.6.1 2021-10-19 00:23:40 -04:00
Tomas Babej
d8770133f0
docs: Update dev branch references in README 2021-10-19 00:23:16 -04:00
Tomas Babej
5c32372d42
docs: Update DEVELOPER.md 2021-10-19 00:20:07 -04:00
Tomas Babej
4d7c7531d0
docs: Document #2632 2021-10-18 23:56:38 -04:00
Tomas Babej
c99dab0dae
meta: Ensure Cygwin compatibility 2021-10-18 23:53:26 -04:00
Tomas Babej
3dee86c997
docs: Document #2639 2021-10-18 23:48:37 -04:00
Tomas Babej
df75d1ce43
test: Add tests for parsing ID ranges of various sizes 2021-10-18 23:46:45 -04:00
Tomas Babej
2469943c98
meta: Bump libshared
This bumps libshared version to the one not suffering from
misidentification of certain ID ranges.

Closes #2639.
2021-10-18 23:15:03 -04:00
Tomas Babej
072b38d326
CmdCustom: Increase probability of displaying upgrade message
We have received reports from people that have upgraded, but seemingly
have not seen release notes in the `task news` command. One of the
causes here could be the fact that the probability of displaying the
footnote about running `task news` is `1/10`.

Increase the probability to 1/4.
2021-10-18 21:32:53 -04:00
Tomas Babej
dc81bf5fb5 CmdNews: Adjust for brevity 2021-10-18 21:31:41 -04:00
Tomas Babej
8e7401d2f4 docs: Document #2626 2021-10-16 11:28:36 -04:00
Tomas Babej
6a79e614da tests: Expand test for waiting report
Add tasks to test exclusion of completed and deleted tasks.
2021-10-16 11:11:45 -04:00
Tomas Babej
4287b33796 Task: Only consider pending tasks as waiting 2021-10-16 11:11:15 -04:00
Tomas Babej
3b37dc2480 tests: Adjust test description 2021-10-16 11:02:38 -04:00