Skip to content

Commit d5357bc

Browse files
sidmohan0dependabot[bot]actions-user
authored
Prepare v4.4.0 stable release (#133)
* chore(deps): bump sentencepiece from 0.2.0 to 0.2.1 (#114) Bumps [sentencepiece](https://github.com/google/sentencepiece) from 0.2.0 to 0.2.1. - [Release notes](https://github.com/google/sentencepiece/releases) - [Commits](google/sentencepiece@v0.2.0...v0.2.1) --- updated-dependencies: - dependency-name: sentencepiece dependency-version: 0.2.1 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump cryptography from 44.0.2 to 46.0.5 (#119) Bumps [cryptography](https://github.com/pyca/cryptography) from 44.0.2 to 46.0.5. - [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst) - [Commits](pyca/cryptography@44.0.2...46.0.5) --- updated-dependencies: - dependency-name: cryptography dependency-version: 46.0.5 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump pillow and protobuf pins * chore: bump version to 4.3.0a1 [skip ci] * chore: bump version to 4.3.0b2 [skip ci] * chore: bump version to 4.3.0a2 [skip ci] * chore: bump version to 4.3.0b3 [skip ci] * chore: bump version to 4.3.0a3 [skip ci] * chore: bump version to 4.3.0b4 [skip ci] * chore: bump version to 4.3.0a4 [skip ci] * chore: bump version to 4.3.0b5 [skip ci] * chore: bump version to 4.3.0a5 [skip ci] * chore: bump version to 4.3.0b6 [skip ci] * chore: bump version to 4.3.0a6 [skip ci] * chore: bump version to 4.3.0b7 [skip ci] * chore: bump version to 4.3.0a7 [skip ci] * chore: bump version to 4.3.0b8 [skip ci] * chore: bump version to 4.3.0a8 [skip ci] * chore: bump version to 4.3.0b9 [skip ci] * chore: bump version to 4.3.0a9 [skip ci] * chore: bump version to 4.3.0b10 [skip ci] * chore: bump version to 4.3.0a10 [skip ci] * chore: bump version to 4.3.0b11 [skip ci] * Add v4.4 bridge release runway (#130) * feat: add v4.4 bridge release runway * docs: clarify contributor workflow * style: apply lint formatting * ci: allow prerelease base override (#131) * chore: bump version to 4.4.0b1 [skip ci] * Make telemetry opt-in for v4.4 (#132) --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: GitHub Action <action@github.com>
1 parent f26d87e commit d5357bc

28 files changed

Lines changed: 1289 additions & 92 deletions
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
name: Bug report
2+
description: Report something that is broken or surprising.
3+
title: "bug: "
4+
labels: ["bug"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: Thanks for reporting a DataFog issue.
9+
- type: textarea
10+
id: summary
11+
attributes:
12+
label: Summary
13+
description: What happened?
14+
validations:
15+
required: true
16+
- type: textarea
17+
id: reproduce
18+
attributes:
19+
label: Reproduction
20+
description: Minimal code, command, or steps to reproduce.
21+
render: python
22+
validations:
23+
required: true
24+
- type: textarea
25+
id: expected
26+
attributes:
27+
label: Expected behavior
28+
validations:
29+
required: true
30+
- type: input
31+
id: version
32+
attributes:
33+
label: DataFog version
34+
placeholder: "4.3.0"
35+
- type: input
36+
id: python
37+
attributes:
38+
label: Python version
39+
placeholder: "3.12.4"
40+
- type: dropdown
41+
id: profile
42+
attributes:
43+
label: Install profile
44+
options:
45+
- core
46+
- cli
47+
- nlp
48+
- nlp-advanced
49+
- ocr
50+
- distributed
51+
- all
52+
- not sure
53+
- type: textarea
54+
id: environment
55+
attributes:
56+
label: Environment details
57+
description: OS, package manager, relevant dependency versions, or CI link.
58+
- type: textarea
59+
id: extra
60+
attributes:
61+
label: Additional context
62+
description: Logs, screenshots, or related issues.

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
blank_issues_enabled: true
2+
contact_links:
3+
- name: Security report
4+
url: https://github.com/DataFog/datafog-python/security/advisories/new
5+
about: Please report security vulnerabilities privately.
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: Feature request
2+
description: Suggest an improvement or new workflow.
3+
title: "feat: "
4+
labels: ["enhancement"]
5+
body:
6+
- type: textarea
7+
id: problem
8+
attributes:
9+
label: Problem
10+
description: What user problem would this solve?
11+
validations:
12+
required: true
13+
- type: textarea
14+
id: proposal
15+
attributes:
16+
label: Proposed solution
17+
description: What would you like DataFog to do?
18+
validations:
19+
required: true
20+
- type: dropdown
21+
id: area
22+
attributes:
23+
label: Area
24+
options:
25+
- Core scan/redaction
26+
- CLI
27+
- LLM guardrails
28+
- NLP engines
29+
- OCR/image processing
30+
- Spark/distributed processing
31+
- Packaging/install
32+
- Documentation
33+
- Other
34+
- type: textarea
35+
id: alternatives
36+
attributes:
37+
label: Alternatives considered
38+
- type: textarea
39+
id: extra
40+
attributes:
41+
label: Additional context

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
## Summary
2+
3+
Describe the change and why it is needed.
4+
5+
## Type
6+
7+
- [ ] Bug fix
8+
- [ ] Feature
9+
- [ ] Docs
10+
- [ ] Tests
11+
- [ ] Chore
12+
13+
## Target Branch
14+
15+
- [ ] This PR targets `dev`
16+
- [ ] This PR targets `main` for a release/hotfix
17+
18+
## Validation
19+
20+
Commands run:
21+
22+
```bash
23+
24+
```
25+
26+
Optional profiles tested:
27+
28+
- [ ] core
29+
- [ ] cli
30+
- [ ] nlp
31+
- [ ] nlp-advanced
32+
- [ ] ocr
33+
- [ ] distributed
34+
35+
## Notes For Reviewers
36+
37+
Mention API changes, migrations, warnings, or release-note needs.

.github/workflows/ci.yml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,16 @@ jobs:
2929
strategy:
3030
fail-fast: false
3131
matrix:
32-
python-version: ["3.10", "3.11", "3.12"]
32+
python-version: ["3.10", "3.11", "3.12", "3.13"]
3333
install-profile: ["core", "nlp", "nlp-advanced"]
34+
exclude:
35+
# v4.4.0 claims Python 3.13 support for core + CLI first.
36+
# Optional heavyweight profiles remain validated separately before
37+
# we advertise Python 3.13 support for them.
38+
- python-version: "3.13"
39+
install-profile: "nlp"
40+
- python-version: "3.13"
41+
install-profile: "nlp-advanced"
3442
steps:
3543
- uses: actions/checkout@v4
3644
- name: Set up Python

.github/workflows/release.yml

Lines changed: 42 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ on:
2727
default: false
2828
type: boolean
2929
version_override:
30-
description: "Override version (e.g. 4.4.0) — stable only"
30+
description: "Override stable version or prerelease base (e.g. 4.4.0)"
3131
required: false
3232
type: string
3333

@@ -139,8 +139,40 @@ jobs:
139139
OMP_NUM_THREADS=4 MKL_NUM_THREADS=4 OPENBLAS_NUM_THREADS=4 python tests/simple_performance_test.py
140140
141141
# ── 3. Build & Publish ────────────────────────────────────────────────
142+
python313-core:
143+
needs: determine-release
144+
if: needs.determine-release.outputs.has_changes == 'true'
145+
runs-on: ubuntu-latest
146+
steps:
147+
- uses: actions/checkout@v4
148+
with:
149+
fetch-depth: 0
150+
ref: ${{ needs.determine-release.outputs.target_branch }}
151+
152+
- name: Set up Python 3.13
153+
uses: actions/setup-python@v5
154+
with:
155+
python-version: "3.13"
156+
cache: "pip"
157+
158+
- name: Install core + CLI dependencies
159+
run: |
160+
python -m pip install --upgrade pip
161+
pip install pytest pytest-cov coverage
162+
pip install -e ".[dev,cli]"
163+
164+
- name: Run Python 3.13 core + CLI tests
165+
run: |
166+
pytest tests/ \
167+
-m "not slow" \
168+
--ignore=tests/test_gliner_annotator.py \
169+
--ignore=tests/test_image_service.py \
170+
--ignore=tests/test_ocr_integration.py \
171+
--ignore=tests/test_spark_integration.py \
172+
--ignore=tests/test_text_service_integration.py
173+
142174
publish:
143-
needs: [determine-release, test]
175+
needs: [determine-release, test, python313-core]
144176
runs-on: ubuntu-latest
145177
outputs:
146178
version: ${{ steps.version.outputs.version }}
@@ -182,6 +214,13 @@ jobs:
182214
183215
# Strip any pre-release suffix to get base version
184216
BASE=$(echo "$CURRENT" | sed -E 's/(a|b)[0-9]+([.][0-9A-Za-z]+)?$//')
217+
if [ -n "${{ inputs.version_override }}" ]; then
218+
BASE="${{ inputs.version_override }}"
219+
if echo "$BASE" | grep -Eq '(a|b)[0-9]+([.][0-9A-Za-z]+)?$'; then
220+
echo "version_override must be a stable base version like 4.4.0, not a prerelease"
221+
exit 1
222+
fi
223+
fi
185224
echo "Base version: $BASE"
186225
187226
if [ "$TYPE" = "alpha" ]; then
@@ -199,12 +238,7 @@ jobs:
199238
VERSION="${BASE}b${BETA_NUM}"
200239
201240
else
202-
# Stable: use override or base version
203-
if [ -n "${{ inputs.version_override }}" ]; then
204-
VERSION="${{ inputs.version_override }}"
205-
else
206-
VERSION="$BASE"
207-
fi
241+
VERSION="$BASE"
208242
fi
209243
210244
echo "version=$VERSION" >> $GITHUB_OUTPUT

CONTRIBUTING.md

Lines changed: 91 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,99 @@
1-
# Contributing guidelines
1+
# Contributing to DataFog Python
22

3-
# Contributors
3+
Thanks for helping improve DataFog. The project welcomes issues, bug reports,
4+
documentation fixes, tests, and pull requests.
45

5-
- sroy9675
6-
- pselvana
7-
- sidmohan0
6+
Please follow the [Code of Conduct](CODE_OF_CONDUCT.md) in all project spaces.
7+
8+
## Branch And PR Policy
9+
10+
DataFog uses `dev` as the default development branch and `main` as the stable
11+
release branch.
12+
13+
Use this workflow for normal contributions:
14+
15+
1. Fork the repository or create a topic branch from `dev`.
16+
2. Name branches with a GitHub username prefix when practical, for example
17+
`sidmohan0/dfpy-v44-bridge` or `yourname/fix-cli-redaction`.
18+
3. Open pull requests into `dev`.
19+
4. Keep pull requests focused and include tests or docs when behavior changes.
20+
21+
Use `main` only for stable release promotion or urgent release hotfixes.
22+
Do not use `dev` or `main` as working branches.
23+
24+
Maintainers should prefer pull requests even for small changes. Protected branch
25+
rules should prevent branch deletion, require CI before merge, and avoid direct
26+
pushes except for explicit emergency maintenance.
27+
28+
## Local Development
29+
30+
```bash
31+
git clone https://github.com/datafog/datafog-python
32+
cd datafog-python
33+
python -m venv .venv
34+
source .venv/bin/activate # Windows: .venv\Scripts\activate
35+
python -m pip install --upgrade pip
36+
pip install -e ".[dev,cli]"
37+
```
38+
39+
For optional NLP or OCR work, install the relevant extras:
40+
41+
```bash
42+
pip install -e ".[dev,cli,nlp]"
43+
pip install -e ".[dev,cli,nlp,nlp-advanced]"
44+
pip install -e ".[all,dev]"
45+
```
846

9-
for their help
47+
## Tests
1048

11-
The datafog community appreciates your contributions via issues and
12-
pull requests. Note that the [code of conduct](CODE_OF_CONDUCT.md)
13-
applies to all interactions with the datafog project, including
14-
issues and pull requests.
49+
Run the core test suite before opening a pull request:
1550

16-
When submitting pull requests, please follow the style guidelines of
17-
the project, ensure that your code is tested and documented, and write
18-
good commit messages, e.g., following [these
19-
guidelines](https://chris.beams.io/posts/git-commit/).
51+
```bash
52+
pytest tests/ -m "not slow" \
53+
--ignore=tests/test_gliner_annotator.py \
54+
--ignore=tests/test_image_service.py \
55+
--ignore=tests/test_ocr_integration.py \
56+
--ignore=tests/test_spark_integration.py \
57+
--ignore=tests/test_text_service_integration.py
58+
```
2059

21-
By submitting a pull request, you are licensing your code under the
22-
project [license](LICENSE) and affirming that you either own copyright
23-
(automatic for most individuals) or are authorized to distribute under
24-
the project license (e.g., in case your employer retains copyright on
25-
your work).
60+
Run the focused test file for the area you changed whenever possible. For
61+
documentation-only changes, build the docs:
2662

27-
### Legal Notice
63+
```bash
64+
sphinx-build -b html docs docs/_build/html
65+
```
2866

29-
When contributing to this project, you must agree that you have authored 100% of the content, that you have the necessary rights to the content and that the content you contribute may be provided under the project license.
67+
## Pull Request Checklist
68+
69+
Before requesting review:
70+
71+
- Rebase or merge the latest `dev`.
72+
- Add or update tests for behavior changes.
73+
- Update docs for user-facing changes.
74+
- Keep public API changes explicit in the PR description.
75+
- Note any optional dependency profile you tested, such as `core`, `nlp`, or
76+
`nlp-advanced`.
77+
78+
## Commit Messages
79+
80+
Use clear, descriptive commit messages. Conventional-style prefixes are welcome
81+
but not required, for example:
82+
83+
- `fix: handle empty scan input`
84+
- `docs: clarify branch policy`
85+
- `test: cover v5 preview redaction wrapper`
86+
87+
## Legal
88+
89+
By submitting a pull request, you license your contribution under the project
90+
[license](LICENSE). You also affirm that you authored the contribution or have
91+
the right to submit it under the project license.
92+
93+
## Contributors
94+
95+
Thanks to early contributors including:
96+
97+
- sroy9675
98+
- pselvana
99+
- sidmohan0

README.md

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@ pip install datafog[nlp-advanced]
2525
pip install datafog[all]
2626
```
2727

28+
Python 3.13 support is certified for the core SDK and CLI. Optional extras such
29+
as `nlp`, `nlp-advanced`, `ocr`, `distributed`, and `all` are available but not
30+
yet certified on Python 3.13.
31+
2832
## Quick Start
2933

3034
```python
@@ -132,9 +136,15 @@ datafog hash-text "john@example.com"
132136

133137
## Telemetry
134138

135-
DataFog includes anonymous telemetry by default.
139+
DataFog telemetry is disabled by default.
140+
141+
To opt in:
142+
143+
```bash
144+
export DATAFOG_TELEMETRY=1
145+
```
136146

137-
To opt out:
147+
To force telemetry off:
138148

139149
```bash
140150
export DATAFOG_NO_TELEMETRY=1

0 commit comments

Comments
 (0)