Commit graph

65 commits

Author SHA1 Message Date
c164be29d3
ref: Rename taskrc parsing function to parse_rc 2025-11-26 23:18:47 +01:00
b20d56a007
ref: Load all options from single dictionary source 2025-11-26 23:18:47 +01:00
fccfb85026
ref: Rename configparser to cfg 2025-11-26 23:18:46 +01:00
a088fcbe76
feat: Inform user if no file was written
Some checks failed
website / build (push) Has been cancelled
website / deploy (push) Has been cancelled
When the user exits the note-writing editor process without having
written any file, we also don't attach an annotation to the
corresponding task since it would lead nowhere.

This small change makes this condition obvious to the user, by informing
them that the program is 'doing nothing' when they exit the editor
without having saved a file.
2025-11-11 20:15:41 +01:00
5724c8888d
doc: Improve introduction reading flow
Some checks failed
website / build (push) Has been cancelled
website / deploy (push) Has been cancelled
2025-09-15 10:56:29 +02:00
09d996eb15
doc: Change suggestion for trying script to versioned release
To try the script we should suggest the stable versioned release not the
main trunk.
2025-09-15 10:56:29 +02:00
1652e01885
doc: Add better cli option metavar annotations 2025-09-15 10:56:28 +02:00
5e6ab6854f
ref: Use recommended subprocess method to edit 2025-09-15 10:56:28 +02:00
7dbd93796d
ref: Remove property setters from dataclass
Some checks failed
website / deploy (push) Has been cancelled
website / build (push) Has been cancelled
Removed the property setters and getters from variables with complex
defaults. Instead, they are now given a specific const default value
`Path("%%%%I_DONT_EXIST_%%%%")` which is very unlikely to be used by a user
in normal circumstances.

This is necessary to be able to remove the properties since Python does
not distinguish between an empty Path() and a non-given Path() (i.e.
there is no Path value which returns Falsy).

However, this slightly clunky construct does allow setting the various
Paths once and only once, and also to remove all the previously
necessary getters and setters with their hidden backing variables.

Lastly it should open the gates for changing the _real_path
transformation to be part of the TConf class itself and not a global
function.
2025-04-22 22:09:58 +02:00
b0a71e804d
fix: Ensure uv lock file points to correct version 2025-04-22 22:09:58 +02:00
4ecf3627d3
ref: Require github release to publish to pypi
Some checks failed
website / build (push) Has been cancelled
website / deploy (push) Has been cancelled
2025-04-10 09:33:19 +02:00
f546076259
chore: Only publish to test pypi on tagged releases
Some checks are pending
website / build (push) Waiting to run
website / deploy (push) Blocked by required conditions
2025-04-09 12:57:51 +02:00
2b37f24790
feat: Automatically publish full github releases 2025-04-09 12:53:54 +02:00
7673770dbd
fix: Attach distribution files to github release 2025-04-09 12:53:53 +02:00
fb88316bc4
feat: Bump version 2025-04-09 12:12:18 +02:00
f20dd14c6f
chore: Rename release workflow 2025-04-09 12:00:14 +02:00
f9e4b05432
chore: Only run release on main branch and version tag pushes 2025-04-09 11:46:05 +02:00
a263e3ddb0
fix: Require build job before releasing 2025-04-09 11:46:04 +02:00
6eb48bd180
chore: Ignore duplicate markdown headings on different levels
Some checks failed
website / build (push) Waiting to run
website / deploy (push) Blocked by required conditions
Publish python package to pypi and testpypi / Build distribution (push) Has been cancelled
Publish python package to pypi and testpypi / Test publishing to testpypi (push) Has been cancelled
Publish python package to pypi and testpypi / Publish dist to pypi (push) Has been cancelled
Publish python package to pypi and testpypi / Create github release (push) Has been cancelled
Necessary for CHANGELOG to pass since every change contains something
like 'Added', 'Fixed', 'Changed' as headings.

Will still error if there are e.g. multiple 'Added' headings for a
single version.
2025-04-09 11:37:53 +02:00
11d35429c7
doc: Add initial version to CHANGELOG 2025-04-09 11:37:52 +02:00
bfec4f77f3
feat: Add github release automation 2025-04-09 11:37:52 +02:00
771993f999
feat: Add pypi auto publishing
Some checks are pending
website / build (push) Waiting to run
website / deploy (push) Blocked by required conditions
Publish python package to pypi and testpypi / Build distribution (push) Waiting to run
Publish python package to pypi and testpypi / Publish dist to pypi (push) Blocked by required conditions
Publish python package to pypi and testpypi / Test publishing to testpypi (push) Blocked by required conditions
2025-04-09 10:52:14 +02:00
2fb0608a87
doc: Add README badges 2025-04-09 10:47:25 +02:00
2f29054429
doc: Remove leftover footnote 2025-04-09 10:47:24 +02:00
5e7d997e69
doc: Start CHANGELOG
Some checks are pending
website / build (push) Waiting to run
website / deploy (push) Blocked by required conditions
2025-04-08 21:00:28 +02:00
e3db83df46
doc: Update README 2025-04-08 21:00:28 +02:00
ee4f3781f8
feat: Use xdg location or home dir taskrc if it exists
The preference structure goes highest to lowest:

