Skip to content

BREAKING: The dependency python-slugify has been updated to a new major version (9.1.2), which may include breaking changes. #major - #23

Open
public-glueops-renovatebot[bot] wants to merge 1 commit into
mainfrom
renovate/python-slugify-9.x
Open

public-glueops-renovatebot[bot] wants to merge 1 commit into
mainfrom
renovate/python-slugify-9.x

Conversation

@public-glueops-renovatebot

@public-glueops-renovatebot public-glueops-renovatebot Bot commented Oct 8, 2026 •

Copy link
Copy Markdown

This PR contains the following updates:

Package Change Age Confidence
python-slugify (changelog) ^8.0.4 → ^9.0.0 age confidence

Release Notes

un33k/python-slugify (python-slugify)

v9.1.2

Compare Source

  • Skip the transliteration backend for ASCII-only input under both algorithms, avoiding the ~3 MB text-unidecode table import for the common ASCII case. Output is unchanged, including the frozen legacy differential (Rafael Borja, #​201).

v9.1.1

Compare Source

  • Modern mode only: avoid emitting a trailing separator when a hard cut truncates through repeated post-replacement delimiters, keeping the delimiter run with the next word that fits. Legacy output and public smart_truncate are unchanged (曾楚笑, #​200).

v9.1.0

Compare Source

  • Modern mode only: decode uppercase &#X..; hexadecimal references as HTML allows, in addition to lowercase &#x..;. Legacy output is unchanged (Rupayon Haldar, #​195).
  • Modern mode only: preserve post-replacement output when the whole slug already fits max_length, so intentional repeated/trailing delimiters are not collapsed at the length limit. Public smart_truncate is unchanged (emme1t, #​193).
  • Fix add_uppercase_char to apply insertions atomically, leaving the input list unchanged if iteration fails. Built-in transliteration tables are unaffected (Cristian Ramirez, #​194).
  • Modern mode only: validate argument types up front, raising TypeError for a bool/non-int max_length (bool is an int subclass) or a non-str separator. Legacy behavior is unchanged and still treats max_length=True as its historical single-character truncation (Jon Bailey, #​196).

v9.0.0

Compare Source

  • Add keyword-only algorithm='legacy' (permanent default) and explicit algorithm='modern' opt-in, plus CLI --algorithm. Preserve historical default entity ordering, numeric handling, iterator consumption, separator truncation, and public smart_truncate behavior.

  • Preserve legacy auto backend selection and two-pass replacement defaults; add explicit backend and replacement_stage keyword-only options and matching CLI flags.

  • Add opt-in AnyASCII extra without removing or changing the base text-unidecode dependency.

  • Forward CLI --regex-pattern (Jacobo de Vera, #​176; report by @​peter-bloomfield, #​175).

  • Modern mode only: decode entities before transliteration; handle invalid numeric references per match, including surrogate references (#​178, #​181, #​187).

  • Modern mode only: materialize replacement rules and stopword iterables consistently; preserve bytes/bytearray UTF-8 input with clear rejection of unsupported types (#​183, #​190).

  • Modern mode only: budget internal tokens using emitted separator widths, support empty separators, and preserve literal word characters that match delimiters. Public smart_truncate remains unchanged (#​47, #​185, #​186).

  • Add regression coverage for whitespace, ordinals, backend-specific output, replacement stages, CLI execution, and installed artifacts.

  • Move package metadata to pyproject.toml, retain the typed marker and source tests, and remove the unsafe publish/upload/tag shortcut.

  • Document output changes, backend license distinctions, compatibility limits, and migration precautions in docs/release-9/migration.md.

  • Support Python 3.14.

  • Drop support for Python 3.9 and lower.

  • Use tox for local test runs and in CI.

  • Test the project against both unidecode and text_unidecode.

  • Fix type annotation issues identified by mypy.

  • Run CI against pull requests.

  • Fix package build warnings.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate CLI.

…ajor version (9.0.0), which may include breaking changes. #major
@public-glueops-renovatebot public-glueops-renovatebot Bot changed the title BREAKING: The dependency python-slugify has been updated to a new major version (9.0.0), which may include breaking changes. #major BREAKING: The dependency python-slugify has been updated to a new major version (9.1.0), which may include breaking changes. #major Oct 18, 2026
@public-glueops-renovatebot public-glueops-renovatebot Bot changed the title BREAKING: The dependency python-slugify has been updated to a new major version (9.1.0), which may include breaking changes. #major BREAKING: The dependency python-slugify has been updated to a new major version (9.1.1), which may include breaking changes. #major Oct 22, 2026
@public-glueops-renovatebot public-glueops-renovatebot Bot changed the title BREAKING: The dependency python-slugify has been updated to a new major version (9.1.1), which may include breaking changes. #major BREAKING: The dependency python-slugify has been updated to a new major version (9.1.2), which may include breaking changes. #major Oct 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants