Skip to content

Commit 68b4397

Browse files
authored
v0.2.0
# New Features * Added *main goals*, *features* and *example* code to README. * Added a basic documentation website. * Navigation bar * Landing page * Installation instructions * Dependencies * Licenses # Changes * Renamed from `pyEDAA.Configure` to `pyEDAA.ToolSetup`. * Changes due to an updated version of pyTooling/Actions. * Added more artifact names to the cleanup rule. # Bug Fixes * Add missing `doc/prolog.inc`. --- **Related PR:** * #4
2 parents b5bc9b3 + 7c0eba7 commit 68b4397

29 files changed

+1503
-43
lines changed

.github/workflows/Pipeline.yml

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ jobs:
1111
Params:
1212
uses: pyTooling/Actions/.github/workflows/Parameters.yml@r0
1313
with:
14-
name: pyEDAA.Configure
14+
name: pyEDAA.ToolSetup
15+
system_list: 'ubuntu windows macos'
1516

1617
UnitTesting:
1718
uses: pyTooling/Actions/.github/workflows/UnitTesting.yml@r0
@@ -40,7 +41,7 @@ jobs:
4041
requirements: '-r tests/requirements.txt'
4142
commands: |
4243
cd pyEDAA
43-
mypy --html-report ../htmlmypy -p Configure
44+
mypy --html-report ../htmlmypy -p ToolSetup
4445
report: 'htmlmypy'
4546
artifact: ${{ fromJson(needs.Params.outputs.params).artifacts.typing }}
4647

@@ -121,11 +122,19 @@ jobs:
121122
with:
122123
package: ${{ fromJson(needs.Params.outputs.params).artifacts.package }}
123124
remaining: |
124-
${{ fromJson(needs.Params.outputs.params).artifacts.unittesting }}-3.6
125-
${{ fromJson(needs.Params.outputs.params).artifacts.unittesting }}-3.7
126-
${{ fromJson(needs.Params.outputs.params).artifacts.unittesting }}-3.8
127-
${{ fromJson(needs.Params.outputs.params).artifacts.unittesting }}-3.9
128-
${{ fromJson(needs.Params.outputs.params).artifacts.unittesting }}-3.10
125+
${{ fromJson(needs.Params.outputs.params).artifacts.unittesting }}-ubuntu-3.7
126+
${{ fromJson(needs.Params.outputs.params).artifacts.unittesting }}-ubuntu-3.8
127+
${{ fromJson(needs.Params.outputs.params).artifacts.unittesting }}-ubuntu-3.9
128+
${{ fromJson(needs.Params.outputs.params).artifacts.unittesting }}-ubuntu-3.10
129+
${{ fromJson(needs.Params.outputs.params).artifacts.unittesting }}-windows-3.7
130+
${{ fromJson(needs.Params.outputs.params).artifacts.unittesting }}-windows-3.8
131+
${{ fromJson(needs.Params.outputs.params).artifacts.unittesting }}-windows-3.9
132+
${{ fromJson(needs.Params.outputs.params).artifacts.unittesting }}-windows-3.10
133+
${{ fromJson(needs.Params.outputs.params).artifacts.unittesting }}-msys2-3.9
134+
${{ fromJson(needs.Params.outputs.params).artifacts.unittesting }}-macos-3.7
135+
${{ fromJson(needs.Params.outputs.params).artifacts.unittesting }}-macos-3.8
136+
${{ fromJson(needs.Params.outputs.params).artifacts.unittesting }}-macos-3.9
137+
${{ fromJson(needs.Params.outputs.params).artifacts.unittesting }}-macos-3.10
129138
${{ fromJson(needs.Params.outputs.params).artifacts.coverage }}
130139
${{ fromJson(needs.Params.outputs.params).artifacts.typing }}
131140
${{ fromJson(needs.Params.outputs.params).artifacts.doc }}

.gitignore

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ coverage.xml
1717

1818
# Sphinx
1919
doc/_build/
20-
doc/pyEDAA.Configure/**/*.*
21-
!doc/pyEDAA.Configure/index.rst
20+
doc/pyEDAA.ToolSetup/**/*.*
21+
!doc/pyEDAA.ToolSetup/index.rst
2222

