diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2017-11-10 10:09:03 +0100 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2017-12-24 13:46:46 +0100 |
commit | 5eded3f28f6273887c3c81b00ce42efb9d7d6c24 (patch) | |
tree | 2ded80b741196ec11ae1b1f24d73506cb62a0bc0 | |
parent | eee848500449e279be219d6555a6ed4e0054705a (diff) |
imag v0.5.0 post
-rw-r--r-- | content/blog/2017-12-12-imag-0-5-0.md | 143 |
1 files changed, 143 insertions, 0 deletions
diff --git a/content/blog/2017-12-12-imag-0-5-0.md b/content/blog/2017-12-12-imag-0-5-0.md new file mode 100644 index 0000000..3734c59 --- /dev/null +++ b/content/blog/2017-12-12-imag-0-5-0.md @@ -0,0 +1,143 @@ +--- +title: "imag 0.5.0" +slug: "imag-0-5-0" +date: "2017-12-24T13:22:06" +tags: [ "linux", " open source", " programming", " rust", " software", " tools", " imag" ] +--- + +<!-- more --> + +**First of all (same as with the 0.4.0 release): This is not production-ready +software. Use at your own +risk! This is a release for people to notice that some things work and one +could start to play around with it. Do not trust imag with your personal data +if you do not have backups. There _are_ bugs. This is _not_ perfect. This is +_alpha quality or pre-alpha quality software_!** + +# What's in there + +In this release, which is fairly not that big (which is good), we had + +* 227 commits +* 51 merge-commits / 176 non-merge commits +* 2 contributors +* 186 files changed +* 6707 insertions(+) / 3255 deletions(-) + +Some more statistics about the codebase (thank you, +[tokei](https://github.com/Aaronepower/tokei)), because why not: + +``` +------------------------------------------------------------------------------- + Language Files Lines Code Comments Blanks +------------------------------------------------------------------------------- + CSS 1 27 24 0 3 + Makefile 1 161 97 29 35 + Markdown 133 3332 3332 0 0 + Nix 2 98 77 0 21 + Rust 262 30367 19298 6253 4816 + Shell 8 241 143 57 41 + TOML 50 2112 1447 272 393 +------------------------------------------------------------------------------- + Total 457 36338 24418 6611 5309 +------------------------------------------------------------------------------- +``` + +The Markdown files are the documentation, which is good. TOML is our +configuration file, the `Cargo.toml` file and also some test files which are +included in the codebase. +The `Makefile` as well as the CSS files are from the documentation as well. + +All in all, we have a code/comment ratio of `12.55 / 1` (we have to subtract +18 lines of LGPL header for each file, so `6253 - (262 * 18) = 1537`) - which +means we have 1 line of comment for 12.55 lines of code. That's not too bad, +though we could do much better. + +## New things, shiny things + +In this release, we had quite a number of new crates - also commandline tools! +But lets start with the library crates (for the full changelog, have a look at +the bottom of this post). + +First of all, we got `libimagnotification` for doing some nice `inotify-send` +when errors occour. It is not yet integrated into the CLI tools, but I guess +it will be in the next release. Configuration via `imagrc.toml` included, of +course. +We also got `libimaghabit` which contains the logic for `imag-habit`, which +was introduced in this release. + +We also got `imag-mv`, `imag-annotate` and `imag-diagnostics` as new "core" +crates. +`imag-store` is now able to simply dump all store ids. That's nice for +scripting. + +We got `imag-contact` and `imag-habit` introduced in this release as "domain" +crates. + +The CLI of `imag-link` was redesigned and is much nicer now. + +## The release process + +For the release process, I added a `scripts/release.sh` file in the +repository. Unfortunately, I ran into +[a bug] +in cargo which caused _some_ crates to fail in the compile process (only when +releasing them). After building cargo 0.18 from source, I was able to release +my crates. + +This is really unfortunate and I hope that this bug will be fixed in future +cargo releases. + +Also, because nobody is perfect, I accidentially released `libimagnotificaion` +in 0.4.0 rather than in 0.5.0 (`libimagnotificaion` is a new crate). I yanked +the crate afterwards, but that really shows that we should harden our release +process. + +# What's coming + +The +[0.6.0 milestone](https://github.com/matthiasbeyer/imag/milestone/6) +already exists and there are a lot of things already added to it. + +When will I be there? The next version will be there if its ready. +Honestly I don't know. We have a lot of things to tackle and this is growing +to be a _really_ huge project, especially for a one-man-show, which it almost +is, still. + +# Changelog + +Finally, here again the changelog. You can also find it +[in the repository](). + +* Major changes + * `imag-counter` and `libimagcounter` was removed. + * `imag-mv` was introduced + * `imag-view` uses positional args now + * `imag-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 now + * `imag-annotate` was introduced + * `imag-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 introduced + * `imag-link` commandline was redesigned to be easier but with the same + features. + +* Minor changes + * `libimagentryannotation` got a rewrite, is not based on `libimagnotes` + anymore. This is minor because `libimagentryanntation` 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. |