Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
147 commits
Select commit Hold shift + click to select a range
2bd615e
feature: add loading functionality for TOML files
97gamjak Dec 16, 2025
4f53b82
Initial plan
Copilot Dec 17, 2025
562d9dd
Initial plan
Copilot Dec 17, 2025
04ea98e
Add Ruff CI workflow
Copilot Dec 17, 2025
4e84feb
Add pytest CI workflow
Copilot Dec 17, 2025
b28bdb7
Add permissions block to Ruff workflow for security
Copilot Dec 17, 2025
0cab7d1
Add explicit permissions to pytest workflow for security
Copilot Dec 17, 2025
0c98763
refactor: move ruff.toml to base dir
97gamjak Dec 17, 2025
046d82c
Merge pull request #39 from 97gamjak/bug/DEV-41-move-ruff-toml-to-bas…
97gamjak Dec 17, 2025
7de3c83
cleanup: add .egg-info to .gitignore
97gamjak Dec 17, 2025
e25addc
Merge pull request #40 from 97gamjak/bug/DEV-42-add-all-egg-files-to-…
97gamjak Dec 17, 2025
3beeb0a
Initial plan
Copilot Dec 17, 2025
0a97256
Add Ruff CI workflow
Copilot Dec 17, 2025
7b6b917
Add permissions block to Ruff workflow for security
Copilot Dec 17, 2025
2f8375b
fix: rm config flag from ruff CI and apply it on all PRs
97gamjak Dec 17, 2025
644ea73
Merge branch 'copilot/create-ruff-ci' of github.com:97gamjak/devops i…
97gamjak Dec 17, 2025
178c42b
Merge pull request #36 from 97gamjak/copilot/create-ruff-ci
97gamjak Dec 17, 2025
3510053
Initial plan
Copilot Dec 17, 2025
c106c8c
Add pytest CI workflow
Copilot Dec 17, 2025
a0f0f5c
Add explicit permissions to pytest workflow for security
Copilot Dec 17, 2025
fb380fd
Merge branch 'copilot/create-pytest-ci' of github.com:97gamjak/devops…
97gamjak Dec 17, 2025
3e2af82
cleanup: add pytest CI to all PRs
97gamjak Dec 17, 2025
345ad1e
Merge pull request #37 from 97gamjak/copilot/create-pytest-ci
97gamjak Dec 17, 2025
cae9a03
Refactor: cleanup tests for ruff check
97gamjak Dec 19, 2025
f3c97cc
cleanup: format all documents according to ruff format
97gamjak Dec 19, 2025
89b16d1
Merge pull request #41 from 97gamjak/bug/DEV-44-fix-current-ruff-lint…
97gamjak Dec 19, 2025
89dc637
feat: add pydocstyle linting configuration with numpy convention
97gamjak Dec 19, 2025
fe8ba8e
Merge pull request #42 from 97gamjak/feature/DEV-45-ci-for-checking-d…
97gamjak Dec 19, 2025
ed15755
Merge remote-tracking branch 'origin/dev' into eature/DEV-32-add-firs…
97gamjak Dec 19, 2025
218b551
feat: implement TOML configuration handling and initialization
97gamjak Dec 19, 2025
92b4439
Update src/devops/config/toml.py
97gamjak Dec 19, 2025
78d3330
Initial plan
Copilot Dec 19, 2025
cb3a036
Initial plan
Copilot Dec 19, 2025
6546dcf
Initial plan
Copilot Dec 19, 2025
6f4efd4
Update src/devops/logger/__init__.py
97gamjak Dec 19, 2025
a319b91
Add comprehensive test coverage for init_config function
Copilot Dec 19, 2025
6ed71dd
Add comprehensive test coverage for load_toml function
Copilot Dec 19, 2025
9a6b848
Add comprehensive test coverage for parse_config and read_config
Copilot Dec 19, 2025
63c66d6
Refactor tests to use pytest tmp_path fixture for better cleanup
Copilot Dec 19, 2025
60558db
Merge pull request #46 from 97gamjak/copilot/sub-pr-43-another-one
97gamjak Dec 19, 2025
4d73c1f
Merge pull request #44 from 97gamjak/copilot/sub-pr-43
97gamjak Dec 19, 2025
cc43783
Merge pull request #45 from 97gamjak/copilot/sub-pr-43-again
97gamjak Dec 19, 2025
94f0686
Refactor: format in test_init_config
97gamjak Dec 19, 2025
57654f1
Fix: correct warning message for multiple config files in init_config
97gamjak Dec 19, 2025
e891c77
Fix: update issue link format in logger.py
97gamjak Dec 19, 2025
c2e9794
Fix: update warning message for multiple config files in test_init_co…
97gamjak Dec 19, 2025
b6f5a4e
Merge pull request #43 from 97gamjak/eature/DEV-32-add-first-toml-con…
97gamjak Dec 19, 2025
8cd8179
ci: Add changelog check workflow for pull requests
97gamjak Dec 19, 2025
feec422
docs: Add Changelog.md
97gamjak Dec 19, 2025
647764f
Merge pull request #47 from 97gamjak/feature/DEV-14-create-changelog-…
97gamjak Dec 19, 2025
5e1238e
ci: Add Python version matrix to pytest workflow
97gamjak Dec 19, 2025
903b1ea
doc: update changelog
97gamjak Dec 19, 2025
88df049
Merge pull request #48 from 97gamjak/feature/DEV-43-add-python-versio…
97gamjak Dec 19, 2025
f5cd265
ci: Add workflows for release pattern check and tag creation
97gamjak Dec 19, 2025
ea9d045
Merge pull request #49 from 97gamjak/feature/DEV-15-create-release-ci
97gamjak Dec 19, 2025
e4bd348
ci: Add scheduled trigger for nightly builds in pytest and ruff workf…
97gamjak Dec 19, 2025
dd2b120
docs: Document overnight CI runs for pytest and ruff in changelog
97gamjak Dec 19, 2025
ff85fa9
Merge pull request #50 from 97gamjak/feature/DEV-36-add-overnight-bui…
97gamjak Dec 19, 2025
70b3b0f
feat: Add Git-related constants and functions, update changelog handl…
97gamjak Dec 20, 2025
4d60b84
docs: Organize changelog by adding Git features and updating config s…
97gamjak Dec 20, 2025
fceb2c0
refactor: Remove LogLevel from exports in enums package
97gamjak Dec 20, 2025
824226f
refactor: Rename MSTDFileNotFoundError to DevOpsFileNotFoundError for…
97gamjak Dec 20, 2025
76bfd1e
fix: remove logging.py should not be included yet in git
97gamjak Dec 20, 2025
a128694
Merge pull request #52 from 97gamjak/feature/DEV-50-cleanup-mstd-file…
97gamjak Dec 20, 2025
6b15dc7
Merge remote-tracking branch 'origin/dev' into feature/DEV-21-retriev…
97gamjak Dec 20, 2025
8be5c49
fix: update GitTagError message and improve get_all_tags error handling
97gamjak Dec 20, 2025
41beeb4
fix: improve error handling for invalid tag formats in GitTag class
97gamjak Dec 20, 2025
84b2921
fix: update ruff.toml to adjust linting rules and improve code consis…
97gamjak Dec 20, 2025
901dd90
refactor: simplify GitConstants instantiation in Constants class
97gamjak Dec 20, 2025
d68bf94
fix: add pattern to ignore double underscore Python files in .gitignore
97gamjak Dec 20, 2025
64e73b3
Update src/devops/config/constants.py
97gamjak Dec 20, 2025
2a8cf96
Update src/devops/git/tag.py
97gamjak Dec 20, 2025
643ca4c
refactor: enhance GitTag class with ordering capabilities
97gamjak Dec 20, 2025
5c565e5
Merge branch 'feature/DEV-21-retrieve-last-release-and-or-tag-from-gi…
97gamjak Dec 20, 2025
7538870
refactor: simplify get_latest_tag function by using max to retrieve t…
97gamjak Dec 20, 2025
65558a4
Initial plan
Copilot Dec 20, 2025
e8434b6
test: add comprehensive test coverage for git tag module
Copilot Dec 20, 2025
32b2768
Merge pull request #53 from 97gamjak/copilot/sub-pr-51
97gamjak Dec 20, 2025
9a50cbb
chore: update .gitignore to exclude specific Python files and add Git…
97gamjak Dec 20, 2025
d14ae17
refactor: format test_tag according to ruff
97gamjak Dec 20, 2025
bedef73
Merge pull request #51 from 97gamjak/feature/DEV-21-retrieve-last-rel…
97gamjak Dec 20, 2025
25c376b
feat: add LogLevel enumeration for logging levels and update exports
97gamjak Dec 20, 2025
a8b05e3
refactor: clean up logging handling and configuration structure
97gamjak Dec 20, 2025
6c96435
fix: correct integer division for logging level conversions
97gamjak Dec 20, 2025
67b19ed
fix: update LogLevel mapping for NOTSET and adjust level comparisons
97gamjak Dec 20, 2025
d94f26e
fix: standardize logging level casing in configuration
97gamjak Dec 20, 2025
58c0e04
refactor: update FileConstants to use field for toml_filenames
97gamjak Dec 20, 2025
749303d
refactor: clean up comments in parse_config function
97gamjak Dec 20, 2025
2026d34
Initial plan
Copilot Dec 20, 2025
52ed10e
test: add comprehensive test coverage for enums and config modules
Copilot Dec 20, 2025
600116b
fix: apply linter fixes to test files
Copilot Dec 20, 2025
2528205
refactor: improve mock assertion in test_parse_logging_config_calls_s…
Copilot Dec 20, 2025
a35c95f
refactor: remove empty test function per code review feedback
Copilot Dec 20, 2025
8633b55
fix: use != operator for None comparison in test
Copilot Dec 20, 2025
5948afc
Merge pull request #55 from 97gamjak/copilot/sub-pr-54
97gamjak Dec 20, 2025
3819b02
feat: add script to retrieve the latest git tag and update project st…
97gamjak Dec 20, 2025
93cf456
refactor: format according to ruff
97gamjak Dec 20, 2025
6fd5bfa
Merge pull request #54 from 97gamjak/feature/DEV-51-cleanup-logging-h…
97gamjak Dec 20, 2025
e4d15e2
Merge remote-tracking branch 'origin/dev' into feature/DEV-53-create-…
97gamjak Dec 20, 2025
d3cfae9
Refactor Git tag handling and configuration management
97gamjak Dec 20, 2025
b99e892
Update src/devops/scripts/get_latest_git_tag.py
97gamjak Dec 20, 2025
359f7e8
chore: remove unused main execution block from get_latest_git_tag.py
97gamjak Dec 20, 2025
309ed16
Merge branch 'feature/DEV-53-create-script-to-revtrieve-latest-git-ta…
97gamjak Dec 20, 2025
3194364
fix: update type hints for consistency in base.py and add parameter d…
97gamjak Dec 20, 2025
e996402
Initial plan
Copilot Dec 20, 2025
cbe8f76
Add comprehensive test coverage for GitTag increase methods
Copilot Dec 20, 2025
6a59768
feat: add test coverage configuration and update dependencies for pytest
97gamjak Dec 20, 2025
1803407
Merge pull request #57 from 97gamjak/copilot/sub-pr-56
97gamjak Dec 20, 2025
24e474b
fix: update pytest dependency installation to include test extras
97gamjak Dec 20, 2025
94413dd
fix: update Codecov action to version 5 and ensure correct slug confi…
97gamjak Dec 20, 2025
e78b4cc
fix: remove unnecessary whitespace in test_increase_methods
97gamjak Dec 20, 2025
f01c932
feat: add initial README with pytest and Codecov badges
97gamjak Dec 20, 2025
515a361
Merge pull request #58 from 97gamjak/feature/DEV-52-add-test-coverage…
97gamjak Dec 20, 2025
61cc2d8
Merge remote-tracking branch 'origin/dev' into feature/DEV-53-create-…
97gamjak Dec 20, 2025
6aaa610
fix: update tag retrieval logic to use consistent variable naming
97gamjak Dec 20, 2025
f76cd77
Merge pull request #56 from 97gamjak/feature/DEV-53-create-script-to-…
97gamjak Dec 20, 2025
c49fbb2
feat: implement C++ license header checks and configuration management
97gamjak Dec 20, 2025
5bc894f
Update src/devops/config/config_cpp.py
97gamjak Dec 20, 2025
4e535ec
feat: add custom exception for C++ check errors and update license he…
97gamjak Dec 20, 2025
fcd6b0c
Merge branch 'feature/DEV-23-create-script-to-check-license-headers-o…
97gamjak Dec 20, 2025
da279ae
Initial plan
Copilot Dec 20, 2025
03724b6
feat: add comprehensive test coverage for C++ checks functionality
Copilot Dec 20, 2025
3441a05
fix: adjust CLI tests and add debug logging capture for test reliability
Copilot Dec 20, 2025
1865164
refactor: add type annotations and improve test assertions based on c…
Copilot Dec 20, 2025
fcb0ddb
feat: enable dynamic versioning in pyproject.toml and update .gitignore
97gamjak Dec 20, 2025
6e49b75
refactor: ensure consistent mock assertions and complete docstring ty…
Copilot Dec 20, 2025
861f096
Merge pull request #61 from 97gamjak/feature/DEV-57-use-dynamic-versi…
97gamjak Dec 20, 2025
2b97006
Merge pull request #60 from 97gamjak/copilot/sub-pr-59
97gamjak Dec 20, 2025
a7799bd
Merge remote-tracking branch 'origin/dev' into feature/DEV-23-create-…
97gamjak Dec 20, 2025
e6df85d
cleanup: fix ruff checks
97gamjak Dec 20, 2025
97a1bc6
chore: reorganize changelog sections and add license check rule for c…
97gamjak Dec 20, 2025
30a69cf
fix: improve error logging message for CPP checks
97gamjak Dec 20, 2025
906c31c
fix: improve efficiency of cpp check main handling
97gamjak Dec 20, 2025
747b95b
fix: update documentation for license_header parameter in cpp_checks …
97gamjak Dec 20, 2025
70129c6
feat: implement file_exist function and enhance error handling for li…
97gamjak Dec 20, 2025
fd06ac2
fix: update error handling in file operations and enhance documentati…
97gamjak Dec 20, 2025
5d56df4
fix: update error message for CppCheckError to clarify invalid rule c…
97gamjak Dec 20, 2025
0893c33
Merge pull request #59 from 97gamjak/feature/DEV-23-create-script-to-…
97gamjak Dec 20, 2025
aec07fd
feat: add file configuration parsing and enhance file operations with…
97gamjak Dec 20, 2025
a105948
feat: add file.encoding configuration option to toml file
97gamjak Dec 20, 2025
5312f15
Merge pull request #62 from 97gamjak/feature/DEV-58-create-config-for…
97gamjak Dec 20, 2025
85963e3
feat: add TOML configuration generation and parsing capabilities
97gamjak Dec 20, 2025
0ac2610
feat: add cli command `generate_toml_template` to get a template defa…
97gamjak Dec 20, 2025
27f1aed
feat: add CLI commands to manage license headers and implement header…
97gamjak Dec 20, 2025
86619a2
fix: improve docstring formatting for add_license_header_to_files fun…
97gamjak Dec 20, 2025
1d0961f
Merge pull request #63 from 97gamjak/feature/DEV-59-add-cli-to-add-li…
97gamjak Dec 20, 2025
25c9739
feat: add CLI command to filter known buggy C++ files and update conf…
97gamjak Dec 20, 2025
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
78 changes: 78 additions & 0 deletions .github/workflows/changelog.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
name: Check Changelog
on:
pull_request:
branches:
- main
- dev
workflow_dispatch:

