DaceUI provides the reusable UI parts for the DaCE workflow engine: Pyramid views, panels and Chameleon templates used to render and drive DaCE processes (process actions, state and history) in host applications. It sits on top of Pontus for view composition and forms.
The repository also ships a minimal standalone Pyramid application (paste.app_factory entry point, development.ini, buildout configuration) for developing the components in isolation.
This repository is a maintained fork of ecreall/daceui (original development by Ecréall, 2014–2018), forked in July 2026 and maintained by Michaël Launay (Logikascium). Ecréall's intellectual property was acquired by Logikascium in 2024; the license is unchanged: AGPL v3+.
This fork is part of the modernisation effort of the Nova-Ideo / KuneAgi participatory-innovation platform. The master branch is dual-stack: the library runs on the
certified legacy stack (tag legacy-golden-master) and on
Python 3.12 (phase 3 / M3) — with its FIRST test suite ever
(14 functional tests: from the DaceManager definitions to an
end-to-end HTTP render, plus the console views and the JSON endpoint;
the historical CI only smoke-imported). Coverage: util.py 76 %,
views.py 72 %, package total 81 %. See CHANGES.md
and the testing section of
docs/en/architecture.md.
- Python 3.6 — the modernisation targets Python 3.12
ecreall_daceandecreall_pontus(use the maintained forks:michaellaunay/dace,michaellaunay/pontus),pyramid_chameleon,pyramid_layout, substanced 1.0a1, waitress- Known-good dependency pins are provided in
constraints-legacy.txt, extracted from the historical nova-ideoversions.cfg(the last environment in which the whole stack was known to work together) - The buildout
sources.cfghas been repaired on this fork: the deadgit://protocol was replaced byhttps://, anddace/pontusnow point to their maintained forks
Add ecreall_daceui to install_requires in your setup.py, then edit production.ini in your Pyramid application:
pyramid.includes =
...
daceuiFor an isolated legacy development environment:
python3.6 -m pip install -c constraints-legacy.txt \
"git+https://github.com/michaellaunay/dace.git#egg=ecreall_dace" \
"git+https://github.com/michaellaunay/pontus.git#egg=ecreall_pontus" \
-e .The test suite is currently empty — writing the first tests is a roadmap item (Phases 2–3). Until then, the CI performs an import smoke check plus the (empty) historical suite:
python -c "import daceui"
python setup.py testA best-effort GitHub Actions workflow (.github/workflows/tests.yml) runs this inside a python:3.6-buster container, installing ecreall_dace and ecreall_pontus from their maintained forks. It will be stabilised during Phase 1 of the roadmap (reproducible legacy build).
Documentation lives in docs/:
Audits, design documents and the worklog are maintained in both languages. See docs/README.md for the documentation policy.
Design documents: architecture · usage scenarios (English originals; French mirrors under docs/fr/).
- nova-ideo and its variant KuneAgi
- l'agenda commun
The plan follows the Nova-Ideo modernisation audit (Logikascium, July 2026):
- Phase 1 — Reproducible legacy build ("golden master"). Frozen environment and green CI; for DaceUI, whose own suite is empty, non-regression relies on the nova-ideo functional suite plus the import smoke check.
- Phase 2 — Exhaustive documentation. Docstring pass over the package, documentation of the UI/behaviour rendering protocol shared with DaCE and Pontus, and the first characterisation tests.
- Phase 3 — Modernisation (target: version 2.0.0). Ported after DaCE 2.0 and Pontus 2.0 (bottom-up dependency order):
- Port to Python 3.12; Pyramid 2.x
- Move from the abandoned substanced 1.0a1 to the maintained, trimmed-down fork
- First real pytest suite; packaging to PEP 621 (
pyproject.toml) withuv; ruff linting; gradual typing - Retirement of the buildout files (
buildout.cfg,sources.cfg, …) in favour of the standard toolchain - Python module names (dotted paths) are frozen to preserve existing ZODB pickles
Versioning: 1.0.x = legacy maintenance on this fork; 2.0.0 = the modernised library.
This product has been translated into: French.
- Issue tracker: https://github.com/michaellaunay/daceui/issues
- Source code: https://github.com/michaellaunay/daceui
- Historical upstream: https://github.com/ecreall/daceui
The project is licensed under the AGPL v3 or later (AGPLv3+). See LICENSE.