Merge branch 'rewrite-readme-contrib-etc' into master

This commit is contained in:
Matthias Beyer 2019-12-08 17:02:28 +01:00
commit 733979609f
2 changed files with 21 additions and 38 deletions

View file

@ -7,7 +7,7 @@ but we do not consider anything stable or usable at this moment. Feel free to
play around anyways.**
## Goal / What is imag?
## Mission statement
Our (long-term) goal is to
@ -15,9 +15,8 @@ Our (long-term) goal is to
> suite of tools to cover all aspects of personal information management.
Yes, imag is a rather ambitious project as it tries to reimplement functionality
for several "personal information management aspects". It is a hobby project,
keep that in mind. We try to use standards like vcard, icalendar and others
wherever possible.
for several "personal information management aspects".
We try to use standards like vcard, icalendar and others wherever possible.
Have a look at [the documentation](./doc/) for some more words on this.
@ -27,18 +26,16 @@ Have a look at [the documentation](./doc/) for some more words on this.
Here is how to try `imag` out.
`imag` is a _suite/collection_ of tools (like git, for example) and you can
build them individually.
All subdirectories prefixed with "`libimag"` are libraries.
All subdirectories prefixed with `"imag-"` are binaries and compiling them will
give you a commandline application.
build each "module" individually.
### Building
We use `cargo` for building all crates in this repository.
Make sure to use a recent `cargo`, at least one with workspace support.
Building all crates works with `cargo build --all`, building individual crates
by specifying the `--manifest-path` flag to cargo.
by specifying the `--manifest-path` flag to cargo. The crates in ./bin are the
actual commandline tools, ./bin/core contains a core set of imag commands
("plumbing" in git-speak) and ./bin/domain contains domain-specific imag
commands, for example a todo tool or a bookmark tool.
### Running

View file

@ -6,19 +6,17 @@ All contributors agree to the
[developer certificate of origin](#developer-certificate-of-origin)
by contributing to imag.
Feel free to contact [us via our mailinglist](http://imag-pim.org/mailinglist/)
and/or submit patches via mail (use `git format-patch` and
`git send-email`, always add a cover letter to describe your submission).
You don't have to send patches via mail, though. As long as I can `git pull`
your changes (without having to login or register at the remote) or `git am`
your patchset, I'm fine.
I'd encourage you, though, to [use git-send-email](https://git-send-email.io)
or at least [git-request-pull](https://git-scm.org/)
Also ensure that each commit submitted via email has
[a "Signed-off-by: " line](https://stackoverflow.com/questions/1962094/what-is-the-sign-off-feature-in-git-for).
By adding that line, you agree to our
[developer certificate of origin](#developer-certificate-of-origin).
If you do not add the "Signed-off-by: " line, I reserve the right to kindly
reject your patch.
Make sure to test-compile your patchset and, if available, run tests.
Make sure to test-compile your patchset and run tests if there are any for the
code you changed.
## Prerequisites
@ -32,21 +30,6 @@ though you do not have to have the `nix` package manager installed to build
imag.
Everything else will be done by `cargo`.
Note that this software is targeted towards commandline linux users and we do
not aim to be portable to Windows or Mac OSX (though I wouldn't mind merging
patches for OS X compatibility).
If you want to build the documentation (you don't have to) you'll need:
* pandoc
* pandoc-citeproc
* texlive
* lmodern (font package)
* (gnu) make
All dependencies are installable with the nix package manager by using a
`nix-shell`, if you have the nix package manager installed on your system.
## Commit guidelines
@ -54,9 +37,12 @@ Make sure your patchset does not contain "Fixup" commits when publishing it, but
free to send "Fixup" commits in the review process.
If squashing fails I will come back to you.
We do not follow some official Rust styleguide for our codebase, but we try to
write minimal and readable code. 100 characters per line, avoid noise in the
codebase, ... you get it.
Also ensure that each commit has
[a "Signed-off-by: " line](https://stackoverflow.com/questions/1962094/what-is-the-sign-off-feature-in-git-for).
By adding that line, you agree to our
[developer certificate of origin](#developer-certificate-of-origin).
If you do not add the "Signed-off-by: " line, I reserve the right to kindly
reject your patch.
## Code of Conduct