Metadata-Version: 2.4
Name: awetc
Version: 1.0.0
Summary: A task scheduling for integration and deployment of Audio Weaver related artefacts and configurations
Project-URL: AudioWeaver, https://w.dspconcepts.com/audio-weaver
Project-URL: Documentation, https://w.dspconcepts.com/docs
Project-URL: Homepage, https://w.dspconcepts.com/audio-weaver
Author-email: Volker Springer <vspringer@dspconcepts.com>
License: MIT
License-File: LICENSE
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.11
Requires-Dist: doit~=0.36.0
Requires-Dist: gitpython~=3.1.43
Requires-Dist: hatch-vcs~=0.4.0
Requires-Dist: pyawe-awb~=1.0.2
Requires-Dist: pyawe-awc~=1.0.1
Requires-Dist: pyawe-ctrl-io~=1.0.1
Requires-Dist: pyawe-ffs~=1.0.1
Requires-Dist: pydantic-yaml~=1.3.0
Requires-Dist: pyyaml-include~=2.1
Provides-Extra: doc
Requires-Dist: markdown-exec>=1.11.0; extra == 'doc'
Requires-Dist: mkdocs-macros-plugin>=1.3.7; extra == 'doc'
Requires-Dist: mkdocs-material-extensions>=1.3.1; extra == 'doc'
Requires-Dist: mkdocs-material>=9.6.15; extra == 'doc'
Requires-Dist: mkdocs-monorepo-plugin>=1.1.2; extra == 'doc'
Requires-Dist: mkdocs-with-pdf>=0.9.3; extra == 'doc'
Requires-Dist: mkdocstrings[python]>=0.29.1; extra == 'doc'
Requires-Dist: qrcode>=8.2; extra == 'doc'
Description-Content-Type: text/markdown

# AWE Target Configurator

This provides a (Python) package to handle the integration and deployment of AWE related data items to a target system.

Namely, it converts output generated by AWE Designer tool to suitable target specific formats. It also provides the link back from target specification information, like details of available audio devices (and more) to Designer (future).

**AWE Target Configurator** is designed to be task driven like e.g. make. It builds strongly on [doit](https://pydoit.org/), so all of doit's features apply as well

- Python script powered (all batteries included)
- Debuggable
- Dependency checks and caches
- Parallel execution of tasks
- Extendable via (custom) plugins

## Installation

`pip install awetc`

## Usage

**AWE Target Configurator** provides a command line script `awetc`. For details on how to use this just refer to the corresponding [doit command line documentation](https://pydoit.org/cmd-run.html) - and subsitute `doit` with `awetc`.

Some command line usages:

- `awetc` - runs all tasks
- `awetc awcgen` - runs a specific task, including its dependencies
- `awetc list` - shows all tasks
- `awetc info <taskname>` - shows information about a specific task
- `awetc help <taskname>` - shows the help/documentation of a specific task

Additional command line scripts may be provided in the future too, like editors or other interactively working programs.

## Documentation

Detailed documentation about design and concept is available after `pip install 'awetc[doc]'`:

`awetc docs` 

can be used to open the documentation in a browser application.

## License

This project is licensed under the MIT License – see the [LICENSE](./LICENSE) file for details.

## Development

In case code changes to **AWE Target Configurator** are required and shall be contributed:

- make branch in DSPC repo (or clone)
- do changes and issue a pull request for changes to being merged back

To set up the debug environment:

- git clone repo
- cd into repo directory
- create Python virtual environment, e.g. with `python -m venv venv` and activate it `source ./venv/bin/activate` (note: on Windows the paths may be slightly different)
- install project management tool `(venv) pip install hatch`
- use `hatch env show` to see what you can run, e.g., `hatch run test:cov` to run unit tests with coverage report or `hatch run code:style` to perform code style checks
- `hatch run release:build` would create a package (wheel file) in current workspace
- !!! NOTE !!! there is no need to publish the package manually to PyPi; this is done via the build server

Release a new version:

- do your changes, create PR, have merged to main
- !IMPORTANT! - have changes documented in the `changelog.md` file; use proper semantic versioning
- `git tag -a MAJOR.MINOR.PATCH` (e.g. git tag -a 0.4.2) and provide meaningful information about release (eg copy from changelog)
- `git push origin MAJOR.MINOR.PATCH` to publish to Bitbucket
- on Jenkins build server trigger the build under MAJOR.MINOR.PATCH to publish
