Title: MAT2 0.3.0
Date: 2018-08-03 22:20

There is a new version of MAT2, the [0.3.0](https://0xacab.org/jvoisin/mat2/tags/0.3.0),
with some interesting changes and a [new logo]({static}/images/mat2/mat2_logo_new.png)!

- Better handling of office files: revisions and thumbnails are removed
- Resilience on corrupted files: MAT2 is now failing in a
	graceful way as early as possible on corrupted files.
- 100% code coverage, including branches, as demonstrated in the
  [continuous integration](https://0xacab.org/jvoisin/mat2/pipelines). This
	helped a lot to fix corner-case issues.
- MAT2 is now [available for fedora](
	https://copr.fedorainfracloud.org/coprs/atenart/mat2/ ) thanks to the work
	of [atenart](http://ack.tf)
- The continuous integration is using various linters (
  [mypy]( http://mypy-lang.org/ ), [bandit]( https://bandit.readthedocs.io ),
	[pyflakes]( https://github.com/PyCQA/pyflakes ),
	[pylint]( https://www.pylint.org/ )).
  They didn't find many issues, but they might prevent some from getting
	introduced.
- `libmat2` is no longer using `print` to show messages, but uses a proper
	logging system.
- There is now a flag to ask MAT2 if it has all the dependencies that it needs
	to work.
- The logo was [originally done]( https://0xacab.org/mat/mat/issues/11524 )
  by someone called *marie rose* for the first iteration of MAT,
  but never actually used. When I asked
	[Dennis Fink](https://0xacab.org/metalgamer) (MAT's maintainer while I was
	*MIA*) if he was ok with me deprecating MAT in favour of MAT2, he said that
	he would like for MAT2 to use this logo instead. 

But there is also a new major exciting feature!

# Nautilus plugin

As said in the [previous blogpost about MAT2]({filename}/metadata/mat2.md),
<abbr title="Graphical User Interface">GUI</abbr> are **hard** to design,
and this is definitively out of my area of experience. This is was, as announced,
MAT2 now comes with a file manager extension.

Most of the MAT2 users are using it on [Tails]( https:?/tails.boum.org), which
is using [GNOME]( https://www.gnome.org/ ) as a desktop environment. And so are
Fedora, Ubuntu and Debian, which are the most popular Linux distributions.  The
file manager of GNOME is [Files](https://en.wikipedia.org/wiki/GNOME_Files),
also known as *Nautilus*, and is offering [python3
bindings](https://wiki.gnome.org/Projects/NautilusPython/).

A friend of mine, [atenart](https://github.com/atenart) did most of the actual
work, including writing several prototypes, while I only did the boring part:
polishing, background processing and adding bells and whistles. Meaning
that if you find the extension nice, you should thank him, and if you find
bugs, they're mine.

And here is what it's looking like:

## Contextual menu
![[Mat2's contextual menu]({static}/images/mat2/mat2_nautilus_menu.png)]({static}/images/mat2/mat2_nautilus_menu.png)

## Shiny progressbar
![[Mat2 cleaning files]({static}/images/mat2/mat2_nautilus_cleaning.png)]({static}/images/mat2/mat2_nautilus_cleaning.png)

## Sad notification
![[Mat2 notification upon being unable to clean everything]({static}/images/mat2/mat2_nautilus_failed_cleaned_notif.png)]({static}/images/mat2/mat2_nautilus_failed_cleaned_notif.png)

## Fancy popup to display failure
![[Mat2's alert popup to display failed cleans]({static}/images/mat2/mat2_nautilus_failed_popup.png)]({static}/images/mat2/mat2_nautilus_failed_popup.png)


# Conclusion

I'm pretty happy about the steady pace of development, got some interesting
feedback, a realistic roadmap, volunteers to package'n'downstream, and I'm
having fun writing code again: hurray.

As usual, help is [more than welcome](https://0xacab.org/jvoisin/mat2/issues?label_name%5B%5D=good+first+issue).
