{"id":19079281,"url":"https://github.com/covesa/vss-tools","last_synced_at":"2025-05-16T10:06:54.852Z","repository":{"id":37879205,"uuid":"242170720","full_name":"COVESA/vss-tools","owner":"COVESA","description":"Software for working with VSS (https://github.com/COVESA/vehicle_signal_specification)","archived":false,"fork":false,"pushed_at":"2025-04-22T14:06:43.000Z","size":3176,"stargazers_count":59,"open_issues_count":20,"forks_count":61,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-05-16T10:06:51.637Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/COVESA.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-02-21T15:29:15.000Z","updated_at":"2025-05-09T02:02:20.000Z","dependencies_parsed_at":"2023-02-17T06:01:06.684Z","dependency_job_id":"ec82e8c1-7453-4278-ba66-ee667da0e90e","html_url":"https://github.com/COVESA/vss-tools","commit_stats":null,"previous_names":["genivi/vss-tools"],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/COVESA%2Fvss-tools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/COVESA%2Fvss-tools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/COVESA%2Fvss-tools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/COVESA%2Fvss-tools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/COVESA","download_url":"https://codeload.github.com/COVESA/vss-tools/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254509476,"owners_count":22082891,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-09T02:14:05.801Z","updated_at":"2025-05-16T10:06:54.831Z","avatar_url":"https://github.com/COVESA.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# VSS Tools\n\n[![License](https://img.shields.io/badge/License-MPL%202.0-blue.svg)](https://opensource.org/licenses/MPL-2.0)\n[![Build Status](https://github.com/COVESA/vss-tools/actions/workflows/buildcheck.yml/badge.svg)](https://github.com/COVESA/vss-tools/actions/workflows/buildcheck.yml?query=branch%3Amaster)\n\nThe overall goal of VSS Tools is to provide a set of tools that can be used to convert or verify Vehicle Signal Specifications defined by the format specified by the [COVESA VSS project](https://github.com/COVESA/vehicle_signal_specification).\nVSS Tools is developed in parallel with VSS, please visit the [COVESA VSS project](https://github.com/COVESA/vehicle_signal_specification) for information on how to contribute.\nIf any questions arise, please check out the [FAQ](FAQ.md) for more information.\n\n## Installation\n\nThere are several ways of installing `vss-tools`.\nIf you would like to contribute then please follow the [contribute](#contributing) section instead.\nAll of them are recommended to be done in an activated python virtual environment:\n\n```bash\npython -m venv .venv\nsource .venv/bin/activate\n```\n\npypi\n\n```bash\npip install vss-tools\n```\n\nfrom source:\n\n```bash\n# default branch\npip install git+https://github.com/COVESA/vss-tools.git\n# explicit branch\npip install git+https://github.com/COVESA/vss-tools.git@master\n# commit\npip install git+https://github.com/COVESA/vss-tools.git@1234567\n```\n\nSee [usage](#usage) for how to start using it.\n\n## Usage\n\nGeneral CLI help should be used for up-to-date info of how to use the tools.\n\n```bash\n# Help for toplevel options and lists sub commands\nvspec --help\n\n# Help for export sub command options and lists sub commands\nvspec export --help\n\n# Help for json exporter options\nvspec export json --help\n```\n\nPlease check [here](./docs/vspec.md) for generic info about exporters and their arguments\nas well as [here](./docs/vspec_arch.md) for design decision, architecture and limitations.\n\n## Compatibility with VSS\n\nThe [COVESA VSS project repository](https://github.com/COVESA/vehicle_signal_specification) includes vss-tools as a submodule.\nThe vss-tools version linked by the VSS repository is the preferred vss-tools version to use for that particular version of the VSS repository.\nIt is not guaranteed that newer or older versions of vss-tools can successfully handle that particular version of the VSS repository.\nThe table below gives an overview of basic version support for e.g. `vspec export json`.\nOther exporters may have stricter requirements.\n\n| VSS-tools version | Supported VSS catalog versions | Comments |\n| ----------------- | ------------------------------ | -------- |\n| `v3.0`            | `v3.0` - `v3.1.1`              |\n| `v3.1`            | `v3.0` -`v4.0`                 |\n| `v4.0`            | `v4.0`                         |\n| `v4.1`            | `v4.0` -                       |\n| `4.2`             | `v4.0` -                       |\n| `5.0`             | `v5.0` -                       |\n| `\u003clatest source\u003e` | `v5.0` -                       |\n\n### Changes affecting compatibility\n\nExamples on changes affecting compatibility\n\n- Somewhat stricter control in VSS-tools 5.0 onwards,\n  minor changes required in VSS 4.X catalogs to make it pass the control.\n- VSS version `v4.1` introduced a new syntax for the unit files that cannot be handled by `vss-tools \u003c v4.1`\n- From `v4.0` vss-tools expects unit file to be explicitly specified or provided in the same directory as the VSS input.\n  VSS `v3.1` is the first VSS version including a unit file in the VSS repository.\n  This means vss-tools from `v4.0` onwards cannot handle VSS-versions prior to VSS `v3.1`\n- VSS-tools `v3.1` only supported `default` for attributes, resulting in that newer VSS-versions is not supported.\n- VSS-tools `v4.0` requires case-sensitive for type, resulting in that VSS versions `v3.1` and earlier is not supported.\n\n## Contributing\n\n### UV\n\nWe are using [uv](https://docs.astral.sh/uv/) as a python package and project manager.\nTherefore, a requirement to develop is to install `uv` on your host machine.\nCheck [here](https://docs.astral.sh/uv/#getting-started) for official installation instructions. The recommended one is the following, however installing it through pip/pipx works as well:\n\n```bash\n# macOS/Linux\ncurl -LsSf https://astral.sh/uv/install.sh | sh\n# Windows\npowershell -c \"irm https://astral.sh/uv/install.ps1 | iex\"\n```\n\nYou can then use the following command in the root directory of `vss-tools` to install all dependencies:\n\n```bash\nuv sync\n```\n\nIt will create a `.venv` in the root of the project.\nYou can use the `venv` like you would without the usage of `uv`:\n\n```bash\nsource .venv/bin/activate\nvspec --help\n```\n\nAlternatively you can use `uv` to run the `vspec` tool:\n\n```bash\nuv run vspec --help\n```\n\nIf you have a working setup of [direnv](https://direnv.net/), navigating into the directory\nactivates the `venv` (after an initial `uv sync` and `direnv allow`)\n\n```bash\nvspec --help\n```\n\n`uv` can manage independent python versions.\nIf you would like to use a specific python version (e.g. `python3.12`):\n\n```bash\n# Python 3.12\nuv sync -p python3.12\n# From the activated env:\npython --version # --\u003e Python 3.12.7\n\n# Python 3.13\nuv sync -p python3.13\npython --version # --\u003e Python 3.13.0\n```\n\n### Pre-commit\n\nThis project uses [pre-commit](https://pre-commit.com/) which helps to format the source code in a streamlined way.\nIt is very recommended to use it.\nTo install hooks you can do `pre-commit install` from an [activated environment](#uv).\nHooks will then run every time you do a `git commit` on changed files.\nIf you would like to run all hooks on all files you can do `pre-commit run --all`.\nSince `pre-commit` dependencies are installed in the virtual environment, it needs\nto be activated to be able to run them on a commit.\n\n### Installing additional tools\n\nIf you intend to run test cases related to `vspec` proto exporter you need to install the protobuf compiler.\nPlease follow [official instructions](https://github.com/protocolbuffers/protobuf) for your OS. For Debian systems it would be:\n\n```bash\nsudo apt update\nsudo apt install -y golang-go protobuf-compiler\nprotoc --version  # Ensure compiler version is 3+\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcovesa%2Fvss-tools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcovesa%2Fvss-tools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcovesa%2Fvss-tools/lists"}