capella-diff-tools


Namecapella-diff-tools JSON
Version 1.0.0 PyPI version JSON
download
home_page
SummaryTools for comparing different versions of a Capella model
upload_time2023-12-04 09:50:11
maintainer
docs_urlNone
authorDB Netz AG
requires_python<3.13,>=3.11
licenseApache-2.0
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <!--
 ~ Copyright DB Netz AG and contributors
 ~ SPDX-License-Identifier: Apache-2.0
 -->

# Capella Diff Tools

[![Lint](https://github.com/DSD-DBS/capella-diff-tools/actions/workflows/lint.yml/badge.svg)](https://github.com/DSD-DBS/capella-diff-tools/actions/workflows/lint.yml)
[![Apache 2.0 License](https://img.shields.io/github/license/dsd-dbs/capella-diff-tools)](LICENSES/Apache-2.0.txt)
[![Code style: Black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![Imports: isort](https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336)](https://pycqa.github.io/isort/)

*Tools for comparing different versions of a Capella model*

![Screenshot of the HTML report comparing two versions of the coffee-machine demo model](docs/source/_static/screenshot.png)

# Quick start

Run the `capella-diff-tool` with a Git repo and two versions, being either
commit hashes or branch names:

```sh
capella-diff-tool coffee-machine index-links/base index-links/left
```

```yaml
diagrams:
  sa:
    Missions Capabilities Blank:
      modified:
      - display_name: '[MCB] Capabilities'
        uuid: _J1uyIFucEe2iJbuWznnyfw
    System Architecture Blank:
      modified:
      - display_name: '[SAB] make coffee'
        uuid: _MWuNkFuvEe2iJbuWznnyfw
    System Data Flow Blank:
      modified:
      - display_name: '[SDFB] make coffee'
        uuid: _FOutoFujEe2iJbuWznnyfw
metadata:
  model:
    path: git+https://github.com/DSD-DBS/coffee-machine.git
  new_revision:
    author: martinlehmann
    date: 2023-09-27 14:31:03+02:00
    description: 'fix: Inflation is real, we cannot afford real coffee [skip ci]'
    hash: 908a6b909dcdc071ffc0c424502d8f47d82d9f49
    revision: index-links/left
  old_revision:
    author: martinlehmann
    date: 2023-09-27 14:30:47+02:00
    description: 'refactor: Fragment out SA and OA [skip ci]'
    hash: cb0918af3df822344a80eda3fef6463bcf4c36f3
    revision: index-links/base
objects:
  sa:
    SystemFunction:
      modified:
      - attributes:
          name:
            current: make black water
            previous: make coffee
        display_name: make black water
        uuid: 8b0d19df-7446-4c3a-98e7-4a739c974059
```

The CLI's first argument accepts the name of a [known model], a local folder,
or JSON describing a remote model. Currently it only supports Git, but a
[Python API] is available for more advanced comparisons.

[known model]: https://dsd-dbs.github.io/py-capellambse/start/specifying-models.html#known-models
[Python API]: #api-documentation

The `capella-diff-tool` can also generate a human-friendly report in HTML form.
Use the `-r` / `--report` flag and specify a filename to write the HTML report:

```sh
capella-diff-tool coffee-machine index-links/base index-links/left -r coffee-machine.html
```

# Installation

You can install the latest released version directly from PyPI.

```sh
pip install capella-diff-tools
```

To set up a development environment, clone the project and install it into a
virtual environment.

```sh
git clone https://github.com/DSD-DBS/capella-diff-tools
cd capella-diff-tools
python -m venv .venv

source .venv/bin/activate.sh  # for Linux / Mac
.venv\Scripts\activate  # for Windows

pip install -U pip pre-commit
pip install -e '.[docs,test]'
pre-commit install
```

# API Documentation

The `capella_diff_tools` Python package exposes a Python API, which can be used
to compare arbitrary models programmatically. Documentation for this API is
[available on Github pages](https://dsd-dbs.github.io/capella-diff-tools).

# Contributing

We'd love to see your bug reports and improvement suggestions! Please take a
look at our [guidelines for contributors](CONTRIBUTING.md) for details.

# Licenses

This project is compliant with the
[REUSE Specification Version 3.0](https://git.fsfe.org/reuse/docs/src/commit/d173a27231a36e1a2a3af07421f5e557ae0fec46/spec.md).

Copyright DB Netz AG, licensed under Apache 2.0 (see full text in
[LICENSES/Apache-2.0.txt](LICENSES/Apache-2.0.txt))

Dot-files are licensed under CC0-1.0 (see full text in
[LICENSES/CC0-1.0.txt](LICENSES/CC0-1.0.txt))

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "capella-diff-tools",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "<3.13,>=3.11",
    "maintainer_email": "",
    "keywords": "",
    "author": "DB Netz AG",
    "author_email": "",
    "download_url": "https://files.pythonhosted.org/packages/0d/b4/5953ae37dbe0e658e9c14a3458bc594f288b4b0643c724de8acfeea30ebe/capella-diff-tools-1.0.0.tar.gz",
    "platform": "any",
    "description": "<!--\n ~ Copyright DB Netz AG and contributors\n ~ SPDX-License-Identifier: Apache-2.0\n -->\n\n# Capella Diff Tools\n\n[![Lint](https://github.com/DSD-DBS/capella-diff-tools/actions/workflows/lint.yml/badge.svg)](https://github.com/DSD-DBS/capella-diff-tools/actions/workflows/lint.yml)\n[![Apache 2.0 License](https://img.shields.io/github/license/dsd-dbs/capella-diff-tools)](LICENSES/Apache-2.0.txt)\n[![Code style: Black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n[![Imports: isort](https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336)](https://pycqa.github.io/isort/)\n\n*Tools for comparing different versions of a Capella model*\n\n![Screenshot of the HTML report comparing two versions of the coffee-machine demo model](docs/source/_static/screenshot.png)\n\n# Quick start\n\nRun the `capella-diff-tool` with a Git repo and two versions, being either\ncommit hashes or branch names:\n\n```sh\ncapella-diff-tool coffee-machine index-links/base index-links/left\n```\n\n```yaml\ndiagrams:\n  sa:\n    Missions Capabilities Blank:\n      modified:\n      - display_name: '[MCB] Capabilities'\n        uuid: _J1uyIFucEe2iJbuWznnyfw\n    System Architecture Blank:\n      modified:\n      - display_name: '[SAB] make coffee'\n        uuid: _MWuNkFuvEe2iJbuWznnyfw\n    System Data Flow Blank:\n      modified:\n      - display_name: '[SDFB] make coffee'\n        uuid: _FOutoFujEe2iJbuWznnyfw\nmetadata:\n  model:\n    path: git+https://github.com/DSD-DBS/coffee-machine.git\n  new_revision:\n    author: martinlehmann\n    date: 2023-09-27 14:31:03+02:00\n    description: 'fix: Inflation is real, we cannot afford real coffee [skip ci]'\n    hash: 908a6b909dcdc071ffc0c424502d8f47d82d9f49\n    revision: index-links/left\n  old_revision:\n    author: martinlehmann\n    date: 2023-09-27 14:30:47+02:00\n    description: 'refactor: Fragment out SA and OA [skip ci]'\n    hash: cb0918af3df822344a80eda3fef6463bcf4c36f3\n    revision: index-links/base\nobjects:\n  sa:\n    SystemFunction:\n      modified:\n      - attributes:\n          name:\n            current: make black water\n            previous: make coffee\n        display_name: make black water\n        uuid: 8b0d19df-7446-4c3a-98e7-4a739c974059\n```\n\nThe CLI's first argument accepts the name of a [known model], a local folder,\nor JSON describing a remote model. Currently it only supports Git, but a\n[Python API] is available for more advanced comparisons.\n\n[known model]: https://dsd-dbs.github.io/py-capellambse/start/specifying-models.html#known-models\n[Python API]: #api-documentation\n\nThe `capella-diff-tool` can also generate a human-friendly report in HTML form.\nUse the `-r` / `--report` flag and specify a filename to write the HTML report:\n\n```sh\ncapella-diff-tool coffee-machine index-links/base index-links/left -r coffee-machine.html\n```\n\n# Installation\n\nYou can install the latest released version directly from PyPI.\n\n```sh\npip install capella-diff-tools\n```\n\nTo set up a development environment, clone the project and install it into a\nvirtual environment.\n\n```sh\ngit clone https://github.com/DSD-DBS/capella-diff-tools\ncd capella-diff-tools\npython -m venv .venv\n\nsource .venv/bin/activate.sh  # for Linux / Mac\n.venv\\Scripts\\activate  # for Windows\n\npip install -U pip pre-commit\npip install -e '.[docs,test]'\npre-commit install\n```\n\n# API Documentation\n\nThe `capella_diff_tools` Python package exposes a Python API, which can be used\nto compare arbitrary models programmatically. Documentation for this API is\n[available on Github pages](https://dsd-dbs.github.io/capella-diff-tools).\n\n# Contributing\n\nWe'd love to see your bug reports and improvement suggestions! Please take a\nlook at our [guidelines for contributors](CONTRIBUTING.md) for details.\n\n# Licenses\n\nThis project is compliant with the\n[REUSE Specification Version 3.0](https://git.fsfe.org/reuse/docs/src/commit/d173a27231a36e1a2a3af07421f5e557ae0fec46/spec.md).\n\nCopyright DB Netz AG, licensed under Apache 2.0 (see full text in\n[LICENSES/Apache-2.0.txt](LICENSES/Apache-2.0.txt))\n\nDot-files are licensed under CC0-1.0 (see full text in\n[LICENSES/CC0-1.0.txt](LICENSES/CC0-1.0.txt))\n",
    "bugtrack_url": null,
    "license": "Apache-2.0",
    "summary": "Tools for comparing different versions of a Capella model",
    "version": "1.0.0",
    "project_urls": {
        "Documentation": "https://dsd-dbs.github.io/capella-diff-tools",
        "Homepage": "https://github.com/DSD-DBS/capella-diff-tools"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "85718f67ed18f55457841e18d514331eae85d6b10678dce2196bd177a43b60b7",
                "md5": "960205c2434ac4f768315860905014d8",
                "sha256": "856718e4b3244f1f372fe34de208de5860bc6388cba2d8c18164b038c4ba0e1f"
            },
            "downloads": -1,
            "filename": "capella_diff_tools-1.0.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "960205c2434ac4f768315860905014d8",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<3.13,>=3.11",
            "size": 13312,
            "upload_time": "2023-12-04T09:50:09",
            "upload_time_iso_8601": "2023-12-04T09:50:09.463084Z",
            "url": "https://files.pythonhosted.org/packages/85/71/8f67ed18f55457841e18d514331eae85d6b10678dce2196bd177a43b60b7/capella_diff_tools-1.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0db45953ae37dbe0e658e9c14a3458bc594f288b4b0643c724de8acfeea30ebe",
                "md5": "e970e8dcd3fe93ba869ba52a372c5071",
                "sha256": "92316674096b50e8c0218c0507266488b47b6778a1c49381b8638203d8800137"
            },
            "downloads": -1,
            "filename": "capella-diff-tools-1.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "e970e8dcd3fe93ba869ba52a372c5071",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<3.13,>=3.11",
            "size": 93089,
            "upload_time": "2023-12-04T09:50:11",
            "upload_time_iso_8601": "2023-12-04T09:50:11.404113Z",
            "url": "https://files.pythonhosted.org/packages/0d/b4/5953ae37dbe0e658e9c14a3458bc594f288b4b0643c724de8acfeea30ebe/capella-diff-tools-1.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-12-04 09:50:11",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "DSD-DBS",
    "github_project": "capella-diff-tools",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "capella-diff-tools"
}
        
Elapsed time: 0.37550s