Skip to content

fix(deps): update dependency python-ulid to v4#371

Open
dreadnode-renovate-bot[bot] wants to merge 1 commit into
mainfrom
renovate/python-ulid-4.x
Open

fix(deps): update dependency python-ulid to v4#371
dreadnode-renovate-bot[bot] wants to merge 1 commit into
mainfrom
renovate/python-ulid-4.x

Conversation

@dreadnode-renovate-bot

@dreadnode-renovate-bot dreadnode-renovate-bot Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

| Package | Change | Age | Confidence |
|

Generated Summary:

  • Updated the dependency version for python-ulid from >=3.0.0,<4.0.0 to >=4.0.1,<4.1.0.
  • This change allows the use of the latest features and bug fixes in python-ulid while maintaining compatibility within the specified version range.
  • No breaking changes are expected, as the previous upper limit was set at 4.0.0.

This summary was generated with ❤️ by rigging

| python-ulid (changelog) | >=3.0.0,<4.0.0>=4.0.1,<4.1.0 | age | confidence |


Release Notes

mdomke/python-ulid (python-ulid)

v4.0.1

Compare Source

Changed

* Renamed ``ULID.from_uuidv7`` to :meth:`.ULID.from_uuid7` for naming symmetry with
  :meth:`.ULID.to_uuid7`, correcting an inconsistency introduced in 3.2.0.

`4.0.0`_ - 2026-07-20
---------------------

.. warning::

   **Breaking change:** the ``ValueProvider`` class and the ``ULID.provider`` class attribute
   have been removed. ULID generation is now handled by the new :class:`.ULIDGenerator` together
   with pluggable monotonicity policies. To customize generation, construct a
   :class:`.ULIDGenerator` (optionally with a custom clock, randomness source, or policy) and
   either call its ``generate()`` method or assign it to ``ulid.default_generator``.

Added
~~~~~
* Added a public :class:`.ULIDGenerator` class that encapsulates ULID generation and can be
  configured with a custom clock, randomness source, and monotonicity policy.
* Added pluggable monotonicity policies: :class:`.StrictMonotonicPolicy` (the default),
  :class:`.LaxMonotonicPolicy` and :class:`.PureRandomPolicy`, together with the
  :class:`.MonotonicityPolicy` protocol and the :class:`.BaseMonotonicPolicy` base class for
  implementing custom policies.
* Added a module-level ``ulid.default_generator`` that can be reassigned to route ``ULID()`` and
  the ``ULID.from_*`` constructors through a custom :class:`.ULIDGenerator`.

Removed
  • Removed the ValueProvider class and the ULID.provider attribute in favour of
    :class:.ULIDGenerator and the monotonicity policies. Code that replaced ULID.provider or
    subclassed ValueProvider must migrate to a custom :class:.ULIDGenerator assigned to
    ulid.default_generator.
  • Removed the internal validate_type decorator. The ULID.from_* constructors still raise
    TypeError for arguments of the wrong type, so runtime behaviour is unchanged.

v4.0.0

Compare Source

Added

* Added support for Python 3.10.
* Added ``__version__`` variable to package.

`1.0.3`_ - 2021-07-14
---------------------
Added
  • Enable tool based type checking as described in PEP-0561_ by adding the py.typed marker.

Changed

* Use GitHub actions instead of Travis.

`1.0.0`_ - 2020-04-30
---------------------
Added
~~~~~
* Added type annotations
* Added the named constructors :meth:`.ULID.from_datetime`, :meth:`.ULID.from_timestamp` and
  :meth:`.ULID.from_hex`.

Changed
  • Dropped support for Python 2. Only Python 3.6+ is supported.

  • The named constructor ULID.new has been removed. Use one of the specifc named
    constructors instead. For a new :class:.ULID created from the current timestamp use the
    standard constructor.

    .. code-block:: python

old

ulid = ULID.new()
ulid = ULID.new(time.time())
ulid = ULID.new(datetime.now())

new

