Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add UUID representation for ULID type #92

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

elipavlov
Copy link

No description provided.

@@ -120,6 +120,7 @@ Usage: ulid [-hlqz] [-f <format>] [parameters ...]
-h, --help print this help text
-l, --local when parsing, show local time instead of UTC
-q, --quick when generating, use non-crypto-grade entropy
-u, --uuid when parsing or generating, print as UUID string
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, this is a bit ambiguous. First, "UUID string" is I think not sufficiently qualified — the specific format implemented in this PR I think has a more precise name? Second, if the tool can output UUIDs, then I would expect it could also input UUIDs, i.e. I would expect that

$ ulid 01D78XZ44G0000000000000000
$ ulid [something] 0169d1df-9090-0000-0000-000000000000

would parse to the same thing? So like if we do this then --uuid should I guess not be just an expression of output format but also should be able to control parse behavior. Which gets tricky!

Copy link
Author

@elipavlov elipavlov Dec 3, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. First, "UUID string" is I think not sufficiently qualified — the specific format implemented in this PR I think has a more precise name?

I think we can speak about UUID format, considering ULID library and CLI tool. I'm talking about that:
https://en.wikipedia.org/wiki/Universally_unique_identifier#Format

Yes, there are five (existing) different versions of UUID.
But, my point is that ULID interoperability with UUID should only work with the format, and leave UUID version interpretation to the users' code.

  1. Second, if the tool can output UUIDs, then I would expect it could also input UUID

I agree 100%.
Here I wanted to solve only my particular use-case "generate uuids by ulids".
I will consider this point closer ant try to provide some solution for parsing UUIDs

  1. As for tests - OK, it's not a problem.

  2. As for ambiguity - I rather agree, but i couldn't come up with better flag naming. If you have some thoughts please share them.

Copy link
Author

@elipavlov elipavlov Dec 3, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

4] Ambiguity. My first thought was to add one more variant to the --format flag, but when I looked it closer, I'd figured that the --format flag works with the dates, and also in the parsing function. I'd decided to leave it as is and made another flag.

@peterbourgon
Copy link
Member

Missing tests.

@MatteoCalabro-TomTom
Copy link

Just my 2 cents inspired by this PR. Such UUID output could be a bridge to output ULIDs as UUIDv7, perhaps?

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.

None yet

3 participants