5. Schema Changes#
All notable changes to the SiliconCompiler schema version (schemaversion)
are documented here. The schema version follows semver.
The current version is defined in siliconcompiler/schema/_metadata.py. It lived in
schema_cfg.py (as SCHEMA_VERSION) prior to 0.52.0, and moved to
schema/_metadata.py during the 0.51.5 → 0.52.0 transition.
Entries describe the actual schema/parameter changes for each version (derived from the code diffs, not the commit messages). Dates are the git commit dates of the version bump. Version numbering was not strictly linear during early development, so a few dates are non-monotonic relative to the semver ordering.
5.1. 0.57.1 — 2026-08-10#
Added
csvto the accepted values oftool,<tool>,task,<task>,format(<json,tcl,yaml>→<csv,json,tcl,yaml>). The CSV writer already existed inwrite_task_manifestbut could never be selected through the schema.
5.2. 0.57.0 — 2026-07-21#
Removed the standalone
Schematicschema class (schematic,*section) and its top-level API; schematic capture is a design-entry concern that belongs outside the build tool.
5.3. 0.56.0 — 2026-07-07#
Added value ranges/limits to numeric schema types via a new
NodeRangeTypeandint<...>/float<...>type syntax (e.g.int<0..100>,float<0.0..1.0>, open-endedint<0..>);str<...>is treated as an enum. Ranges are validated on set and encoded into the serialized type string.
5.4. 0.55.0 — 2026-07-01#
Changed the global-value key from
'global'to'*'to avoid name conflicts, with legacy read support for older manifests.
5.5. 0.54.0 — 2026-01-09#
Removed the standalone library schema;
LibrarySchema/ToolLibrarySchemanow derive fromDesign— everything is a design.
5.6. 0.53.1 — 2026-01-06#
Added the
physicalonlycell type to ASIC library cells to better support LVS/LEC netlist generation.
5.7. 0.53.0 — 2025-12-01#
Separated timing mode information from scenario information in the constraints schema to make multi-mode timing easier to work with.
5.8. 0.52.1 — 2025-10-31#
Moved libraries into a separate class to avoid extra dependency evaluations.
5.9. 0.52.0 — 2025-10-01#
Renamed the
packagefield todatarootthroughout path parameters and thefind_files/check_filepathsAPIs.Version definition moved from
schema_cfg.pytoschema/_metadata.py.
5.10. 0.51.5 — 2025-08-29#
Removed the legacy
schema_cfg.pysetup and updated the schema version flag; no substantive parameter change.
5.11. 0.51.4 — 2025-06-02#
Switched the tool schema import to a temporary placeholder (
ToolSchemaTmp) during the class migration; records now capture microsecond-resolution start/end times.
5.12. 0.51.3 — 2025-05-16#
Replaced inline FPGA and PDK parameter definitions with insertion of the separate
FPGASchemaandPDKSchemamodules; simplified the schematic/fpga section signatures.
5.13. 0.51.2 — 2025-05-13#
Removed the
schema_task()function and all task-related definitions; tool task definitions moved to a dedicatedToolSchemaclass, with scope fixes.
5.14. 0.51.1 — 2025-05-09#
Removed all PDK-related definitions from
schema_cfg.py(migrated to the separatePDKSchemamodule); fixed flowgraph scope.
5.15. 0.51.0 — 2025-05-05#
Major architecture refactor: moved from the flat
scparamdictionary model to aParameter-based object model withEditableSchema,Scope, andPerNodeenums. PDK, FPGA, and tool definitions began migrating out to separate schema modules.
5.16. 0.50.0 — 2025-02-21#
Reduced
constraint,pindimensions from three (width, length, height) to two (width, height) — a pin sits on a 2D surface.Renamed
constraint,componentheighttozheight; made componentrotationper-node; simplified thesubstratereference.
5.17. 0.49.0 — 2025-02-10#
Advanced-packaging update:
datasheet,package,<name>,footprintchanged from string tofile; added a3dmodelfile parameter.Added
constraint,component,<name>,substrateandside(enum: left/right/front/back/top/bottom); renamed componentheighttozheight.Reworked package pin metrics (e.g.
pitch→pinpitch) and pin signal mapping.
5.18. 0.48.6 — 2024-12-20#
Added the
quietvalue to theoption,loglevelenum.
5.19. 0.48.5 — 2024-12-09#
Added
record,pythonversionandrecord,pythonpackage(list of installed packages); maderecord,remoteidnon-per-node.
5.20. 0.48.4 — 2024-11-05#
Added metrics
macroarea,padcellarea, andstdcellarea.
5.21. 0.48.3 — 2024-11-05#
Added back the
datasheet,package,<name>,footprintparameter (as afile).Corrected version numbering: adding schema parameters only bumps the patch digit (
0.0.X). This reverted an erroneous 0.49.0 bump made on 2024-11-04.
5.22. 0.48.2 — 2024-09-18#
Added
defvalue='R0'to the component rotation parameter and reorganized its enum, with expanded documentation.
5.23. 0.48.1 — 2024-09-17#
Added
unit='nm'topdk,<name>,node; changeddatasheet,package,pin,<pinnumber>,locunit frommmtoum; used keypaths to cross-link keys in the docs.
5.24. 0.48.0 — 2024-09-15#
Restructured the schematic parameters into a hierarchical form.
Changed
constraint,component,<name>,rotationfrom float to an 18-value enum (R0/R90/R180/R270 plus mirror variants); removed the separateflipparameter; moved origin handling todatasheet,package,<name>,anchor.
5.25. 0.47.0 — 2024-09-06#
Added a schematic/netlist section:
component,<name>,model,pin,<name>,dir,net,<name>,connect, plushiercharandbuschar.
5.26. 0.46.0 — 2024-09-06#
Added
constraint,component,<name>,origin, default(0.0, 0.0)— supports changing the default origin from center to the lower-left corner for packaging and board design.
5.27. 0.45.1 — 2024-09-05#
Cleaned up short-help strings and capitalization (no substantive parameter change).
5.28. 0.45.0 — 2024-09-04#
Restructured datasheet package pins into a hierarchical
pin,<pinnumber>,{shape,width,length,loc,name}form, replacing the flatpinshape/pinwidth/pinlength/pinloc/netname/portnamekeys.
5.29. 0.44.5 — 2024-09-03#
Changed
constraint,component,<name>,placementandconstraint,pin,<name>,placementfrom(float,float,float)to(float,float).
5.30. 0.44.4 — 2024-08-27#
Removed the
option,targetparameter (targets now loaded by the app).
5.31. 0.44.3 — 2024-08-09#
Added
datasheet,package,<name>,portname(net name is not always the port name); addedcopy=Trueto file/dir parameters (tool task file/dir/scripts andoptionfile/dir/idir/ydir/vlib).
5.32. 0.44.2 — 2024-07-29#
Lowercased the
option,loglevelenum (info/warning/error/critical/debug, defaultinfo), separating it from Python logger levels.
5.33. 0.44.1 — 2024-07-26#
Added
record,toolexitcode(per-node int); removedoption,copyall.
5.34. 0.44.0 — 2024-07-25#
Renamed
record,exitstatustorecord,statusand expanded its enum withqueued,running, andtimeoutstates.
5.35. 0.43.1 — 2024-07-23#
Removed
option,frontend; madeoption,entrypointper-node optional.
5.36. 0.43.0 — 2024-07-22#
Moved runtime info into the record: removed flowgraph
status/select; addedrecord,exitstatus(enum) andrecord,inputnode([(str,str)], per-node).
5.37. 0.42.7 — 2024-07-19#
Changed the
requiredefault fromNonetoFalseacross parameters and dropped the mode-specificrequiremarkers ('all'/'asic'/'fpga'); removedoption,mode.
5.38. 0.42.6 — 2024-07-09#
Help-text/shorthelp refinements for datasheet package pin parameters (no substantive parameter change).
5.39. 0.42.5 — 2024-07-08#
Added
outputto the taskstdout/stderrdestination enum (log/output/none); removed thejobinputkey.
5.40. 0.42.4 — 2024-07-08#
Removed FPGA resource/board parameters and several PDK parameters (
thickness,density); combinedhscribe/vscribeintoscribe((float,float)); renamed PDKdirectory→dir; restructured PDKdocbydoctype; removed several option/task flags; removed ASIC cell typesdelay/clkdelay/clkinv/clkicg.
5.41. 0.42.3 — 2024-07-08#
Changed
option,scheduler,msgeventfrom a string to an enum list (all/summary/begin/end/timeout/fail).
5.42. 0.42.2 — 2024-07-08#
Removed the task
keepparameter andoption,resume; changedoption,cleansemantics to “start a job from the beginning”.
5.43. 0.42.1 — 2024-07-07#
Removed
option,showtool,<filetype>.
5.44. 0.42.0 — 2024-07-07#
Breaking cleanup: removed the
unit,*section,pdk,<name>,lambda,option,uselambda, flowgraphtimeout, and assorted FPGA/PDK/option parameters; renamedoption,cache→option,cachedirand PDKdirectory→dir.
5.45. 0.41.1 — 2024-07-05#
Added metrics
drcs,holdskew,setupskew, andinverters(split frombuffers); removeddozepower,idlepower, andsleeppower.
5.46. 0.41.0 — 2024-07-03#
Restructured
datasheet,packageto be indexed by packagename, merging the standard and generation parameters and folding per-pin package data under the package hierarchy.
5.47. 0.40.8 — 2024-07-03#
Merged the datasheet standard and generation parameters; removed
datasheet,partnumber,datasheet,abstraction, anddatasheet,io,<name>,gen; refined the IOarchenum.
5.48. 0.40.7 — 2024-07-02#
Added
dockerto theoption,scheduler,nameenum (docker-based running).
5.49. 0.40.6 — 2024-05-30#
Renamed
option,scheduler,maxconcurrency→option,scheduler,maxnodes; added directory-hash (filehash) support.
5.50. 0.40.5 — 2024-05-28#
Added
option,scheduler,maxconcurrency(max concurrent local jobs).
5.51. 0.40.4 — 2024-04-21#
Added the
metric,logicdepthparameter.
5.52. 0.40.3 — 2024-03-14#
Added FPGA resource parameters
fpga,<partname>,resources,{registers,dsps,brams}.
5.53. 0.40.2 — 2024-03-05#
Added
option,library(per-node list) for soft libraries.
5.54. 0.40.1 — 2024-02-28#
Added datasheet top-level parameters (
partnumber,type,series,manufacturer,grade,qual,trl,status,fmax,ops,iobw,iocount,ram,peakpower, etc.); corrected several switch help strings.
5.55. 0.40.0 — 2023-12-18#
First standardized datasheet metrics: restructured
datasheetinto hierarchicalprocessor,<name>,*,io,<name>,*,fpga,<name>,*, andpackage,<name>,*(withpincount,drawing) namespaces.
5.56. 0.39.0 — 2023-11-17#
Added
option,cache; removedoption,scpath; reworked the package parameters (package,version/description/keyword/license/organization,package,doc,*, contact fields).
5.57. 0.38.0 — 2023-11-02#
Added a
dependency,<dep>,{path,commitid,name}section (later reconciled with the package schema).
5.58. 0.37.2 — 2023-11-02#
Removed
option,registryand the entirepackage,*section (name, version, description, keyword, doc, license, organization, contact, …).
5.59. 0.37.1 — 2023-10-26#
Removed the flowgraph node
validflag; addedoption,prune([(str,str)]).
5.60. 0.37.0 — 2023-09-20#
Replaced
option,steplist/option,skipstep/option,indexlistwithoption,fromandoption,to.
5.61. 0.36.0 — 2023-08-30#
Moved job IDs into the core schema and removed the
skipstepoption; restructured FPGA<partname>(addedfile,*/var,*) and datasheet package/pin parameters.
5.62. 0.35.0 — 2023-08-03#
Cosmetic/FPGA-prep changes: removed
fpga,arch; addedfpga,<family>,lutsize; moved FPGAvendorunder<partname>; addedrecord,remoteid.
5.63. 0.34.7 — 2023-08-09#
Reworked datasheet pin/mechanical parameters: renamed
datasheet,pin,*,signal↔interface, changedmapto be indexed by<bump>as(float,float)inum.
5.64. 0.34.6 — 2023-08-08#
Fixed examples in the record portion of the schema (no substantive parameter change).
5.65. 0.34.5 — 2023-07-29#
Fixed a typo in a switch flag (no substantive parameter change).
5.66. 0.34.4 — 2023-07-27#
Fixed typos in schema help strings (no substantive parameter change).
5.67. 0.34.3 — 2023-06-13#
Fixed a
constraint,net,<name>,shieldswitch-name typo (documentation only).
5.68. 0.34.2 — 2023-06-09#
Changed
tool,<tool>,formatto an enum (json/tcl/yaml).
5.69. 0.34.1 — 2023-06-09#
Fixed CLI switch quoting (no substantive parameter change).
5.70. 0.34.0 — 2023-05-19#
Restructured node value storage (nested
default,default,value); added file-node metadata (date,author,filehash); changed timingvoltageto per-pin (constraint,timing,<scenario>,voltage,<pin>); changedoption,credentialsfrom[file]tofile.
5.71. 0.33.0 — 2023-05-17#
Added
tool,task,dir(user-supplied directories mapped to keys); added pin voltage support to constraints; made the credentials file a single file.
5.72. 0.32.0 — 2023-04-12#
Whitespace/formatting cleanup (no substantive parameter change).
5.73. 0.31.0 — 2023-04-01#
Added SBOM traceability and made scheduler options (
cores/memory/queue/defer/options/msgevent/msgcontact) per-node optional.
5.74. 0.30.0 — 2023-04-07#
Added a copy flag to directory parameters.
5.75. 0.29.0 — 2023-03-30#
Added task-module support; improved switch handling and help strings.
5.76. 0.28.0 — 2023-03-06#
Added the
metric,fmaxparameter.
5.77. 0.27.0 — 2023-02-24#
Removed the
signaturefield from parameter metadata; renamednodefieldtonode.
5.78. 0.26.0 — 2023-02-21#
Put the global value into the same dict as per-node values: removed the separate
value/set/filehash/date/authorfields, renamednodevaluetonodefield.
5.79. 0.25.0 — 2023-02-20#
Added
option,strict; made many scheduler/constraint parameters per-node optional.
5.80. 0.24.0 — 2023-02-13#
Added back the
option,dirparameter.
5.81. 0.23.0 — 2023-02-10#
Removed step/index from task parameters (warningoff, continue, regex, option, var, env, file, input, output, stdout, stderr, require, report, refdir, script, prescript, postscript, keep); made
toolpath/version/licenseserver per-node optional.
5.82. 0.22.0 — 2023-02-02#
Flattened metrics from
metric,<step>,<index>,<item>tometric,<item>withpernode='required'; removedarg,pdkandarg,flow.
5.83. 0.21.0 — 2023-01-31#
Renamed
option,bkpttooption,breakpoint.
5.84. 0.20.0 — 2023-01-27#
Replaced
option,jobscheduler/msgevent/msgcontactwith anoption,scheduler,*subgroup (name/cores/memory/queue/defer/options/msgevent/msgcontact); addedoption,timeout.
5.85. 0.19.0 — 2023-01-27#
Added
option,nice,option,var,<key>,option,file,<key>; removed the per-toolasic,{file,dir,var}parameters.
5.86. 0.18.0 — 2023-01-26#
Removed the
server,*section (cores, memory, queue, nice, timeout, interactive, defer).
5.87. 0.17.0 — 2023-01-25#
Added job-scheduler management via a
server,*section (cores/memory/queue/nice/timeout/interactive/defer); removedoption,nice.
5.88. 0.16.1 — 2023-01-21#
Removed the PDK layer
gridsection andasiclayer/footprint parameters (rclayer,vpinlayer,hpinlayer,pgmetal, footprint alias/symmetry/size); addedasic,site,<libarch>andoption,nice.
5.89. 0.15.0 — 2023-01-25#
Added the
enumtype and switched mode/loglevel/status to enums; addedpdk,<name>,{minlayer,maxlayer},<stackup>,option,uselambda,constraint,pin,<name>,{side,order}, and severalconstraint,net,<name>,*parameters.
5.90. 0.14.0 — 2023-01-22#
Moved ASIC constraints into the common
constraintgroup (renamingdiearea→outline, addingcorearea/coremargin/density/aspectratio); made netmaxlayer/minlayerper-net.
5.91. 0.13.0 — 2023-01-22#
Moved
lambdafrom top-level intopdk,<name>,lambda; removed duplicateasic,pdk/asic,stackupand assortedasicmax* parameters; moved stackup to options.
5.92. 0.12.0 — 2023-01-18#
Added
datasheet,<design>,footprintandflowgraph,<flow>,<step>,<index>,task.
5.93. 0.11.0 — 2023-01-15#
Added the tool/task split (
schema_task()hierarchy); reworked input/output parameters to[item, fileset, filetype]; removed the earlylambda/schematic/layoutsections.
5.94. 0.10.0 — 2023-01-01#
Added an initial unified layout/schematic structure (
schematic,*andlayout,*groups covering components, pins, nets, outline, footprint) plus a top-levellambda.
5.95. 0.9.0 — 2022-08-31#
Initial schema object.