Commit graph

114 commits

Author SHA1 Message Date
50f2b2a1bf tags is now a directory with a file per tag
This is more conflict resistant than the old encoding where tags was a
file with a line per tag.
2025-07-24 12:14:30 -06:00
fad23ba233 test dir cleanup: rename test/0002/dd79c8cfb8beeacd0460429944b4ecbe
Renaming everything also means they have new creation-times, since we're
now git logging a different file/dir.
2025-07-24 10:20:03 -06:00
b3903a9ed2 test dir cleanup: rename test/0002/a85f81fc5f14cb5d4851dd445dc9744c
Renaming everything also means they have new creation-times, since we're
now git logging a different file/dir.
2025-07-24 10:19:58 -06:00
b3f5aaeb76 test dir cleanup: rename test/0002/3fa5bfd93317ad25772680071d5ac325
Renaming everything also means they have new creation-times, since we're
now git logging a different file/dir.
2025-07-24 10:19:55 -06:00
598f4e5df8 test dir cleanup: rename test/0001/dd79c8cfb8beeacd0460429944b4ecbe comment
Renaming everything also means they have new creation-times, since we're
now git logging a different file/dir.
2025-07-24 10:19:50 -06:00
05c7c6f441 test dir cleanup: rename test/0001/dd79c8cfb8beeacd0460429944b4ecbe
Renaming everything also means they have new creation-times, since we're
now git logging a different file/dir.

fixup test/0001/dd79c8cfb8beeacd0460429944b4ecbe, no comment yet
2025-07-24 10:19:45 -06:00
694d127638 test dir cleanup: rename test/0001/3fa5bfd93317ad25772680071d5ac325
Renaming everything also means they have new creation-times, since we're
now git logging a different file/dir.
2025-07-24 10:19:40 -06:00
4683760942 test dir cleanup: rename test/0000/7792b063eef6d33e7da5dc1856750c14
Renaming everything also means they have new creation-times, since we're
now git logging a different file/dir.
2025-07-24 10:19:33 -06:00
ef8a648cf8 test dir cleanup: rename test/0000/3943fc5c173fdf41c0a22251593cd476
Renaming everything also means they have new creation-times, since we're
now git logging a different file/dir.
2025-07-24 10:19:22 -06:00
7abcf2e446 sort issue tags
This will be useful testing (and general consistency) when tags are
files in a directory instead of lines in a file, and thus subject to
random directory order.
2025-07-23 18:48:04 -06:00
e1287514f6 switch to pretty_assertions, makes it much easier to tell what blew up 2025-07-23 18:02:54 -06:00
eb7ac21ac8 half as many git log calls when reading a comment 2025-07-22 13:13:59 -06:00
c15736259c add git::git_log_oldest_author_timestamp(), saves us one git log
This cuts about 30% off the time to read the issues from
entomologist-data.
2025-07-22 13:04:54 -06:00
def729d43a ent done-time: speed up setting of done-time 2025-07-22 10:41:25 -06:00
e2a7c81a13 ent assign: speed up setting of assignee 2025-07-22 10:41:25 -06:00
cc1b378346 ent tag: speed up adding/removing tag 2025-07-22 10:41:25 -06:00
f60dd18c0a sort dependencies alphabetically after reading them
This is mostly to make the tests reliable.

