Releases: libdns/libdns
v1.1.0
libdns v1.1.0 loosens the required semantics of some operations; the previous semantics remain valid, and this release adds no new user-facing features, so providers are under no obligation to upgrade.
Previously, providers were required to apply the changes in SetRecords
atomically (unless documented otherwise); now, atomic updates are optional (but still recommended). For providers who still wish to adhere to the more stringent requirements, they may signal this by returning libdns.AtomicErr
, which will indicate that SetRecords
failed and that no changes were applied. Returning any other error value indicates that an indeterminate number of the requested changes (between 0 and n - 1) were applied.
What's Changed
- Clarify
SetRecords
example/doc by @NicolaiSoeborg in #174 - Introduce AtomicErr (close #175) by @mholt in #176
New Contributors
- @NicolaiSoeborg made their first contribution in #174
Full Changelog: v1.0.0...v1.1.0
v1.0.0
After 5 years, libdns v1 is here! This is a breaking change from versions prior to the 1.0 betas that introduces a more flexible, capable Record abstraction and clarifies a lot of semantics regarding how the APIs should be expected to work. We've defined more types and helper functions as well. This should help eliminate confusion regarding use, and provide more consistency across providers and with more diverse record types (RR-types).
Please read the new godoc for details!
The core interfaces (AppendRecords()
, DeleteRecords()
, etc.) are actually unchanged in terms of signature. The main changes in 1.0 are:
Record
is now an interface, not a struct type.RR
is a new struct type that is similar to whatRecord
was, but is a generic representation of a "Resource Record".- Many new types corresponding to DNS RR types, such as
TXT
,MX
,Address
(for A/AAAA),CNAME
, and more, all which implement theRecord
interface. - Calling
RR.Parse()
returns the corresponding RR-type-specific struct with parsed fields. - Provider-specific data can be included in
ProviderData
fields, but should not be relied upon for correctness. - Much more explicit documentation regarding specific behaviors and edge cases, considering a variety of record types.
Thank you to all who contributed to make this possible! It definitely was a community effort. We hope you enjoy the new clarified, stabilized APIs.
What's Changed
- Establish relative record name convention (fix #12) by @mholt in #28
- Fix example code by @balki in #87
- Add ZoneLister interface to list available zones (close #52) by @Xinayder in #98
- Document exact semantics of DNS interfaces by @gucci-on-fleek in #152
- All-new Record abstraction and exported APIs by @mholt in #153
New Contributors
- @mholt made their first contribution in #28
- @balki made their first contribution in #87
- @Xinayder made their first contribution in #98
Full Changelog: https://github.com/libdns/libdns/commits/v1.0.0-beta.1
What's Changed
- Document exact semantics of DNS interfaces by @gucci-on-fleek in #152
- All-new Record abstraction and exported APIs by @mholt in #153
- Document that provider-specific types are allowed by @gucci-on-fleek in #162
- Support 2-label SRV names (fix #163) by @mholt in #164
- Don't use
.@
for relative names in [SRV|ServiceBinding].RR() by @gucci-on-fleek in #165 - Make all zero values have
.RR().Data == ""
by @gucci-on-fleek in #166 - Create RR.ProviderData (close #119) by @mholt in #169
Full Changelog: v0.2.3...v1.0.0
v1.0.0-beta.1
After 5 years, libdns v1 is almost here! We've clarified a lot of semantics regarding how the APIs should be expected to work and added more types and helper functions. This should help eliminate confusion regarding use, and provide more consistency across providers and with more diverse record types (RR-types).
Please see the new godoc for details!
The core interfaces are actually unchanged in terms of signature. The main changes are:
Record
is now an interface, not a struct type.RR
is a new struct type that is similar to whatRecord
was, but is a generic representation of a "Resource Record".- Many new types corresponding to DNS RR types, such as
TXT
,MX
,Address
(for A/AAAA),CNAME
, and more, all which implement theRecord
interface. - Calling
RR.Parse()
returns the corresponding RR type struct. - Much more explicit documentation regarding specific behaviors and edge cases, considering a variety of record types.
What's Changed
- Establish relative record name convention (fix #12) by @mholt in #28
- Fix example code by @balki in #87
- Add ZoneLister interface to list available zones (close #52) by @Xinayder in #98
- Document exact semantics of DNS interfaces by @gucci-on-fleek in #152
- All-new Record abstraction and exported APIs by @mholt in #153
New Contributors
- @mholt made their first contribution in #28
- @balki made their first contribution in #87
- @Xinayder made their first contribution in #98
Full Changelog: https://github.com/libdns/libdns/commits/v1.0.0-beta.1