summaryrefslogtreecommitdiffstats
path: root/content/blog/2018-12-14-call-for-participation-3.md
blob: ad65797bab7b5bc40c3c26db156f29527032c493 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
---
title: "Call for Participation (3)"
date: "2018-12-04T18:42:06"
tags: [ "linux", " open source", " programming", " rust", " software", " tools", " imag" ]
---


This is the third call for participation for the imag project.

<hr>

# How can I contribute?

There are several ways to contribute. The most important thing right
now is to get tools (we call them "modules") implemented. In the sections
below I list a few things we do not have in the imag ecosystem but would
really love to have, for example an email tool or a health tracker!

But you can also contribute by testing out imag and reporting your
experiences. If you find bugs (and trust me - there _are_ bugs) report them!
Report how you use imag and what you think could be improved (docs of course).
Also request features, request modules, request the hell out of me - or even
better: Contribute code!

Contributions (patches, questions, issues/bug reports) can be filed via the
[mailinglist](/mailinglist).

<hr>

## Replace is-match with matches

**Complexity: low, Effort: low**

The `is-match` crate can be deprecated in favour of the `matches` crate. That
would be a nice thing to have.


<!-- Old entries, still valid and possibly rewritten text: -->


## imag ecosystem improvements

Some stuff needs to be improved in the general imag ecosystem (read:
non-domain libraries).

* Porting the whole ecosystem to use "impl-trait", remove all unneeded
  iterator types.
* Rewriting/splitting of libimagentrylink into libimagentrylink and
  libimagentryurl (external linking)


## imag-mail

**Complexity: medium, Effort: medium**

Did you ever wanted to implement your own commandline email client? With the
imag project, you get the chance!

Of course, there are already some thoughts on how I want the `imag-mail`
command to behave like, but I'm open to discussions! Reach out to me to get
some details (or, even better: start a discussion on the mailinglist)!


## imag-health

**Complexity: medium, Effort: medium**

Did you ever wanted to implement your own commandline health/workout/diet
tracker? With the imag project, you get the chance!

I do not have any idea how such a tool would work like, so I'm completely open
to ideas and discussion about this! Feel free to reach out via the mailinglist!


## imag-todo

**Complexity: medium, Effort: medium**

(Needs reimplementation)

Right now, `imag-todo` is rather minimal. It is actually not a todo-tracker,
but a way of integrating "taskwarrior" into imag.
I would like that to change. imag should implement its own todo-tool and
taskwarrior (and todotxt) should be possible to integrate or to import (and
maybe even export).
Crates for taskwarrior interaction and todotxt interaction are available in
the rust ecosystem.


## Update "nom" dependency in imag-ids

**Complexity: medium, Effort: medium**

The `imag-ids` command uses `nom` for parsing `where`-clauses, but the
dependency is outdated. Updating the dependency could be non-trivial as `nom`
gets updated in a major version (`3.*` -> `0.4`).

Also, the whole "where"-clause syntax could be reevaluated and even checked
whether it is actually necessary. Maybe it is more convenient to offer imag
commands that filter rather than having a DSL for that.