From 57ec27887fbacd5669efac6208248abc3c51fc7a Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Fri, 12 Oct 2018 15:30:24 +0200 Subject: Add post: Whats coming up in imag (37) --- .../blog/2018-10-12-what-s-coming-up-in-imag-37.md | 110 +++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 content/blog/2018-10-12-what-s-coming-up-in-imag-37.md diff --git a/content/blog/2018-10-12-what-s-coming-up-in-imag-37.md b/content/blog/2018-10-12-what-s-coming-up-in-imag-37.md new file mode 100644 index 0000000..0c27e8c --- /dev/null +++ b/content/blog/2018-10-12-what-s-coming-up-in-imag-37.md @@ -0,0 +1,110 @@ +--- +title: "What's coming up in imag (37)" +date: "2018-10-12T11:59:40" +tags: [ "linux", " open source", " programming", " rust", " software", " tools", " imag" ] +--- + +This is the +37th +iteration on what happened in the last four weeks in the +[imag project, the text based personal information management suite for the commandline](https://imag-pim.org). + + + +# What happenend? + +The last update on what's happening in the imag codebase was in May, so we +have a bit to catch up to, right? We had the 0.8.0 release after that last +post, so we'll go from there. + +* The merges + [30d58379](https://git.imag-pim.org/imag/commit/?id=30d5837950ee41b27b4ef04dd3089c863e229e49), + [7c44bc1a](https://git.imag-pim.org/imag/commit/?id=7c44bc1aa3dfc87c15ad76ce44e2c5f31b68d4b4), + [f912d3e7](https://git.imag-pim.org/imag/commit/?id=f912d3e7f362e524347cd061f316d3569dfb18a0), + [c911be87](https://git.imag-pim.org/imag/commit/?id=c911be87ee81631648b8fc6fcaa9c8c7a84612d8), + [c8da09f6](https://git.imag-pim.org/imag/commit/?id=c8da09f687c83bd6ec920d242c74917f2720a36b), + [a138dd40](https://git.imag-pim.org/imag/commit/?id=a138dd408dfab3325bd5513c7b5b035853e2b351) and + [e5020404](https://git.imag-pim.org/imag/commit/?id=e50204041566b0ae02526da4a3bb344f1e33ffd5) + added post-release-patches, fixed code for compiler warnings, updated the + rust compiler and added minor patches +* [851db4ab](https://git.imag-pim.org/imag/commit/?id=851db4abe4d8d0aebafe35ef41c5594213b1be6b) + was a contribution from [newpavlov](https://github.com/newpavlov) which + replaced the `rust-crypto` crate with `sha-1` and others. Thank you a lot + for your contribution! +* [2a62b6df](https://git.imag-pim.org/imag/commit/?id=2a62b6dffb9f82a464cc7d9e21a488aee04197ca) + fixed a bug in libimagstore where the filesystem was accessed without using + the filesystem abstraction. +* [acdc1e84](https://git.imag-pim.org/imag/commit/?id=acdc1e84bc3082579d844947a978485152b4f6e6) + fixed a missing header in imag-diary +* [f2916aa5](https://git.imag-pim.org/imag/commit/?id=f2916aa51a43996e56f452bb47bfbceda291d519) + updated rustc on travis +* [5b82d53f](https://git.imag-pim.org/imag/commit/?id=5b82d53fd29294ac598d3e80fcee0e7b27f59c0c) + changed the backend so that the filesystem abstraction does not hold the + `File` open anymore. Files are now read into memory and re-opened on + `write()`, thus reducing the amount of FDs held open. +* [6a81c0af](https://git.imag-pim.org/imag/commit/?id=6a81c0afd1d98520d4820f6a1dcb161ee4029761) + updated rustc on travis once more +* [ccbc2b26](https://git.imag-pim.org/imag/commit/?id=ccbc2b2672defc61f4e67040fc193b8271bd9f60) + added a progressbar to imag-diagnostics +* [c791977a](https://git.imag-pim.org/imag/commit/?id=c791977aab6eb94520cf299fb05a8355da10718c) + added minor patches +* [9bce68b1](https://git.imag-pim.org/imag/commit/?id=9bce68b1bff5e2f77f7c86424de5c16a7e38a2cc) + optimized the iterator story from libimagstore for accessing the filesystem + fewer times when iterating over all entries. This was done by introducing an + `Entries` iterator which is returned by `Store::entries()`. The `Entries` + iterator supports selecting subcollections, which is optimized to not simply + ignore everything else (but still iterating over it), but replacing the + underlying `walkdir::WalkDir` iterator with a newly created and optimized + one. +* [01c56257](https://git.imag-pim.org/imag/commit/?id=01c562570638600e43e1a0c70da8cea384e235bf) + updated dependencies +* [6b8c2916](https://git.imag-pim.org/imag/commit/?id=6b8c29163ab06f0c027b96e7ab70506437efdcfa) + rewrote the github templates. We're now not developing on github anymore. + [Rationale here](/blog/2018/06/10/off-of-github/). +* [8ab5f550](https://git.imag-pim.org/imag/commit/?id=8ab5f5507470b51f2e6aadd6e20a38d08baa984d) + added some optimizations for travis jobs +* [879dc253](https://git.imag-pim.org/imag/commit/?id=879dc25316a87372b177cfbb879c51cfc0984e11) + added a Code of Conduct. +* [a101e777](https://git.imag-pim.org/imag/commit/?id=a101e777f365bc1e1fcd9f4ca3f9a9b6198e70af) + updated dependencies +* [3dba5c21](https://git.imag-pim.org/imag/commit/?id=3dba5c219be1da3982a7f7fce0853b94e9cd9300) + fixed a bug in imag-link where links were not properly detected when creating +* [42247170](https://git.imag-pim.org/imag/commit/?id=42247170a64d96f502fed2531c81d75be57a060a) + fixed a bug in imag-contact where `Store::create` was used rather than `Store::retrieve` +* [3c801a26](https://git.imag-pim.org/imag/commit/?id=3c801a264d6b3ef2ef77a16c759ef918d66a9357) + added a few minor bugfixes + +# What will happen + +Right now, we're in the middle of two major refactorings which are necessary +unfortunately: + +1. [Transition to `failure` for error management](https://git.imag-pim.org/imag-matthias/log/?h=failure). + By replacing `error_chain` and introducing `failure` to the codebase and + abstractions created in the imag libraries, we redefine the whole + error-handling story in imag. Hopefully this will ultimatively reduce the + amount of code needed to handle errors conveniently. + The only thing that's left to be done is removing all `error-chain` + calls/generation and replacing it with the new infrastructure. + Patches to the branch are **wholeheartedly welcome**! +1. [Redefining the IO Story in imag](https://git.imag-pim.org/imag-matthias/log/?h=runtime-io-story). + This is a bit more complicated to explain. + We wrote everything down in + [the documentation of libimagrt](https://git.imag-pim.org/imag-matthias/tree/doc/src/05100-lib-rt.md?h=runtime-io-story). + By now, everything seems to work rather well and we're planning to include + that change in the next release. + Although, some work is still needed as all the crates have to be changed to + use the new IO system (rather trivial to implement actually). + Patches to the branch are **wholeheartedly welcome**! + +After that I plan to get `imag-entry` implemented. It is another plumbing tool +for programmatically modifying entries without having to implement the logic +yourselves. For example, it could not only be used to check whether variables +in an entry header are present or have a certain value, but also to create +entries, delete them and so on. +It will be a better alternative to `imag-store`, which is too low-level +(CLI-wise) to be used by end-users. + +I hope we can get these things done before mid-November, because by then I'll +be back traveling (see the last section of +[this post](https://imag-pim.org/blog/2018/05/06/whats-coming-up-in-imag-36/)). -- cgit v1.2.3