Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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: 11 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,17 @@ $ git push --tags origin

## Version History / Release Notes

* v0.13.0 (2026-01-01)
* No code changes.
* Add Python 3.14 to supported version, project config, dependencies
* Update dependencies to latest stuff < 2025-12-01
* This relaxes the versions specified in pyproject.toml to just
use 'newer than' rather than exact matches.
* Sets 'uv.tool.exclude-newer' in pyproject.toml to tell uv not
to look at packages published within the past 30 days; this will
hopefully help prevent dependencies on compromised projects.
* Switch to using dependency-groups for 'dev' group.

* v0.12.1 (2025-08-12)
* Fix [#94](https://github.com/dpranke/pyjson5/issues/94), where objects
returned from a custom encoder were not being indented properly.
Expand Down
2 changes: 1 addition & 1 deletion json5/version.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.

__version__ = '0.12.2.dev0'
__version__ = '0.13.0'

# For backward-compatibility with earlier versions of json5:
VERSION = __version__
33 changes: 21 additions & 12 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ authors = [
keywords = [ "json5" ]
license = {file = "LICENSE"}
readme = "README.md"
requires-python = ">= 3.8.0"
requires-python = '>= 3.8.0'
classifiers= [
'Development Status :: 5 - Production/Stable',
'Intended Audience :: Developers',
Expand All @@ -27,19 +27,23 @@ classifiers= [
]
dynamic = [ "version" ]

[project.optional-dependencies]
[dependency-groups]
# Note that not everything is guaranteed to work on 3.8.
dev = [
'build==1.2.2.post1',
'coverage==7.5.4; python_version < "3.9"',
'coverage==7.8.0; python_version >= "3.9"',
'mypy==1.14.1; python_version < "3.9"',
'mypy==1.15.0; python_version >= "3.9"',
'pip==25.0.1',
'pylint==3.2.7; python_version < "3.9"',
'pylint==3.3.6; python_version >= "3.9"',
'ruff==0.11.2',
'twine==6.1.0',
'build >= 1.2.2.post1; python_version < "3.9"',
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nitpick but asking out of curiosity, was this your IDE changing these back to ' or is there a lint rule in the repo?

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure what you're referring to; there's no change from " to ' on these lines (that I see).

If you're asking about the change on line 14, I'm not sure where that change came from, but it might've been me changing something manually and changing it back; by habit I'll use single quotes instead of double quotes for things. I don't think I have anything that is autoformatting or linting pyproject.toml, unless I've forgotten something and am not finding it now.

Looking at the file again now, I'm seeing that there is a mix of single and double quotes, and in my hunt for a TOML style guide to see if there's a recommendation, I see that single and double quotes are processed differently, which I didn't realize. I should probably change everything to be double-quoted, as I'm not intentionally avoiding the escaping.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh sorry.

Screenshot 2026-01-05 at 21 22 37 UTC@2x

There is this change on the line 14th, and I'm not sure why but I thought the same change on the dev dependency group too. Now checking it again, that change was limited to the requires-python line.

I should probably change everything to be double-quoted, as I'm not intentionally avoiding the escaping.

If that sounds okay, I can create a PR for a lightweight lint CI workflow and utilize https://pyproject-fmt.readthedocs.io/

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If that sounds okay, I can create a PR for a lightweight lint CI workflow

Sorry for the delay in getting back to you. Life got in the way this week.

The way I do presubmit checking is a bit idiosyncratic (it's all stuffed into the //run script), so I decided to make this change myself: #105

I'm glad I did, because it gave me a chance to play with the package and also experience the auto-upgrading of package versions that'll currently happen when you make changes to the uv.lock file (which I'm not 100% wild about as noted in the PR).

'build >= 1.3.0; python_version >= "3.9"',
'coverage == 7.5.4; python_version < "3.9"',
'coverage == 7.8.0; python_version >= "3.9" and python_version < "3.10"',
'coverage >= 7.12.0; python_version >= "3.10"',
'mypy == 1.14.1; python_version < "3.9"',
'mypy >= 1.19.0; python_version >= "3.9"',
'pip >= 25.3; python_version >= "3.9"',
'pylint == 3.2.7; python_version < "3.9"',
'pylint == 3.3.6; python_version >= "3.9" and python_version < "3.10"',
'pylint >= 4.0.4; python_version >= "3.10"',
'ruff >= 0.14.7',
'twine == 6.1.0; python_version < "3.10"',
'twine >= 6.2.0; python_version >= "3.10"',
]

[project.urls]
Expand Down Expand Up @@ -110,3 +114,8 @@ version = {attr = "json5.__version__"}
[tool.uv]
# 0.9.0 is the first version supporting Python 3.14
required-version = ">=0.9.0"

# By default, do not install/resolve to packages published within
# the past 30 days; this gives us some protection against automatically
# upgrading to a package that might have been newly compromised.
exclude-newer = "30 days"
2 changes: 1 addition & 1 deletion run
Original file line number Diff line number Diff line change
Expand Up @@ -333,7 +333,7 @@ class Runner:
old = fp.read()
if self.args.no_execute or self.args.verbose:
print(f'mv {self.parser_file} {orig_file}')
else:
if not self.args.no_execute:
os.rename(self.parser_file, orig_file)
self._gen_parser()
if self.args.no_execute:
Expand Down
Loading