Skip to content

Commit

Permalink
release v0.7.0 (#433)
Browse files Browse the repository at this point in the history
* update codebase with email lib changes (#431)

update himalaya-lib, rename remaining mbox vars

add missing methods from lib

update changelog

* fixed missing folder aliases #430

* improve README links

* fix README repology link

* fix README repology table

* fix README repology table 2

* center README repology table

* fix README cosmetic issues

* fix README cosmetic issues 2

* fix README title

* fix README wiki links

* fix lock file

* prepare v0.6.2

* fix ci

* try some musl builds #356

* add musl build to artifact #356

* add musl build to deployment pipeline #356

* migrate clap v4, add man command #419

* add option to choose color manually #407

* update links and badges

* update matrix badge

* add github release version badge

* update badges links

* fix code bloc type

* fix tests

* fix cargo lock

* generate all man pages for all subcommands #419

* fix query and headers arg parsers

* fix invalid flags and options due to clap v4 migration

* fix tests

* remove -l|--log-level option

* refactor contributing guide

* update lib

* fix flags string printer

* make commands read, attachments, copy, move and delete accept multiple ids

* fix ids arg parser

* fix flags subcommands conflicts between ids and flags

* flip back copy and move arguments

* add issue template (#439)

* update lib, prepare for sync feature

* update himalaya lib, fix senders and config

* update lock file himalaya lib

* fix sync enabling issues

* fix wrong imap backend init in main file

* fix notmuch backend post sync feature

* configuration wizard (#432)

* make DeserializedConfig::path more robust

With this change, himalaya uses the crate `dirs` in order to follow XDG
specifications on Unix, Known Folder on Windows and Standard Directories
on MacOS. This gives us much smoother cross-platform support. It still
has the same fallbacks (`$HOME/.config/himalaya/config.toml` and
`$HOME/.himalayarc`.)

Additionally, this commit removes a bit of in-house code-bloat.

* add wizard entrypoint and basic structure

* wip

* feat: impl Serialize for all DeserializedConfigs

* feat: select default account and write to file

* feat: add SMTP part of wizard

* build: update lockfile

* refactor: separate out multiple files for wizard

* style: friendlier and prettier messages

* feat: add maildir part of wizard

* feat: add notmuch part of wizard

* chore: clippy lints and reorder prompts

* fix: contrived solution to serializing None values

* fix: allow empty Option field when deserializing

* style: address PR review comments

* fix: utilize notmuch lib in finding database path

* fix notmuch wizard

---------

Co-authored-by: Clément DOUIN <[email protected]>

* add account sync progress bar

* improve sync spinner

* make the sync dry run flag show patches without applying them

* update himalaya lib, increase imap session pool size

* add disable cache flag

* add nlnet logo in readme

* update himalaya lib deps, make use of sync reports

* prepare v0.7.0

* bump rustc v1.67.0 and clap v4.1.4

* bump himalaya lib v0.5.1, fix flake lock file

---------

Co-authored-by: janabhumi <[email protected]>
Co-authored-by: Knut Magnus Aasrud <[email protected]>
  • Loading branch information
3 people authored Feb 8, 2023
1 parent bda37ca commit 694173b
Show file tree
Hide file tree
Showing 52 changed files with 3,091 additions and 1,601 deletions.
17 changes: 17 additions & 0 deletions .github/ISSUE_TEMPLATE/do-not-open-issues-on-github.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
name: Do not open issues on GitHub
about: Instead send an email at ~soywod/[email protected]
title: ''
labels: invalid
assignees: ''

---

Himalaya is slowly migrating away from GitHub. The new bug tracker is
now on [sourcehut](https://sr.ht/). You can submit an issue either by:

* Sending an email at
[~soywod/[email protected]](mailto:~soywod/[email protected])
(it is the simplest since you do not need to create any account)
* Submitting [this form](https://todo.sr.ht/~soywod/pimalaya) (you
need a free sourcehut account)
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
release_name: ${{ github.ref }}
draft: false
prerelease: false
deploy_github:
deploy_linux_macos_windows_github:
runs-on: ${{ matrix.os }}
needs: create_release
strategy:
Expand All @@ -47,7 +47,7 @@ jobs:
uses: actions-rs/cargo@v1
with:
command: check
- name: Build release
- name: Builds release
uses: actions-rs/cargo@v1
with:
command: build
Expand All @@ -67,6 +67,26 @@ jobs:
asset_path: himalaya.tar.gz
asset_name: himalaya-${{ matrix.os_name }}.tar.gz
asset_content_type: application/gzip
deploy_musl_github:
runs-on: ubuntu-latest
needs: create_release
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Build release
run: |
docker run -v "${PWD}:/volume" --rm -t clux/muslrust:stable cargo build --release
- name: Compress executable
run: tar czf himalaya.tar.gz -C target/x86_64-unknown-linux-musl/release himalaya
- name: Upload release asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create_release.outputs.upload_url }}
asset_path: himalaya.tar.gz
asset_name: himalaya-musl.tar.gz
asset_content_type: application/gzip
deploy_crates:
runs-on: ubuntu-latest
needs: create_release
Expand Down
22 changes: 0 additions & 22 deletions .github/workflows/nix-build.yaml

This file was deleted.

38 changes: 38 additions & 0 deletions .github/workflows/nix.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: nix

on:
pull_request:
push:
branches:
- master

jobs:
nix-build:
runs-on: ubuntu-latest
steps:
- name: Checkouts code
uses: actions/checkout@v3

- name: Caches Nix store
uses: actions/cache@v3
id: nix-cache
with:
path: /tmp/nix-cache
key: nix-${{ hashFiles('**/flake.*') }}

- name: Installs Nix
uses: cachix/install-nix-action@v18
with:
extra_nix_config: |
experimental-features = nix-command flakes
- name: Imports Nix store cache
if: ${{ steps.nix-cache.outputs.cache-hit == 'true' }}
run: nix-store --import < /tmp/nix-cache

- name: Builds the project
run: nix build

- name: Exports Nix store cache
if: ${{ steps.nix-cache.outputs.cache-hit != 'true' }}
run: nix-store --export $(find /nix/store -maxdepth 1 -name '*-*') > /tmp/nix-cache
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
-p 3465:3465 \
-p 3993:3993 \
-p 3995:3995 \
greenmail/standalone:1.6.2
greenmail/standalone:1.6.11
- name: Install rust
uses: actions-rs/toolchain@v1
with:
Expand Down
47 changes: 46 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,44 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [0.7.0] - 2023-02-08

### Added

* Added offline support with the `account sync` command to synchronize
a backend to a local Maildir backend [#342].
* Added the flag `--disable-cache` to not use the local Maildir
backend.
* Added the email composer (from its own
[repository](https://git.sr.ht/~soywod/mime-msg-builder)) [#341].
* Added Musl builds to releases [#356].
* Added `himalaya man` command to generate man page [#419].

### Changed

* Made commands `read`, `attachments`, `flags`, `copy`, `move`,
`delete` accept multiple ids.
* Flipped arguments `ids` and `folder` for commands `copy` and `move`
in order the folder not to be considered as an id.

### Fixed

* Fixed missing folder aliases [#430].

### Removed

* Removed the `-a|--attachment` argument from `write`, `reply` and
`forward` commands. Instead you can attach documents directly from
the template using the syntax `<#part
filename=/path/to/you/document.ext>`.
* Removed the `-e|--encrypt` flag from `write`, `reply` and `forward`
commands. Instead you can encrypt and sign parts directly from the
template using the syntax `<#part type=text/plain encrypt=command
sign=command>Hello!<#/part>`.
* Removed the `-l|--log-level` option, use instead the `RUST_LOG`
environment variable (see the
[wiki](https://github.com/soywod/himalaya/wiki/Tips:debug-and-logs))

## [0.6.1] - 2022-10-12

### Added
Expand Down Expand Up @@ -436,7 +474,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
* Password from command [#22]
* Set up README [#20]

[unreleased]: https://github.com/soywod/himalaya/compare/v0.6.1...HEAD
[Unreleased]: https://github.com/soywod/himalaya/compare/v0.7.0...HEAD
[0.7.0]: https://github.com/soywod/himalaya/compare/v0.6.2...v0.7.0
[0.6.2]: https://github.com/soywod/himalaya/compare/v0.6.1...v0.6.2
[0.6.1]: https://github.com/soywod/himalaya/compare/v0.6.0...v0.6.1
[0.6.0]: https://github.com/soywod/himalaya/compare/v0.5.10...v0.6.0
[0.5.10]: https://github.com/soywod/himalaya/compare/v0.5.9...v0.5.10
Expand Down Expand Up @@ -592,6 +632,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
[#335]: https://github.com/soywod/himalaya/issues/335
[#338]: https://github.com/soywod/himalaya/issues/338
[#340]: https://github.com/soywod/himalaya/issues/340
[#341]: https://github.com/soywod/himalaya/issues/341
[#342]: https://github.com/soywod/himalaya/issues/342
[#344]: https://github.com/soywod/himalaya/issues/344
[#346]: https://github.com/soywod/himalaya/issues/346
[#352]: https://github.com/soywod/himalaya/issues/352
[#356]: https://github.com/soywod/himalaya/issues/356
[#419]: https://github.com/soywod/himalaya/issues/419
[#430]: https://github.com/soywod/himalaya/issues/430
60 changes: 33 additions & 27 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,41 +2,47 @@

Thank you for investing your time in contributing to Himalaya!

In this guide you will get an overview of the contribution workflow from opening an issue, creating a PR, reviewing, and merging the PR.
## Development

## New contributor guide
The development environment is managed by
[Nix](https://nixos.org/download.html). Running `nix-shell` will spawn
a shell with everything you need to get started with the tool:
`cargo`, `cargo-watch`, `rust-bin`, `rust-analyzer`

To get an overview of the project, read the [README](README.md). To get more information about the project, read the [wiki](https://github.com/soywod/himalaya/wiki).
```sh
# starts a nix shell (the first launch may take a while)
$ nix-shell

## Getting started
# builds the CLI
$ cargo build

### Issues
# runs the CLI
$ cargo run -- list
```

#### Create a new issue
## Contributing

If you spot a problem with the docs, [search if an issue already exists](https://github.com/soywod/himalaya/issues). If a related issue doesn't exist, you can open a new issue using a relevant [issue form](https://github.com/soywod/himalaya/issues/new/choose).
If you find a **bug**, please send an email at
[~soywod/[email protected]](mailto:~soywod/[email protected]).

#### Solve an issue
If you have a **question**, please send an email at
[~soywod/[email protected]](mailto:~soywod/[email protected]).

Scan through our [existing issues](https://github.com/soywod/himalaya/issues) to find one that interests you. You can narrow down the search using `labels` as filters. If you find an issue to work on, you are welcome to open a PR with a fix.
If you want to **propose a feature** or **fix a bug**, please send a
patch at
[~soywod/[email protected]](mailto:~soywod/[email protected])
using [git send-email](https://git-scm.com/docs/git-send-email) (see
[this guide](https://git-send-email.io/) on how to configure it).

### Make Changes
If you want to **subscribe** to the mailing list, please send an email
at
[~soywod/pimalaya+[email protected]](mailto:~soywod/[email protected]).

#### Make changes in the UI
If you want to **unsubscribe** to the mailing list, please send an
email at
[~soywod/pimalaya+[email protected]](mailto:~soywod/[email protected]).

Click **Make a contribution** at the bottom of any docs page to make small changes such as a typo, sentence fix, or a broken link. This takes you to the `.md` file where you can make your changes and [create a pull request](#pull-request) for a review.

#### Make changes locally

First, follow the instructions on [how to install Himalaya from sources](https://github.com/soywod/himalaya/wiki/Installation:sources). Then, create a working branch and start with your changes!

### Commit your update

Commit the changes once you are happy with them. Commit messages follow the [Angular Convention](https://gist.github.com/stephenparish/9941e89d80e2bc58a153), but contain only a subject. The subject can be prefixed with a custom context like `msg: `, `mbox: `, `imap: ` etc.

> Use imperative, present tense: “change” not “changed” nor
> “changes”<br>Don't capitalize first letter<br>No dot (.) at the end
### Pull Request

When you're finished with the changes, create a pull request, also known as a PR.
If you want to **discuss** about the project, feel free to join the
[Matrix](https://matrix.org/) workspace
[#pimalaya](https://matrix.to/#/#pimalaya:matrix.org) or contact me
directly [@soywod](https://matrix.to/#/@soywod:matrix.org).
Loading

0 comments on commit 694173b

Please sign in to comment.