2323
# BuildTheDocs
2424
doc/_theme/**/*.*

README.md

Lines changed: 79 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,105 @@
11
<p align="center">
2-
<a title="edaa-org.github.io/pyEDAA.Configuration" href="https://edaa-org.github.io/pyEDAA.Configuration"><img height="80px" src="doc/_static/logo.svg"/></a>
2+
<a title="edaa-org.github.io/pyEDAA.ToolSetup" href="https://edaa-org.github.io/pyEDAA.ToolSetup"><img height="80px" src="doc/_static/logo.svg"/></a>
33
</p>
44

5-
[![Sourcecode on GitHub](https://img.shields.io/badge/pyEDAA-Configuration-ffca28.svg?longCache=true&style=flat-square&logo=GitHub&labelColor=ff8f00)](https://GitHub.com/edaa-org/pyEDAA.Configuration)
6-
[![Documentation](https://img.shields.io/website?longCache=true&style=flat-square&label=edaa-org.github.io%2FpyEDAA.Configuration&logo=GitHub&logoColor=fff&up_color=blueviolet&up_message=Read%20now%20%E2%9E%9A&url=https%3A%2F%2Fedaa-org.github.io%2FpyEDAA.Configuration%2Findex.html)](https://edaa-org.github.io/pyEDAA.Configuration/)
5+
[![Sourcecode on GitHub](https://img.shields.io/badge/pyEDAA-ToolSetup-ffca28.svg?longCache=true&style=flat-square&logo=github&longCache=true&logo=GitHub&labelColor=ff8f00)](https://GitHub.com/edaa-org/pyEDAA.ToolSetup)
6+
[![Sourcecode License](https://img.shields.io/pypi/l/pyEDAA.ToolSetup?longCache=true&style=flat-square&logo=Apache&label=code)](LICENSE.md)
7+
[![Documentation](https://img.shields.io/website?longCache=true&style=flat-square&label=edaa-org.github.io%2FpyEDAA.ToolSetup&logo=GitHub&logoColor=fff&up_color=blueviolet&up_message=Read%20now%20%E2%9E%9A&url=https%3A%2F%2Fedaa-org.github.io%2FpyEDAA.ToolSetup%2Findex.html)](https://edaa-org.github.io/pyEDAA.ToolSetup/)
8+
[![Documentation License](https://img.shields.io/badge/doc-CC--BY%204.0-green?longCache=true&style=flat-square&logo=CreativeCommons&logoColor=fff)](LICENSE.md)
79
[![Gitter](https://img.shields.io/badge/chat-on%20gitter-4db797.svg?longCache=true&style=flat-square&logo=gitter&logoColor=e8ecef)](https://gitter.im/hdl/community)
8-
[![GitHub Workflow - Build and Test Status](https://img.shields.io/github/workflow/status/edaa-org/pyEDAA.Configuration/Pipeline/main?longCache=true&style=flat-square&label=Build%20and%20Test&logo=GitHub%20Actions&logoColor=FFFFFF)](https://GitHub.com/edaa-org/pyEDAA.Configuration/actions/workflows/Pipeline.yml)
10+
[![PyPI](https://img.shields.io/pypi/v/pyEDAA.ToolSetup?longCache=true&style=flat-square&logo=PyPI&logoColor=FBE072)](https://pypi.org/project/pyEDAA.ToolSetup/)
11+
![PyPI - Status](https://img.shields.io/pypi/status/pyEDAA.ToolSetup?longCache=true&style=flat-square&logo=PyPI&logoColor=FBE072)
12+
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pyEDAA.ToolSetup?longCache=true&style=flat-square&logo=PyPI&logoColor=FBE072)
13+
[![GitHub Workflow - Build and Test Status](https://img.shields.io/github/workflow/status/edaa-org/pyEDAA.ToolSetup/Pipeline/main?longCache=true&style=flat-square&label=Build%20and%20test&logo=GitHub%20Actions&logoColor=FFFFFF)](https://GitHub.com/edaa-org/pyEDAA.ToolSetup/actions/workflows/Pipeline.yml)
14+
[![Libraries.io status for latest release](https://img.shields.io/librariesio/release/pypi/pyEDAA.ToolSetup?longCache=true&style=flat-square&logo=Libraries.io&logoColor=fff)](https://libraries.io/github/edaa-org/pyEDAA.ToolSetup)
15+
[![Codacy - Quality](https://img.shields.io/codacy/grade/2245747238a94667b25f75970b86a333?longCache=true&style=flat-square&logo=Codacy)](https://www.codacy.com/gh/edaa-org/pyEDAA.ToolSetup)
16+
[![Codacy - Coverage](https://img.shields.io/codacy/coverage/2245747238a94667b25f75970b86a333?longCache=true&style=flat-square&logo=Codacy)](https://www.codacy.com/gh/edaa-org/pyEDAA.ToolSetup)
17+
[![Codecov - Branch Coverage](https://img.shields.io/codecov/c/github/edaa-org/pyEDAA.ToolSetup?longCache=true&style=flat-square&logo=Codecov)](https://codecov.io/gh/edaa-org/pyEDAA.ToolSetup)
918

1019
<!--
11-
[![Sourcecode License](https://img.shields.io/pypi/l/pyEDAA.Configuration?longCache=true&style=flat-square&logo=Apache&label=code)](LICENSE.md)
12-
[![Documentation License](https://img.shields.io/badge/doc-CC--BY%204.0-green?longCache=true&style=flat-square&logo=CreativeCommons&logoColor=fff)](LICENSE.md)
13-
14-
[![PyPI](https://img.shields.io/pypi/v/pyEDAA.Configuration?longCache=true&style=flat-square&logo=PyPI&logoColor=FBE072)](https://pypi.org/project/pyEDAA.Configuration/)
15-
![PyPI - Status](https://img.shields.io/pypi/status/pyEDAA.Configuration?longCache=true&style=flat-square&logo=PyPI&logoColor=FBE072)
16-
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pyEDAA.Configuration?longCache=true&style=flat-square&logo=PyPI&logoColor=FBE072)
17-
18-
[![Libraries.io status for latest release](https://img.shields.io/librariesio/release/pypi/pyEDAA.Configuration?longCache=true&style=flat-square&logo=Libraries.io&logoColor=fff)](https://libraries.io/github/edaa-org/pyEDAA.Configuration)
19-
[![Codacy - Quality](https://img.shields.io/codacy/grade/39d312bf98244961975559f141c3e000?longCache=true&style=flat-square&logo=Codacy)](https://app.codacy.com/gh/edaa-org/pyEDAA.Configuration)
20-
[![Codacy - Coverage](https://img.shields.io/codacy/coverage/39d312bf98244961975559f141c3e000?longCache=true&style=flat-square&logo=Codacy)](https://app.codacy.com/gh/edaa-org/pyEDAA.Configuration)
21-
[![Codecov - Branch Coverage](https://img.shields.io/codecov/c/github/edaa-org/pyEDAA.Configuration?longCache=true&style=flat-square&logo=Codecov)](https://codecov.io/gh/edaa-org/pyEDAA.Configuration)
22-
23-
[![Dependent repos (via libraries.io)](https://img.shields.io/librariesio/dependent-repos/pypi/pyEDAA.Configuration?longCache=true&style=flat-square&logo=GitHub)](https://GitHub.com/edaa-org/pyEDAA.Configuration/network/dependents)
24-
[![Requires.io](https://img.shields.io/requires/github/edaa-org/pyEDAA.Configuration?longCache=true&style=flat-square)](https://requires.io/github/EDAA-ORG/pyEDAA.Configuration/requirements/?branch=main)
25-
[![Libraries.io SourceRank](https://img.shields.io/librariesio/sourcerank/pypi/pyEDAA.Configuration?longCache=true&style=flat-square)](https://libraries.io/github/edaa-org/pyEDAA.Configuration/sourcerank)
20+
[![Dependent repos (via libraries.io)](https://img.shields.io/librariesio/dependent-repos/pypi/pyEDAA.ToolSetup?longCache=true&style=flat-square&logo=GitHub)](https://github.com/edaa-org/pyEDAA.ToolSetup/network/dependents)
21+
[![Requires.io](https://img.shields.io/requires/github/edaa-org/pyEDAA.ToolSetup?longCache=true&style=flat-square)](https://requires.io/github/edaa-org/pyEDAA.ToolSetup/requirements/?branch=main)
22+
[![Libraries.io SourceRank](https://img.shields.io/librariesio/sourcerank/pypi/pyEDAA.ToolSetup)](https://libraries.io/github/edaa-org/pyEDAA.ToolSetup/sourcerank)
2623
-->
2724

25+
2826
<p align="center">
29-
<a title="edaa-org.github.io/pyEDAA.Configuration" href="https://edaa-org.github.io/pyEDAA.Configuration"><img height="275px" src="doc/_static/work-in-progress.png"/></a>
27+
<a title="edaa-org.github.io/pyEDAA.ToolSetup" href="https://edaa-org.github.io/pyEDAA.ToolSetup"><img height="275px" src="doc/_static/work-in-progress.png"/></a>
3028
</p>
3129

3230

3331
# Main Goals
3432

35-
* *tbd*
33+
* Provide abstract information of where a tool is installed and configured on the local machine.
34+
* Find local EDA tool installations and gather all necessary information in a configuration file.
35+
* Support multiple versions and variants of the same tool.
36+
* In case of multiple tool versions/variants select one default installation.
37+
* Allow switching the default version/variant.
38+
* Allow reading and writing such a configuration file via API.
39+
* Allow reading and writing such a configuration file via CLI.
3640

3741

38-
# Use Cases
42+
# Features
43+
44+
* Find tool installations:
45+
* at default installation locations (based on operating system).
46+
* in `PATH`.
47+
* via environment variables.
48+
* Support multiple versions of the same tool.
49+
E.g. Vivado 2018.3, 2021.2
50+
* Support multiple variants of the same tool.
51+
E.g. ModelSim Altera Edition vs. ModelSim SE vs. QuestaSim
52+
* Configuring a default version/variant per tool.
53+
54+
55+
# Condensed View on `ToolInformation` Class
56+
57+
```python
58+
from pathlib import Path
59+
from pyTooling.Decorators import export
3960

40-
* *tbd*
61+
@export
62+
class ToolInformation:
63+
def __init__(self, installationDirectory: Path, binaryDirectory: Path, version: str = None, edition: str = None): ...
64+
65+
@property
66+
def InstallationDirectory(self) -> Path:
67+
return self._installationDirectory
68+
69+
@property
70+
def BinaryDirectory(self) -> Path:
71+
return self._binaryDirectory
72+
73+
@property
74+
def Version(self) -> str:
75+
return self._version
76+
77+
@property
78+
def Edition(self) -> str:
79+
return self._edition
80+
```
4181

4282

4383
# Examples
4484

4585
```python
46-
print(some.python.code.here())
86+
from pathlib import Path
87+
from pyEDAA.ToolSetup import Installations
88+
89+
yamlFile = Path("configuration.yml")
90+
91+
installation = Installations(yamlFile)
92+
activeHDL = installation.Aldec.ActiveHDL
93+
activeHDLVersion = activeHDL["10.3"]
94+
print(activeHDLVersion.BinaryDirectory)
4795
```
4896

97+
# Consumers
98+
99+
This layer is used by:
100+
101+
* 🚧 pyEDAA.Workflow
102+
49103

50104
# References
51105

@@ -56,7 +110,7 @@ print(some.python.code.here())
56110
* [Patrick Lehmann](https://github.com/Paebbels) (Maintainer)
57111
* [Martin Zabel](https://github.com/mzabeltud)
58112
* [Unai Martinez-Corral](https://github.com/umarcor)
59-
* [and more...](https://github.com/edaa-org/pyEDAA.Configuration/graphs/contributors)
113+
* [and more...](https://github.com/edaa-org/pyEDAA.ToolSetup/graphs/contributors)
60114

61115

62116
# License

doc/DataModel.rst

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
Data Model
2+
##########
3+
4+
Abstract and Basic Information Classes
5+
**************************************
6+
7+
*TBD*
8+
9+
10+
Abstract Data Model Classes
11+
***************************
12+
13+
*TBD*

0 commit comments

Comments
 (0)