Without this the dependencies are inserted into the vector in directory
order, which in my checkout of the repo did not match the alphabetical
order of the dependencies in the test.
2025-07-20 22:27:48 -06:00
44a6ac5110 Merge pull request 'ent done-time ISSUE TIME: report parse error instead of panicking' (#28) from fix-done-time-parsing into main
Reviewed-on: #28
2025-07-20 12:39:58 -06:00
2d8d0db4cb Merge pull request 'include tags in ent show' (#29) from ent-show-tags into main
Reviewed-on: #29
2025-07-20 12:38:02 -06:00
seb
24a99d2957 Merge pull request 'Add Dependency Management' (#25) from 03/dependencies-api into main
Reviewed-on: #25
2025-07-20 12:21:56 -06:00
c9dbec730c ent show: show tags, if any 2025-07-20 00:04:11 -06:00
0d9a893087 ent show: simplify logic
This simplifies the code flow and gets rid of two levels of indentation.
2025-07-20 00:03:18 -06:00
8af9c71ef6 ent done-time ISSUE TIME: report parse error instead of panicking 2025-07-19 21:10:14 -06:00
e79fc4917d Issues::new_from_dir(): move error message to stderr 2025-07-19 10:52:33 -06:00
c217434071 better error handling in comment and git
This replaces a bunch of `unwrap()` calls with error returns.
2025-07-19 10:38:15 -06:00
97a575316e Issues: skip & warn about any Issue that fails to parse
This lets us at least handle the other, valid issues, while informing
the user about the ones we don't understand.
2025-07-19 09:55:32 -06:00
2ba13ebaeb Issue: get rid of all unwraps
Make and return errors instead.
2025-07-19 09:55:32 -06:00
8319a4f118 add dependency API / fix dependency representation / dependency
management via CLI
2025-07-18 16:20:17 -06:00
seb
04b33eb70f Merge pull request 'completed Issues now know when they were marked Done' (#24) from done-time into main
Reviewed-on: #24
2025-07-18 10:21:42 -06:00
3e0ab7092e update CLI to print the issue ID when a new issue is created 2025-07-17 12:00:26 -06:00
a3077ca313 ent list FILTER: add filter "done-time=[START]..[END]" 2025-07-16 21:59:17 -06:00
bc2b1bd3c1 add API and CLI to get & set done-time of an issue 2025-07-16 21:51:27 -06:00
3b33ed41f5 Issue: add done_time field
This records the DateTime that the issue moved to the Done state (if any).
2025-07-16 21:50:44 -06:00
3df76b89df rename Issue and Comment timestamp to creation_time
This is to make room for a second timestamp that records when the issue
was marked Done.
2025-07-16 21:50:44 -06:00
20c17f281b ent list FILTER: the filter now takes multiple strings
This is instead of a single big string with chunks separated by ":".

":" is used in RFC 3339 date-time strings (like "2025-07-16 21:23:44
-06:00"), so it's inconvenient to reserve ":" to be the chunk separator.

I'm not super wedded to this new Vec<String> way of doing the filter,
but it seems fine and convenient for now.
2025-07-16 21:50:44 -06:00
5e5508a2ee Issue: make a helper function to commit an Issue
This improves code reuse and streamlines the code a bit.
2025-07-16 21:50:42 -06:00
733100fefb add the ID field back into the Issue struct 2025-07-15 10:53:52 -06:00
61df7ede8f add better error handling 2025-07-13 14:21:28 -06:00
d2df1bc1e8 move entomologist database to new library file
fixes: d3a705245bd69aa56524b80b5ae0bc26
2025-07-13 14:06:04 -06:00
490f946ef6 don't open an editor is stdin or stdout is not a terminal 2025-07-13 10:38:52 -06:00
seb
3932baff3b Merge pull request 'make a reasonable readme' (#19) from readme into main
Reviewed-on: #19
2025-07-12 16:12:31 -06:00
3721483c2d git::sync(): more helpful error message when merge fails 2025-07-12 14:54:48 -06:00
9d4409c008 ent list: add filtering based on tags 2025-07-12 14:24:40 -06:00
28db7669f4 ent: better ent list --help 2025-07-12 14:24:20 -06:00
88025c5dae add `ent tag ISSUE [[-]TAG] 2025-07-12 12:28:59 -06:00
2f1636db55 add Issue::add_tag() and Issue::remove_tag() 2025-07-12 12:28:59 -06:00
4307fc8941 ent list: show tags 2025-07-12 12:28:59 -06:00
b02807eaca Issue: add tags field 2025-07-12 12:28:53 -06:00
665f02cbe8 when changing state, include old state in git log message
Before this commit:
    change state of issue f3990ac13cd93a925f2a66e6a72eb0f2 to backlog

After this commit:
    change state of issue 406e2330695040fed5fdbcaae5d2b331, new -> inprogress
2025-07-12 10:02:51 -06:00
65316da0bd teach ent edit to edit Comments as well as Issues 2025-07-11 20:30:50 -06:00