jobs:
check-changelog:
runs-on: ubuntu-latest
if: github.ref_name != 'main'
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
fetch-depth: 0 # Fetch all history for accurate comparison

- name: Check PR labels for changelog skip
id: check-skip
run: |
# Check if PR has the skip-changelog label
labels="${{ join(github.event.pull_request.labels.*.name, ' ') }}"
echo "PR labels: $labels"

if [[ "$labels" == *"skip-changelog"* ]]; then
echo "Found 'skip-changelog' label - skipping changelog check"
echo "skip=true" >> $GITHUB_OUTPUT
else
echo "No 'skip-changelog' label found - proceeding with changelog check"
echo "skip=false" >> $GITHUB_OUTPUT
fi

- name: Fetch target branch
if: steps.check-skip.outputs.skip != 'true'
run: |
git fetch origin ${{ github.event.pull_request.base.ref }}:refs/remotes/origin/${{ github.event.pull_request.base.ref }}

- name: Extract content above insertion marker from target branch
if: steps.check-skip.outputs.skip != 'true'
id: extract-target
run: |
marker="<!-- insertion marker -->"
# Extract content above the marker in the target branch
git show origin/${{ github.event.pull_request.base.ref }}:CHANGELOG.md | awk -v marker="$marker" '
BEGIN { found=0 }
$0 ~ marker { found=1; exit }
{ if (!found) print }
' | sed '/^\s*$/d' > target_above_marker.txt

