Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v0.3.0 #21

Draft
wants to merge 44 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
8ee8241
Bumped version to v0.3.0.
Paebbels Jul 7, 2023
41d51c5
Reactivate job combinations.
Paebbels Jul 7, 2023
c37c2e8
Bumped dependencies.
Paebbels Jul 7, 2023
807336f
Improved GHDL.
Paebbels Jul 8, 2023
6d59416
Improved test cases.
Paebbels Jul 8, 2023
4bcb1a2
Applied ExtendedType metaclass.
Paebbels Jul 8, 2023
36c3511
Bumped dependencies.
Paebbels Jul 15, 2023
c6ab39f
Updated pyproject file.
Paebbels Jul 29, 2023
0a87b20
Fixed InterSphinx configuration.
Paebbels Aug 13, 2023
806b16f
Bumped dependencies.
Paebbels Aug 13, 2023
54a23e8
General code update and bumped versions.
Paebbels Jun 18, 2024
7add85d
Modification for pyTooling v6.0+.
Paebbels Jun 18, 2024
678aceb
Updated pipeline.
Paebbels Jun 18, 2024
4a298bf
Added ToolMixin.
Paebbels Jun 18, 2024
9f464e9
Added missing dependency.
Paebbels Jun 18, 2024
a7b6cc2
Fixed more mypy messages.
Paebbels Jun 18, 2024
ee4f495
Try to create lib/ghdl and bin directories.
Paebbels Jun 18, 2024
26b18c9
Run CheckDocumentation with 75% goal.
Paebbels Jun 18, 2024
65d10c1
Added FreeBSD support for GHDL, GTKwave, Docker.
Paebbels Jun 19, 2024
f2ff598
Bumped dependencies.
Paebbels Jul 21, 2024
76dc787
Updated documentation.
Paebbels Jul 21, 2024
6a9c366
Updated pipeline.
Paebbels Jul 21, 2024
3960c62
Added news paragraph for 2024.
Paebbels Jul 21, 2024
96d950e
Bumped dependencies.
Paebbels Jul 21, 2024
648e9c6
Added missing documentation pages.
Paebbels Jul 29, 2024
9ac6add
Install ghdl mock
Paebbels Jul 29, 2024
0e7b52a
Improved GHDL regexp.
Paebbels Jul 29, 2024
b8f0b30
Workaround \ vs. / problem.
Paebbels Jul 29, 2024
0b4e05e
Trying GHDL-mcode on Ubuntu.
Paebbels Jul 29, 2024
793111f
Trying GHDL-mcode on macOS.
Paebbels Jul 29, 2024
eb97510
Adjusted binary paths for macOS.
Paebbels Jul 30, 2024
6f2792c
Upgrade to Ubuntu 2024.04.
Paebbels Jul 30, 2024
10593ec
Handle GHDL version from Ubuntu.
Paebbels Jul 30, 2024
ae54242
Fixed paths.
Paebbels Jul 30, 2024
b024448
Install GHDL in MinGW64 and UCRT64.
Paebbels Jul 30, 2024
a8493e1
Improved regexp for GHDL version, backend, etc..
Paebbels Jul 30, 2024
10af22f
Add missing llvm on macOS.
Paebbels Jul 30, 2024
6cb6521
Debug LLVM@15.
Paebbels Jul 30, 2024
29d8735
Fixed reference in documentation.
Paebbels Aug 1, 2024
dde522c
Enhanced PR template.
Paebbels Aug 2, 2024
10ca572
Set DYLD_LIBRARY_PATH environment variable via $GITHUB_ENV, so it's e…
Paebbels Aug 2, 2024
e8d0544
Using GHDL_PREFIX.
Paebbels Aug 3, 2024
6023ef6
General updates.
Paebbels Nov 11, 2024
be80c18
Fixed pipeline.
Paebbels Nov 13, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 0 additions & 8 deletions .btd.yml

This file was deleted.

18 changes: 16 additions & 2 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,30 @@
# New Features


* tbd
* tbd

