Requirements
No. 007In the alpha
Section titled “In the alpha”Your system
Section titled “Your system”| System | Builds | Oldest version |
|---|---|---|
| Linux | x86_64 and arm64 | any distribution: the programs are static, with no system library to match |
| macOS | Apple silicon (arm64) and Intel (x86_64) | macOS 11 on Apple silicon, macOS 10.12 on Intel |
| Windows | x86_64 | Windows 10 |
On macOS and Windows, cube check runs its own checks and skips the kit’s
checks, and cube setup, cube doctor and the git hooks refuse. Linux has
everything. See the known limits.
Programs The Cube uses
Section titled “Programs The Cube uses”| Program | Needed for | Version |
|---|---|---|
| git | cube adopt, cube check (it compares with your last commit), cube setup and the hooks |
2.24 or later (the hooks include pre-merge-commit, which git 2.24 added) |
| Python 3 with PyYAML | the kit’s own checks (the starter kit’s validator and its other Python tools), on Linux | Python 3.10 or later, PyYAML 6 |
| gh (the GitHub CLI) | nothing in the alpha: cube setup records where it is, and the hooks never run it |
optional |
cube itself is one program with its two tools (cube-index, cube-graph)
beside it. The explorer, the index and the graph need nothing else, and
cube makes no network request in the alpha.
cube setup and the hooks use git and python3 only from absolute folders
of your PATH, and only when your account or root owns them (see
hooks and the ratchet).
The installers and the uninstallers
Section titled “The installers and the uninstallers”Linux and macOS (install.sh, uninstall.sh) |
Windows (install.ps1, uninstall.ps1) |
|
|---|---|---|
| Shell | a POSIX sh |
Windows PowerShell 5.1 or PowerShell 7 |
| Download | curl or wget |
built in |
| Check | sha256sum or shasum; minisign if you want the signature checked (optional); jq is used when present (optional) |
built in; minisign on PATH if you want the signature checked (optional) |
| Unpack | tar and the usual tools (uname, sed, awk, grep …) |
built in |
| Uninstall | git to unhook your knowledge bases, find for --find |
git to unhook your knowledge bases |
Code signing
Section titled “Code signing”The programs are not code-signed, and there is no plan to sign them yet. What that means on each system:
- Linux: nothing; Linux has no such check.
- macOS: the installer downloads with curl, which does not quarantine
the files, so Gatekeeper does not check them. The Apple silicon programs
carry the ad-hoc signature that macOS requires there. A copy downloaded
with a web browser is quarantined and does not open; use the install
command, or remove the quarantine yourself
(
xattr -d com.apple.quarantine <file>). - Windows: the install command does not mark the files as downloaded from the internet, so SmartScreen does not stop them; a zip downloaded with a web browser can bring a SmartScreen prompt. With Smart App Control on (a Windows 11 protection, usually on only after a fresh install), Windows runs no unsigned program, so The Cube does not run. Whether to turn Smart App Control off is your choice; The Cube cannot work around it.
The network
Section titled “The network”Only the installers go online. They fetch the channel manifest from this site, the archive from github.com, and GitHub’s record of the release from api.github.com. GitHub allows 60 anonymous API calls an hour from one address; see install and verify for what to do behind a proxy or offline. What goes where, and what the beta’s update check will send: privacy.
What changes later
Section titled “What changes later”The plan for the next stages, as it stands. Nothing in this table is built yet, and it can still change.
| After the alpha | Beta | Stable | |
|---|---|---|---|
| Python | the kit’s checks run in a pinned Python environment that cube setup builds once with uv; the hooks then need neither uv nor the network |
the Python tools are ported to programs inside The Cube; Python is left only for the few tools marked to wait | no Python: the Python tools are retired |
Where cube lives |
a root-owned install (/usr/local/bin/cube, set up once with administrator rights) replaces the per-account opt-in |
the hooks also run on macOS and Windows, once their ownership checks exist | the same |
| Updates | cube self update checks the release’s signature itself, so minisign is no longer needed for updates; a daily update check: one request a day for the signed manifest, no usage data, off with update.check = false or CUBE_NO_UPDATE_NOTIFIER=1 (privacy) |
self update and rollback proven on Windows and Linux | |
| git | signed commits for the acts only a human may make (git’s SSH signing) | mergiraf as an optional merge driver for YAML and Markdown |
the same |
| gh | only for private kits | the same |
The systems and the git version stay as above.