Paste v2 is up! Published the 2019-12-12 [paste]: https://paste.artemix.org/ In this article, I'm gonna introduce the changes that came with the second major release of the [paste][paste] ephemeral pastebin tool. ## Changelist ### Refactors - cleaned up data storage providers and UoWs - isolated form validation, defined proper types - optimized view filters - isolated configuration - changed router library - simplified and disambiguated key id format - unified error handling - updated code to Go 1.13 - re-wrote the logging ### New features - integrated second-server prometheus monitoring - now logging HTTP requests - now supporting and recommending `.toml` configuration format - now able to provide the configuration folder path through a CLI argument - now using a common generic HTTP error page design and format - now providing a markdown-rendering service ### Deprecated features - deprecating the `.yaml` configuration format, due to its ambigous format. Use `.toml` instead. ## Dev' comment Paste needed some fresh air, especially since the version was quickly (i.e. badly) done, with lots of bad practices, clunky code, and hard-to-maintain choices. The first step consisted on cleaning pretty much the entire code-base. Once that was done, I decided to provide the two "small" features: - the CLI argument, to be able to customize where the configuration would be searched; - the prometheus statistics, to be able to have a nice dashboard to look at. Discussing with a friend made me realise the void that are pastebin tools for markdown content. So, I decided to implement a dumb commonmark view, as proof of concept. Which means that paste now supports Markdown rendering! The last step was about error pages. Before this change, you'd end up on a crashed `text/plain; charset=ascii` page that would just dump the error without anything else. I decided to make some quick'n'dumb generic HTML error page for 404, 500, etc.