This is the 9th iteration on what’s coming up in imag, the personal information management suite for the commandline.
First of all, I want to thank and welcome kbknapp
who contributed a Makefile which enables to build the imag tools with just one
Thanks a lot for that!
I wasn’t able to do that much in the last 14 days, as my bachelors thesis wants some attention as well. But I was able to merge some nice PRs anyways, so here we go.
In the last 14 days I tried to open as many issues as possible, tagging them and therefor making them accessible by possible new contributors (as some of them are tagged with the complexity/easy tag).
Finally, the initial implementation of the diary module was merged! Yay! It already has some features I really like, but isn’t feature-complete yet and there might be bugs. But the initial codebase is merged and I’m really happy about that.
One can use imag now as a personal diary. I did not integrate some diary tool into imag by now, because I thought implementing it myself would be kind of fun. Of course, I would like to add other tools as backend but I don’t know of any (and I do not use any) I would find sufficient for integrating into imag.
More libraries and library-functionality!
Two awesome PRs were merged which added new functionality.
The first one is the “move” functionality for the store. It is not yet used by any other crate, but gives the possibility to save a copy of a store entry or move a store entry to a new location within the store. This functionality is not yet tested, but as we are pre-release anyways, this is not an issue in my opinion.
The other functionality is the
libimagentrymarkdown which adds
markdown-parsing functionality. There is just the initial codebase for this
crate added by now, but the library will make it possible to parse the contents
of a store entry to a web page and view it in the browser, for example.
The other merges
I merged some rather critical bug fixes, for example one were an entry wasn’t
edited correctly when calling
libimagrt) on it.
A code-cleanup PR for
libimagentrylink and some other fixes were merged as
So lets see what’s in the pipeline at the moment.
I’m working on a new crate called
libimagref which gives access to primitives
and functionality to reference files which do not live inside the store.
For example to reference some music files, the
libimagref can be used to
generate a reference in the store which tracks the file(path), optionally having
the possibility to check the metadata of a file by generating a hashsum over its
contents and/or permission settings.
Some tests for the tagging binary (
imag-tag) are work-in-progress.
For the next 14 days I hope to finish the
libimagref implementation as well as
getting some progress in the
libimagentryfilter/lang PR, which aims for a DSL
implementation in the entry filter crate, giving the user access to a filter
language to filter out entries on the commandline like so (diary example here):
imag diary list --filter 'e.size() > 5.kilobytes() && e.lines().first().empty()'
Of course, the upper example is not how it will look like, as I’m still not sure what DSL implementation I will use and how I will model the access to the entry data, but the idea will be the same.
Another thing I really want to test out is quickcheck. I guess this could be really useful to test imag library crates properly and I hope to get something up in the next 14 days in this regard.