Status and Roadmap
==================

Project Status
--------------

Roll was first published on GitHub on 8 February 2024 and first released on
the QGIS plugin website on 13 March 2024.

As of version 0.3.3, Roll is no longer considered experimental. As of version
0.4.6, it is compatible with Qt 6 and therefore ready for QGIS 4.0. As of
version 0.7.0, the project includes substantial Numba-based optimization for
binning from templates and binning from geometry.

Current Characteristics
-----------------------

Roll uses memory-mapped analysis storage instead of a relational database for
full binning output. This matches the project workload better than row-based
storage with indexing and transaction overhead.

The plugin works best on one or two QHD displays or larger. Large trace tables
are handled in chunks to avoid overwhelming the Qt model/view system with very
large in-memory table allocations.

Project Size
------------

On 6 May 2026, the project contained:

* 27,482 production Python source lines across 109 files;
* 6,834 test Python source lines across 31 files; and
* 34,316 total Python source lines across 140 files.

For context:

* total Python lines including blanks and comments: 50,749;
* non-blank Python lines: 40,551; and
* the single ``.ui`` file adds 1,703 non-blank XML lines, although that is not
  included in the Python SLOC count.

Experimental Code Flag
----------------------

Roll currently exposes a ``use experimental code`` setting. This allows newer
binning and geometry-generation routines to be tested in realistic workflows
before they fully replace legacy implementations.

This split exists because survey behavior depends on many interacting factors,
including blocks, templates, seeds, seed types, and geometry patterns. A safer
incremental rollout is therefore more useful than a hard cut-over.

To Do
-----

Current roadmap items include:

* improve analysis capabilities, including ideas around multiple suppression
  and DMO smear; and
* expand the 3D layout view introduced in version 0.6.8.
* expand Sphinx documentation