Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
772 commits
Select commit Hold shift + click to select a range
cc70119
Merge pull request #548 from JustAnotherArchivist/arbitrary-ints
hugovk Jun 18, 2022
bc7bdff
Replace wchar_t string decoding implementation with a uint32_t-based one
JustAnotherArchivist Jun 18, 2022
67ec071
Merge pull request #555 from JustAnotherArchivist/fix-decode-surrogat…
hugovk Jun 20, 2022
b21da40
Fix double free on string decoding if realloc fails
JustAnotherArchivist Jun 27, 2022
9c20de0
Merge pull request from GHSA-fm67-cv37-96ff
hugovk Jul 2, 2022
00abb6b
[pre-commit.ci] pre-commit autoupdate
pre-commit-ci[bot] Jul 4, 2022
b02bb27
Merge pull request #558 from ultrajson/pre-commit-ci-update-config
hugovk Jul 4, 2022
8a946e5
Add separators encoding parameter
JustAnotherArchivist Jun 27, 2022
0c15e7f
Add workflow to require changelog label for PRs
hugovk Jul 11, 2022
9204cbf
Merge pull request #559 from hugovk/require-pr-label
hugovk Jul 11, 2022
264f60c
docs: Fix a few typos
timgates42 Jul 20, 2022
cdcbca1
Replace deprecated pypa/gh-action-pypi-publish@master with @release/v1
hugovk Jul 25, 2022
bcdc041
Merge pull request #561 from ultrajson/all-repos_autofix_pypa/gh-acti…
hugovk Jul 26, 2022
b18f60d
Fix encoding of infinity (#80).
bwoodsend Aug 6, 2022
203f311
Appease setuptools deprecation of license_file.
bwoodsend Aug 7, 2022
565429b
Bump actions
hugovk Aug 7, 2022
b29c9d5
GHA: Use ubuntu-latest (except pin to latest 22.04 for benchmark)
hugovk Aug 7, 2022
734a569
Support Python 3.11
hugovk Aug 7, 2022
68493f8
Extract single matrix factor
hugovk Sep 13, 2022
b5ce312
Create wheel for PyPy3.9
hugovk Sep 14, 2022
d84c832
Merge pull request #564 from hugovk/add-3.11
hugovk Sep 15, 2022
a967d9a
[pre-commit.ci] pre-commit autoupdate
pre-commit-ci[bot] Oct 3, 2022
7db453b
Merge pull request #566 from ultrajson/pre-commit-ci-update-config
hugovk Oct 3, 2022
fb96b90
Fix len integer overflow issue
Oct 4, 2022
6f6e69c
Added unittest where int overflow causes exception
Oct 11, 2022
2013758
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 11, 2022
4d82888
Fix flake8
Oct 11, 2022
1161d5d
Add checks to test suite and improve comments
Oct 14, 2022
ec095e4
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 14, 2022
36ced86
Merge pull request #567 from marioga/marioga_prevent_int_overflow
hugovk Oct 14, 2022
423bcd3
Replace 3.11-dev with 3.11
hugovk Oct 26, 2022
87c74e3
Merge pull request #568 from ultrajson/all-repos_autofix_all-repos-sed
hugovk Oct 26, 2022
7d5e8fc
Replace 3.11-dev with 3.11
hugovk Oct 26, 2022
13da58c
Merge pull request #569 from ultrajson/3.11-dev-to-3.11
hugovk Oct 26, 2022
2907fde
Update vendored double-conversion to 3.2.1 (#570)
joemarshall Nov 3, 2022
abb4951
Test Python 3.12-dev
hugovk Nov 9, 2022
1860724
Merge pull request #571 from ultrajson/all-repos_autofix_add-3.12-dev
hugovk Nov 9, 2022
87dd117
Support ujson.loads(bytearray(...)) and other bytes-like objects.
bwoodsend Dec 16, 2022
1876c02
Limit loading from bytes-like to just bytes() and bytearray() on PyPy.
bwoodsend Dec 18, 2022
6811883
[pre-commit.ci] pre-commit autoupdate
pre-commit-ci[bot] Jan 2, 2023
7ae42dc
Merge pull request #575 from ultrajson/pre-commit-ci-update-config
hugovk Jan 2, 2023
bab9518
Add renovate.json
renovate[bot] Jan 27, 2023
02c73b9
Add labels and group Renovate PRs, run monthly
hugovk Jan 27, 2023
d391f6f
Add 'dependencies' label and re-arrange
hugovk Jan 27, 2023
a1bec16
Use pypa/cibuildwheel action
hugovk Jan 27, 2023
47c6f46
Merge pull request #577 from ultrajson/renovate/configure
hugovk Jan 27, 2023
6b5354c
Update github-actions
renovate[bot] Jan 27, 2023
72e6495
Merge pull request #579 from ultrajson/renovate/github-actions
hugovk Jan 27, 2023
e4e1320
Bump isort to fix Poetry
hugovk Jan 29, 2023
15285c8
Merge pull request #580 from ultrajson/all-repos_autofix_all-repos-sed
hugovk Jan 29, 2023
b40d35a
Add test for int- and float-derived Enums
JustAnotherArchivist Feb 8, 2023
2fe4237
Merge pull request #581 from JustAnotherArchivist/test-enum
hugovk Feb 8, 2023
54497bd
Include BSD-3-Clause and TCL license text
musicinmybrain Mar 10, 2023
7e89446
Replace deprecated repository_url with repository-url
hugovk Mar 19, 2023
f00bfe9
Merge pull request #585 from ultrajson/all-repos_autofix_fix-deprecat…
hugovk Mar 19, 2023
881d7bc
Update pypa/cibuildwheel action to v2.12.1
renovate[bot] Apr 1, 2023
56a74a0
Merge pull request #587 from ultrajson/renovate/github-actions
hugovk Apr 1, 2023
6035e09
[pre-commit.ci] pre-commit autoupdate
pre-commit-ci[bot] Apr 3, 2023
f0be4fb
Update github-actions
renovate[bot] May 1, 2023
6a49e2f
Update github-actions (#590)
hugovk May 1, 2023
1d38f89
Update pypa/cibuildwheel action to v2.13.0
renovate[bot] Jun 1, 2023
ab1099a
Remove unmaintained nujson from benchmark and bump to Python 3.11
hugovk Jun 1, 2023
449761b
Add build trigger
hugovk Jun 1, 2023
cd75906
Update benchmark results from CI run
hugovk Jun 1, 2023
ff7607b
Fetch all tags for setuptools_scm
hugovk Jun 1, 2023
2165bcd
Update benchmark results from CI run
hugovk Jun 1, 2023
cae2f92
'git fetch --prune --unshallow' like deploy.yml
hugovk Jun 1, 2023
44e756a
Update benchmark results from CI run
hugovk Jun 2, 2023
092df91
Remove unmaintained nujson from benchmark and bump to Python 3.11 (#593)
hugovk Jun 2, 2023
297024b
Build wheel for Python 3.12 beta
hugovk May 28, 2023
cd07834
Use pypa/gh-action-pypi-publish consistently instead of twine
hugovk Jun 2, 2023
7a8fed2
Drop support for Python 3.7
hugovk Jun 3, 2023
ffd17da
Add 3.12 classifier
hugovk Jun 3, 2023
e1dfadc
Build wheel for Python 3.12 beta (#594)
hugovk Jun 4, 2023
b042a39
Merge branch 'main' into rm-3.7
hugovk Jun 4, 2023
b527914
Drop support for Python 3.7 (#595)
hugovk Jun 4, 2023
54f5dfe
Upload all wheels from a single, final job
hugovk Jun 6, 2023
3e51d20
Upload wheels before the sdist
hugovk Jun 7, 2023
db1138a
CI deploy: Upload all wheels from a single, final job (#596)
hugovk Jun 7, 2023
0b40ece
Update github-actions
renovate[bot] Jun 10, 2023
7ce1914
Update github-actions (#597)
hugovk Jun 11, 2023
cf60892
CI: Replace pypy3.8 with pypy3.10
hugovk Jun 18, 2023
847b4e9
CI: Replace pypy3.8 with pypy3.10 (#598)
hugovk Jun 20, 2023
e52a512
[pre-commit.ci] pre-commit autoupdate
pre-commit-ci[bot] Jul 3, 2023
a2bfefb
[pre-commit.ci] pre-commit autoupdate (#599)
hugovk Jul 3, 2023
1da76b5
Update pypa/cibuildwheel action to v2.14.1
renovate[bot] Aug 1, 2023
50eb227
Replace PyPy3.8 wheel with PyPy3.10
hugovk Aug 1, 2023
a179fb5
Replace PyPy3.8 wheel with PyPy3.10 (#602)
hugovk Aug 2, 2023
2080d73
Deploy to PyPI using trusted publishing
hugovk Aug 2, 2023
e9e1e6c
Deploy to PyPI using trusted publishing (#603)
hugovk Aug 17, 2023
fe4990f
Update pypa/cibuildwheel action to v2.15.0
renovate[bot] Aug 17, 2023
6c2514e
Update pypa/cibuildwheel action to v2.15.0 (#604)
hugovk Aug 17, 2023
92eae19
Update github-actions
renovate[bot] Oct 1, 2023
a967539
Update github-actions (#608)
hugovk Oct 1, 2023
0959d18
Fix undefined behavior in Buffer_AppendLongUnchecked (#606)
WillAyd Oct 1, 2023
e00814c
[pre-commit.ci] pre-commit autoupdate
pre-commit-ci[bot] Oct 2, 2023
b7a4dfd
Fix typos found by codespell (#610)
DimitriPapadopoulos Oct 17, 2023
b348b90
README: replace expired esn.me with example.com
hugovk Oct 26, 2023
748dd1b
README: replace expired esn.me with example.com (#611)
hugovk Oct 26, 2023
87c2a9d
Update pypa/cibuildwheel action to v2.16.2
renovate[bot] Nov 1, 2023
40e342e
Don't invoke setup.py directly
hugovk Nov 1, 2023
1c8188d
Update pypa/cibuildwheel action to v2.16.2 (#612)
hugovk Nov 1, 2023
a08b75b
Use lowercase strings for bool dict keys
eltoder Nov 17, 2023
eda5ecd
Speed-up and cleanup objToJSON
eltoder Dec 2, 2023
381f248
Speedup dumps with sorted keys
eltoder Dec 6, 2023
86de8d3
Update github-actions
renovate[bot] Jan 1, 2024
d7cc8ac
Update github-actions (#617)
hugovk Jan 1, 2024
aea81d8
[pre-commit.ci] pre-commit autoupdate
pre-commit-ci[bot] Jan 1, 2024
f7c37ec
[pre-commit.ci] pre-commit autoupdate (#618)
hugovk Jan 1, 2024
455ac40
Remove unused docker/setup-buildx-action from deploy.yml
hugovk Jan 4, 2024
d7b4d62
Remove unused docker/setup-buildx-action from test.yml
hugovk Jan 5, 2024
0d2d8c5
Remove unused docker/setup-buildx-action (#619)
hugovk Jan 5, 2024
45e00b3
Update pypa/cibuildwheel action to v2.16.5
renovate[bot] Feb 1, 2024
9cdf1e1
Update github-actions
renovate[bot] Mar 1, 2024
6aeaa96
Update github-actions (#622)
hugovk Mar 1, 2024
08f14e5
Update pypa/cibuildwheel action to v2.17.0
renovate[bot] Apr 1, 2024
fbf7aff
Update pypa/cibuildwheel action to v2.17.0 (#623)
hugovk Apr 1, 2024
e96c8cf
[pre-commit.ci] pre-commit autoupdate
pre-commit-ci[bot] Apr 1, 2024
362c88a
Use Black mirror
hugovk Apr 1, 2024
04daf02
[pre-commit.ci] pre-commit autoupdate (#624)
hugovk Apr 1, 2024
7c0f425
Test Python 3.13
hugovk May 10, 2024
e595354
Declare maintenance mode (#626)
bwoodsend May 11, 2024
0d5db00
Test Python 3.13 beta (#627)
hugovk May 11, 2024
eab9c0e
Add support for Python 3.13
hugovk May 12, 2024
59875e0
Add support for Python 3.13 (#628)
hugovk May 13, 2024
cb210cc
Update pypa/cibuildwheel action to v2.18.1
renovate[bot] Jun 1, 2024
e994c12
Update pypa/cibuildwheel action to v2.18.1 (#630)
hugovk Jun 1, 2024
a873003
Update pypa/cibuildwheel action to v2.19.1
renovate[bot] Jul 1, 2024
34fc4c6
Update pypa/cibuildwheel action to v2.19.1 (#632)
hugovk Jul 1, 2024
d454044
[pre-commit.ci] pre-commit autoupdate
pre-commit-ci[bot] Jul 1, 2024
c82edd2
Update pypa/cibuildwheel action to v2.19.2
renovate[bot] Aug 1, 2024
60e68ab
Update pypa/cibuildwheel action to v2.19.2 (#636)
hugovk Aug 1, 2024
9a28932
Pin setuptools < 72.2 to fix build on PyPy
hugovk Sep 1, 2024
9729570
Only pin setuptools < 72.2 on PyPy
hugovk Sep 2, 2024
991261e
Pin setuptools < 72.2 to fix build on PyPy (#638)
hugovk Sep 2, 2024
49592da
Drop support for EOL PyPy3.8 and PyPy3.9
hugovk Sep 1, 2024
844d627
Update pypa/cibuildwheel action to v2.20.0 (#637)
renovate[bot] Sep 2, 2024
2e4aba3
Drop support for EOL PyPy3.8 and PyPy3.9 (#639)
hugovk Sep 2, 2024
3f4adf8
Update pypa/cibuildwheel action to v2.21.1
renovate[bot] Oct 1, 2024
f61633c
Update pypa/cibuildwheel action to v2.21.1 (#642)
hugovk Oct 1, 2024
783eb41
[pre-commit.ci] pre-commit autoupdate
pre-commit-ci[bot] Oct 7, 2024
165866f
Drop support for EOL Python 3.8
hugovk Oct 8, 2024
cd62e06
Drop support for EOL Python 3.8 (#645)
hugovk Oct 9, 2024
e26a70b
Always use Python from actions/setup-python
bwoodsend Oct 10, 2024
adb567b
Always use Python from actions/setup-python (#646)
hugovk Oct 11, 2024
e97dc6d
Update pypa/cibuildwheel action to v2.21.3
renovate[bot] Nov 1, 2024
38e9073
Update pypa/cibuildwheel action to v2.22.0
renovate[bot] Dec 1, 2024
fc814ec
Replace deprecated 'CIBW_PRERELEASE_PYTHONS: True' with 'CIBW_ENABLE:…
hugovk Dec 3, 2024
e71d598
Replace deprecated `CIBW_PRERELEASE_PYTHONS` with `CIBW_ENABLE` (#649)
hugovk Dec 3, 2024
4c43084
Add zizmor to pre-commit
hugovk Dec 8, 2024
03f59a4
Ignore 'artipacked' about not setting persist-credentials: false
hugovk Dec 13, 2024
0ba0b5a
Add zizmor to pre-commit (#650)
hugovk Dec 15, 2024
d450278
[pre-commit.ci] pre-commit autoupdate
pre-commit-ci[bot] Jan 6, 2025
ea1b20b
Fix zizmor error[cache-poisoning]: runtime artifacts potentially vuln…
hugovk Jan 7, 2025
ae84385
Build aarch64 using native runners
hugovk Jan 18, 2025
366ad8a
Add pypy to CIBW_ENABLE
hugovk Jan 18, 2025
7e84cf5
Build aarch64 wheels using native runners (#652)
hugovk Jan 18, 2025
0587147
Update pypa/cibuildwheel action to v2.23.0
renovate[bot] Mar 1, 2025
7b8c976
Update pypa/cibuildwheel action to v2.23.0 (#657)
hugovk Mar 1, 2025
f0b64be
Add support for PyPy3.11
hugovk Mar 1, 2025
26725d6
Update README.md example to match actual output (#654)
AvdN Mar 1, 2025
8c70de6
Add support for PyPy3.11 (#658)
hugovk Mar 1, 2025
fe15179
Update pypa/cibuildwheel action to v2.23.2
renovate[bot] Apr 1, 2025
4b01d98
[pre-commit.ci] pre-commit autoupdate
pre-commit-ci[bot] Apr 7, 2025
6f767c0
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Apr 7, 2025
0829059
Set permissions
hugovk Apr 7, 2025
937491d
Newlines for readability
hugovk Apr 7, 2025
a2febd2
Add Windows ARM64 wheels
tonybaloney Apr 23, 2025
9191a57
[pre-commit.ci] pre-commit autoupdate (#662)
hugovk Apr 30, 2025
92e8f40
Update pypa/cibuildwheel action to v2.23.3
renovate[bot] May 1, 2025
7bb3b90
fix(ujson.loads): raises a JSONDecodeError instead of SystemError whe…
grandnew May 9, 2025
399e3ae
Test Python 3.14 beta
hugovk May 10, 2025
2ea54f6
Test Python 3.14 beta (#668)
hugovk May 11, 2025
7a5fbe8
Add tox for testing and linting in virtual envs
hugovk Jun 9, 2025
aeeabcd
Set ujson as known_first_party for isort
hugovk Apr 24, 2025
48c5b34
Migrate to src/ layout
hugovk Apr 24, 2025
f44e779
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jun 9, 2025
833bf2f
Set ujson as `known_first_party` for isort (#672)
hugovk Jun 9, 2025
4010f1f
Add tox for testing and linting in virtual envs (#673)
hugovk Jun 9, 2025
ae07172
Inline stubs (#674)
MarcoGorelli Jun 12, 2025
233216d
Migrate to `src/` layout (#664)
hugovk Jun 16, 2025
c12ea7d
chore(deps): update pypa/cibuildwheel action to v3
renovate[bot] Jul 5, 2025
ec35eaf
Allow RecursionError for Python 3.14
hugovk Jul 6, 2025
0f537da
[pre-commit.ci] pre-commit autoupdate
pre-commit-ci[bot] Jul 7, 2025
c7bfa46
Allow tagged actions
hugovk Jul 7, 2025
2441460
chore(deps): update github-actions
renovate[bot] Aug 6, 2025
6f1356e
Add support for Python 3.14
hugovk Aug 19, 2025
7f8cce5
Test free-threaded Python 3.13t and 3.14t
hugovk Aug 19, 2025
df04295
Re-enable testing 3.14 on Windows
hugovk Aug 19, 2025
5c90868
Drop support for EOL PyPy3.10
hugovk Aug 19, 2025
09be5f0
Test free-threaded Python 3.13t and 3.14t (#681)
hugovk Aug 19, 2025
20a9997
Add support for Python 3.14 (#680)
hugovk Aug 19, 2025
dcc1c80
Drop support for EOL PyPy3.10 (#682)
hugovk Aug 19, 2025
b2cda89
chore(deps): update github-actions
renovate[bot] Aug 20, 2025
c392ae1
chore(deps): update github-actions (#683)
hugovk Aug 20, 2025
4c011c5
Build wheels for GraalPy
timfel Sep 23, 2025
b70a4aa
Use cibuildwheel action major.minor
timfel Sep 24, 2025
115909c
PyPy 3.10 is EOL in cibuildwheels, no longer need to skip it
timfel Sep 24, 2025
0f7b58e
Drop support for Python 3.9
hugovk Sep 25, 2025
1b72837
Drop support for Python 3.9 (#686)
hugovk Sep 30, 2025
7e2d0a4
chore(deps): update actions/setup-python action to v6
renovate[bot] Oct 1, 2025
dfd26e0
chore(deps): update actions/setup-python action to v6 (#687)
hugovk Oct 1, 2025
ec0b227
[pre-commit.ci] pre-commit autoupdate
pre-commit-ci[bot] Oct 6, 2025
c3e9a69
[pre-commit.ci] pre-commit autoupdate (#688)
hugovk Oct 6, 2025
75066b7
chore(deps): update github-actions
renovate[bot] Nov 1, 2025
2f78d19
Fix symbol errors testing with coverage
bwoodsend Nov 2, 2025
468e42b
Update license field
wagenrace Nov 12, 2025
d3b511c
chore(deps): update github-actions
renovate[bot] Dec 1, 2025
6b4989d
chore(deps): update github-actions (#696)
hugovk Dec 1, 2025
6ec3c16
chore(deps): update github-actions
renovate[bot] Jan 1, 2026
9792e2e
chore(deps): update github-actions (#697)
hugovk Jan 1, 2026
2696fc3
[pre-commit.ci] pre-commit autoupdate
pre-commit-ci[bot] Jan 5, 2026
8f23cce
[pre-commit.ci] pre-commit autoupdate (#698)
hugovk Jan 5, 2026
3d66f4d
Add security policy
bwoodsend Jan 17, 2026
d708b05
Add security policy (#699)
hugovk Jan 19, 2026
4a4fd73
chore(deps): update github-actions
renovate[bot] Mar 1, 2026
6bf41bd
Remove upper bound of setuptools for PyPy
hugovk Mar 1, 2026
32ebf66
Remove upper bound of setuptools for PyPy (#704)
hugovk Mar 1, 2026
a465ed7
Add leak detection to tests
bwoodsend Jan 10, 2026
486bd45
Fix buffer overflow/infinite loop from indent handling
bwoodsend Mar 4, 2026
4baeb95
Fix memory leak parsing large integers
bwoodsend Dec 10, 2025
8a877cf
[pre-commit.ci] pre-commit autoupdate
pre-commit-ci[bot] Apr 6, 2026
55b204b
Update URL to redirect
hugovk Apr 6, 2026
3eb6a8f
Remove secrets.CODECOV_TOKEN
hugovk Apr 6, 2026
76a1e6e
Switch to codecov-action
hugovk Apr 6, 2026
299c641
[pre-commit.ci] pre-commit autoupdate (#711)
hugovk Apr 6, 2026
9f70ed4
Hash pin GitHub Actions
hugovk Apr 24, 2026
d647671
Update release drafter
hugovk Apr 24, 2026
48bdcc3
Add skip label to pre-commit autoupdate PRs
hugovk Apr 24, 2026
f1574e5
Hash pin GitHub Actions (#715)
hugovk Apr 25, 2026
9f90a8c
Fix encoding ref leak with non-English character (#714)
nhancdt2602 Apr 26, 2026
3be5ae5
Update release-drafter/release-drafter action to v7.2.1
renovate[bot] May 1, 2026
ddbe2da
Update release-drafter/release-drafter action to v7.2.1 (#717)
hugovk May 1, 2026
dd87ed3
Improve unit test coverage (#718)
RamseyK May 3, 2026
ceae6cd
Gitignore .fuse_hidden and .DS_Store files
bwoodsend May 3, 2026
82af1d0
Fix failure cleanup paths in ujson.dump()
bwoodsend May 3, 2026
46f7596
Enable read access for CI/CD
bwoodsend Feb 2, 2026
0bf630a
Temporarily disable pre-built wheels for graalpy on macOS
bwoodsend May 4, 2026
7d9036f
Temporarily disable pre-built wheels for graalpy on macOS (#730)
hugovk May 5, 2026
9eb608d
Re-enable GraalPy wheels on macOS arm64
timfel May 12, 2026
d2d901a
Replace generated version.h with macro
hugovk May 15, 2026
e9183ae
Replace generated `version.h` with macro (#735)
hugovk May 15, 2026
41863cf
Move metadata from setup.cfg to pyproject.toml and .flake8
hugovk May 15, 2026
20f318e
Add some more linting and remove an unused one
hugovk May 15, 2026
e4afeb8
Update pre-commmit and pyproject.toml config
hugovk May 16, 2026
a90b329
Move metadata from `setup.cfg` to `pyproject.toml` (#736)
hugovk May 16, 2026
454c0f6
Document free-threading guarantees/un-guarantees
bwoodsend Mar 8, 2026
29c23cf
Disable global interpreter lock for freethreading
bwoodsend May 24, 2026
d18f6bd
Update github-actions
renovate[bot] Jun 1, 2026
802a814
Merge remote-tracking branch 'upstream/main' into ujson-update
WilliamBinquet Jun 5, 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
2 changes: 2 additions & 0 deletions .flake8
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[flake8]
max_line_length = 88
19 changes: 19 additions & 0 deletions .github/ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
### What did you do?

### What did you expect to happen?

### What actually happened?

### What versions are you using?

* OS:
* Python:
* UltraJSON:

Please include **code** that reproduces the issue.

The [best reproductions](https://stackoverflow.com/help/minimal-reproducible-example) are [self-contained scripts](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/) with minimal dependencies.

```python
code goes here
```
7 changes: 7 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Fixes #

Changes proposed in this pull request:

*
*
*
6 changes: 6 additions & 0 deletions .github/SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Security Policy

To report a security issue, either report it privately
[on GitHub](https://github.com/ultrajson/ultrajson/security) (preferred) or
through the [Tidelift security contact](https://tidelift.com/security). Do not
report them on the public issue tracker.
75 changes: 75 additions & 0 deletions .github/labels.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# Default GitHub labels
- color: d73a4a
description: "Something isn't working"
name: bug
- color: cfd3d7
description: "This issue or pull request already exists"
name: duplicate
- color: a2eeef
description: "New feature or request"
name: enhancement
- color: 7057ff
description: "Good for newcomers"
name: good first issue
- color: 008672
description: "Extra attention is needed"
name: help wanted
- color: e4e669
description: "This doesn't seem right"
name: invalid
- color: d876e3
description: "Further information is requested"
name: question
- color: ffffff
description: "This will not be worked on"
name: wontfix

# Keep a Changelog labels
# https://keepachangelog.com/en/1.0.0/
- color: 0e8a16
description: "For new features"
name: "changelog: Added"
- color: af99e5
description: "For changes in existing functionality"
name: "changelog: Changed"
- color: FFA500
description: "For soon-to-be removed features"
name: "changelog: Deprecated"
- color: 00A800
description: "For any bug fixes"
name: "changelog: Fixed"
- color: ff0000
description: "For now removed features"
name: "changelog: Removed"
- color: 045aa0
description: "In case of vulnerabilities"
name: "changelog: Security"
- color: fbca04
description: "Exclude PR from release draft"
name: "changelog: skip"

# Other labels
- color: 0366d6
description: "For dependencies"
name: dependencies
- color: e28acf
description: "Documentation"
name: documentation
- color: f4660e
description: ""
name: Hacktoberfest
- color: f4660e
description: "To credit accepted Hacktoberfest PRs"
name: hacktoberfest-accepted
- color: caffaf
description: "Deploy and release"
name: release
- color: fbca04
description: "Unit tests, linting, CI, etc."
name: testing
- color: FFD43B
description: ""
name: Python 2
- color: F25022
description: ""
name: Windows
48 changes: 48 additions & 0 deletions .github/release-drafter.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name-template: "$RESOLVED_VERSION"
tag-template: "$RESOLVED_VERSION"

categories:
- title: "Added"
labels:
- "changelog: Added"
- "enhancement"
- title: "Changed"
label: "changelog: Changed"
- title: "Deprecated"
label: "changelog: Deprecated"
- title: "Removed"
label: "changelog: Removed"
- title: "Fixed"
labels:
- "changelog: Fixed"
- "bug"
- title: "Security"
label: "changelog: Security"

exclude-labels:
- "changelog: skip"

autolabeler:
- label: "changelog: skip"
branch:
- "/pre-commit-ci-update-config/"

template: |
$CHANGES

version-resolver:
major:
labels:
- "changelog: Removed"
minor:
labels:
- "changelog: Added"
- "changelog: Changed"
- "changelog: Deprecated"
- "enhancement"

patch:
labels:
- "changelog: Fixed"
- "bug"
default: minor
18 changes: 18 additions & 0 deletions .github/renovate.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"config:base"
],
"labels": [
"changelog: skip",
"dependencies"
],
"packageRules": [
{
"groupName": "github-actions",
"matchManagers": ["github-actions"],
"separateMajorMinor": "false"
}
],
"schedule": ["on the first day of the month"]
}
45 changes: 45 additions & 0 deletions .github/workflows/benchmark.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: Benchmark

on:
push:
branches:
- main
pull_request:
paths:
- ".github/workflows/benchmark.yml"
- "tests/benchmark.py"
workflow_dispatch:

permissions:
contents: read

jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
python-version: ["3.11"]
os: [ubuntu-22.04]

steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- run: git fetch --prune --unshallow

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: ${{ matrix.python-version }}
cache: pip
cache-dependency-path: "setup.py"

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

- name: Tests
shell: bash
run: |
python tests/benchmark.py
136 changes: 136 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
---
name: Deploy

on:
push:
branches:
- main
pull_request:
paths:
- ".github/workflows/deploy.yml"
release:
types:
- published
workflow_dispatch:

permissions:
contents: read

env:
FORCE_COLOR: 1

jobs:
build-wheels:
name: "${{ matrix.os }}: ${{ matrix.cibw_arch }}"
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: windows-latest
cibw_arch: "auto"
- os: windows-11-arm
cibw_arch: "ARM64"
- os: macos-latest
cibw_arch: "x86_64 arm64"
- os: ubuntu-latest
cibw_arch: "x86_64 i686"
- os: ubuntu-24.04-arm
cibw_arch: aarch64
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- run: git fetch --prune --unshallow

- name: Set up Python
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: "3.x"

# https://github.com/pypa/cibuildwheel
- name: Build wheels
uses: pypa/cibuildwheel@8d2b08b68458a16aeb24b64e68a09ab1c8e82084 # v3.4.1
with:
output-dir: dist
# Options are supplied via environment variables:
env:
# Build wheels for the currently selected architecture.
CIBW_ARCHS: ${{ matrix.cibw_arch }}
# Include latest Python beta.
CIBW_ENABLE: cpython-prerelease pypy graalpy
# Skip EOL Python versions and macOS x86_64 GraalPy, which times out
# during first-time interpreter discovery on GitHub Actions runners.
CIBW_SKIP: "gp311* gp*-macosx_x86_64"
# Run the test suite after each build.
CIBW_TEST_REQUIRES: "pytest"
CIBW_TEST_COMMAND: pytest {package}/tests
# GraalPy has a bug with progress bar rendering in pip
PIP_PROGRESS_BAR: "off"

- name: Upload as build artifacts
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: wheels-${{ matrix.os }}
path: dist/*.whl

build-sdist-and-upload:
runs-on: ubuntu-latest
needs: ['build-wheels']
permissions:
# IMPORTANT: this permission is mandatory for trusted publishing
id-token: write

steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- run: |
git fetch --prune --unshallow

- name: Set up Python
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: "3.x"

- name: Install dependencies
run: |
python -m pip install -U pip
python -m pip install -U build twine

- name: Download wheels from build artifacts
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
pattern: wheels-*
merge-multiple: true
path: dist-wheels/

- name: Build package
run: |
git tag
python -m build --sdist
twine check --strict dist/*
twine check --strict dist-wheels/*

- name: Publish wheels to PyPI
if: github.event.action == 'published'
uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0
with:
packages-dir: dist-wheels/

- name: Publish sdist to PyPI
if: github.event.action == 'published'
uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0

- name: Publish wheels to TestPyPI
if: |
github.repository == 'ultrajson/ultrajson' &&
github.ref == 'refs/heads/main'
uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0
with:
repository-url: https://test.pypi.org/legacy/
packages-dir: dist-wheels/

- name: Publish sdist to TestPyPI
if: |
github.repository == 'ultrajson/ultrajson' &&
github.ref == 'refs/heads/main'
uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0
with:
repository-url: https://test.pypi.org/legacy/
25 changes: 25 additions & 0 deletions .github/workflows/fuzz.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Fuzz

on: [push, pull_request, workflow_dispatch]

permissions:
contents: read

jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: 3.x

- name: Install
run: |
python -m pip install -U pip
python -m pip install .
env:
CFLAGS: '-DDEBUG'

- name: Fuzz
run: python tests/fuzz.py --seed=0:1000
Loading
Loading