- name: Extract content above insertion marker from PR branch
if: steps.check-skip.outputs.skip != 'true'
id: extract-pr
run: |
marker="<!-- insertion marker -->"
# Extract content above the marker in the PR branch
cat CHANGELOG.md | awk -v marker="$marker" '
BEGIN { found=0 }
$0 ~ marker { found=1; exit }
{ if (!found) print }
' | sed '/^\s*$/d' > pr_above_marker.txt

- name: Compare content above insertion marker
if: steps.check-skip.outputs.skip != 'true'
id: compare
run: |
if ! diff -q target_above_marker.txt pr_above_marker.txt > /dev/null; then
echo "Differences detected above the insertion marker in CHANGELOG.md."
exit 0
else
echo "No differences detected above the insertion marker."
exit 1
fi

- name: Skip changelog check
if: steps.check-skip.outputs.skip == 'true'
run: |
echo "Changelog check skipped due to PR label"
41 changes: 41 additions & 0 deletions .github/workflows/check-pr-for-release-version.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: Release Pattern Check

on:
pull_request:
branches:
- main
types: [opened, edited, reopened, synchronize]

jobs:
check-release-pattern:
runs-on: ubuntu-latest

steps:
- name: Check PR Title, Description, or Hotfix Branch
run: |
title="${{ github.event.pull_request.title }}"
body="${{ github.event.pull_request.body }}"
head_ref="${{ github.head_ref }}"