ulid = ULID()
ulid = ULID.from_timestamp(time.time())
ulid = ULID.from_datetime(datetime.now())
  • The ULID.str and ULID.int methods have been removed in favour of the more
    Pythonic special dunder-methods. Use str(ulid) and int(ulid) instead.

  • Added the property :meth:.ULID.hex that returns a hex representation of the :class:.ULID.

    .. code-block:: python

    ULID().hex
    '0171caa5459a8631a6894d072c8550a8'

  • Equality checks and ordering now also work with str-instances.

  • The package now has no external dependencies.

  • The test-coverage has been raised to 100%.

.. _4.0.1: mdomke/python-ulid@4.0.0...4.0.1
.. _4.0.0: mdomke/python-ulid@3.2.1...4.0.0
.. _3.2.1: mdomke/python-ulid@3.2.0...3.2.1
.. _3.2.0: mdomke/python-ulid@3.1.0...3.2.0
.. _3.1.0: mdomke/python-ulid@3.0.0...3.1.0
.. _3.0.0: mdomke/python-ulid@2.7.0...3.0.0
.. _2.7.0: mdomke/python-ulid@2.6.0...2.7.0
.. _2.6.0: mdomke/python-ulid@2.5.0...2.6.0
.. _2.5.0: mdomke/python-ulid@2.4.0...2.5.0
.. _2.4.0: mdomke/python-ulid@2.3.0...2.4.0
.. _2.3.0: mdomke/python-ulid@2.2.0...2.3.0
.. _2.2.0: mdomke/python-ulid@2.1.0...2.2.0
.. _2.1.0: mdomke/python-ulid@2.0.0...2.1.0
.. _2.0.0: mdomke/python-ulid@1.1.0...2.0.0
.. _1.1.0: mdomke/python-ulid@1.0.3...1.1.0
.. _1.0.3: mdomke/python-ulid@1.0.2...1.0.3
.. _1.0.0: mdomke/python-ulid@0.2.0...1.0.0

.. _PEP-0561: https://www.python.org/dev/peps/pep-0561/#packaging-type-information

v3.2.1

Compare Source

Fixed

* Corrected the build and publish pipeline and the generated source distribution. This release
  contains no changes to the library code.

`3.2.0`_ - 2026-07-17
---------------------
Added
  • Added transparent bidirectional UUIDv7 conversion methods (ULID.to_uuid7 and
    ULID.from_uuidv7) @pirate <https://github.com/pirate>_.
  • Added a --uuid7 option to the CLI's show command to convert and output a ULID as an
    RFC 4122 compliant UUIDv7.

Changed

* Dropped support for Python 3.9 and added support for Python 3.14
  `@Avihais12344 <https://github.com/Avihais12344>`_.
* Depend on ``typing-extensions`` only when running on Python < 3.11 `@musicinmybrain <https://github.com/musicinmybrain>`_.
* Migrated package and development workflow from Hatch to ``uv`` and ``poethepoet``.
* Configured Flox for bootstrapping the development environment.

Fixed
~~~~~
* Fixed a clock-skew bug where non-monotonic ULIDs could be generated when crossing a millisecond boundary between timestamp and randomness sampling `@gaoflow <https://github.com/gaoflow>`_.
* Fixed warning from ``uv`` during synchronization `@jaseemabid <https://github.com/jaseemabid>`_.
* Resolved various Ruff linter warnings and Pyrefly type checker issues.

`3.1.0`_ - 2025-08-18
---------------------
Changed
  • Added Python 3.13 to the trove classifiers.
  • Optimze @property to @cached_property @WH-2099 <https://github.com/WH-2099>_.
  • When generating ULIDs within the same millisecond, the library will ensure monotonic sort order by
    incrementing the randomness component by 1 bit. This process is descrbied in the
    spec <https://github.com/ulid/spec/blob/master/README.md#monotonicity>_.

Fixed

* Sharpen regular expression for Pydantic `@aplhk <https://github.com/aplhk>`_.
* Fix Sphinx warnings when referencing ULID from an external project. `@BoboTiG <https://github.com/BoboTiG>`_.

