Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
74 commits
Select commit Hold shift + click to select a range
7957e83
chore(deps): bump sentencepiece from 0.2.0 to 0.2.1 (#114)
dependabot[bot] Feb 13, 2026
04091e0
chore(deps): bump cryptography from 44.0.2 to 46.0.5 (#119)
dependabot[bot] Feb 13, 2026
1ab0b95
chore(deps): bump pillow and protobuf pins
sidmohan0 Feb 13, 2026
8163e80
chore: bump version to 4.3.0a1 [skip ci]
actions-user Feb 16, 2026
33fae4e
chore: bump version to 4.3.0b2 [skip ci]
actions-user Feb 19, 2026
744370b
chore: bump version to 4.3.0a2 [skip ci]
actions-user Feb 23, 2026
84d52db
chore: bump version to 4.3.0b3 [skip ci]
actions-user Feb 26, 2026
4108984
chore: bump version to 4.3.0a3 [skip ci]
actions-user Mar 2, 2026
cb7d951
chore: bump version to 4.3.0b4 [skip ci]
actions-user Mar 5, 2026
107df28
chore: bump version to 4.3.0a4 [skip ci]
actions-user Mar 9, 2026
0788e82
chore: bump version to 4.3.0b5 [skip ci]
actions-user Mar 12, 2026
14ae62e
chore: bump version to 4.3.0a5 [skip ci]
actions-user Mar 16, 2026
fac558d
chore: bump version to 4.3.0b6 [skip ci]
actions-user Mar 19, 2026
14347be
chore: bump version to 4.3.0a6 [skip ci]
actions-user Mar 23, 2026
189b77d
chore: bump version to 4.3.0b7 [skip ci]
actions-user Mar 26, 2026
d4602d0
chore: bump version to 4.3.0a7 [skip ci]
actions-user Mar 30, 2026
879ae70
chore: bump version to 4.3.0b8 [skip ci]
actions-user Apr 2, 2026
3b1a5e8
chore: bump version to 4.3.0a8 [skip ci]
actions-user Apr 6, 2026
372d308
chore: bump version to 4.3.0b9 [skip ci]
actions-user Apr 9, 2026
936ca14
chore: bump version to 4.3.0a9 [skip ci]
actions-user Apr 13, 2026
22e9820
chore: bump version to 4.3.0b10 [skip ci]
actions-user Apr 16, 2026
0a67ad3
chore: bump version to 4.3.0a10 [skip ci]
actions-user Apr 20, 2026
aa72c2e
chore: bump version to 4.3.0b11 [skip ci]
actions-user Apr 23, 2026
4752024
Add v4.4 bridge release runway (#130)
sidmohan0 Apr 26, 2026
4f22b6a
ci: allow prerelease base override (#131)
sidmohan0 Apr 26, 2026
6845ef7
chore: bump version to 4.4.0b1 [skip ci]
actions-user Apr 26, 2026
8ff0618
Make telemetry opt-in for v4.4 (#132)
sidmohan0 Apr 26, 2026
f577a4e
chore: sync dev to v4.4.0 release (#134)
sidmohan0 Apr 26, 2026
2b9d046
chore(deps): bump aiohttp from 3.11.18 to 3.13.4
dependabot[bot] Apr 26, 2026
f74e750
chore(deps): bump pillow from 12.1.1 to 12.2.0
dependabot[bot] Apr 26, 2026
2730317
chore(deps): bump cryptography from 46.0.5 to 46.0.7
dependabot[bot] Apr 26, 2026
4633802
chore(deps): bump requests from 2.32.3 to 2.33.0
dependabot[bot] Apr 26, 2026
21d64fc
chore(deps-dev): bump black from 24.3.0 to 26.3.1
dependabot[bot] Apr 27, 2026
8150eb3
chore(deps): bump pytest from 7.4.0 to 9.0.3
dependabot[bot] Apr 27, 2026
76cc5ef
chore: clarify dependency requirement scopes (#135)
sidmohan0 Apr 27, 2026
8bdd56e
fix: remove runtime dependency installation (#136)
sidmohan0 Apr 27, 2026
7a8572d
test: add no-network and install profile gates (#137)
sidmohan0 Apr 27, 2026
9c59e42
chore: bump version to 4.4.0a1 [skip ci]
actions-user Apr 27, 2026
ea04276
chore: bump version to 4.4.0b2 [skip ci]
actions-user Apr 30, 2026
cd2eb79
chore: bump version to 4.4.0a2 [skip ci]
actions-user May 4, 2026
8c95148
chore: bump version to 4.4.0b3 [skip ci]
actions-user May 7, 2026
3768a66
chore: bump version to 4.4.0a3 [skip ci]
actions-user May 11, 2026
c816198
chore: bump version to 4.4.0b4 [skip ci]
actions-user May 14, 2026
47212dd
chore: bump version to 4.4.0a4 [skip ci]
actions-user May 18, 2026
f4dfb06
chore: bump version to 4.4.0b5 [skip ci]
actions-user May 21, 2026
c1093d6
chore: bump version to 4.4.0a5 [skip ci]
actions-user May 25, 2026
a79cd8f
chore: land v4.5 release prep baseline
sidmohan0 May 26, 2026
216b738
fix: keep agent helpers on regex core path
sidmohan0 May 26, 2026
90c426d
docs: clarify optional OCR and Spark surfaces
sidmohan0 May 26, 2026
6f57af2
docs: make v4.5 core story obvious
sidmohan0 May 26, 2026
3befe2f
docs: add contributor 4.5 runbook
sidmohan0 May 26, 2026
2ba8e34
docs: quarantine historical shadow modules
sidmohan0 May 26, 2026
cb71a59
feat: add German regex locale support
sidmohan0 May 26, 2026
44a1ae1
ci: validate python 313 optional profiles
sidmohan0 May 26, 2026
e950770
docs: prepare 4.5 release readiness
sidmohan0 May 26, 2026
978ab7f
chore: bump version to 4.4.0b6 [skip ci]
actions-user May 28, 2026
2d13674
Merge remote-tracking branch 'origin/dev' into codex/dfpy-79-release-…
sidmohan0 May 31, 2026
2b6dc2e
ci: upgrade actions for Node 24 runtime
sidmohan0 May 26, 2026
86a215c
Adopt locale-gated German regex defaults
sidmohan0 May 27, 2026
d3ed4b5
Merge pull request #148 from DataFog/codex/dfpy-79-release-readiness
sidmohan0 May 31, 2026
ccfa3b8
chore: bump version to 4.5.0b1 [skip ci]
actions-user May 31, 2026
b919af9
chore: bump version to 4.5.0a1 [skip ci]
actions-user Jun 1, 2026
c513b65
chore: bump version to 4.5.0b2 [skip ci]
actions-user Jun 11, 2026
0b931da
chore: bump version to 4.5.0a2 [skip ci]
actions-user Jun 15, 2026
a6e4792
chore: bump version to 4.5.0b3 [skip ci]
actions-user Jun 18, 2026
2017a5d
chore: bump version to 4.5.0a3 [skip ci]
actions-user Jun 22, 2026
a439218
chore: bump version to 4.5.0b4 [skip ci]
actions-user Jun 25, 2026
c8fc707
chore: bump version to 4.5.0a4 [skip ci]
actions-user Jun 29, 2026
76d1645
chore: bump version to 4.5.0b5 [skip ci]
actions-user Jul 2, 2026
2fea5ad
fix: restore v4.4.0 detection parity for SSN and detect() output keys
sidmohan0 Jul 2, 2026
2cab1a3
chore: finalize 4.5.0 changelog and document guardrail engine defaults
sidmohan0 Jul 2, 2026
d01a01e
ci: exclude historical audit artifacts from prettier
sidmohan0 Jul 2, 2026
4de587e
Merge pull request #149 from DataFog/fix/4.5-release-review
sidmohan0 Jul 2, 2026
e0655b9
Prepare v4.5.0 stable release
sidmohan0 Jul 2, 2026
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
6 changes: 1 addition & 5 deletions .bumpversion.cfg
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[bumpversion]
current_version = 4.3.0
current_version = 4.5.0b5
commit = True
tag = True
tag_name = v{new_version}
Expand All @@ -20,7 +20,3 @@ values =
[bumpversion:file:datafog/__about__.py]
search = __version__ = "{current_version}"
replace = __version__ = "{new_version}"

[bumpversion:file:setup.py]
search = version="{current_version}"
replace = version="{new_version}"
10 changes: 5 additions & 5 deletions .github/workflows/benchmark.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,12 @@ jobs:
benchmark:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
fetch-depth: 0 # Fetch all history for proper comparison

- name: Set up Python
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: "3.10"
cache: "pip"
Expand All @@ -27,14 +27,14 @@ jobs:
run: |
python -m pip install --upgrade pip
pip install -e ".[nlp]"
pip install -r requirements-dev.txt
pip install -r requirements-benchmark.txt
# Verify pytest-benchmark is installed and working
python -c "import pytest_benchmark; print('pytest-benchmark version:', pytest_benchmark.__version__)"
python -m pytest --version
python -m pytest --collect-only tests/benchmark_text_service.py::test_regex_performance

- name: Restore benchmark data
uses: actions/cache@v4
uses: actions/cache@v5
with:
path: .benchmarks
# Updated cache key to reset baseline due to performance optimization changes
Expand Down Expand Up @@ -101,7 +101,7 @@ jobs:
# fi

- name: Upload benchmark results
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: benchmark-results
path: |
Expand Down
92 changes: 70 additions & 22 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
- uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: "3.10"
cache: "pip"
Expand All @@ -31,43 +31,35 @@ jobs:
matrix:
python-version: ["3.10", "3.11", "3.12", "3.13"]
install-profile: ["core", "nlp", "nlp-advanced"]
exclude:
# v4.4.0 claims Python 3.13 support for core + CLI first.
# Optional heavyweight profiles remain validated separately before
# we advertise Python 3.13 support for them.
- python-version: "3.13"
install-profile: "nlp"
- python-version: "3.13"
install-profile: "nlp-advanced"
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Set up Python
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
cache: "pip"

- name: Install base tooling
- name: Upgrade pip
run: |
python -m pip install --upgrade pip
pip install pytest pytest-cov coverage

- name: Install dependencies (core)
if: matrix.install-profile == 'core'
run: |
pip install -e ".[dev,cli]"
pip install -e ".[test,cli]" -r requirements-test.txt

- name: Install dependencies (nlp)
if: matrix.install-profile == 'nlp'
run: |
pip install -e ".[dev,cli,nlp]"
python -m spacy download en_core_web_sm
pip install -e ".[test,cli,nlp]" -r requirements-test.txt
python -m spacy download en_core_web_lg

- name: Install dependencies (nlp-advanced)
if: matrix.install-profile == 'nlp-advanced'
run: |
pip install -e ".[dev,cli,nlp,nlp-advanced]"
python -m spacy download en_core_web_sm
pip install -e ".[test,cli,nlp,nlp-advanced]" -r requirements-test.txt
python -m spacy download en_core_web_lg
datafog download-model urchade/gliner_multi_pii-v1 --engine gliner

- name: Run tests (core)
if: matrix.install-profile == 'core'
Expand Down Expand Up @@ -148,17 +140,73 @@ jobs:
PY

- name: Upload coverage
uses: codecov/codecov-action@v5
uses: codecov/codecov-action@v6
with:
files: ./coverage.xml
flags: ${{ matrix.install-profile }}-py${{ matrix.python-version }}
token: ${{ secrets.CODECOV_TOKEN }}

profile-smoke:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.11"]
install-profile:
- core
- cli
- nlp
- nlp-advanced
- ocr
- distributed
- web
include:
- python-version: "3.13"
install-profile: nlp
- python-version: "3.13"
install-profile: nlp-advanced
- python-version: "3.13"
install-profile: ocr
steps:
- uses: actions/checkout@v6
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
cache: "pip"

- name: Upgrade pip
run: |
python -m pip install --upgrade pip

- name: Install Tesseract OCR
if: matrix.install-profile == 'ocr'
run: |
sudo apt-get update
sudo apt-get install -y tesseract-ocr libtesseract-dev

- name: Install dependencies (core)
if: matrix.install-profile == 'core'
run: |
pip install -e ".[test]"

- name: Install dependencies (profile)
if: matrix.install-profile != 'core'
run: |
pip install -e ".[test,${{ matrix.install-profile }}]"

- name: Run install profile smoke test
env:
DATAFOG_INSTALL_PROFILE: ${{ matrix.install-profile }}
DATAFOG_REQUIRE_TESSERACT: ${{ matrix.install-profile == 'ocr' && '1' || '' }}
run: |
pytest tests/test_install_profiles.py -q

wheel-size:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
- uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: "3.10"
cache: "pip"
Expand Down
38 changes: 19 additions & 19 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,11 +61,11 @@ jobs:
BRANCH="dev"
fi

echo "release_type=$TYPE" >> $GITHUB_OUTPUT
echo "target_branch=$BRANCH" >> $GITHUB_OUTPUT
echo "release_type=$TYPE" >> "$GITHUB_OUTPUT"
echo "target_branch=$BRANCH" >> "$GITHUB_OUTPUT"
echo "Release type: $TYPE from $BRANCH"

- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
fetch-depth: 0
ref: ${{ steps.resolve.outputs.target_branch }}
Expand All @@ -86,15 +86,15 @@ jobs:
if [ -z "$LAST_TAG" ]; then
COMMIT_COUNT=$(git rev-list --count --since="7 days ago" HEAD)
else
COMMIT_COUNT=$(git rev-list --count ${LAST_TAG}..HEAD)
COMMIT_COUNT=$(git rev-list --count "${LAST_TAG}..HEAD")
fi

echo "Commits since ${LAST_TAG:-'(none)'}: $COMMIT_COUNT"

if [ "$COMMIT_COUNT" -gt 0 ] || [ "${{ inputs.force_build }}" = "true" ]; then
echo "has_changes=true" >> $GITHUB_OUTPUT
echo "has_changes=true" >> "$GITHUB_OUTPUT"
else
echo "has_changes=false" >> $GITHUB_OUTPUT
echo "has_changes=false" >> "$GITHUB_OUTPUT"
echo "No changes detected, skipping release"
fi

Expand All @@ -107,13 +107,13 @@ jobs:
matrix:
python-version: ["3.10", "3.11", "3.12"]
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
fetch-depth: 0
ref: ${{ needs.determine-release.outputs.target_branch }}

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
cache: "pip"
Expand All @@ -126,9 +126,10 @@ jobs:
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e ".[all,dev]"
pip install -r requirements-dev.txt
pip install https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.7.1/en_core_web_sm-3.7.1.tar.gz
pip install -e ".[all,test]"
pip install -r requirements-test.txt
python -m spacy download en_core_web_lg
datafog download-model urchade/gliner_multi_pii-v1 --engine gliner

- name: Run tests with segfault protection
run: |
Expand All @@ -144,22 +145,21 @@ jobs:
if: needs.determine-release.outputs.has_changes == 'true'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
fetch-depth: 0
ref: ${{ needs.determine-release.outputs.target_branch }}

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

- name: Install core + CLI dependencies
run: |
python -m pip install --upgrade pip
pip install pytest pytest-cov coverage
pip install -e ".[dev,cli]"
pip install -e ".[test,cli]" -r requirements-test.txt

- name: Run Python 3.13 core + CLI tests
run: |
Expand All @@ -177,14 +177,14 @@ jobs:
outputs:
version: ${{ steps.version.outputs.version }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
fetch-depth: 0
ref: ${{ needs.determine-release.outputs.target_branch }}
token: ${{ secrets.GH_PAT }}

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

Expand Down Expand Up @@ -241,7 +241,7 @@ jobs:
VERSION="$BASE"
fi

echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "version=$VERSION" >> "$GITHUB_OUTPUT"
echo "Publishing version: $VERSION"

sed -i "s/__version__ = \".*\"/__version__ = \"$VERSION\"/" datafog/__about__.py
Expand Down Expand Up @@ -322,7 +322,7 @@ jobs:
if: needs.determine-release.outputs.release_type != 'stable' && inputs.dry_run != true
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6

- name: Prune old alpha releases (keep 7)
if: needs.determine-release.outputs.release_type == 'alpha'
Expand Down
6 changes: 4 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ error_log.txt
# Environment
.env
.venv
.venv*/
venv/
env/
examples/venv/
Expand Down Expand Up @@ -58,14 +59,15 @@ docs/*
!docs/conf.py
!docs/Makefile
!docs/make.bat
!docs/optional-surfaces.rst
!docs/agents/
!docs/agents/**
!docs/audit/
!docs/audit/**

# Keep all directories but ignore their contents
*/**/__pycache__/

# Keep all files but ignore their contents
Claude.md
notes/benchmarking_notes.md
Roadmap.md
notes/*
1 change: 1 addition & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ repos:
exclude: |
(?x)^(
.venv|
docs/audit/.*|
.*\.github/workflows/.*\.ya?ml$
)$

Expand Down
Loading