1.4.3 release - #1376
Merged
Merged
Conversation
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #1376 +/- ##
=======================================
Coverage 97.18% 97.18%
=======================================
Files 236 236
Lines 3057 3057
=======================================
Hits 2971 2971
Misses 86 86 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
wRAR
approved these changes
Sep 3, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release notes and version bump for dateparser 1.4.3, following the same two-step approach used for 1.4.2 (#1361) and 1.4.1 (#1337):
1.4.3 release notes— add the1.4.3section toHISTORY.rst, summarizing every PR merged sincev1.4.2.Bump version: 1.4.2 → 1.4.3— produced bybump-my-version bump patch --no-tag, updatingpyproject.toml,dateparser/__init__.py, and stamping theHISTORY.rstrelease date.SECURITY.mdis unchanged because it tracks onlymajor.minor(still1.4.x).A patch bump: this cycle is three bug fixes plus one internal thread-safety refactor and one test-infra addition — no new setting, no new public API, no removal and no changed default.
Changelog
Fixes:
KeyErrorfrom the shared language caches, and aDATE_ORDERorRELATIVE_BASEvalue meant for one parse no longer leaks into the settings that other parses read, where it could make them return a wrong date (Make thread-safe #1346)search_dates()calls, so concurrent searches over text in different languages no longer returnNoneor a date read in the wrong locale (Avoid shared language_detector and locale cache in search_dates #1371)BSTandHDTtimezone abbreviations to the offsets the tz database gives them, UTC+1 (British Summer Time) and UTC-9 (Hawaii-Aleutian Daylight Time), instead of +11 and -9:30, which no zone goes by those names today; abbreviations that the tz database maps to more than one offset, such asCSTandIST, keep their current offset. Text carrying these abbreviations keeps its wall clock but moves by 10 hours forBSTand 30 minutes forHDT, which can put the parsed instant on a different day (Prefer tz database offsets for conflicting timezone abbreviations #1366)%j(day of year) value that the parsed year does not have, instead of rolling it over into the next year, so1999366withdate_formats=["%Y%j"]returnsNonerather than 2000-01-01. A format with no year directive is checked against the yearstrptimedefaults to, 1900, which is not a leap year, so366withdate_formats=["%j"]now returnsNonewhere it used to return January 1 (Reject a %j day of year that the parsed year does not have (#271) #1370)Cleanups and internal improvements:
Notes on the changelog
Validation
+38/-2, with no code changes — the same shape as the 1.4.1 and 1.4.2 release commits.git diff --checkreports no whitespace errors.pyproject.toml,dateparser/__init__.pyand the importeddateparser.__version__; no stale1.4.2remains outside the changelog, and the(unreleased)marker is gone.python -m build+twine checkpass for both the sdist and the wheel; the wheel metadata readsVersion: 1.4.3and thelong_descriptioncarries the new changelog section.sphinx-build -W(thedocstox environment) builds cleanly, so the new RST is valid wheredocs/history.rstincludes it.pre-commit runpasses on the changed files.dateparser_data/ordateparser/data/, andtests/test_dateparser_data_integrity.pypasses.After merge
The
v1.4.3git tag is intentionally not included in this branch (a tag on a pre-merge branch would point at the wrong commit). After the squash merge, tag the squash commit onmasterand then create the GitHub Release:The GitHub Release is the step that publishes to PyPI:
publish.ymltriggers onrelease: types: [created]only, and GitHub does not fire that activity type for draft releases — so the release must be created non-draft in one action, or the upload never runs.🤖 Generated with Claude Code