`3.0.0`_ - 2024-10-11
---------------------
Changed
  • Raise TypeError instead of ValueError if constructor is called with value of wrong type.
  • Update ruff linter rules and switch to hatch fmt.

Added

* Added :meth:`.ULID.parse`-method, which allows to create a :class:`.ULID`-instance from an
  arbitrary supported input value. `@perrotuerto <https://github.com/perrotuerto>`_.

Fixed
  • Documentation bug in the example of :meth:.ULID.milliseconds @tsugumi-sys <https://github.com/tsugumi-sys>_.

v3.2.0

Compare Source

Added

* Added support for Python 3.10.
* Added ``__version__`` variable to package.

`1.0.3`_ - 2021-07-14
---------------------
Added
  • Enable tool based type checking as described in PEP-0561_ by adding the py.typed marker.

Changed

* Use GitHub actions instead of Travis.

`1.0.0`_ - 2020-04-30
---------------------
Added
~~~~~
* Added type annotations
* Added the named constructors :meth:`.ULID.from_datetime`, :meth:`.ULID.from_timestamp` and
  :meth:`.ULID.from_hex`.

Changed
  • Dropped support for Python 2. Only Python 3.6+ is supported.

  • The named constructor ULID.new has been removed. Use one of the specifc named
    constructors instead. For a new :class:.ULID created from the current timestamp use the
    standard constructor.

    .. code-block:: python

old

ulid = ULID.new()
ulid = ULID.new(time.time())
ulid = ULID.new(datetime.now())

new

ulid = ULID()
ulid = ULID.from_timestamp(time.time())
ulid = ULID.from_datetime(datetime.now())
  • The ULID.str and ULID.int methods have been removed in favour of the more
    Pythonic special dunder-methods. Use str(ulid) and int(ulid) instead.

  • Added the property :meth:.ULID.hex that returns a hex representation of the :class:.ULID.

    .. code-block:: python

    ULID().hex
    '0171caa5459a8631a6894d072c8550a8'

  • Equality checks and ordering now also work with str-instances.

  • The package now has no external dependencies.

  • The test-coverage has been raised to 100%.

.. _4.0.1: mdomke/python-ulid@4.0.0...4.0.1
.. _4.0.0: mdomke/python-ulid@3.2.1...4.0.0
.. _3.2.1: mdomke/python-ulid@3.2.0...3.2.1
.. _3.2.0: mdomke/python-ulid@3.1.0...3.2.0
.. _3.1.0: mdomke/python-ulid@3.0.0...3.1.0
.. _3.0.0: mdomke/python-ulid@2.7.0...3.0.0
.. _2.7.0: mdomke/python-ulid@2.6.0...2.7.0
.. _2.6.0: mdomke/python-ulid@2.5.0...2.6.0
.. _2.5.0: mdomke/python-ulid@2.4.0...2.5.0
.. _2.4.0: mdomke/python-ulid@2.3.0...2.4.0
.. _2.3.0: mdomke/python-ulid@2.2.0...2.3.0
.. _2.2.0: mdomke/python-ulid@2.1.0...2.2.0
.. _2.1.0: mdomke/python-ulid@2.0.0...2.1.0
.. _2.0.0: mdomke/python-ulid@1.1.0...2.0.0
.. _1.1.0: mdomke/python-ulid@1.0.3...1.1.0
.. _1.0.3: mdomke/python-ulid@1.0.2...1.0.3
.. _1.0.0: mdomke/python-ulid@0.2.0...1.0.0

.. _PEP-0561: https://www.python.org/dev/peps/pep-0561/#packaging-type-information


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 becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


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

This PR has been generated by Mend Renovate.

| datasource | package     | from  | to    |
| ---------- | ----------- | ----- | ----- |
| pypi       | python-ulid | 3.1.0 | 4.0.1 |
@dreadnode-renovate-bot dreadnode-renovate-bot Bot added area/python Changes to Python package configuration and dependencies type/digest Dependency digest updates labels Jul 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/python Changes to Python package configuration and dependencies type/digest Dependency digest updates

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants