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

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
python-ulid (changelog) >=3.0.0,<4.0.0 → >=4.1.0,<4.2.0 age confidence

Release Notes

mdomke/python-ulid (python-ulid)

v4.1.0

Compare Source

Changed

* Dropped support for Python 3.10.

Fixed
~~~~~
* The ``typing-extensions`` dependency is now also installed on Python 3.11, where it is required
  for ``typing_extensions.override``.
* Print generated and converted values when using ``python -m ulid``, matching the
  ``ulid`` console command `@tongwentao <https://github.com/tongwentao>`_.
* :meth:`.ULID.from_str` accepts lower case strings again, as the ULID spec defines the string
  representation as case insensitive. Lower case input has been rejected since 2.6.0
  `@reyhaan07 <https://github.com/reyhaan07>`_.

`4.0.1`_ - 2026-07-20
---------------------
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.

v4.0.1

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%.

.. _Unreleased: mdomke/python-ulid@4.1.0...HEAD
.. _4.1.0: mdomke/python-ulid@4.0.1...4.1.0
.. _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

v4.0.0

Compare Source

.. 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.

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%.

.. _Unreleased: mdomke/python-ulid@4.1.0...HEAD
.. _4.1.0: mdomke/python-ulid@4.0.1...4.1.0
.. _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 CLI.

@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
| datasource | package     | from  | to    |
| ---------- | ----------- | ----- | ----- |
| pypi       | python-ulid | 3.1.0 | 4.1.0 |
@dreadnode-renovate-bot
dreadnode-renovate-bot Bot force-pushed the renovate/python-ulid-4.x branch from b4eef7a to 1228b26 Compare October 28, 2026 00:21
@dreadnode-renovate-bot

Copy link
Copy Markdown
Contributor Author

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: uv.lock
Using CPython 3.13.18 interpreter at: /opt/containerbase/tools/python/3.13.18/bin/python3
error: No solution found when resolving dependencies for split (markers: python_full_version == '3.10.*')
  cause: Because the requested Python version (>=3.10, <3.14) does not satisfy Python>=3.11 and python-ulid==4.1.0 depends on Python>=3.11, we can conclude that python-ulid==4.1.0 cannot be used.
         And because only python-ulid<=4.1.0 is available, we can conclude that python-ulid>=4.1.0 cannot be used.
         And because your project depends on python-ulid>=4.1.0 and your project requires dreadnode[all], we can conclude that your project's requirements are unsatisfiable.

hint: While the active Python version is 3.13, the resolution failed for other Python versions supported by your project. Consider limiting your project's supported Python versions using `requires-python`.

hint: The `requires-python` value (>=3.10, <3.14) includes Python versions that are not supported by your dependencies (e.g., python-ulid==4.1.0 only supports >=3.11). Consider using a more restrictive `requires-python` value (like >=3.11).

This branch has not been deployed

No deployments
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