# Changes

* tbd
* tbd

# Bug Fixes

* tbd
* tbd

# Documentation

* tbd
* tbd

# Unit Tests

* tbd
* tbd

----------
# Related PRs:
# Related Issues and Pull-Requests

* tbd
* tbd
231 changes: 163 additions & 68 deletions .github/workflows/Pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,124 +4,219 @@ on:
push:
workflow_dispatch:
schedule:
- cron: '0 0 * * 5'
# Every Friday at 22:00 - rerun pipeline to check for dependency-based issues
- cron: '0 22 * * 5'

jobs:
ConfigParams:
uses: pyTooling/Actions/.github/workflows/ExtractConfiguration.yml@dev
with:
package_name: pyEDAA.CLITool

Params:
UnitTestingParams:
uses: pyTooling/Actions/.github/workflows/Parameters.yml@dev
with:
name: pyEDAA.CLITool
disable_list: "mingw64:3.10 windows:3.7 windows:3.8 windows:3.9 windows:3.10 windows:3.11"

UnitTesting:
uses: pyTooling/Actions/.github/workflows/UnitTesting.yml@dev
needs:
- Params
- UnitTestingParams
with:
jobs: ${{ needs.Params.outputs.python_jobs }}
artifact: ${{ fromJson(needs.Params.outputs.artifact_names).unittesting_xml }}

Coverage:
uses: pyTooling/Actions/.github/workflows/CoverageCollection.yml@dev
needs:
- Params
with:
python_version: ${{ needs.Params.outputs.python_version }}
artifact: ${{ fromJson(needs.Params.outputs.artifact_names).codecoverage_html }}
secrets:
codacy_token: ${{ secrets.CODACY_PROJECT_TOKEN }}
jobs: ${{ needs.UnitTestingParams.outputs.python_jobs }}
apt: ghdl-mcode
brew: --cask ghdl
pacboy: ghdl
ubuntu_before_script: |
which ghdl
ghdl version
echo "GHDL_PREFIX=/usr/lib/x86_64-linux-gnu/ >> $GITHUB_ENV"
echo "GHDL_PREFIX=/usr/lib/x86_64-linux-gnu/" >> $GITHUB_ENV
macos_arm_before_script: |
which ghdl
ghdl version
echo $(brew --prefix llvm@15)
export DYLD_LIBRARY_PATH=$(brew --prefix llvm@15)/lib
echo -$DYLD_LIBRARY_PATH-
echo "DYLD_LIBRARY_PATH=$(brew --prefix llvm@15)/lib" >> $GITHUB_ENV
echo "GHDL_PREFIX=$(realpath $(dirname $(which ghdl))/../lib/ghdl) >> $GITHUB_ENV"
echo "GHDL_PREFIX=$(realpath $(dirname $(which ghdl))/../lib/ghdl)" >> $GITHUB_ENV
ls -lAh "$(realpath $(dirname $(which ghdl))/../lib)"
echo "----"
ls $(brew --prefix llvm@15)/lib
mingw64_before_script: |
which ghdl
ghdl version
echo "GHDL_PREFIX=$(realpath $(dirname $(which ghdl))/../lib/ghdl) >> $GITHUB_ENV"
echo "GHDL_PREFIX=$(realpath $(dirname $(which ghdl))/../lib/ghdl)" >> $GITHUB_ENV
# ls -lAh "$(realpath $(dirname $(which ghdl))/../lib)"
ucrt64_before_script: |
which ghdl
ghdl version
echo "GHDL_PREFIX=$(realpath $(dirname $(which ghdl))/../lib/ghdl) >> $GITHUB_ENV"
echo "GHDL_PREFIX=$(realpath $(dirname $(which ghdl))/../lib/ghdl)" >> $GITHUB_ENV
# ls -lAh "$(realpath $(dirname $(which ghdl))/../lib)"
# ubuntu_before_script: sudo install -m 755 tests/mock/ghdl /usr/local/bin
requirements: "-r tests/unit/requirements.txt"
unittest_xml_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_xml }}
coverage_sqlite_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_sqlite }}

