This was cherry-picked from the 0.9.1 release, where I made the mistake to add one commit for all updated stuff, instead of adding the changelog in one commit and all other stuff in other commits. But because we should have that information on master, we cherry-pick the commit 7137a3ce7 partially here. Signed-off-by: Matthias Beyer <mail@beyermatthias.de> (cherry picked from commit 7137a3ce7)
44 KiB
Changelog
This section contains the changelog.
We try to include a changelog line in each pull request, to make sure the changelog is up to date when releasing a new version of the codebase. Make sure to append the new change to the list, do not prepend it.
The "Major" section of each section includes huge changes in functionality and interfaces (but not necessarily user-facing ones), whereas the "Minor" section contains only small stuff. Some things, like typo fixes, version string updates and such are not stated in the changelog (though updating of dependencies is). Please note that we do not have a "Breaking changes" section as we are in Version 0.y.z and thus we can break the API like we want and need to.
0.9.1
Bugfix release for fixing:
- Fix off by one error in error tracing
- Fix negation error in imag-habit filtering mechanism
- Fix config override mechanism
- "status" subcommand might not be present in imag-habit, but standard command should work anyways
- We go to the next month, not to the current one (off by one error)
- 'start-time' cannot be None in imag-timetrack, clap ensures that
- Do not use deprecated StoreId::exists() function in libimagentrycategory
0.9.0
-
f912d3e7f3 Fix: Duplicated printing of output in
imag log show --all
The problem was that the usedDiary::diary_names()
iterator does not callunique()
on its output. That decision was made because the return type would get more complicated with that feature. The fix was to callItertools::unique()
on the iterator. -
851db4abe4 Do not use rust-crypto anymore, but other crates A contribution from newpavlov. Thank you very much!
-
5b82d53fd2 Optimize libimagstore filesystem backend This optimization changes the backend so that the files are not held open. The files are now read whenever they are requested, then they are cached and are written back on "Store::update()" (which is also called when the store is dropped). This change allows us now to read more files into memory than there are FDs for the process (which was a problem with really large stores and, for example, imag-diagnostics.
-
6a81c0afd1 Update rust compiler for travis
-
ccbc2b2672 Add progress bar for imag-diagnostic tool, so that a user can see that something is happening.
-
a101e777f3 Update dependencies Dependencies of these imag crates where updated: Binaries:
- imag
- imag-contact
- imag-edit
- imag-git
- imag-grep
- imag-habit
- imag-link
- imag-timetrack
- imag-view
- imag-wiki
Libraries:
- libimagbookmark
- libimagcontact
- libimagentryfilter
- libimagentrytag
- libimagentryview
- libimagerror
- libimaginteraction
- libimagmail
- libimagrt
- libimagstore
- libimagtimeui
- libimagtodo
- libimagutil
- libimagwiki
-
9bce68b1bf Optimized the libimagstore
Store::entries()
interface to have the possibility to limit the filesystem access to subdirectories in the store path, so that IO operations are minimized. -
a749d97a16 Switched the whole ecosystem to use
failure
for error handling. -
ecf4cead93 Introduced the runtime IO system, which can now be used to chain imag calls like so:
imag ids | imag tag add "foobar"
.
In the process of these major changes, small bugfixes and improvements were applied to the codebase. Too much to list all of them here, though.
The merge messages of the respective feature branches contain more details on the changes.
0.8.0
After the last release (0.7.0), we changed how we keep our changelog from manual
adding things to the list, to using git-notes
. Hence, there's no
categorization anymore.
-
Add imag(https://git.imag-pim.org/imag/commit/?id=imag)diary functionality to list existing diaries
-
libimagentryview
sStdoutViewer
is now able to wrap lines -
imag-view
can wrap output now -
imag tag
is now able to read store ids from stdin -
libimagrt
automatically suggests "imag init" if config is not found -
A changelog-generation script was added to the scripts/ directory
-
Fix:
libimagdiary
did not return the youngest, but the oldest entry id on::get_youngest_entry_id()
. -
Fix: imag-view should not always wrap the text, only if -w is passed
-
Fix:
imag-log show
should order by date -
imag
does not inherit stdout if detecting imag command versions. -
The
Store::retrieve_for_module()
function was removed. -
imag-git
was added, a convenient way to callgit
in the imag RTP. -
libimagentryview
was refactored. The crate was refactored so that the "sink" - the thing the view should be written to - can be passed. -
A
imag-view
feature was added where markdown output can be formatted nicely for the terminal -
The libimagstore lib got its stdio backend removed.
First,
imag store dump
was removed as it was based on this feature. Then,libimagrt
got the ability removed to change the store backend to stdio. After that, we were able to remove the stdio backend and the JSON mapper functionality that came with it.This shrinked the codebase about 1kloc.
The
imag store dump
feature can be reimplemented rather simply, if desired. -
imag-view
is now able to seperate printed entries with a user-defined character (default: "-") -
Fix: Deny non-absolute import pathes in imag-contact
-
libimagcontact is not based on libimagentryref anymore
This is because we encountered a serious problem: When syncing contacts with an external tool (for example
vdirsyncer
), the files are renamed on the other host. Syncing the imag store to the other device now creates dead links, as thepath
stored by the ref is not valid anymore.Now that libimagcontact is not based on libimagentryref anymore, this issue does not exist anymore. libimagcontact stores all contact information inside the store now.
imag-contact was rewritten for that change.
-
Fix: imag-contact does only require the name field, all others are optional now
-
Fix: imag-contact automatically creates a UID now
-
libimagcategory
was rewrittenIt creates entries for categories now and automatically links categorized entries to the "category" entries.
Its codebase got a bit simpler with these changes, despite the increase of functionality.
-
imag-contact
automatically generates/warns about missing file extension -
libimagcontact
does export email properties now.imag-contact
reads email properties and can output them in its JSON output. This is helpful for passing email adresses to external tools like mutt. -
libimagentrygps
andimag-gps
work with 64 bit signed values nowBoth the library and the command use i64 (64 bit signed) for GPS value fragments now.
Also: The
imag-gps
tool does not require a "second" value fragment now, it defaults to 0 (zero) if not present. -
The
filters
dependency was updated to 0.3 -
libimagentryfilter
filters headers not with a failable filter. -
imag-diary
has no longer anedit
command.imag-edit
shall be used instead. -
libimagtodo
got a error handling refactoring, so that more chaining happens. -
Errors in
libimagstore
contain more details in the error message about what StoreId caused the error Unused errors were removed. -
The Store API got functions to get data about the internal cache and flush it
-
imag-diagnostics flushes the cache each 100 entries processed
-
The iterator interface of libimagstore was refactored
Originally, the iterator interface of libimagstore did not return errors which could happen during the construction of a
StoreId
object. This was refactored, effectively changing theStoreIdIterator
type to not iterate overStoreId
anymore, but overResult<StoreId, StoreError>
. That cause a lot of changes in the overall iterator interface. All iterator extensions (like.into_get_iter()
for example) had to be rewritten to be applicable on iterators overResult<StoreId, E>
whereE
is a generic that can be constructedFrom<StoreError>
.This all was triggered by the fact that
Store::entries()
did a.collect::<Vec<_>>()
call, which is time consuming. Consider a tool which callsStore::entries()
and then only use the first 10 entries returned (for some user-facing output for example). This would effectively cause the complexe store to be accessed (on the filesystem level), which could be thousands of entries. All relevant pathes would have been written to memory and then be filtered for the first 10. Not very optimized.After this was done, the store interface changed. This caused a lot of changes in almost all crates.
Internally, in the store, the
FileAbstraction
object is not passed around in aBox
anymore, but in anArc
, as a intermediate (store-private) iterator type needs to access the backend for file-system level checks. This is not user-facing.In the process, the
Store::reset_backend()
interface was removed (as this is no longer supported and should've been removed already). Rewriting it just for the sake of this patch and then removing it would've been to difficult and time- consuming, hence it was simply removed during that patchset.The overall performance was somewhat improved by this patchset. A rather non-scientifically performed test shows increased performance in debug builds (but slowing down in release builds).
The test was done on master before the merge and after the merge, with a debug build and a release build. Each time,
imag-ids
was executed 10 times with its output piped to /dev/null. The local store used for this contained 5743 entries during the measurements and was not changed in between.time
showed the following data (real, user, sys):Before, Debug build:
0,075;0,052;0,023 0,077;0,051;0,026 0,083;0,063;0,020 0,079;0,054;0,025 0,076;0,057;0,019 0,077;0,059;0,017 0,074;0,052;0,022 0,077;0,045;0,032 0,080;0,060;0,020 0,080;0,058;0,022
After, Debug build:
0,071;0,050;0,021 0,073;0,053;0,021 0,075;0,060;0,015 0,076;0,047;0,029 0,072;0,055;0,018 0,077;0,061;0,016 0,071;0,053;0,019 0,070;0,053;0,016 0,074;0,050;0,025 0,076;0,052;0,024
Before, Release build:
0,034;0,015;0,019 0,034;0,017;0,017 0,034;0,019;0,015 0,033;0,012;0,022 0,034;0,011;0,023 0,034;0,015;0,019 0,034;0,010;0,024 0,033;0,015;0,018 0,037;0,017;0,020 0,033;0,013;0,021
After, Release build:
0,037;0,015;0,022 0,036;0,016;0,020 0,036;0,018;0,018 0,036;0,014;0,022 0,036;0,015;0,021 0,036;0,018;0,018 0,037;0,016;0,020 0,036;0,018;0,018 0,039;0,015;0,023 0,037;0,016;0,021
-
The
Store::walk()
function was removed. -
imag-ids
got the ability to filter by headerThe language introduced here is subject to change, but a good first step into the direction of a generic filter language.
Language documentation was added as well and is printed with
imag ids --help
. -
imag-category
was added -
The standard CLI interface in
libimagrt
was updated and validations were added
0.7.1
Bugfix release for fixing:
libimagdiary
did not return the youngest, but the oldest entry id on::get_youngest_entry_id()
.imag-view
should not always wrap the text, only if -w is passedimag-log show
should order by dateimag
does not inherit stdout if detecting imag command versions.imag-contact import
does only allow absolute pathesimag-contact
has most fields optional now, only name is requiredimag-contact
automatically creates UIDimag-contact
automatically generates/warns about missing file extension
0.7.0
- Major changes
imag-timetrack list --from/--to
now havekairos
support - that means that complex--from/--to
arguments (likeyesterday
ortoday-2weeks
) are now possiblelibimagerror
got a major refactoring and usesChainedError
fromerror-chain
for logging errors now.libimagentryref
and all libraries using it were rewritten.libimagentryref
was rewritten to make its API simpler and yet more powerful. Also because it used to put entries under a "ref" collection in the store, but users of the library really should be be able to put entries under custom collections.imag store ids
was replaced byimag ids
.libimagentrylist
was removed. Its functionality was inconvenient to use and ugly to implement. Its API was cumbersome. Listing of entries shall be implemented without it.libimagcontact
is now able to fetch all contacts from the store.libimagcontact
takes the hash from the vcard object (UID) now.imag-contact
got afind
command, which matches in fullname, email and address and either shows or lists the found contactsimag-contact list
andimag-contact find
is now able to print the output as JSON.imag-edit
can now read store ids from stdin, soimag ids | fzf | imag edit -I
is now a thing.imag ids
does not print the path of the store. Can be turned on using commandline flag.imag-habit today --done
andimag-habit status --done
was added for showing habits which are already done.libimagrt
allows external subcommands now in the default clap app builder helper. It also provides a helper for handling unknown subcommands:Runtime::handle_unknown_subcommand()
. See docs for details.imag-link list
prints output in ascii-table now, use--plain
to print as plain text.- The build script automatically generates autocomplete scripts for bash,
fish and zsh now when compiling the
imag
command. libimagwiki
andimag-wiki
were introduced.
- Minor changes
- A license-checker was included into the CI setup, which checks whether all ".rs"-files have the license header at the top of the file
imag-link
does not allow linking the entry to itselfimag
sorts available commands alphabetically nowimag
has a new subcommandhelp
for consistency with other toolsimag-grep
does not print grep statistics when only files with matches are listed- The
"Ok"
output which was printed on success was removed from all commands imag-log show
was aliased toimag-log list
imag-* --version
showsgit describe
output if binary was compiled in "debug" mode.imag-diary
supports "daily" diaries now.imag-contact
joins multiple emails with "," nowimag-tag
commandline was rewritten for positional arguments.libimagrt
automatically takes "rt.editor" into account when building editor objectlibimagentryref
got a utility function for making an entry a ref.libimaghabit
gotHabit::instance_exists_for_date()
imag contact find
understands--format
now.imag contact
uses ", " as seperator for output of lists of values.imag contact find --id / --full-id
was added for printing Store Id / Filepath of found contacts.imag view
can now view multiple entries at onceimag view -I
reads store ids from stdin now.libimagstore
iterators have less restricting lifetimes nowlibimagentrygrep
was introduced, a crate for seaching in the header/content parts of an entry.imag-ids
can now filter by collection- All crates use "clap" with the "wrap_help" feature now.
- Bugfixes
- imag does not panic anymore when piping and breaking that pipe, for
example like with
imag store ids | head -n 1
. For that,libimagerror
got aResult
extension which can translate errors into exit codes and one for unwrapping or exiting with theErr(i32)
from the result. libimagdiary
did not add the header markers on diary entries.imag-diary
used the default diary rather than the CLI setting. Now it rather uses the CLI setting and only if that is not present, it uses the default.libimagerror
printed errors withwrite!()
rather thanwriteln!()
when tracing.- A parsing error in
libimagstore
, which caused the parsing of entries with a line "---" in the content part to fail, was fixed. - The patch explained by the point above introduced a bug which caused entries to be read as a single line, which was fixed as well.
imag-diary create --timed
did not work as expectedlibimagstore
got another fix with the file parsing, as thestd::str::Lines
iterator takes empty lines as no lines.libimagentryedit
fixed to inherit stdin and stderr to child process for editor command.libimagrt
produced the editor command without taking arguments into account.libimagentryref
got a fix where the buffer for the hash calculation was not allocated properly.libimagstore::store::Store::create
overwrote existing entries.libimaghabit::habit::HabitTemplate
did not link new instances.imag-init
creates~/.imag
but not~/.imag/store
.libimagrt
got a bugfix in the editor command setup where command arguments were not processed correctly which could result in calling the editor with an empty argument (vim " "
).imag-grep
did not count in all cases.libimagdiary
sorts entries by date when viewing/listing them.- A
libimagentryref
bug was fixed where the wrong variable was passed as path to the referenced file, causing all tools based on this lib to break. libimagrt
had a bug where the logging level was set to "Info" as soon as "--verbose" was passed, but the value of "--verbose" was not even checked.
- imag does not panic anymore when piping and breaking that pipe, for
example like with
0.6.4
Bugfix release for fixing:
libimagrt
produced the editor command without taking arguments into account.imag-init
creates~/.imag
but not~/.imag/store
.- Fix editor setup in
libimagrt
to use /dev/tty as stdin for editor, so terminal-editors do not trash the terminal
0.6.3
Bugfix release for fixing:
libimagstore
got another fix with the file parsing, as thestd::str::Lines
iterator takes empty lines as no lines.
0.6.2
Bugfix release for fixing:
imag-diary
did not recognize the "-d DIARY" setting.- A parsing error in
libimagstore
, which caused the parsing of entries with a line "---" in the content part to fail, was fixed. - The bugfix above introduced another bug which caused entries to be rewritten in one line when accessing them. This was fixed.
imag-diary
did not properly set "minute" and "second" when creating "hourly" or "minutely" entries.- Version numbers for all crates as well as in the docs were updated to "0.6.2".
0.6.1
Bugfix release for fixing two severe bugs in imag-init
:
imag-init
created the git directory inside the imag directory. Fixed by defaulting to{imag directory}/.git
.imag-init
was buggy as it did not include theimagrc.toml
file in the release, thus building it from crates.io failed
0.6.0
- Major changes
- The config infrastructure of
libimagstore
was removed, as it was unused. - The iterators of
libimagstore
were improved and are now abstract over all iterator types. For example, all iterators overStoreId
can now be transformed into aStoreGetIterator
. imag-log
was introducedimag-init
was introducedlibimagdiary
supports second-granularity now.libimagstore::store::Store::retrieve_copy
was renamed tolibimagstore::store::Store::get_copy
, which describes the semantics of the function way better.libimagentryutil
was introduced, a library for helpers forlibimagstore::store::Entry
handling and writing extension-writing.imag-edit
was introducedimag-diary
got second-granularity support in the CLI.
- The config infrastructure of
- Minor changes
- Internals were refactored from
match
ing all the things into function chaining - The
toml-query
dependency was updated to 0.5.0 imag-timetrack list
lists with a table nowimag-timetrack stop
now stops all running tags if none are specified- The
toml-query
dependency was updated to 0.6.0 ResultExt::map_err_trace_exit()
was removed in favour ofResultExt::map_err_trace_exit_unwrap()
.imag-view
shows content by default now. Use-C
to hide the content.kairos
dependency was updated to 0.1.0
- Internals were refactored from
- Bugfixes
libimagbookmark
contained a type which wrapped aFileLockEntry
fromlibimagstore
. This was considered a bug and was fixed.- We depended on a crate which was licensed as GPLv2, which would yield imag GPL as well. The dependency was removed.
- The
imag
crate prints the "command filed" error message to stderr now. It also prefixes the subcommand withimag-<command>
for better user experience. libimagnotes
did not set the note name in the header of the note.imag-mv
automatically fixes links when moving an entry in the store.imag-log
listed non-log entries (normal diary entries) before, was changed to only listlog
entries.
0.5.0
-
Major changes
imag-counter
andlibimagcounter
was removed.imag-mv
was introducedimag-view
uses positional args nowimag-view
uses the configuration file now to find the command to call for viewing the entry. This way one can view the entry in an editor or the browser or on the toaster.- The logger is now able to handle multiple destinations (file and "-" for stderr)
imag-store
can dump all storeids nowimag-annotate
was introducedimag-diagnostics
was added- The runtime does not read the config file for editor settings anymore.
Specifying an editor either via CLI or via the
$EDITOR
environment variable still possible. imag-contact
was added (with basic contact support so far).imag-habit
was introducedimag-link
commandline was redesigned to be easier but with the same features.
-
Minor changes
libimagentryannotation
got a rewrite, is not based onlibimagnotes
anymore. This is minor becauselibimagentryanntation
is not yet used by any other crate.- imag now reads the
IMAG_RTP
environment variable before trying to access$HOME/.imag
for its runtimepath. libimagnotification
was introduced, though not yet integrated into the CLI tools
-
Bugfixes
Store::entries()
does not yield StoreIds which point to directories anymore, only StoreIds pointing to files.
-
Stats
- 227 commits
- 51 merge-commits / 176 non-merge commits
- 2 contributors
- 186 files changed
- 6707 insertions(+) / 3255 deletions(-)
0.4.0
-
Major changes
- The
libimagstore::toml_ext
module was removed. Thetoml_query
crate should be used as a replacement. Its interface only differs in few places from the oldlibimagstore::toml_ext
interface. - The codebase was moved to a more tree-ish approach, where several subdirectories were introduced for different types of crates
- The documentation got a major overhaul and was partly rewritten
- The logger is now configurable via the config file.
- The error handling of the whole codebase is based on the
error_chain
now.libimagerror
only contains convenience functionality, no error-generating macros or such things anymore. imag-diary
can now use a configuration in the imagrc.toml file where for each diary there is a config whether entries should be created minutely or hourly (or daily, which is when specifying nothing).
- The
-
New
libimagentrygps
was introducedimag-gps
was introducedimag-grep
was introduced- The
imag
command now passes all arguments properly to the called subcommand
-
Fixed bugs
- The config loading in
libimagrt
was fixed. libimagentrylink
usedimag
as the location for putting links in entries. This is not allowed because this namespace is reserved for the store itself. This bug was fixed, links are now located in thelinks
namespace in the header of an entry.Store::delete()
did only check the store-internal cache whether an entry exists, but not the filesystem. This was fixed.
- The config loading in
-
Minor changes
- If building from a
nix-shell
, the mozilla rust overlay is expected to be present - Unused imports in the codebase were removed
- Compiler Warnings were fixed
- We specify inter-dependencies via path and variable now, so one can build the 0.3.0 release from the checkout of the codebase.
- The
imag
binary was refactored and rewritten, thecrossbeam
dependency was removed. - The
Makefile
was removed ascargo
is powerful enough to fit our needs libimagstore::storeid::StoreId::is_in_collection()
was added- The
libimagentrylink
is now rudimentarily tested - We compile with rustc 1.17, 1.18, .., nightly
- The
imag-store
binary now uses positional arguments in its CLI - The "toml-query" dependency was updated to 0.3.1
imag-timetrack track
is now able to parse "now", date-only start/stop dates and date-time start/stop times.libimagnotes
does not longer wrap store types but extend them.imag-notes
uses positional arguments now.libimagentrylist
does not export a CLI helper module anymore.
- If building from a
-
Stats
- ~325 commits
- 82 merge-commits / 243 non-merge commits
- 2 contributors
- 447 files changed
- 9749 insertions(+) / 7806 deletions(-) (Surely because of the reorganization of the entire codebase)
0.3.0
Note: As this file was written _after_ the 0.3.0 release, we simply list the merges here instead of explaining what changed.- Merges
- d14c972 matthiasbeyer/release-commits-import
- f6a1c7d matthiasbeyer/make-check
- 0404b24 matthiasbeyer/update-deps
- 85e95d1 matthiasbeyer/readme-rewrite
- fa64c2d matthiasbeyer/libimagstore/store-id-cmp-without-base
- 0a04081 matthiasbeyer/cargo-rustc-codegen-units
- a4db420 matthiasbeyer/cargo-workspaces
- 8bacdb4 matthiasbeyer/libimagref/remove-unused
- 13c57aa matthiasbeyer/imag-link/reduce-unwraps
- e70fdc6 matthiasbeyer/libimagentrytag/remove-impl-tagable-on-fle
- 1db063f Stebalien/master
- a6a7e43 mario-kr/add_shell-completion
- 002c50a matthiasbeyer/clap-completion
- b210b0e matthiasbeyer/libimagstore/entry-eq
- fe1c577 matthiasbeyer/libimagstore/extract-toml-functionality
- 4ca560a matthiasbeyer/travis-use-old-rustc
- 0310c21 rnestler/libimagdiary/refactor_from_store_id
- 9714028 matthiasbeyer/clap-recommend-versions
- 2003efd matthiasbeyer/imag-mail/init
- 7c7aad9 matthiasbeyer/libimagentrylink/fix-docu-typo
- 0dd8498 matthiasbeyer/update-deps
- 9375c71 matthiasbeyer/makefile-check-outdated
- 23a80ee matthiasbeyer/imag-link/external-link-remove-arg
- 4a821d7 matthiasbeyer/rust-beta-remove-top-level-cargotoml
- 0cf5640 mario-kr/add_workspace-support
- c96e129 matthiasbeyer/libimagrt/logger-pub
- 2c4946a matthiasbeyer/remove-for-focus-shift
- 9d7a26b matthiasbeyer/libimagrt/dbg-fileline-opt
- 6dbecbd matthiasbeyer/libimagrt/config-types-pub
- 03a90c9 matthiasbeyer/cleanup-bash-compl-gen
- 6f564b5 matthiasbeyer/love-to-defaultnix
- ce36b38 matthiasbeyer/fix-imag-bin-build
- cd684b0 matthiasbeyer/travis-opt
- 636bfbb matthiasbeyer/imag-link/list-internal-only
- 1e3193e matthiasbeyer/imag-ruby
- 71e1a4c matthiasbeyer/libimagerror/fix-warnings
- b03d1b5 matthiasbeyer/libimagstore/fix-warnings
- 0a417aa matthiasbeyer/libimagruby/fix-warnings
- 55ea7f8 matthiasbeyer/readme-updates
- ddc49de matthiasbeyer/libimagruby/fix-macro
- df0fa43 matthiasbeyer/imag-tag/remove-warning
- 3c7edcf matthiasbeyer/update-regex
- 15b3567 matthiasbeyer/workspace-fix-missing-doc
- 6585677 matthiasbeyer/libimagentryfilter/remove-unused-import
- 2ca89b7 matthiasbeyer/workspace-fix
- 63ffbf6 matthiasbeyer/libimagstore/eliminate-header-type
- 3ffedec matthiasbeyer/remove-warnings
- 4d1282d matthiasbeyer/libimagruby/impl-retrieve-for-mod
- c43538d matthiasbeyer/ruby-build-setup
- 2beb795 matthiasbeyer/revert-871-ruby-build-setup
- b67b6f5 matthiasbeyer/libimagstore/doc
- dc1c473 matthiasbeyer/libimag-todos
- bb126d5 matthiasbeyer/libimagruby/api-brush
- b50334c matthiasbeyer/libimagrt/doc
- 54655b9 matthiasbeyer/libimaginteraction/unpub-fn
- e33e5d2 matthiasbeyer/libimagannotation/init
- f3af9e0 matthiasbeyer/clap-bump
- ef07c2c matthiasbeyer/libimagstore/verify-panic
- a0f581b matthiasbeyer/libimagentryedit/dont-impl-for-fle
- 84bcdc6 matthiasbeyer/libimagnote/note-doesnt-need-to-be-tagable
- 85cb954 matthiasbeyer/less-fold-more-defresult
- c4bd98a mario-kr/makefile_use_workspaces
- 3a0166b matthiasbeyer/libimagruby/error-types
- 5d4ef8e matthiasbeyer/libimagstore/non-consuming-update
- e615ec0 matthiasbeyer/add-libruby-travis-dep
- 63faf06 matthiasbeyer/fix-warnings
- 6f6368e matthiasbeyer/travis-fixes
- 9396acc matthiasbeyer/superceed-898
- 6fa281a matthiasbeyer/redo-ruby-build-setup
- 5b93f38 matthiasbeyer/libimagstore/storeid-exists-interface-result
- 03f17b8 matthiasbeyer/libimagentrylink/annotations
- 25a3518 matthiasbeyer/libimagentrylink/fix-exists
- 7e3c946 matthiasbeyer/libimagutil/fix
- 8eaead5 matthiasbeyer/fix-build-quick
- 241f975 matthiasbeyer/libimagentryedit/remove-unused-imports
- c74c26c matthiasbeyer/fix-readme-links
- 878162f matthiasbeyer/libimagstore/store-id-tests
- 1da56c6 matthiasbeyer/prepare-0.3.0
- 4257ec1 matthiasbeyer/update-toml
- a5857fa matthiasbeyer/libimagstore/configuration-tests
- 4ba1943 matthiasbeyer/add-dep-ismatch
- 5ba2568 asuivelentine/master
- dd24ce8 matthiasbeyer/revert-854
- bb9ff5b matthiasbeyer/remove-hooks
- 08f43c8 matthiasbeyer/update-toml-query
- 16a12af matthiasbeyer/libimagentrydate/init
- 1b15d45 matthiasbeyer/libimagentrydate/fix-header-location
- 4fff92e matthiasbeyer/libimagmail/use-email-crate
- ef82b2a matthiasbeyer/add-missing-license-header
- 15b77ac matthiasbeyer/libimagentrytag/clap-validators
- a9d2d7c matthiasbeyer/libimagstore/fs-memory-backend-as-dependency-injection
- c4d4fe9 matthiasbeyer/libimagstore/remove-todo-comment
- 71e3d3d matthiasbeyer/libimagentrytag/validator-helper-enhancement
- bc95c56 matthiasbeyer/libimagstore/fs-abstraction-pub
- f487550 matthiasbeyer/libimagstore/storeid-local-part-altering
- cd99873 matthiasbeyer/libimagstore/io-backend
- e75c37f matthiasbeyer/libimagstore/io-backend-knows-format
- d33b435 matthiasbeyer/libimagstore/all-entries
- f8ed679 matthiasbeyer/libimagstore/backend-replacement
- 2c97d6f matthiasbeyer/libimagstore/embellishments
- 17bab5b matthiasbeyer/libimagstore/fixes
- 2b77064 matthiasbeyer/libimagrt/fixes
- c9d03fc matthiasbeyer/update-travis
- 22a4dc0 matthiasbeyer/libimagrt/cleanup
- b47972b matthiasbeyer/imag-store-dump
- 1b88c22 matthiasbeyer/libimagentrycategory/init
- 7dea53c matthiasbeyer/libimagannotation/add-doc
- c71b707 matthiasbeyer/libimagannotation/add-is_annotation
- b3e7f09 matthiasbeyer/libimagtimetrack
- c75cfe4 matthiasbeyer/imag-link/fix-panic
- e80608c matthiasbeyer/libimagstore/fix-file-length-setting
- b4d0398 matthiasbeyer/imag-link/export-consistency-check
- f041fb3 matthiasbeyer/fix-dep-rustc-version
- 297eeb1 matthiasbeyer/remove-nix-deps
- bee4e06 irobert91/imag-link/rewrite-tests
- afc5d1f matthiasbeyer/update-toml-query
- 58047d3 matthiasbeyer/libimagtimetrack-to-libimagentrytimetrack
- 3c07f47 matthiasbeyer/libimagtimetrack/more-features
- 3767d8d matthiasbeyer/update-chrono
- c9360a4 matthiasbeyer/imag-link/test-utils-to-libimagutil
- e4f8d4e matthiasbeyer/imag-tag/tests
- fc5bbc3 matthiasbeyer/libimagstore/glob-iterator-fix
- ec1c1e8 matthiasbeyer/bin-refactor
- 4b07c21 matthiasbeyer/todo
- 057d919 matthiasbeyer/imag-timetrack
- 0f436d5 matthiasbeyer/doc-overhaul
- a1289cc matthiasbeyer/update-readme
- Stats:
- 127 merged branches
- 8 contributors
0.2.0
- Complete rewrite of 0.1.0 with new architecture and "modules" instead of monolithic approach. Can be considered first version.
0.1.0
- Initial version, nothing special.