Version 3 of Runnerty Now Available 🚀

Álvaro A. Quirós
Runnerty
Published in
5 min readMar 16, 2021

After 1 year of development, we launch to the world a new version of Runnerty, version 3. A year of development is a lot and even more if it is in the hands of our CTO,🧑‍✈ Carlos Carmona.

Pincha aquí si prefieres leerlo en español.

We had several lines of development open, we wanted to refactor some features completely, make that code more readable in some points, more modular in others and optimize it, we wanted to bring out new features, but, above all, we wanted to make it more “low code”, easier for us, the developers. Without forgetting that Runnerty manages millions of daily processes, we don’t want ~~too many~~ breaking changes!

💡 You can start using Runnerty now and start developing your workflows and having your system monitored and under control.

Refactor and optimization

We still had some Async / Await pending… test and update our dependencies, and in passing give a review to the code in general, to see that everything is nice.

We have developed those missing tests and took the opportunity to improve the performance in some points that we had identified (and in some that we didn’t ☺️).

By the way we have introduced Synk as a tool for code security monitoring, we had been testing it for a while and we found it useful for the project.

New features

Interpreter

Runnerty is provided with an interpreter that allows to execute functions on any data involved in the flow, operations with dates, mathematical, cryptographic or even evaluation operations that are often used in the definition of complex dependencies. In this new version, we have optimized our interpreter and we have added a couple of new functions:

  • UUID (v1–5)
  • HTML ESCAPE/UNESCAPE

Calendars

We have improved the complete calendar system, which allows our workflows to take into account holidays, for example. We have improved the access, reading and parsing of ICS calendars and added URL access to them.

The output data

The treatment of the output data of a process is something very interesting when defining our workflows, as it allows you to prepare the input for the next process. In Runnerty V3, we now have the possibility to filter and sort the output of a process directly in its schedule 🤩

Namespaces

Namespaces to contextualize our chains. Now we can make Runnerty launch only the workflows of a certain Namespace or the other way around, excluding one or several Namespaces. Also in Runnerty Platform you will have filtering functionalities by Namespace to display only the ones you are interested in.

runnerty — namespace SALES,DWH

runnerty — exclude_namespace EXPERIMENTAL

Metadata

Metadata to specify relevant chain information. Very interesting for the maintenance of any platform, if a chain fails, who do I call, can I re-launch it, is it a priority?

Improvements for development with Runnerty

But here’s where we’re really going to notice the difference, no doubt about it.

Improvements in documentation

Everything starts with documentation. First we changed the tool we used to document, we needed to be more agile in this sense, now we use Docusaurus, and we love it. Now we have it easier and we have added documentation versioning.

We have tried to make it clearer and more precise. In many cases we have introduced examples and we are working hard on the blog so that there are more and more use cases.

Clearer (and prettier) error and warning messages

Our cli will warn us if there is a newer version of Runnerty and if there is any incompatibility with the NodeJS version. We have also improved some messages to be more descriptive, for example, if we try to force the execution of a chain that does not exist.

Scaffolds 🪄

And, what for me is a “game changer”, the introduction of scaffolds. Now, through the Runnerty CLI, you will be able to add modules to your project.

Remember that you can install runnerty-cli or use it directly with npx

  1. Install Runnerty & Runnerty CLI

npm i -g runnerty runnerty-cli

2. Create your Runnerty project

npx runnerty-cli new my-awesome-project

3. Inside the project folder …

npx runnerty-cli add @runnerty/executor-cypress

And our project will have the module installed in our package.json, with a configuration example in our config.json and a sample workflow to include it in our workflows 🦄

With Runnerty, its CLI and this module, we can have our website or platform monitored in a matter of a few minutes 🚀, I owe you that post demonstrating it!

If you are interested and want to know how to start using Runnerty, here is an article we wrote a few days ago.

You can give your feedback in twitter or github ⭐️

#Enjoy

--

--

Álvaro A. Quirós
Runnerty

Runnerty CEO | Frontend Lead at @CodertyStudio - Organizer of @ngSpain, @AngularAlmeria & @AlmeriaJS!