Vista
Vista shows where Janela is heading.
Janela is alpha. It works, it is tested against a real Rails application in a real browser, and its public surface has changed in three of the last four releases. This page says what has to be true before that stops, what is left before 1.0, and what is deliberately not coming. The reasoning behind it is ADR 037.
What 1.0 means
Not that Janela is finished. ADR 001 commits the project to the load-bearing 5% of a BI tool and to staying small enough to fork, so a 1.0 measured against what a commercial tool ships would never arrive.
1.0 is three claims you can check.
The public surface stops moving. Everything listed as the contract in
Theming Janela, the measures and dimensions DSL, janela_pane
and janela_frame, the pane URL shape and the dashboard filter
parameters change only on a major version after 1.0. Until then they can
change in any release, and every change of that kind carries an entry in
UPGRADING.md.
A pane can be read. Janela draws tables, bars, lines, doughnuts and pies. A table row can carry context beside its label, a single number says how prominent it is, a chart has a height that suits the page, its axis reads in the measure’s own format, a bar can show its value, and a category pane can be put in the order that reads. Those were not extra features. They were the 5% not finished, and most of them were found by people installing the gem rather than reading it.
The doctor can be trusted. rails janela:doctor checks an
installation for the mistakes that produce a dashboard showing numbers
nobody should see. Every one of its checks now has a test that makes it
fire and one that leaves it quiet, because a check nobody can prove is
working is a check nobody should rely on.
In 1.0
The near ground is clear. Every issue that was in 1.0 has shipped: chart height, a ratio measure, single value prominence, companion columns, Sprockets hosts, and how the project is run. 0.13.0 added tools an agent can use (ADR 053). 0.14.0 followed: a chart’s axis reads in the measure’s own format, so a ratio is a percentage down the side as well as in the tooltip, and a bar chart can show each bar’s value (ADR 054). 0.15.0 followed that: a category pane can be sorted by its measure either way or by its label, so a bottom five and a chart in date order can be drawn (ADR 055). 0.16.0 followed that: a time pane can be a running total and carry more series on two axes, and a pane can ignore a filter its model cannot apply (ADR 062, ADR 063). All four came from a real install, and the last three add a pane option and a URL parameter, so the soak starts again from 0.16.0. What 1.0 waits on now is a week of real installs of 0.16.0 (#71), since much of that surface was added in the last days and has only met this repository. When nothing surprising comes back, the surface is frozen and 1.0 is tagged. The agent tools are the one new piece of surface: the read tools are frozen at 1.0, and the write tools are frozen with them only if a real host has used them by the end of that week. Otherwise they wait for 1.1.
Progress is tracked on the 1.0 milestone.
Horizonte
The lights far off at the horizon. Wanted, not blocking a stable release, and being on this list is not a refusal.
- Drilling down on time panes (#65). Clicking a month now filters every other pane to it (#18). Narrowing that pane itself to the weeks within it is a different gesture, with its own questions about getting back out and about the URL, and it needs a decision record before any code.
- Telling a frame to refresh (#68). One action a host’s own timer or push can call, and no timer or stream of Janela’s own (ADR 048). Additive, so it can land after 1.0.
- A frame toolbar (#77). A small strip of standard controls a host does not have to build, starting with full screen. Additive, so it can land after 1.0, and it needs a decision record first.
- A theme panel in the demo (#84). Setting how every pane is presented, starting with colours, as a page of controls over the properties a theme already publishes. The demo, not the gem, and any property beyond colour needs a decision record first.
- A command palette for the demo (#41). The demo site, not the gem.
- A scroll drift on the gallery page (#45). Cosmetic, demo only, and possibly not worth fixing.
Not coming
The sky above the horizon is empty, and that is the honest part of the picture. Janela is meant to be small enough that forking it and adding your own piece is a normal way to use it. These are the things you would be adding yourself, and each is left out because something you already run does it better.
Natural-language query. A separate data warehouse. A row-level-security subsystem, because your application already has Pundit or CanCanCan and Janela reads through it. A refresh-scheduling interface, because you already have a scheduler and snapshots are an ActiveJob (a way to tell a frame to refresh, which your scheduler can call, is #68). An embedding SDK. A mobile application. Print and paginated reports. A drag-and-drop visual dashboard designer, though frames and panes are database records, so an application can build its own editor on top of them.
Arranging panes on a page is your application’s. The grid it needs ships
as a handful of classes (columns, gap and span, in
Theming Janela), and a stored frame draws it by itself, but a
helper that lays out a page beyond that is not coming
(#29, closed).
How this page stays honest
It is updated when a release lands, not on a schedule, and it carries no dates. A roadmap with dates on a project this size would be wrong within a fortnight and would train you to ignore it. If something here has been true for a long time and nothing has moved, that is worth reading as the signal it is.