What's coming up in imag (11)
We cracked the 70-stars mark on github! Wow. We reached the 2,000-commits-mark. Wow. We also reached the 500 PR/Issue mark. Another wow.
But there happened a lot more things in the last 14 days in imag, the personal information management suite for the commandline. Read it up here.
The past
Wow. 14 days can be so damn short. We got a few things done in the last 14 days, but first, I want to thank all contributors:
- mario-kr
who did a semester project at his university
with
some
fellow
students. He submitted a pull request to implement
libimagtodo, which is a todo module for imag, currently using task-hookrs as backend for talking to taskwarrior. This is really great! - mario-kr
also submitted some more PRs:
- A bugfix
for the
bin/imagbinary - A feature for task-hookrs to import a task from taskwarrior from a single JSON object.
- A lot of suggestions and comments in issues what is wrong with task-hookrs.
- A bugfix
for the
- jsirois opened two PRs after reading my this-week-in-rust entries where I submitted two issues which could be done by people wanting to learn some Rust: 531 and 532 – absolutely awesome!
- I also want to thank impo who submitted a PR to build the docs to a manpage. This reminds me that I really should work on the docs. Either way, a big “Thank you!” to you, impo!
Wow, so much contributions! Awesome, keep it up, guys! Lets take a look on the merged pull requests.
PRs merged
The following PRs were merged in the last 14 days:
- 468 added
libimagref- a library to create references to files on the filesystem. Something like pointers to external data. This can be used to reference files outside of the store, track them by content (SHA1), their permissions, their location and so on. This will also be used to implement a list of other tools, such as a wiki module, a movie-, music-, images-module and so on. There are a lot of possibilities here. - 481 implements a frontend
for
libimagreffor the commandline, so a user can uselibimagrefdirectly to create filesystem references. - 487 added an implementation
of
DisplayforStoreId. You can nowprintln!("{}", id)– awesome! - 489 refactored the internals
of the store a bit, by moving a function from
StoretoStoreId. This shouldn't change the use oflibimagstoreat all. - 496 made the
CoreLister-Type fromlibimagentrylistmore generic. You should be able to pass not only closures, but also normal functions now. - 500 contained a bug-fix for 468
- 503 fixed a flaw in the
Displayimplementation forStoreId - 513 adds a configuration option which makes it possible to deny altering hooks per aspect in the store hook execution
- 517 fixed a bug in
libimaginteractionwhich caused theask_bool()(and possibly other) function to loop endlessly - 518 removes a unneeded
dependency from
imag-view - 519 puts the
outdirectory in the gitignore file - 521 adds the
implementation for
libimagbookmark– the bookmark feature of imag (the library part). - 525 updates the documentation. Before, the documentation was a technical document. I do not believe that this will bring us any advantages anymore. This PR rewrites the document to be a user documentation.
- 528 updates all the crate versions from “0.1.0” to “0.2.0”, as we currently develop imag in this newer version.
- 531 removes some unused code and therefor cleans up the warnings the compiler gives us about the unused code. This PR was later superceded by 536 and 537.
- 532 adds a
fold_resultutility function for all iterators and therefor closes - 533 fixed a header-field
naming error in
libimagref. - 534 introduces a
(hopefully) temporary fix for
libimagentrylink. The check, whether aStoreIdobject points to an external link store object or not was buggy as it assumed the PathBuf inside the StoreId to be absolute to the Store root. - 536 superceded 531
- 537 superceded 531
- 538 refactored some code in the store to remove duplication.
PRs about to be merged
And here are some PRs which are work in progress and might be merged in the next 14 days. These were opened in the last 14 days and I hope to close them (merged or not merged) fast... some of them seem to be pointless (the ones on the store refactoring for testing are kind of duplicated as I tried different approaches) so they might get closed unmerged.
- 486 implements a git store
hook, which then puts the store into a git repository and tracks changes
within the store. I'm not sure whether I will be able to merge this, as I
still have problems getting the
git2crate building, aszlibis somehow missing, though I added it to my nixos setup... we will see... - 497 implements an iterator
type for
libimagref, so we can iterate over references in a nice way. - 498 uses
497 in
imag-ref(481) to list references if the user requests this. - 514 adds an abstraction layer for the filesystem which should simplify store testing option which makes it possible to deny altering hooks per aspect in the store hook execution
- 522 adds the
implementation for
imag-bookmark– the frontend for libimagbookmark, which is implemented in #521 - so this is basically the other half of the feature. - 529 is an attempt to pass
only store-absolute
StoreId-instances to theEntryobjects inside the store. This PR might be superceded by 530 - 530 tries to rewrite the
Storeinternals to use anotherStoreIdtype (EntryStoreId) inside the Store implementation which is always absolute to the Store root and never relative to the filesystem root. 499, which is absolutely awesome. - 535 introduces a feature
for
imag-counter, which gives you the possibility to add units to your counters (when creating them). So you can attach a meaning to the counters and everybody will know that this is not the count of your daily pushups but rather the number of jellybaby you've eaten!
The Future
So what will happen next? I opened quite a bunch of issues in the last 14 days, most of them are rather simple things to do!
Issues opened/I want to get done
We reached the 60-open-issues line as well in the last 14 days. This is not necessarily a bad thing, as these are not all bugs but also feature requests and so on. Here is a list of issues which were opened in the last two weeks. I hope I can close some of them within a few days (some of them might be already closed at the time of writing).
- 488 [open]
- 491 [closed]
- 493 [open]
- 494 [open]
- 495 [open]
- 499 [open]
- 501 [open]
- 505 [open]
- 506 [open]
- 507 [open]
- 508 [open]
- 509 [closed]
- 511 [open]
- 515 [closed]
- 516 [open]
- 520 [open]
- 523 [open]
- 524 [open]
- 526 [closed]
- 527 [open]
I'm not including a description of each issue here... this would yield this post waaaay to long actually.
Other things
Well, I am in the last phase of my bachelors thesis right now... so I would say: Plenty of time to work on imag, right?
I hope to get the bookmark implementation finished and the listing support for the reference utility merged. Besides that (and after the reference foo is merged) I would love to start implementing a backend for the diary or bookmark module by either using jrnl.sh or buku. Not because I use them as commandline tools (I'm not saying I wouldn't) but because they seem to be simple to adapt. Maybe I'm wrong... but well... lets see.
tags: #linux #open source #programming #rust #software #tools #imag