Skip to content

Consider replacing chrono with jiff? #942

Description

@ww-oai

Hi folks,

We're looking at integrating tough into uv, by way of sigstore-rust (which has various crates, some of which depend on tough for TUF operations against the Sigstore root of trust).

As part of that integration, we're looking for ways to reduce our dependency tree/de-proliferate our transitive deps. We're currently avoiding a dependency on chrono entirely, but tough introduces it.

So, the request: would you all consider (optionally) replacing your dependency on chrono with jiff? This has some direct advantages on your end (a smaller and more misuse-resistant API), but admittedly it's primarily an advantage for us as a downstream 😅. I can see at least two possible routes here, although others may exist:

  1. Remove chrono entirely and replace it with jiff. This shouldn't be externally disruptive (FWICT, your usage of chrono is entirely internal), but it does mean changing every downstream's dependencies.
  2. Keep chrono as a default-but-optional dependency, while allowing downstreams to opt into a jiff via a separate optional feature. This would allow uv (and other interested downstreams) to selecitvely opt into jiff while not disturbing the default resolution.

Please let me know if either of these sounds interesting or appealing to you all! I'm happy to implement whatever works best.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions