sysand info#

Describe or modify a local project, or resolve and describe a project at a specified path or IRI/URL

Usage#

sysand info [OPTIONS]
sysand info [OPTIONS] <COMMAND>

Description#

Prints out the information contained in the .project.json file for the specified project, defaulting to current project if no project is specified. Optionally an extra command can be given to get or set values in .project.json and .meta.json. Note that only local source-directory projects (including the current one) can be modified; a local KPAR file cannot (set cannot be used with kpar archives).

Current project is determined as in sysand print-root. When none of --path, --iri, or --auto-location is given and no enclosing project is found, the command errors with “run outside of an active project, did you mean to use --path or --iri?”.

Options#

  • -p, --path <PATH>: Use the project at the given path instead of the current project

  • -i, --iri <IRI>: Use the project with the given IRI/URI/URL instead of the current project. Aliases: --uri, --url

  • -a, --auto-location <LOCATOR>: Use the project with the given locator, trying to parse it as an IRI/URI/URL and otherwise falling back to a local path

  • --no-normalise: Do not try to normalise the IRI/URI when resolving. Alias: --no-normalize

Resolution options#

  • --index [<INDEX>...]: Comma-delimited list of index URLs to use when resolving project(s) and/or their dependencies, in addition to the default indexes [env: SYSAND_INDEX]

  • --default-index [<DEFAULT_INDEX>...]: Comma-delimited list of URLs to use as default index URLs. Default indexes are tried after other indexes (default https://sysand.com) [env: SYSAND_DEFAULT_INDEX]

  • --no-index: Do not use any index when resolving project(s) and/or their dependencies. Conflicts with --index and --default-index

  • --include-std: Don’t ignore KerML/SysML v2 standard libraries if specified as dependencies

Global options#

  • -v, --verbose: Use verbose output

  • -q, --quiet: Do not output log messages

  • --no-config: Disable discovery of configuration files [env: SYSAND_NO_CONFIG]

  • --config-file <CONFIG_FILE>: Give path to sysand.toml to use for configuration [env: SYSAND_CONFIG_FILE]

  • -h, --help: Print help

Fields#

Each field is a subcommand: sysand info <FIELD> [OPTIONS] prints the field, and the options in the table modify it. All field subcommands also accept the global options listed above.

Field

Prints

Modify with

Notes

name

The project name

--set <NAME>

Required field; cannot be cleared

description

The project description

--set <DESCRIPTION>, --clear

version

The project version

--set <VERSION>, --no-semver

Required field; cannot be cleared. SemVer 2.0 by default

license

The project license

--set <LICENSE>, --no-spdx, --clear

SPDX expression by default. licence is an accepted alias

website

The project website

--set <URI>, --clear

Must be a valid IRI/URI/URL. A value without a scheme is accepted and assumed to be https:// (so example.com works)

publisher

The project publisher

--set <PUBLISHER>, --clear

maintainer

The list of maintainers

--set, --add, --remove <N>, --clear

List field, see below

topic

The list of topics

--set, --add, --remove <N>, --clear

List field, see below

metamodel

The project metamodel

--set, --release, --release-custom, --set-custom, --clear

See below for the option rules

includes-derived

Whether the project includes derived properties

--set <true|false>, --clear

--clear removes the field (unset)

includes-implied

Whether the project includes implied properties

--set <true|false>, --clear

--clear removes the field (unset)

usage

The list of usages (dependencies)

Read-only

Add or remove usages with sysand add and sysand remove

index

The symbol index: one line per indexed top-level symbol in the form `symbol` in `path` (a file with many symbols appears many times)

Read-only

Add or remove files from the index with sysand include and sysand exclude

checksum

The list of source file checksums

Read-only

Checksums are updated by sysand include when --compute-checksum is passed (off by default), refreshed by sysand build’s metadata update, and removed by sysand exclude

created

The creation timestamp of the project’s metadata manifest (.meta.json)

Read-only

Managed automatically; cannot be set or cleared

The list fields (maintainer, topic, usage, index, checksum) accept --numbered to print a numbered list. For maintainer and topic: --set replaces the entire list with a single value, --add appends a value, --remove <N> removes the value at position N (1-based, as shown by --numbered), and --clear removes all values.

version#

Prints the version of the given project. For index projects, resolution picks the single best (highest SemVer) candidate and prints that one version. With --set, updates the version.

By default the version must conform to Semantic Versioning 2.0. Pass --no-semver alongside --set to allow an arbitrary version string.

license#

Prints the license of the given project. With --set or --clear, modifies the license. licence is an accepted alias for this subcommand.

By default the license must be a valid SPDX license expression. Pass --no-spdx alongside --set to allow an arbitrary string. See Project metadata for guidance on license format.

When setting a license, sysand reminds you that each license needs a corresponding file in LICENSES/ and that publishing requires it.

metamodel#

Prints the metamodel of the given project. With modifying options, updates the metamodel. There are two ways to set it:

Standard SysML v2 or KerML metamodel: use --set with an optional --release:

$ sysand info metamodel --set sysml
$ sysand info metamodel --set kerml --release 20250201

Custom metamodel URI: use --set-custom (mutually exclusive with --set):

$ sysand info metamodel --set-custom https://example.com/my-metamodel/1.0

Option rules:

  • --set <KIND>: Set a SysML v2 or KerML metamodel. To set a custom metamodel, use --set-custom

  • --release <YYYYMMXX>: Choose the release of the SysML v2 or KerML metamodel. SysML 2.0 and KerML 1.0 have the same release dates. The only accepted value is currently 20250201 (also the default). Requires --set

  • --release-custom <YYYYMMXX>: Choose a custom release of the SysML v2 or KerML metamodel. Requires --set; conflicts with --release

  • --set-custom <METAMODEL>: Set a custom metamodel. To set a SysML v2 or KerML metamodel, use --set. Conflicts with --set, --release, and --release-custom

  • --clear: Remove the metamodel field. Conflicts with --set