Skip to main content

Module version

Module version 

Source
Expand description

Which CSP version saved a file, and what older versions will make of it.

CSP writes no version number of its own (Project.ProjectInternalVersion is “1.1.0” in every file from 2017 to 2026). What changes is the schema registry: each CSP release registers every column it knows in ParamScheme, and labels a file has are never removed. So the registered labels tell the newest CSP generation that saved the file.

How an older file shows that a newer CSP saved it again depends on the saver: CSP up to 2.x (and .cmc saves up to 4.2) appended the new labels after the old rows, while CSP 3.0 and newer rewrite a .clip’s registry in their own order, keeping labels they retired (CSP 5.1.4 was seen doing this). Appended blocks and retired labels both mark a resaved file.

Since 1.12 CSP marks its own file format level with Layer.Has1_0_N columns (N = 6 … 19 so far). They are registered with lock type 4 and lock scope 2 (the canvas): a CSP that meets a set column it does not know locks that scope, or only the layer when the alternative lock (1, 0, from Has1_0_8 on) is registered. Without the alternative it locks the whole canvas, unless the file carries version compatibility information (Preferences > File > Version compatibility, since 1.13.0).

The generation table and the CSP versions are learnt from the corpus and CSP’s release notes; see docs/spec/09-versions.md.

Structs§

Generation
A group of CSP releases that register the same new columns.
VersionInfo
What a file tells about the CSP versions that saved it.

Constants§

GENERATIONS
Known generations, newest first. A file belongs to the first one whose markers are all registered; files without any marker are older than all.
RETIRED_LABELS
Labels older CSP versions registered and newer ones no longer do, with the first generation that stopped registering them. They stay in files made before (saves never remove labels).

Functions§

generation_of
The newest generation whose markers are all in labels.