unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: John Task <q01@disroot.org>
To: emacs-devel@gnu.org
Subject: Extending timeclock.el
Date: Fri, 05 May 2023 16:15:02 -0300	[thread overview]
Message-ID: <861qjubmzp.fsf@disroot.org> (raw)

Hello.  A little context, first; some days ago, I submitted a request
for including a package in the NonGNU ELPA repository.  The package in
question was a time tracker named ETT.  However, Eli pointed out that
instead of creating a new package I could, for instance, extend the
built-in timeclock.el instead.  To be honest, I didn't like the idea
at first, but looking at the code I quickly realized it wouldn't be
that hard.  At least, not as dramatically hard as I thought.

So I started this: https://gitlab.com/q01_code/timeclock-modern

[This wasn't my first name choice, but turns out timeclock-x is
already taken]

So far, I managed to write a series of parsers for the timelog format,
as well as a basic API for retrieving information from it.  This
should allow me to port all the relevant code from ETT without issues.
However, I'm not really familiarized with timeclock, so I can't assert
my design choices so far have been ideal.

+ The letter code at the start of every line was the most difficult
part.  ETT (and a lot of modern time trackers as well) don't
understand what clock-out means, as the idea is to clock everything;
the user just clocks-in different activities.  So, I dropped 'i' and
'o' for my custom tm-clock-in altogether.  As for the parser, it
understands 'o' as the start of a so-named 'Untracked' item/project.
That way it can read existent timelogs just fine.  This is hard
enough, but turns out there are also other codes ('h', 'b' and '0').
I interpret '0' as an 'o' and ignore the other ones, but I'm not sure
if this is correct.

+ As I make a lot of decisions such as the last one from ignorance,
I'm clueless about how well the parser (and the API) works for real
timelog files.  If anybody wants to test that, it would be
appreciated.

+ As the original timeclock-in doesn't support inputting tags (as well
as other features I need), I wrote a custom tm-clock-in.  But I'm not
sure if this is the right approach.  And redefining timeclock-in would
be even worse, for sure.

I'll eventually contact the original author as well, but I wanted to
know of any other opinions here first.

Best regards.



             reply	other threads:[~2023-05-05 19:15 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-05 19:15 John Task [this message]
2023-05-06  6:09 ` Extending timeclock.el Philip Kaludercic
2023-05-06  7:19 ` Eli Zaretskii
2023-05-06 18:35   ` John Wiegley
2023-05-06 18:48     ` Ihor Radchenko
2023-05-06 18:48       ` John Wiegley
2023-05-06 19:02         ` Ihor Radchenko
2023-05-06 19:00           ` John Wiegley
2023-05-06 19:09       ` Eli Zaretskii
2023-05-06 19:22         ` Ihor Radchenko
2023-05-06 19:23           ` John Wiegley
2023-05-06 22:10   ` Mike Kupfer
2023-05-09 16:44     ` Mike Kupfer
  -- strict thread matches above, loose matches on Subject: below --
2023-05-06 15:47 John Task
2023-05-06 16:53 ` Eli Zaretskii
2023-05-06 16:46 John Task
2023-05-06 18:35 John Task
2023-05-06 19:21 John Task

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=861qjubmzp.fsf@disroot.org \
    --to=q01@disroot.org \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).