Skip to content

Tags: carnott-snap/uuid

Tags

v3.2.0

Toggle v3.2.0's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
theckman Tim Heckman
3.2.0

Remove support for the experimental Go Modules feature due to issues supporting
both `dep` and modules, amongst other concerns.

Please see gofrs#61, gofrs#66, and gofrs#67 for more info.

v3.1.2

Toggle v3.1.2's commit message
v3.1.2

This release improves the interoperability of package uuid with
ORMs such as gorm, per PR gofrs#58. Thanks to Jun Jie Nan (@nanjj) for
the contribution.

v3.1.1

Toggle v3.1.1's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
theckman Tim Heckman
3.1.1: UUIDs for Workgroups

Added `go.mod` file.

v3.1.0

Toggle v3.1.0's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
theckman Tim Heckman
3.1.0

This release includes new functionality (PR gofrs#31) to help consumers extract a
time.Time value out of a Version 1 UUID.

UUIDs have their own internal timestamp, which is a counter of 100ns increments
since the start of the Gregorian Calendar (00:00:00 UTC on 15 Oct, 1582). To
represent that a new `Timestamp` type was added, with a `Time()` method used to
convert the timestamp value to a `time.Time` value.

To extract the timestamp from a Version 1 UUID, a new package
function (`TimestampFromV1`) was added to extract a `Timestamp` out of a UUID.
If it's not a V1 UUID it returns an error.

Big thanks to Ron Kuris (@rkuris) for this contribution!

v3.0.0

Toggle v3.0.0's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
theckman Tim Heckman
3.0.0

v3.0.0 denotes the first major change by The Gofrs, and encompasses feature
requests / PRs that had been opened against the original project. This version
includes the following *_breaking_* changes:

- update the `sql.NullUUID` type to support both the `json.Marshaler` and
  `json.Unmarshaler` interfaces, which I'll provide more details on later. (gofrs#38)
- remove the `Equal` function from the package, as the UUID type is an array
  type and so you can use `==` directly for comparisons. (gofrs#36 gofrs#39)

This version also exposes the internal UUID generator, with constructors, so
that consumers can provide their own HWAddrFunc to get the hardware address of
the node. This can be used by consumers who want to randomize the MAC address in
a V1 UUID. (gofrs#42)

In regards to the JSON change, the `sql.NullUUID` type is one that's used with
the `database/sql` package to support columns that can contain UUIDs or a NULL
value. This means it's a struct with a `UUID` and `Valid` field, so previously a
`sql.NullUUID` would marshal to JSON like so:

```JSON
{
  "uuid": {
    "uuid": "3bdef553-9b6a-4620-8a5f-b94bf22a2520",
    "valid": true
  }
}
```

By implementing the right interfaces from the JSON package, it'll now marshal
like so:

```JSON
{
  "uuid": "3bdef553-9b6a-4620-8a5f-b94bf22a2520"
}
```

v2.1.0

Toggle v2.1.0's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
theckman Tim Heckman
2.1.0

Version 2.1.0 is functionally equivalent to 2.0.1. It introduces a documentation
change to indicate that the package's `Equal` function is deprecated in favor of
just comparing two UUID values to one another using `==`. This change was made
in gofrs#36.

We plan on removing this function in v3.0.0.

v2.0.1

Toggle v2.0.1's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
theckman Tim Heckman
2.0.1

This change includes two small fixes to the `Equal` package function both done
within gofrs#34:

- update the documentation / function arguments to be more clear
- compare the UUID values to each other directly, instead of converting to
  slices and then comparing using `bytes.Equal`

v2.0.0

Toggle v2.0.0's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
theckman Tim Heckman
2.0.0

This is first release of this package as `github.com/gofrs/uuid`, after having
been forked from `github.com/satori/go.uuid` at 36e9d2e.

The reason behind the decision to fork was due to lack of engagement from the
original author, when there were fatal bugs present. The intent is to keep up
the support of this package by not having the burden rest on one individual.

This is a major version bump as the forked project introduced breaking
changes (0ef6afb) after v1.2.0 that were never captured in a release. These
changes were the addition to error return values to some of the UUID generation
methods.

A major bug was fixed (gofrs#7) that would have resulted in UUIDs that weren't so
unique. The original bug report is here: satori/go.uuid#73

In addition to that, some small API enhancements/fixes were made:

- export the default generator used by the package-level functions as
  `DefaultGenerator` (gofrs#9)
- update code to work as documented by supporting braced hashlike UUIDs in the
  FromString callpath (gofrs#14)
- remove named return values from the function definitions (gofrs#25)
- linter caught an issue where an error value was shadowed (gofrs#10)

While they have no impact on the functional usage of this package, the following
improvements were also made in areas ranging from docs to testing:

- set up Travis CI for testing and coveralls for coverage (gofrs#6)
- we stopped testing against older versions of Go, to support subtests (gofrs#21)
- tests no longer use `gocheck` and are stdlib only (gofrs#17)
- added support for fuzz testing (gofrs#5 gofrs#17)
- enhanced tests to improve coverage (catch issues) (gofrs#3 gofrs#24)
- fixed linter issues around variable names (gofrs#10)
- updated docs to be more clear and correct (gofrs#8 gofrs#12 gofrs#16 gofrs#28 gofrs#29)
- recommend that consumers only use 2.0.0+ at this point (gofrs#30)

This release wouldn't be anywhere near as polished if it weren't for the help of
a few people in the Go community. Alphabetized by their GitHub handles:

- Andrei Tudor Călin (@acln0)
- Jamie Stackhouse (@itsjamie)
- Jaden Weiss (@jadr2ddude)
- Trevor Starick (@trevorstarick)
- Ivan Kurnosov (@zerkms)

There are also a few people who provided input in the #gofrs Slack channel or on
issues / PRs:

- Cameron Ackerman (@CameronAckermanSEL)
- Timur Makarchuk (@makarchuk)