echo "PR title: $title"
echo "PR body: $body"
echo "PR source branch: $head_ref"

# Allow hotfix branches unconditionally
if [[ "$head_ref" == hotfix/* ]]; then
echo "✅ Hotfix branch detected ($head_ref). Skipping release pattern check."
exit 0
fi

# Regex: Release-x.y.z (case-insensitive)
regex='[Rr][Ee][Ll][Ee][Aa][Ss][Ee]-[0-9]+\.[0-9]+\.[0-9]+'

if [[ "$title" =~ $regex ]] || [[ "$body" =~ $regex ]]; then
echo "✅ Found valid Release pattern in title or description."
exit 0
else
echo "❌ Invalid PR."
echo " Title or description must contain: Release-x.y.z (e.g., Release-1.2.3)"
echo " OR the branch must start with: hotfix/"
exit 1
fi
128 changes: 128 additions & 0 deletions .github/workflows/create-tag.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
name: Create Release Tag

on:
pull_request:
types: [closed]
branches:
- main

permissions:
contents: write
pull-requests: write

jobs:
create-tag:
if: github.event.pull_request.merged == true
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: recursive

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: 3.13
cache: 'pip'

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e .

- name: Extract release version (Release-x.y.z OR hotfix bump)
id: extract_version
shell: bash
run: |
set -euo pipefail

title="${{ github.event.pull_request.title }}"
body="${{ github.event.pull_request.body }}"
head_ref="${{ github.head_ref }}" # PR source branch name, e.g. hotfix/...

echo "PR source branch: $head_ref"
echo "PR title: $title"

# Hotfix: version = latest tag + 1 in patch
if [[ "$head_ref" == hotfix/* ]]; then
echo "✅ Hotfix PR detected. Deducing version from latest tag + patch bump..."

git fetch --tags --force

version="$(increase_latest_tag --patch)"

echo "✅ Hotfix release version: $version"
echo "version=$version" >> "$GITHUB_OUTPUT"
exit 0
fi

# Non-hotfix: expect Release-x.y.z in title/body
regex='[Rr][Ee][Ll][Ee][Aa][Ss][Ee]-([0-9]+\.[0-9]+\.[0-9]+)'

if [[ "$title" =~ $regex ]]; then
version="${BASH_REMATCH[1]}"
elif [[ "$body" =~ $regex ]]; then
version="${BASH_REMATCH[1]}"
else
echo "❌ No valid release version found in PR title or description."
echo " Expected: Release-x.y.z (e.g., Release-1.2.3)"
echo " Or use a hotfix/* branch to auto-bump patch."
exit 1
fi

echo "✅ Found release version: $version"
echo "version=$version" >> "$GITHUB_OUTPUT"

- name: Update CHANGELOG.md
run: |
version="${{ steps.extract_version.outputs.version }}"
python3 update_changelog "$version"

- name: Commit and push changelog update
run: |
version="${{ steps.extract_version.outputs.version }}"
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"

git add CHANGELOG.md
git commit -m "docs: update changelog for $version" || echo "No changes to commit"
git push origin HEAD:main

- name: Create Git tag
run: |
version="${{ steps.extract_version.outputs.version }}"
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"

# Safety: don't fail if tag already exists (e.g., re-runs)
if git rev-parse -q --verify "refs/tags/$version" >/dev/null; then
echo "Tag $version already exists. Skipping tag creation."
exit 0
fi

git tag "$version"
git push origin "$version"

- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ steps.extract_version.outputs.version }}
name: Release ${{ steps.extract_version.outputs.version }}
body: |
🚀 **Automatic release:** `${{ steps.extract_version.outputs.version }}`
- Created from PR: #${{ github.event.pull_request.number }}
- Commit: `${{ github.sha }}`
draft: false
prerelease: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Merge main back into dev
run: |
git fetch origin dev
git checkout dev
git merge origin/main --no-edit
git push origin dev
45 changes: 45 additions & 0 deletions .github/workflows/pytest.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: pytest

on:
pull_request:
branches: ['*']
schedule:
- cron: '0 0 * * *' # Daily at midnight

jobs:
test:
runs-on: ubuntu-latest
permissions:
contents: read

strategy:
fail-fast: false
matrix:
python-version: [3.12, 3.13]

steps:
- uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e .[test]

- name: Run pytest
run: |
python -m pytest tests/ -v

- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
slug: 97gamjak/devops
fail_ci_if_error: true
flags: unittests
verbose: true
32 changes: 32 additions & 0 deletions .github/workflows/ruff.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Ruff

on:
pull_request:
branches: ['*']
schedule:
- cron: '0 0 * * *' # Daily at midnight

jobs:
ruff:
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install ruff

- name: Run ruff check
run: ruff check .

- name: Run ruff format check
run: ruff format --check .
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,8 @@ __pycache__
.venv/
dist/
build/
**.egg-info/
tests/test.ipynb
**_.*.py
.coverage
**/__version__.py
8 changes: 8 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"cSpell.words": [
"Codecov",
"levelname",
"MSTD",
"unittests"
]
}
49 changes: 49 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# Changelog

All notable changes to this project will be documented in this file.

## Next Release

### API

- Add cli command `get_latest_tag`
- Add cli command `increase_latest_tag`
- Add new license checking rule to `cpp_checks`
- Add cli command `generate_toml_template` to get a template default toml file
- Add cli commands `add_license_header` and `add_license_headers`
- Add cli command `filter_buggy_cpp_files`

### Features

#### Git

- Add function to retrieve latest tag from git

#### Config

- Adding possibility to have a `devops.toml` or `.devops.toml` config file
- Adding logging levels to toml file config: `global_level`, `utils_level`, `config_level`, `cpp_level`
```toml
[logging]
global_level = "INFO"
cpp_level = "DEBUG"
```
- Adding `file.encoding` config for toml configuration

#### CPP Rules

- Add license check rule for cpp header and source files

### Deployment

#### CI/CD

- Add checking if `CHANGELOG.md` was updated
- Add ruff check and ruff format CI
- Add pytest CI with python versions 3.12 and 3.13
- Add automatic release CI for PRs to main (either via title or via hotfix/ branch)
- Add overnight CI runs for pytest and ruff CIs
- Add test coverage to pytest CI

<!-- insertion marker -->

Loading
Loading