Skip to content

Improve CSSFinder performance #2

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

Open
wants to merge 247 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
247 commits
Select commit Hold shift + click to select a range
424c8d5
Add gitignore file for C/C++/Python boilerplate
Argmaster Dec 21, 2022
8579c70
Dump requirements into files
Argmaster Dec 21, 2022
87631d5
Reformat code with black
Argmaster Dec 21, 2022
a01a446
Create MtxFn and MtxIO namespaces, extract PRIMES to global constant
Argmaster Dec 21, 2022
751ed87
Restructurize files to match typical poetry based project structure
Argmaster Dec 22, 2022
19f20d8
Add 'Building' section to readme
Argmaster Dec 22, 2022
a6c12b0
Fix dependencies selection + add cli entrypoint
Argmaster Dec 22, 2022
385a60f
Add pendulum for datatime handling
Argmaster Dec 22, 2022
b4ea27d
Add logging configuration handling
Argmaster Dec 22, 2022
87b3ce9
Add new command line interface
Argmaster Dec 22, 2022
9a57b5f
Ignore FormatStringAdapter use type error
Argmaster Dec 22, 2022
bb98e44
Add missing show_logo() implementation
Argmaster Dec 22, 2022
c4466bf
Add Task interface
Argmaster Dec 22, 2022
bb6a75b
Extend Task class interface for Path operations
Argmaster Dec 22, 2022
ee512a4
Add basics of size awareness and mode handling
Argmaster Dec 23, 2022
531c56d
Add scipy to deps and fix isort config
Argmaster Dec 23, 2022
eb3ee06
Add primitive scipt based IO implementation
Argmaster Dec 23, 2022
05a3133
Implement utitlity functions in ops.py module
Argmaster Dec 23, 2022
cd72b0e
Add mode specific callbacks for optimization and random mtx generation
Argmaster Dec 23, 2022
92ef295
Provide typing module for static typing of code
Argmaster Dec 23, 2022
a80790f
Extend Task class field set
Argmaster Dec 23, 2022
c37b882
Change return type of MatrixIO.load()
Argmaster Dec 23, 2022
7ab1a5d
Add logging and size, sub_sys_size args to cli
Argmaster Dec 23, 2022
320dfc7
Add missing glue code from api.py
Argmaster Dec 23, 2022
235e1b0
Reorder imports in log.py
Argmaster Dec 23, 2022
421f0f6
Add sequential Gilbert algorithm implementation
Argmaster Dec 23, 2022
cd25ba7
Add typing_extensions to dev dependencies
Argmaster Dec 24, 2022
8fb706b
Fix bug causing code to not run
Argmaster Dec 24, 2022
17ba0b4
Add profiling utilities
Argmaster Dec 24, 2022
202e873
Add readme section about profiling
Argmaster Dec 24, 2022
e2bd98c
Add .gitattributes with LF forced for all files
Argmaster Dec 24, 2022
5a57eda
Make cssfinder only show logo in -vv (info) and -vvv (debug) modes
Argmaster Dec 24, 2022
aeca7e8
Add project file handling
Argmaster Jan 22, 2023
7d4b92c
Create framework for algorithm implementations
Argmaster Jan 29, 2023
bbe7d6e
WIP
Argmaster Feb 10, 2023
c6c08a1
Implement complex128 numpy backend
Argmaster Feb 21, 2023
07db1b0
Fix bug in code causing script to yield incorrect results
Argmaster Feb 21, 2023
23c0112
Implemented template based implementation code generation
Argmaster Feb 27, 2023
ce0b3b9
Fix implementation of numpy backend, add debug utilities to template
Argmaster Feb 27, 2023
61b59b7
Numpy precision implementations (#1)
Argmaster Feb 27, 2023
f66303d
Add examples directory
Argmaster Feb 27, 2023
9db78da
Remove leftovers of float optimization
Argmaster Feb 27, 2023
b8cb17a
Add examples source
Argmaster Feb 27, 2023
1068283
Change random number generation to uniform distribution based
Argmaster Mar 1, 2023
6b3d458
Improve project definition file () capabilities by allowing refs
Argmaster Mar 2, 2023
e44d2bf
Add command line for showing plot of distance decay
Argmaster Mar 3, 2023
cfd0562
Add dynamic configuration example to 5qubits example
Argmaster Mar 3, 2023
dc32e63
Add Visual Studio Code configuration to repository
Argmaster Mar 3, 2023
ed5e8d6
Implement MVP of execution reports
Argmaster Mar 3, 2023
5d21b32
Implement biseparable state mode
Argmaster Mar 5, 2023
798ecef
Replace pylint with ruff
Argmaster Mar 5, 2023
1df0404
Fix issues in code detected by ruff
Argmaster Mar 6, 2023
8ebe32a
Update README to mach current project state
Argmaster Mar 6, 2023
de3c126
Add primitive system tests
Argmaster Mar 7, 2023
d3007ec
Fix type annotation of models attributes to not use |
Argmaster Mar 7, 2023
9e9c434
Remove other modern type annotations from models for compatibility wi…
Argmaster Mar 7, 2023
c249961
Add workflows for typechecking and code quality validation, improve p…
Argmaster Mar 7, 2023
cf15010
Add deployment workflow
Argmaster Mar 7, 2023
1e7f7f9
Disable code quality checks on python 3.8 due to lack of hook compati…
Argmaster Mar 7, 2023
7708a53
Make gen-numpy-impl task accept arguments
Argmaster Mar 7, 2023
e5500d2
Improve workflow triggers
Argmaster Mar 8, 2023
c530235
Transfer new CSSFinder to main branch for pre release (#2)
Argmaster Mar 8, 2023
181db30
Fix README
Argmaster Mar 8, 2023
854ca24
Change reporitory link
Argmaster Mar 8, 2023
2ddde7d
Improve release drafting, add file based label configuration
Argmaster Mar 8, 2023
9a63d4f
Improve deploy action
Argmaster Mar 8, 2023
925fc72
Fix deploy trigger conditions
Argmaster Mar 8, 2023
29006cd
Simplify deployment workflows
Argmaster Mar 8, 2023
38506ac
Add paths selector to system tests push trigger
Argmaster Mar 8, 2023
80c5647
Add more strict selector to Publish 📦 to PyPI workflow
Argmaster Mar 9, 2023
69bf721
Move package build below dev version bump
Argmaster Mar 9, 2023
5e87075
Bump pre-commit from 2.21.0 to 3.1.1
dependabot[bot] Mar 9, 2023
98c136b
Bump pre-commit from 2.21.0 to 3.1.1 (#3)
Argmaster Mar 9, 2023
03a84f3
Bump pydantic from 1.10.5 to 1.10.6 (#5)
dependabot[bot] Mar 9, 2023
f4f6cab
Update deploy workflow tag token
Argmaster Mar 9, 2023
48ee403
Fix SBiPi mode with given system dimensions
Argmaster Mar 9, 2023
0186038
Generate fixed numpy backend files
Argmaster Mar 9, 2023
be17328
Refactor system tests to avoid code duplication
Argmaster Mar 9, 2023
c143ca0
Update test-system poe task in pyproject.toml
Argmaster Mar 9, 2023
db46b84
Fix test VSC config and CI config
Argmaster Mar 9, 2023
91188a8
Add release creator script
Argmaster Mar 9, 2023
e019b17
Widen accepted value range for test_first_correction in SBiPi mode
Argmaster Mar 10, 2023
49e1bf1
Fix SBiPi mode with given system dimensions (#6)
Argmaster Mar 10, 2023
630dd68
Improve release creator script
Argmaster Mar 10, 2023
5314f5d
Bump version to 0.2.0
Argmaster Mar 10, 2023
4d6fa7a
Update CHANGELOG.md
Argmaster Mar 10, 2023
2986a02
Add stash only when dirty workspace
Argmaster Mar 10, 2023
9ec3e8a
Remove unused release-drafter.yaml
Argmaster Mar 10, 2023
6294f30
Always run system tests
Argmaster Mar 10, 2023
4d00bfa
Widen accepted correction ranges for tests
Argmaster Mar 10, 2023
d984d0c
Release 0.2.0 (#7)
Argmaster Mar 10, 2023
256a412
Sync after release 0.2.0 (#8)
Argmaster Mar 10, 2023
8b09cc4
Bump black from 22.12.0 to 23.1.0 (#4)
dependabot[bot] Mar 10, 2023
4976296
Fix bug in task-report command caused by incorrect argument usage (#9)
Argmaster Mar 10, 2023
8660a3e
Bump version to 0.2.1
Argmaster Mar 10, 2023
45c7429
Sync after release 0.2.1 (#10)
Argmaster Mar 10, 2023
2d504de
Add HTML and PDF reports
Argmaster Mar 10, 2023
df36458
Redesign report generation tools
Argmaster Mar 11, 2023
bf3fd50
Fix weasyprint import error try block
Argmaster Mar 11, 2023
1840e39
Extend capabilities and improve interface of reports (#15)
Argmaster Mar 12, 2023
94a10b6
Add tests for reports generation
Argmaster Mar 12, 2023
418dce6
Expand reports tests to covert PDF failures on windows and macOS
Argmaster Mar 12, 2023
afbc987
Fix for windows reports CI
Argmaster Mar 12, 2023
aed2b8e
Add GTK3 bindings to install on windows and add it to system path
Argmaster Mar 12, 2023
b78f161
Make create_report_from yield report objects instead of saving them
Argmaster Mar 12, 2023
532f01e
Narrow add_dll_directory condition for windows
Argmaster Mar 12, 2023
ce93cba
Extend path deduction system on windows
Argmaster Mar 13, 2023
b338488
Modify report tests on windows to rely on tschoonj/GTK repository
Argmaster Mar 13, 2023
376347c
Add task-report cli option
Argmaster Mar 13, 2023
e314b52
Add cli docs
Argmaster Mar 13, 2023
bce9cad
Disable PDF reports tests on win32
Argmaster Mar 13, 2023
ece3f8a
Fix type error caused by default_dest being used without checking it …
Argmaster Mar 13, 2023
ed72010
Redesign project, task and task_name propagation within project object
Argmaster Mar 13, 2023
9703c5d
Refactor file IO approach in Gilbert algorithm
Argmaster Mar 14, 2023
83635fd
Adapt tests and examples to API changes
Argmaster Mar 14, 2023
8b155b7
Add note about GTK3 problems
Argmaster Mar 14, 2023
9e57ef5
Extend workspace dictionary
Argmaster Mar 14, 2023
9c2b529
Fix predefined state shape use
Argmaster Mar 14, 2023
2a21b1b
Fix tests when running in parallel
Argmaster Mar 14, 2023
abe964c
Update CHANGELOG
Argmaster Mar 14, 2023
8e7c569
Avoid running Python tests for markdown files modification
Argmaster Mar 14, 2023
f9a76c7
Move examples into cssfinder/ to include it in packages
Argmaster Mar 15, 2023
9e2570a
Add apply_symmetries implementation
Argmaster Mar 15, 2023
e084c73
Improve release script docstring
Argmaster Mar 15, 2023
ae1232b
Bump version to 0.3.0
Argmaster Mar 15, 2023
1a436a4
Release 0.3.0 (#17)
Argmaster Mar 15, 2023
1a9e134
Sync after release 0.3.0 (#18)
Argmaster Mar 15, 2023
353806e
Implement projections and symmetries support
Argmaster Mar 16, 2023
0e0dbec
Add interface for accessing bundled examples
Argmaster Mar 17, 2023
ebdb16e
Bump version to 0.4.0
Argmaster Mar 17, 2023
a0ce27e
Extend workspace dictionary
Argmaster Mar 17, 2023
729460c
Update CHANGELOG
Argmaster Mar 17, 2023
afe8876
Release 0.4.0 (#20)
Argmaster Mar 17, 2023
f209508
Cleanup in examples - better grouping
Argmaster Mar 18, 2023
85afafa
Add automatic priority elevation
Argmaster Mar 19, 2023
bdd25a2
Convert if block to callback logic in numpy backend
Argmaster Mar 19, 2023
7443a3a
Add random implementation toggle
Argmaster Mar 19, 2023
e018d20
Add performance results
Argmaster Mar 19, 2023
fbfeefb
Update word ignores and dictionary
Argmaster Mar 19, 2023
b04cb3f
Fix projection presence condition causing crash
Argmaster Mar 19, 2023
7ced956
Fix IoPriority enum on MacOS
Argmaster Mar 19, 2023
f527c27
Pin poetry version in CI to 1.4.0 due to high error rate
Argmaster Mar 19, 2023
5202bf9
Implement backend loader
Argmaster Mar 20, 2023
b094a08
Switch to use dynamically imported backends
Argmaster Mar 20, 2023
80ee163
Merge branch 'dev' into fix/conflict
Argmaster Mar 20, 2023
1304d19
Remove outdated generation stage from CI
Argmaster Mar 20, 2023
4f90cdc
Sync after release 0.4.0 (#24)
Argmaster Mar 20, 2023
366b6e0
Add numpy backend to dev dependencies
Argmaster Mar 20, 2023
bcc041c
Pin latest version of cssfinder_backend_numpy
Argmaster Mar 20, 2023
685968a
Bump version to 0.5.0
Argmaster Mar 21, 2023
3adfeff
Update CHANGELOG
Argmaster Mar 21, 2023
3dd9555
Bump version of cssfinder-backend-numpy for testing to 0.3.0
Argmaster Mar 21, 2023
10bb2a1
Release 0.5.0 (#25)
Argmaster Mar 21, 2023
8edd050
Sync after release 0.5.0
Argmaster Mar 24, 2023
6a81182
Add command for creating new static projects
Argmaster Mar 26, 2023
61d6068
Improve response times for CLI by moving imports into callbacks
Argmaster Mar 26, 2023
69c9c51
Add CLI/TUI interface for adding new task
Argmaster Mar 27, 2023
2732e6f
Fix interactive mode for adding tasks
Argmaster Mar 31, 2023
158df0b
Bump ruff from 0.0.254 to 0.0.260 (#34)
dependabot[bot] Apr 3, 2023
e47a951
Bump pre-commit from 3.2.0 to 3.2.1 (#30)
dependabot[bot] Apr 3, 2023
95a66d2
Bump pydantic from 1.10.6 to 1.10.7 (#32)
dependabot[bot] Apr 3, 2023
3033a6f
Bump rich from 13.3.2 to 13.3.3 (#33)
dependabot[bot] Apr 3, 2023
9029c76
Bump poethepoet from 0.18.1 to 0.19.0 (#31)
dependabot[bot] Apr 3, 2023
b1a464a
Move jinja2 dependency to main deps group from dev group
Argmaster Apr 14, 2023
b31690d
Add Peacock VSCode extensions settings
Argmaster Apr 19, 2023
86c0f8b
Add .log extension to log files
Argmaster Apr 19, 2023
1b9bd66
Add automated task parallelism
Argmaster Apr 19, 2023
1e5b4fb
Add extras groups for backends
Argmaster Apr 19, 2023
50cd8dc
Add Examples section to README.md
Argmaster Apr 19, 2023
b38ceef
Add parallel control parameters to cli
Argmaster Apr 20, 2023
70fc4a5
Add benchmark_32x32 example
Argmaster Apr 20, 2023
26e0638
Register benchmark_32x32 example
Argmaster Apr 20, 2023
db2ae7e
Add automatic flush to json file for perf measurements
Argmaster Apr 21, 2023
71311c0
Fix name in metadata of benchmark_32x32 example
Argmaster Apr 21, 2023
b2bf8d5
Ignore output directories
Argmaster Apr 21, 2023
8bcb28b
Bump poetry from 1.4.1 to 1.4.2 (#36)
dependabot[bot] Apr 21, 2023
7d9fc61
Add filelock library
Argmaster Apr 21, 2023
39fd426
Add locks, wheels and perf resutls to gitignore
Argmaster Apr 21, 2023
09f5c88
Bump docformatter version to 1.6.0
Argmaster Apr 21, 2023
bdc5f59
Add trailing whitespace to gitignore
Argmaster Apr 21, 2023
f25ddfb
Bump docformatter from 1.5.1 to 1.6.0 (#38)
dependabot[bot] Apr 21, 2023
d731748
Bump black version from 23.1.0 to 23.3.0 in pre-commit-config.yaml
Argmaster Apr 21, 2023
1d57e25
Pin docformatter version to 1.5.1 because 1.6.0 contains bugs
Argmaster Apr 21, 2023
d78539d
Bump black from 23.1.0 to 23.3.0 (#37)
dependabot[bot] Apr 21, 2023
7b22a54
Bump pre-commit from 3.2.1 to 3.2.2 (#39)
dependabot[bot] Apr 21, 2023
d4523cd
Add 64x64 example
Argmaster Apr 27, 2023
e21a8c2
Change number of tasks for 32x32 example to 64
Argmaster Apr 27, 2023
2eb00d9
Add enum value for 64x64 example
Argmaster Apr 27, 2023
636f60a
Exclude examples directory from pytest test search
Argmaster Apr 27, 2023
a63b8f3
Increase stability of FSnQd tests
Argmaster Apr 27, 2023
29179bb
Switch to use REPO_ACCESS_TOKEN instead of GITHUB_TOKEN
Argmaster Apr 27, 2023
67f9805
Tweak test parameters of SBiPa mode tests to increate stability
Argmaster Apr 27, 2023
402058b
Bump version to 0.6.0
Argmaster Apr 27, 2023
ec51185
Update CHANGELOG.md
Argmaster Apr 27, 2023
75e32e3
Increase error tolerance for SBiPa tests
Argmaster Apr 27, 2023
1e62c3f
Add skip mark to test_last_better_than_first_correction
Argmaster Apr 27, 2023
b2e6ca1
Release 0.6.0
Argmaster Apr 27, 2023
85d1936
Add support for G3PaE3q mode
Argmaster May 1, 2023
4112fd4
Sync post release 0.6.0
Argmaster May 2, 2023
89ac838
Add tests for G3PaE3qD mode
Argmaster May 2, 2023
7499867
Add exception logging to run_task() as executor.map was consuming all…
Argmaster May 2, 2023
4b2b211
Replace Priority.REALTIME with Priority.ABOVE_NORMAL in run_task() to…
Argmaster May 2, 2023
4aa4677
Add Workflow section to README.md
Argmaster May 19, 2023
ff69062
Flatten command line interface
Argmaster May 19, 2023
9798bd1
Add more information fields to reports
Argmaster May 19, 2023
0f5f60a
Add command for inspecting projects
Argmaster May 19, 2023
b04ba3f
Add support for JSON reports and batch summary creation
Argmaster May 19, 2023
77bc813
Release 0.7.0 (#57)
Argmaster May 19, 2023
68c4327
Merge branch 'main' into dev
Argmaster May 25, 2023
0a470d3
Improve user interface
Argmaster May 25, 2023
32c3d83
Bump tornado from 6.2 to 6.3.2 (#59)
dependabot[bot] May 26, 2023
8bcf62e
Bump requests from 2.28.2 to 2.31.0 (#58)
dependabot[bot] May 26, 2023
3a82b39
Bump mypy from 1.1.1 to 1.3.0 (#48)
dependabot[bot] May 26, 2023
f8f69d4
Bump pandas from 1.5.3 to 2.0.1 (#44)
dependabot[bot] May 26, 2023
c9bc7b6
Bump pytest from 7.2.2 to 7.3.1 (#43)
dependabot[bot] May 26, 2023
ea44984
Bump rich from 13.3.3 to 13.4.1 (#64)
dependabot[bot] Jun 5, 2023
6b14b9c
Bump typing-extensions from 4.5.0 to 4.6.3 (#66)
dependabot[bot] Jun 16, 2023
de750c6
Bump certifi from 2022.12.7 to 2023.7.22 (#72)
dependabot[bot] Sep 4, 2023
a7e606e
Bump autoflake from 2.0.2 to 2.2.1 (#76)
dependabot[bot] Sep 4, 2023
e95ea4c
Bump tornado from 6.3.2 to 6.3.3 (#75)
dependabot[bot] Sep 4, 2023
1d38654
Bump cryptography from 39.0.2 to 41.0.3 (#74)
dependabot[bot] Sep 4, 2023
3b282ab
Bump pygments from 2.14.0 to 2.15.0 (#70)
dependabot[bot] Sep 4, 2023
b2686e2
Bump snakeviz from 2.1.1 to 2.2.0 (#42)
dependabot[bot] Mar 13, 2024
97efe4a
Bump psutil from 5.9.4 to 5.9.8 (#87)
dependabot[bot] Apr 10, 2024
ca7f699
Bump urllib3 from 1.26.15 to 1.26.18 (#83)
dependabot[bot] Apr 10, 2024
f8c2457
Add mkdocs & batch upgrade dependencies
Argmaster Apr 15, 2024
0ffed8d
Remove autocopyright for compatibility reasons
Argmaster Apr 15, 2024
cdc16a9
Update ruff in pre-commit to 0.3.7
Argmaster Apr 15, 2024
177cbff
Add work-in-progress documentation along with interface updates
Argmaster Apr 15, 2024
001a672
Bump pillow from 9.4.0 to 10.3.0 (#91)
dependabot[bot] Apr 15, 2024
07f8682
Bump jinja2 from 3.1.2 to 3.1.3 (#92)
dependabot[bot] Apr 15, 2024
c50a09c
Bump cryptography from 41.0.3 to 42.0.4 (#93)
dependabot[bot] Apr 15, 2024
ef2708c
Bump click from 8.1.3 to 8.1.7 (#95)
dependabot[bot] Apr 15, 2024
5dbb888
Remove isort from pre-commit config
Argmaster Apr 15, 2024
9a7627a
Add project guide and extend project command line
Argmaster Apr 15, 2024
3aa561c
Add missing parts of Project Guide and Quick Start Guide
Argmaster Apr 16, 2024
6d9b34a
Fix poetry.lock
Argmaster Apr 16, 2024
372a3e8
Fix type issue in _load_py_cssfproject
Argmaster Apr 16, 2024
6bc4cd2
Batch fix ruff issues
Argmaster Apr 16, 2024
2528e1a
Add docs deploy action
Argmaster Apr 16, 2024
74f2037
Bump poetry version used by CI to 1.8.2
Argmaster Apr 16, 2024
9c196ed
Remove tagging on dev releases
Argmaster Apr 16, 2024
2587354
Fix mypy issues in _load_py_cssfproject
Argmaster Apr 16, 2024
8ac549c
Disable report tests on MacOS - flaky test
Argmaster Apr 16, 2024
95c95e4
Bump version to 0.8.0
Argmaster Apr 16, 2024
f8309fe
Update CHANGELOG.md
Argmaster Apr 16, 2024
b9ce570
Release 0.8.0 (#102)
Argmaster Apr 16, 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
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* text=auto eol=lf
18 changes: 18 additions & 0 deletions .github/dependabot.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
---
version: 2
updates:
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "daily"

target-branch: "dev"

labels:
- "dependencies"

assignees:
- "Argmaster"

reviewers:
- "Argmaster"
53 changes: 53 additions & 0 deletions .github/workflows/build_n_deploy_docs.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
---
name: Build & Deploy Docs

on:
push:
tags:
- "v*"

workflow_dispatch:

concurrency:
group: ${{ github.action_path }}-${{ github.ref }}-build-n-deploy-docs
cancel-in-progress: false

jobs:
run-build-n-deploy-docs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
python-version: ["3.8"]

runs-on: ${{ matrix.os }}

steps:
- name: Checkout code
uses: actions/[email protected]
with:
fetch-depth: 0

- name: Set up Python ${{ matrix.python-version }}
uses: actions/[email protected]
with:
python-version: ${{ matrix.python-version }}
architecture: "x64"

- name: Install Poetry
run: pip install poetry==1.8.2

- name: Install dependencies
run: poetry install --with=docs --no-cache --sync

- name: Install Mike
run: poetry run pip install mike

- name: Configure Git
run: |
git config user.name github-actions
git config user.email [email protected]

- name: Run build & deploy documentation
run: |
poetry run mike deploy --push --update-aliases $(poetry version | awk '{ print $2 }') latest -F mkdocs.yaml
64 changes: 64 additions & 0 deletions .github/workflows/code_quality.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
---
name: Code Quality Check

on:
push:
branches:
- main
- dev
- fix/**
- hotfix/**
- feature/**
- release/**
- dependabot/**

pull_request:
branches:
- main
- dev
- fix/**
- hotfix/**
- feature/**
- release/**
- dependabot/**
types:
- opened
- reopened

schedule:
- cron: 0 12 * * 6

workflow_dispatch:

concurrency:
group: ${{ github.workflow_ref }}-${{ github.ref }}-code-quality
cancel-in-progress: false

jobs:
code-quality-check:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
python-version: ["3.9", "3.10"]

runs-on: ${{ matrix.os }}

steps:
- name: Checkout code
uses: actions/[email protected]

- name: Set up Python ${{ matrix.python-version }}
uses: actions/[email protected]
with:
python-version: ${{ matrix.python-version }}
architecture: "x64"

- name: Install Poetry
run: pip install poetry==1.8.2

- name: Install dependencies
run: poetry install --no-cache --sync

- name: Run code quality checkers
run: poetry run poe run-hooks
46 changes: 46 additions & 0 deletions .github/workflows/deploy_to_pypi.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
---
# https://packaging.python.org/en/latest/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows/
name: Publish 📦 to PyPI

on:
push:
tags:
- "v[0-9]+.[0-9]+.[0-9]+"
- "!*-dev.*"

jobs:
deploy-to-pypi:
if: github.repository_owner == 'Argmaster'
name: Deploy 📦
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/[email protected]

- name: Set up Python 3.10

uses: actions/[email protected]
with:
python-version: "3.10"
architecture: "x64"

- name: Install Poetry 📜
run: pip install poetry==1.8.2

- name: Install dependencies 🗄️
run: poetry install --no-cache --sync

- name: Build distribution 📦
run: poetry run poe build

- name: Detect Version of project
id: project-version
run: |
echo "version=$(poetry version | awk '{ print $2 }')" >> $GITHUB_OUTPUT

- name: Publish distribution 📦 to PyPI
# Executed only for version tag push event
uses: pypa/gh-action-pypi-publish@release/v1
with:
password: ${{ secrets.PYPI_API_TOKEN }}
52 changes: 52 additions & 0 deletions .github/workflows/deploy_to_test_pypi.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
---
# https://packaging.python.org/en/latest/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows/
name: Publish 📦 to Test PyPI

on:
push:
branches:
- dev

jobs:
deploy-to-pypi:
if: github.repository_owner == 'Argmaster'
name: Test deploy 📦
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/[email protected]

- name: Set up Python 3.10

uses: actions/[email protected]
with:
python-version: "3.10"
architecture: "x64"

- name: Install Poetry 📜
run: pip install poetry==1.8.2

- name: Install dependencies 🗄️
run: poetry install --no-cache --sync

- name: Bump Version for development 🔨 release
run: |
poetry version patch &&
version=$(poetry version | awk '{ print $2 }') &&
poetry version $version-dev.$(date +%s)

- name: Build distribution 📦
run: poetry run poe build

- name: Detect Version of project
id: project-version
run: |
echo "version=$(poetry version | awk '{ print $2 }')" >> $GITHUB_OUTPUT

- name: Publish distribution 📦 to Test PyPI
# Executed always
uses: pypa/gh-action-pypi-publish@release/v1
with:
password: ${{ secrets.TEST_PYPI_API_TOKEN }}
repository_url: https://test.pypi.org/legacy/
76 changes: 76 additions & 0 deletions .github/workflows/reports_tests.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
---
name: Reports Tests

on:
push:
branches:
- main
- dev
- fix/**
- hotfix/**
- feature/**
- release/**
- dependabot/**

pull_request:
branches:
- main
- dev
- fix/**
- hotfix/**
- feature/**
- release/**
- dependabot/**
types:
- opened
- reopened

schedule:
- cron: 0 12 * * 6

workflow_dispatch:

concurrency:
group: ${{ github.workflow_ref }}-${{ github.ref }}-reports-tests
cancel-in-progress: false

jobs:
reports-tests:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest]
python-version: ["3.8", "3.9", "3.10"]

runs-on: ${{ matrix.os }}

steps:
- name: Checkout code
uses: actions/[email protected]

- name: Set up Python ${{ matrix.python-version }}
uses: actions/[email protected]
with:
python-version: ${{ matrix.python-version }}
architecture: "x64"

- name: Install Poetry
run: pip install poetry==1.8.2

- name: Install dependencies
run: poetry install --no-cache --sync

- name: Expect PDF reports fails (Windows|macOS)
if: matrix.os == 'windows-latest' || matrix.os == 'macOS-latest'
run: poetry run poe test-reports --pdf-expect-fail

- name: Install brew and GTK3 (macOS only)
if: matrix.os == 'macOS-latest'
run: |
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew update
brew install gtk+3

- name: Run reports tests
if: matrix.os != 'windows-latest'
run: poetry run poe test-reports
64 changes: 64 additions & 0 deletions .github/workflows/system_tests.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
---
name: System Tests

on:
push:
branches:
- main
- dev
- fix/**
- hotfix/**
- feature/**
- release/**
- dependabot/**

pull_request:
branches:
- main
- dev
- fix/**
- hotfix/**
- feature/**
- release/**
- dependabot/**
types:
- opened
- reopened

schedule:
- cron: 0 12 * * 6

workflow_dispatch:

concurrency:
group: ${{ github.workflow_ref }}-${{ github.ref }}-system-tests
cancel-in-progress: false

jobs:
system-tests:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macOS-latest]
python-version: ["3.8", "3.9", "3.10"]

runs-on: ${{ matrix.os }}

steps:
- name: Checkout code
uses: actions/[email protected]

- name: Set up Python ${{ matrix.python-version }}
uses: actions/[email protected]
with:
python-version: ${{ matrix.python-version }}
architecture: "x64"

- name: Install Poetry
run: pip install poetry==1.8.2

- name: Install dependencies
run: poetry install --no-cache --sync

- name: Run system tests
run: poetry run poe test-system
Loading