StaticTypeCheck:
uses: pyTooling/Actions/.github/workflows/StaticTypeCheck.yml@dev
needs:
- Params
- ConfigParams
- UnitTestingParams
with:
python_version: ${{ needs.Params.outputs.python_version }}
requirements: '-r tests/requirements.txt'
python_version: ${{ needs.UnitTestingParams.outputs.python_version }}
commands: |
cd pyEDAA
mypy --html-report ../htmlmypy -p CLITool
html_artifact: ${{ fromJson(needs.Params.outputs.artifact_names).statictyping_html }}
${{ needs.ConfigParams.outputs.mypy_prepare_command }}
mypy --html-report htmlmypy -p ${{ needs.ConfigParams.outputs.package_fullname }}
html_report: 'htmlmypy'
html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).statictyping_html }}

PublishTestResults:
uses: pyTooling/Actions/.github/workflows/PublishTestResults.yml@dev
DocCoverage:
uses: pyTooling/Actions/.github/workflows/CheckDocumentation.yml@dev
needs:
- UnitTesting
- ConfigParams
- UnitTestingParams
with:
python_version: ${{ needs.UnitTestingParams.outputs.python_version }}
directory: ${{ needs.ConfigParams.outputs.package_directors }}
fail_under: 75

Package:
uses: pyTooling/Actions/.github/workflows/Package.yml@dev
needs:
- Params
- Coverage
- UnitTestingParams
- UnitTesting
with:
python_version: ${{ needs.Params.outputs.python_version }}
artifact: ${{ fromJson(needs.Params.outputs.artifact_names).package_all }}
python_version: ${{ needs.UnitTestingParams.outputs.python_version }}
artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).package_all }}

Release:
uses: pyTooling/Actions/.github/workflows/Release.yml@dev
if: startsWith(github.ref, 'refs/tags')
PublishCoverageResults:
uses: pyTooling/Actions/.github/workflows/PublishCoverageResults.yml@dev
needs:
- UnitTestingParams
- UnitTesting
- Coverage
- StaticTypeCheck
- Package
with:
coverage_json_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_json }}
coverage_html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_html }}
secrets:
codacy_token: ${{ secrets.CODACY_PROJECT_TOKEN }}

PublishOnPyPI:
uses: pyTooling/Actions/.github/workflows/PublishOnPyPI.yml@dev
if: startsWith(github.ref, 'refs/tags')
PublishTestResults:
uses: pyTooling/Actions/.github/workflows/PublishTestResults.yml@dev
needs:
- Params
- Release
- Package
- UnitTestingParams
- UnitTesting
with:
python_version: ${{ needs.Params.outputs.python_version }}
requirements: -r dist/requirements.txt
artifact: ${{ fromJson(needs.Params.outputs.artifact_names).package_all }}
secrets:
PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }}
additional_merge_args: '"--pytest=rewrite-dunder-init;reduce-depth:pytest.tests.unit" --render=tree'
merged_junit_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_xml }}

# VerifyDocs:
# uses: pyTooling/Actions/.github/workflows/VerifyDocs.yml@dev
# needs:
# - Params
# - UnitTestingParams
# with:
# python_version: ${{ needs.Params.outputs.python_version }}
# python_version: ${{ needs.UnitTestingParams.outputs.python_version }}

BuildTheDocs:
uses: pyTooling/Actions/.github/workflows/BuildTheDocs.yml@dev
Documentation:
uses: pyTooling/Actions/.github/workflows/SphinxDocumentation.yml@dev
needs:
- Params
#- VerifyDocs
- ConfigParams
- UnitTestingParams
- PublishTestResults
- PublishCoverageResults
# - VerifyDocs
with:
artifact: ${{ fromJson(needs.Params.outputs.artifact_names).documentation_html }}
python_version: ${{ needs.UnitTestingParams.outputs.python_version }}
coverage_report_json_directory: ${{ needs.ConfigParams.outputs.coverage_report_json_directory }}
unittest_xml_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_xml }}
coverage_json_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_json }}
html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_html }}
latex_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_latex }}

