Skip to content

1.4.3 release - #1376

Merged
serhii73 merged 2 commits into
masterfrom
release-1.4.3
Sep 3, 2026
Merged

1.4.3 release#1376
serhii73 merged 2 commits into
masterfrom
release-1.4.3

Conversation

@serhii73

@serhii73 serhii73 commented Sep 3, 2026

Copy link
Copy Markdown
Collaborator

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. 1.4.3 release notes — add the 1.4.3 section to HISTORY.rst, summarizing every PR merged since v1.4.2.
  2. Bump version: 1.4.2 → 1.4.3 — produced by bump-my-version bump patch --no-tag, updating pyproject.toml, dateparser/__init__.py, and stamping the HISTORY.rst release date. SECURITY.md is unchanged because it tracks only major.minor (still 1.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:

  • Make parsing thread-safe: parsing from several threads no longer raises an intermittent KeyError from the shared language caches, and a DATE_ORDER or RELATIVE_BASE value 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)
  • Do not share the language detector and the detected locale between search_dates() calls, so concurrent searches over text in different languages no longer return None or a date read in the wrong locale (Avoid shared language_detector and locale cache in search_dates #1371)
  • Resolve the BST and HDT timezone 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 as CST and IST, keep their current offset. Text carrying these abbreviations keeps its wall clock but moves by 10 hours for BST and 30 minutes for HDT, which can put the parsed instant on a different day (Prefer tz database offsets for conflicting timezone abbreviations #1366)
  • Reject a %j (day of year) value that the parsed year does not have, instead of rolling it over into the next year, so 1999366 with date_formats=["%Y%j"] returns None rather than 2000-01-01. A format with no year directive is checked against the year strptime defaults to, 1900, which is not a leap year, so 366 with date_formats=["%j"] now returns None where 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:

  • Add CodSpeed benchmarks and a workflow that runs them, so a performance regression such as the quadratic backtracking fixed in 1.4.1 is reported on the pull request that introduces it (tests: add CodSpeed benchmarks #1365)

Notes on the changelog

Validation

  • The diff is exactly three files, +38/-2, with no code changes — the same shape as the 1.4.1 and 1.4.2 release commits. git diff --check reports no whitespace errors.
  • Version is consistent across pyproject.toml, dateparser/__init__.py and the imported dateparser.__version__; no stale 1.4.2 remains outside the changelog, and the (unreleased) marker is gone.
  • Full test suite green: 24234 passed, 18 skipped, 1 xfailed.
  • python -m build + twine check pass for both the sdist and the wheel; the wheel metadata reads Version: 1.4.3 and the long_description carries the new changelog section.
  • sphinx-build -W (the docs tox environment) builds cleanly, so the new RST is valid where docs/history.rst includes it.
  • pre-commit run passes on the changed files.
  • No generated file needed regenerating: nothing merged this cycle touched dateparser_data/ or dateparser/data/, and tests/test_dateparser_data_integrity.py passes.

After merge

The v1.4.3 git 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 on master and then create the GitHub Release:

git fetch origin
git tag v1.4.3 origin/master && git push origin v1.4.3
gh release create v1.4.3 --title "1.4.3" --notes-file <markdown notes>

The GitHub Release is the step that publishes to PyPI: publish.yml triggers on release: 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

serhii73 and others added 2 commits September 3, 2026 09:51
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@codspeed-hq

codspeed-hq Bot commented Sep 3, 2026

Copy link
Copy Markdown

Merging this PR will not alter performance

✅ 7 untouched benchmarks


Comparing release-1.4.3 (1e638ca) with master (27182cd)

Open in CodSpeed

@codecov

codecov Bot commented Sep 3, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 97.18%. Comparing base (27182cd) to head (1e638ca).

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.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@serhii73
serhii73 merged commit 9ce60b1 into master Sep 3, 2026
20 checks passed
@serhii73
serhii73 deleted the release-1.4.3 branch September 3, 2026 10:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants