The spork.it manifest

spork-lang 0.6.0

Reference for project metadata, tooling settings, package APIs, and provider configuration.

A manifest is a Spork map containing project metadata and tooling settings:

{:name "hello-spork"
 :version "0.1.0"
 :description "A small Spork application"
 :requires-python ">=3.10"
 :spork-version ">=0.6,<0.7"
 :dependencies ["httpx>=0.27" "rich"]
 :dev-dependencies []
 :source-paths ["src"]
 :test-paths ["tests"]
 :main "hello-spork.core:main"}

Paths are relative to the directory containing spork.it.

KeyRequiredDefaultPurpose
:nameyesProject and distribution name.
:versionyesProject version string.
:descriptionnononeDistribution description.
:requires-pythonno">=3.10"Python compatibility written to package metadata.
:spork-versionnoactive versionCompatible spork-lang toolchain range used by synchronization, CLI delegation, and distribution builds.
:apinononeGenerate public Spork and Python package APIs from one canonical namespace.
:commandsno{}Top-level command providers published in distribution metadata.
:dependenciesno[]Runtime package requirements accepted by pip.
:dev-dependenciesno[]Local tools installed by spork sync --dev.
:optional-dependenciesno{}Named Python package extras, such as {:docs ["sphinx>=8"]}.
:source-pathsno["src"]Directories searched for Spork namespaces and build inputs.
:test-pathsno["tests"]Directories searched by spork test.
:mainnononeEntry point used by spork run, in namespace:function form.
:readmenoREADME.md if presentREADME included in distribution metadata.
:license / :license-filenonone / detected LICENSE*SPDX license expression and license file.
:authorsno[]Author maps containing :name and/or :email.
:keywords / :classifiersno[]PyPI search terms and trove classifiers.
:urlsno{}Labeled project links included in package metadata.
package-specific keysnononeConfiguration owned by an installed tool, such as :site.

Unknown keys are preserved without being interpreted by core project commands. Tool providers can read them through the recursive read-only ProjectConfig.manifest mapping, ProjectConfig.get(...), or ProjectConfig.get_plugin_config(...); nested maps and vectors are exposed as immutable mappings and tuples.