1. ~/.taskrc
2. $XDG_CONFIG_HOME/task/taskrc
3. ~/.config/task/taskrc

Uses first file found.
2025-04-08 21:00:27 +02:00
5976651a26
feat: Create note parent directories if necessary 2025-04-08 21:00:26 +02:00
4642b24c6b
ref: Parse conf file with dict comprehension and named tuple 2025-04-08 21:00:26 +02:00
9d5fa3e244
feat: Only annotate tasks if note file was created
In the case of opening the notes but then backing out again without
actually writing a notes file we should also not annotate the task with
anything, since it technically still does not have a note.
2025-04-08 21:00:25 +02:00
caec33120c
feat: Locate notes dir in task data dir by default 2025-04-08 21:00:25 +02:00
46d57042cd
ref: Turn TConf from dict into class factory method
Code from here:

https://stackoverflow.com/questions/56849331/what-is-the-proper-way-in-python-to-define-a-dataclass-that-has-both-an-auto-gen
2025-04-08 21:00:24 +02:00
4ad9f4c981
ref: Move default opt handling into TConf object 2025-04-08 21:00:24 +02:00
f3930ae4c7
doc: Add configuration description 2025-04-08 21:00:23 +02:00
4227465bfb
fix: Use tw default dirs 2025-04-08 21:00:23 +02:00
f4381da420
doc: Auto deploy to github pages
Some checks failed
website / deploy (push) Has been cancelled
website / build (push) Has been cancelled
2025-04-07 10:51:20 +02:00
ee6667844e
doc: Add pdoc documentation generator 2025-04-07 10:49:16 +02:00
0277f15ca2
doc: Add docstring documentation 2025-04-07 10:49:16 +02:00
0f10789e9c
chore: Change conf options to dot-notation 2025-04-07 10:49:15 +02:00
6e1761e690
chore: Fit env var names to conf option names 2025-04-07 10:49:14 +02:00
8c3ecfa431
chore: Restructure script 2025-04-07 10:49:14 +02:00
cf7e9dd5fe
ref: Ensure paths are Path objects 2025-04-07 10:49:13 +02:00
0e167cf08a
ref: Turn dict into conf obj 2025-04-07 10:49:13 +02:00
c6f05d0b64
feat: Specify taskrc as cli option
In addition to task-data we also allow specifying the taskrc file on the
command line.
2025-04-07 10:49:12 +02:00
3fded7315c
fix: Parse EDITOR and VISUAL env vars with lower precedence
Since the precedence now goes (from lowest to highest):

defaults -> conf_file -> env -> cli

existing EDITOR or VISUAL variables would overwrite those
explicitly set in the conf file. While we do want the general
precedence of env over conf file, this is a special case where
we get the value of the _DEFAULT_ variable from the env, and
only then start parsing our own options. So now, for these vars
we do:

default -> env (EDITOR/VISUAL) -> conf_file -> env (TOPEN_EDITOR) -> cli
2025-04-07 10:49:12 +02:00
96422d254b
fix: Reintegrate env var parsing
Was removed from parsing when conf parsing was added, now re-added into
configuration parsing.
2025-04-07 10:49:11 +02:00
f1f3041928
feat: Add taskrc parsing
We first parse the taskrc file now, before overwriting those options
with ones given on the command line.
2025-04-07 10:49:11 +02:00
1ec3755344
chore: Simplify funcs by removing default args
In preparation for reading the config also from a taskrc file I want to
simplify the configuration management beforehand. There should be one
place where we grab it from the environment, one place to grab from CLI
and then one place from conf file. This helps with simplifying a little
by not again injecting defaults at the mid-point.

Ultimately, we should create one 'config' data structure, probably dict
or NameSpace which we pass around and each function receives it.
2025-04-07 10:49:07 +02:00
76bf3a5bc2
chore: Add license 2025-04-01 14:24:20 +02:00
790b5b4bad
doc: Update pyproject and cli descriptions
Reflects forge project description.
2025-04-01 14:24:20 +02:00