Announcing Unrefined's Chrome Extension

by FPSD — Mon 24 April 2023


Project

Project name: Unrefined

Project URL: https://unrefined.one

Project sources: https://gitlab.com/fpischedda/unrefined

Extension sources: https://gitlab.com/fpischedda/unrefined/-/tree/main/browser-extension

Chrome Extension for EMs is out!

After a bit of testing, the new Chrome Extension is out, targeting Unrefined's production environment!

What was stopping its release was that I had no build script in place to package the extension, and asking to install it by pulling the repo and loading it manually is a bit too much, even for Engineering Managers.

It is still not an "official" extension so, to work, it must be installed using developer mode. I am planning to put it in the Extensions Store at some point but better to wait until it will have a least few rounds of tests.

Here is how to install an extension in developer mode.

You can get it from this link. It will be in Unrefined's header after the next release.

How it works

After installing it, a user can start and manage a refinement session directly from the extension's UI, without going to Unrefined web application.

Each time a new ticket is refined, a link to the estimation page is copied to the clipboard so that the EM can share this link with the Engineers; actually this is needed just the first time a refinement session is started, when estimating new tickets, the estimation pages will update automatically, using SSE. It may still be helpful to share the link again, in case someone else will join an already started session, or if someone closes their browsers.

I am planning to record a couple of videos to show a session with and without the use of the extension. (Never done that, it will be a mess for sure…)

Build script

A few words about the build script; I needed something extremely simple to:

Another requirement for me was to try to not introduce other tools for such a simple task.

Fortunately the web application is build using tools.build which is the official, builtin, build tooling provided by Clojure, so the requirement to not reach out to other tools has been satisfied!

It required literally few minutes to hack a target for the extension, which does just what I need:

The API of tools.build library is simple and easy to reason about, plus there are many example out there from which to get "inspiration".

Next steps, just QoL improvements for my release process:

I am still not using any containerized environment and I am postponing this step for when there will be a real benefit; so far my small VPS is more than enough to run this project (and a couple of others BTW).

Reference change set

To get an idea of the changes required for the build script head over to this MR.

Closing words

I think that the Chrome Extension is a nice quality of life improvement for EMs using Unrefined. I am eager to get feedback on it and work on its next iterations, there is a lot of potential there!

Remember to subscribe to the RSS feed to get updates on my progress, and stop by to say "hello" on my social media accounts! Yes those are not linked here yet, but chances are that you are getting to this page from my posts ;)