Unlike earlier development releases, we use the "pre"` suffix, so 1.12.14-pre3
rather than 1.12.14-dev3. This for compatibility with the version-to-string
Elisp function that some external programs use to parse version information.
New stable release 1.12.13. This contains improvements to the build process, the
Guile/Scheme binding ("SCM") and a new experimental "labels" sub-command. Let's
start with that last one.
* Labels
There's a new, experimental feature: *labels*. Labels are similar to the
existing "tags", but better integrated with both mu and mu4e,
You can search for message with a given label using 'label:', e.g
$ mu find label:tupperware
Or add/remove labels, e.g., remove the label "planet" and add the label
"dwarf-planet" to all messages that have "pluto" in their subject:
$ mu labels update "subject:pluto" --labels -planet,+dwarf-planet
Clear all labels from messages with the label "boring":
$ mu labels clear "label:boring"
Labels are only stored in mu's database, and do not write to the message file
themselves. I.e., when you remove your database, your labels are gone. However,
you can use the `mu labels export` and `mu labels import` to save/restore them;
see the mu-labels(1) man-page for details.
In mu4e, you can do the same using `mu4e-headers-mark-for-label` (bound to `l`)
and clearing with `mu4e-headers-mark-for-unlabel` (bound to 'L').
I.e., mark some messages (or the current one by default), and in the
headers-buffer type
l -planet +dwarf-planet RET
This works similar to the other marks.
There's autocompletion as well, both for search (label:) and marking (after +/-)
It's experimental, but it seems quite useful so far. See the man-page for
further details.
* SCM
The SCM/Guile bindings have been improved substantially; some common operations
are much faster (algorithmically). Also, the "glue" was added to interact with
Emacs and the "geiser" package, either with or without mu4e.
For the "plain Emacs" integraticon, see the Mu-SCM documentation, section
`Hooking up with GNU/Emacs and Geiser'.
For the mu4e integration, see the chapter `Using mu's SCM/Guile integration' in
the mu4e reference manual; or check the `mu4e-mu-scm-server' configuration
variable and the `mu4e-mu-scm-repl' command.
Future version will add more, and start answering questions like "Why would I
even want SCM bindings?!" :-)
* Building
- by default, tests are built 'lazily', i.e., only when running tests;
this speeds up the build considerably for people that don't want to run
tests (there's also -Btest=disabled of course)
- when available/found, mu now (by default) uses the system versions of CLI11
and libfmt, rather than mu's "vendored" versions.
You can influence where the build system (i.e., meson) looks through the
`PKG_CONFIG_PATH` environment variable (see the pkg-config/pkgconf man-pages),
and you can disable
mu embeds a "vendored" version of libcl11 under thirdparty/; but it's
better to use the system-package if the user has one.
So, use the system package if found or user -Duse-embedded-cli11=true is
specified.
mu embeds a "vendored" subset of the libfmt package under thirdparty; but it's
better to use the system-package if the user has one.
So, use the system package if found or user -Duse-embedded-fmt=true is
specified.
New stable version. Some small fixes and doc updates; big new thing are
the new SCM bindings (under scm/), which will replace the
long-deprecated old bindings (under guile/).
Overall:
- In 'mu init', --my-address has been renamed into --personal-address
for consistency. The old name still works.
Mu4e:
- Emacs bookmarks can be now also be created for mu4e queries; see
the mu4e-emacs-bookmark-policy defcustom
- Support dash when completing maildirs
- Add defcustom for mu4e-compose-jump-to-reasonable-place, so it can be
overridden, e.g. in compose hooks.
- In mu4e, make indexing snappier when there no new messages
SCM:
- Experimental new Guile bindings under scm/, including a reference
manual and unit tests.
This function only appeared in gmime versions newer than the minimum one we
require; since we only need this function in the new/experimental "scm", we make
the latter conditional on that function.
Fixes#2859.
Implement accessing the MIME-parts + docs + test.
Implement saving attachments to file.
Implement creating messages from files.
Refactor / rename functions to be more uniform.
Add a first version of a "transient" menu for mu4e. It's just a starting
point. It's not yet bound to any key, but you could e.g. add
(require 'mu4e-transient)
(global-set-key (kbd "C-c m") #'mu4e-transient-menu)
Single-threaded is the build-default, and seems to work well enough for
1.12.7, so remove the option to turn it off.
This is because build-options that influence such low-level/core
behavior are a pain to maintain.
Try to avoid multi-threaded operations with Xapian.
This remove the thread workers during indexing, and avoids the indexing
background thread. So, mu4e has to wait once again during indexing.
We can improve upon that, but first we need to know if it avoids the
problem of issue #2756.
Seems journal logging fails on NetBSD (no surprise), but has some
unwanted/not-fully-understood side-effects.
In any case, outside Linux there's no use in even trying to use
journald; so we don't do that anymore.
Add conditional support for syslog (requires glib 2.80).
New version 1.12.5
- Rework message composition; split off parts into mu4e-draft.el
This tries harder to maintain the current buffer as expected
- This fixes e.g. emacs-report-bug handling
- New hook mu4e-compose-post-hook for tweaking what mu4e does when
we're done with a message (after sending, cancelling, ...).
By default, it tries to close the frame if needed, and restore
the window configuration. See its docstring.
- Better handle forwarding of encoded messages
- Don't remove non-mu4e completion in composer
- Integrate iCalendar support with message-composition
- Handle mu4e-sent-messages-behavior correctly when it's a function
- Better support NetBSD
- Support some file systems that don't put the file type in d_type
- Improve documenation
Only include xapian.h in one place, so we can have consistent options.
With that in place, we can enable C++ move semantics.
We don't do anything with that yet, but we check in the meson.build file
to see if we have the required xapian version.
- query when quitting emacs with unhandled marks in a headers buffer
- fix mime-handling
- update sent handling (simplifying it)
- some internal improvements
- number of small fixes / updates
- documentation updates
- re-enable a specific database lock; this makes indexing a bit slower,
but hopefully avoids some db corruption.
- improve documentation / manpages
- add --reindex option to 'mu index'
- split off mu4e-complete-contact (for wider use)
- work around some mail rendering issues with some emacs version
- update some dependencies
- fix some build warnings on older emacsen
- fix musl build
We were using dates (in documentation, (c) notices etc) based on the
build-date; that makes it hard to do reproducible builds, so specify a
specific date in the top-level meson file, and use that throughout.