IntermediateCleanUp:
uses: pyTooling/Actions/.github/workflows/IntermediateCleanUp.yml@dev
needs:
- UnitTestingParams
- PublishCoverageResults
- PublishTestResults
- Documentation
with:
sqlite_coverage_artifacts_prefix: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_sqlite }}-
xml_unittest_artifacts_prefix: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_xml }}-


PDFDocumentation:
uses: pyTooling/Actions/.github/workflows/LaTeXDocumentation.yml@dev
needs:
- UnitTestingParams
- Documentation
with:
document: pyEDAA.CLITool
latex_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_latex }}
pdf_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_pdf }}

PublishToGitHubPages:
uses: pyTooling/Actions/.github/workflows/PublishToGitHubPages.yml@dev
needs:
- Params
- BuildTheDocs
- Coverage
- UnitTestingParams
- Documentation
# - PDFDocumentation
- PublishCoverageResults
- StaticTypeCheck
with:
doc: ${{ fromJson(needs.Params.outputs.artifact_names).documentation_html }}
coverage: ${{ fromJson(needs.Params.outputs.artifact_names).codecoverage_html }}
typing: ${{ fromJson(needs.Params.outputs.artifact_names).statictyping_html }}
doc: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_html }}
# coverage: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_html }}
typing: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).statictyping_html }}

ReleasePage:
uses: pyTooling/Actions/.github/workflows/Release.yml@dev
if: startsWith(github.ref, 'refs/tags')
needs:
- PublishToGitHubPages

PublishOnPyPI:
uses: pyTooling/Actions/.github/workflows/PublishOnPyPI.yml@dev
if: startsWith(github.ref, 'refs/tags')
needs:
- UnitTestingParams
- ReleasePage
with:
python_version: ${{ needs.UnitTestingParams.outputs.python_version }}
requirements: -r dist/requirements.txt
artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).package_all }}
secrets:
PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }}

ArtifactCleanUp:
uses: pyTooling/Actions/.github/workflows/ArtifactCleanUp.yml@dev
needs:
- Params
- UnitTestingParams
- UnitTesting
- Coverage
- StaticTypeCheck
- BuildTheDocs
- PublishToGitHubPages
- Documentation
# - PDFDocumentation
- PublishTestResults
- PublishCoverageResults
- PublishToGitHubPages
with:
package: ${{ fromJson(needs.Params.outputs.artifact_names).package_all }}
package: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).package_all }}
remaining: |
${{ fromJson(needs.Params.outputs.artifact_names).unittesting_xml }}-*
${{ fromJson(needs.Params.outputs.artifact_names).codecoverage_html }}
${{ fromJson(needs.Params.outputs.artifact_names).statictyping_html }}
${{ fromJson(needs.Params.outputs.artifact_names).documentation_html }}
${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_xml }}-*
${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_html }}-*
${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_sqlite }}-*
${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_xml }}-*
${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_json }}-*
${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_html }}-*
${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_xml }}
${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_html }}
${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_sqlite }}
${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_xml }}
${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_json }}
${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_html }}
${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).statictyping_html }}
${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_html }}
${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_latex }}
# ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_pdf }}
12 changes: 11 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,13 @@ __pycache__/
.coverage
.cov
coverage.xml
/report/coverage

# mypy
/report/typing

# pytest
/report/unit

# setuptools
/build/**/*.*
Expand All @@ -21,5 +28,8 @@ coverage.xml
/doc/pyEDAA.CLITool/**/*.*
!/doc/pyEDAA.CLITool/index.rst

# PyCharm project
# PyCharm project files
/.idea/workspace.xml

# Git files
!.git*
6 changes: 3 additions & 3 deletions .idea/pyEDAA.CLITool.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions dist/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
wheel>=0.38.1
twine
wheel ~= 0.45
twine ~= 5.1
Loading
Loading