TL;DR
The Scrollcase mental model is simple:
text
write a recipe
↓
define and lock dependencies
↓
build the boxmermaid
flowchart TB
subgraph Dev ["1. Developer Workspace"]
direction TB
A["Recipe & Code"]
B["Dependencies"]
C["Scrollcase CLI"]
end
subgraph CLI ["2. Scrollcase Engine"]
direction TB
D["scrollcase lock"] --> E["scrollcase build"]
end
subgraph Package ["3. Build Result"]
direction TB
F["Runtime Box (.zip)"]
G["Signed Manifest"]
end
subgraph Consumer ["4. Consuming Application"]
direction TB
H["Download, Verify & Run"]
end
Dev --> CLI
CLI --> Package
Package --> I["Distribution"]
I["Distribution"] --> Consumer
Consumer --> L["End User"]Initial setup
- run
npm install -g scrollcaseto install the CLI - run
scrollcase init - write the recipe
- define the dependencies
- run
scrollcase lock - generate or configure the signing key
- run
scrollcase build
Normal update
- update code, version, weights, or dependencies
- re-run
scrollcase lockonly when required - run
scrollcase build
Responsibility split
Decides what the box contains, writes the recipe, defines dependencies, runs the commands, publishes releases, and implements integration in the application.
The most demanding parts are usually:
- defining a correct recipe;
- dealing with difficult scientific dependencies;
- implementing download, verification, and execution in the consuming application.
Conceptually, Scrollcase is therefore fairly linear: the developer declares the desired environment, and the tool turns that declaration into a distributable and verifiable release.
What Scrollcase simplifies
Scrollcase removes much of the repetitive work required to turn a Python environment into a distributable product.
Without a tool like this, the developer would have to manage:
- environment creation;
- exact dependency versions;
- relocatability;
- native dependencies;
- verified downloads;
- manifests;
- signatures;
- hashes;
- release structure;
- tests;
- distribution conventions.
With Scrollcase, these concerns are collected into a recipe and a small number of commands.