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 (defaulthttps://sysand.com) [env:SYSAND_DEFAULT_INDEX]--no-index: Do not use any index when resolving project(s) and/or their dependencies. Conflicts with--indexand--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 tosysand.tomlto 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 |
|---|---|---|---|
|
The project name |
|
Required field; cannot be cleared |
|
The project description |
|
|
The project version |
|
Required field; cannot be cleared. SemVer 2.0 by default |
|
The project license |
|
SPDX expression by default. |
|
|
The project website |
|
Must be a valid IRI/URI/URL. A value without a scheme is accepted and assumed to be |
|
The project publisher |
|
|
|
The list of maintainers |
|
List field, see below |
|
The list of topics |
|
List field, see below |
The project metamodel |
|
See below for the option rules |
|
|
Whether the project includes derived properties |
|
|
|
Whether the project includes implied properties |
|
|
|
The list of usages (dependencies) |
Read-only |
Add or remove usages with |
|
The symbol index: one line per indexed top-level symbol in the form |
Read-only |
Add or remove files from the index with |
|
The list of source file checksums |
Read-only |
Checksums are updated by |
|
The creation timestamp of the project’s metadata manifest ( |
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 currently20250201(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