Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
0da4561
Add Python implementation of DataJam library
ericburcham Sep 23, 2025
1ff7187
Add Oracle TestContainer integration and Family domain test entities
ericburcham Sep 23, 2025
22da1b4
Complete Python DataJam implementation with CI/CD pipelines
ericburcham Sep 23, 2025
81bd3e4
Add comprehensive test suite and fix Oracle integration issues
ericburcham Sep 24, 2025
1399102
Fix mypy type checking errors in CI/CD pipeline
ericburcham Sep 24, 2025
8a73079
Establish unified and consistent linting configuration across all env…
ericburcham Sep 24, 2025
7d58544
Clean up repository configuration and workflows
ericburcham Sep 24, 2025
e7aff82
Fix Python version compatibility for GitHub Actions
ericburcham Sep 24, 2025
88a87ee
Maintain dev/prod parity by standardizing on Python 3.13
ericburcham Sep 24, 2025
45796ac
Merge branch 'develop' into feature/support-python
ericburcham Sep 29, 2025
d3d4ac2
Merge branch 'develop' into feature/support-python
ericburcham Sep 29, 2025
9578304
Merge branch 'develop' into feature/support-python
ericburcham Sep 29, 2025
acc7e3c
Merge branch 'develop' into feature/support-python
ericburcham Sep 30, 2025
c19f9d8
Merge branch 'develop' into feature/support-python
ericburcham Oct 13, 2025
1ca2004
Merge branch 'develop' into feature/support-python
ericburcham Oct 13, 2025
a371470
Update dependabot.yml
ericburcham Oct 13, 2025
8eb08dd
Merge branch 'develop' into feature/support-python
ericburcham Oct 20, 2025
a5e712d
Merge branch 'develop' into feature/support-python
ericburcham Oct 22, 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
11 changes: 0 additions & 11 deletions .claude/settings.local.json

This file was deleted.

4 changes: 1 addition & 3 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,9 @@ updates:
- "ericburcham"
assignees:
- "ericburcham"
versioning-strategy: increase

- package-ecosystem: "pip" # Python packages
directory: "/python" # Location of Python package manifests
directory: "/python"
schedule:
interval: "weekly"
day: "monday"
Expand All @@ -43,4 +42,3 @@ updates:
- "ericburcham"
assignees:
- "ericburcham"
versioning-strategy: increase
Original file line number Diff line number Diff line change
@@ -1,58 +1,69 @@
# ------------------------------------------------------------------------------
# <auto-generated>
#
# This code was generated.
#
# - To turn off auto-generation set:
#
# [GitHubActions (AutoGenerate = false)]
#
# - To trigger manual generation invoke:
#
# nuke --generate-configuration GitHubActions_nuke-build --host GitHubActions
#
# </auto-generated>
# ------------------------------------------------------------------------------

name: nuke-build

on: [push]
# Manual .NET build workflow with path filtering
# This supplements the auto-generated nuke-build.yml with path-specific triggers

name: .NET DataJam Build

on:
push:
paths:
- 'src/**'
- 'build/**'
- '*.sln'
- '*.props'
- '*.targets'
- 'global.json'
- '.github/workflows/dotnet-build.yml'
pull_request:
paths:
- 'src/**'
- 'build/**'
- '*.sln'
- '*.props'
- '*.targets'
- 'global.json'
- '.github/workflows/dotnet-build.yml'

permissions:
contents: read
actions: write

jobs:
ubuntu-latest:
name: ubuntu-latest
dotnet-build:
name: .NET Build and Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: 'Cache: .nuke/temp, ~/.nuget/packages'

- name: Cache .nuke/temp and NuGet packages
uses: actions/cache@v4
with:
path: |
.nuke/temp
~/.nuget/packages
key: ${{ runner.os }}-${{ hashFiles('**/global.json', '**/*.csproj', '**/Directory.Packages.props') }}

- name: Install .NET 8 SDK
uses: actions/[email protected]
with:
dotnet-version: 8.0.x
dotnet-quality: ga

- name: Install .NET 9 SDK
uses: actions/[email protected]
with:
dotnet-version: 9.0.x
dotnet-quality: ga
- name: 'Run: Nuke'

- name: Run NUKE build
run: ./build.cmd Nuke
env:
NuGetApiKey: ${{ secrets.NUGET_API_KEY }}
- name: 'Publish: artifacts'

- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: artifacts
name: dotnet-artifacts
path: artifacts
110 changes: 110 additions & 0 deletions .github/workflows/python-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
name: Python DataJam Build

on:
push:
paths:
- 'python/**'
- '.github/workflows/python-build.yml'
pull_request:
paths:
- 'python/**'
- '.github/workflows/python-build.yml'

permissions:
contents: read
actions: write

jobs:
python-build:
name: Python Build and Test
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.13"]

services:
docker:
image: docker:dind
options: --privileged

steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}

- name: Cache Python dependencies
uses: actions/cache@v4
with:
path: |
~/.cache/pip
python/.nox
key: ${{ runner.os }}-python-${{ matrix.python-version }}-${{ hashFiles('python/pyproject.toml', 'python/noxfile.py') }}
restore-keys: |
${{ runner.os }}-python-${{ matrix.python-version }}-

- name: Install Nox and ensure consistent tool versions
run: |
python -m pip install --upgrade pip
python -m pip install nox
# Pre-install linting tools to match noxfile versions
python -m pip install ruff==0.8.0 black==24.10.0 mypy==1.13.0 isort==5.13.2

- name: Run linting
working-directory: python
run: nox -s lint

- name: Run unit tests
working-directory: python
run: nox -s test

- name: Run integration tests
working-directory: python
run: nox -s test-integration
env:
TESTCONTAINERS_ORACLE_PASSWORD: oracle123

- name: Build packages
working-directory: python
run: nox -s build

- name: Upload test coverage
if: matrix.python-version == '3.11'
uses: codecov/codecov-action@v3
with:
file: python/coverage.xml
flags: python
name: python-coverage

- name: Upload build artifacts
if: matrix.python-version == '3.11'
uses: actions/upload-artifact@v4
with:
name: python-packages
path: python/artifacts/

publish:
name: Publish Python packages
runs-on: ubuntu-latest
needs: python-build
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
environment: pypi
permissions:
id-token: write # For trusted publishing to PyPI

steps:
- name: Download build artifacts
uses: actions/download-artifact@v4
with:
name: python-packages
path: dist/

- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
packages-dir: dist/
75 changes: 74 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -402,4 +402,77 @@ FodyWeavers.xsd
*.bak

# Nuke's temp directory
.nuke/temp/
.nuke/temp/

# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
*.manifest
*.spec

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
cover/

# Virtual environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# Pyre type checker
.pyre/

# pytype static type analyzer
.pytype/

# Python artifacts in root
python/artifacts/
python/.nox/
python/htmlcov/
python/.coverage
python/.pytest_cache/

# Claude Code settings
.claude/settings.local.json
33 changes: 33 additions & 0 deletions python/.pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
- id: check-added-large-files
- id: check-merge-conflict

- repo: https://github.com/psf/black
rev: 23.9.1
hooks:
- id: black
language_version: python3

- repo: https://github.com/pycqa/isort
rev: 5.12.0
hooks:
- id: isort

- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.1.3
hooks:
- id: ruff
args: [--fix, --exit-non-zero-on-fix]

- repo: https://github.com/pre-commit/mirrors-mypy
rev: v1.5.1
hooks:
- id: mypy
additional_dependencies: [types-all]
args: [--strict, --ignore-missing-imports]
Loading
Loading