1# Changelog
2
3All notable changes to atex will be documented in this file.
4
5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6and this project adheres to
7[Semantic Versioning](https://semver.org/spec/v2.0.0.html).
8
9<!-- ## [Unreleased] -->
10
11## [0.6.0] - 2025-11-25
12
13### Breaking Changes
14
15- `deflexicon` now converts all def names to be in snake_case instead of the
16 casing as written the lexicon.
17
18### Added
19
20- `deflexicon` now emits structs for records, objects, queries, and procedures.
21- `Atex.XRPC.get/3` and `Atex.XRPC.post/3` now support having a lexicon struct
22 as the second argument instead of the method's name, making it easier to have
23 properly checked XRPC calls.
24- Add pre-transpiled modules for the core `com.atproto` lexicons.
25
26## [0.5.0] - 2025-10-11
27
28### Breaking Changes
29
30- Remove `Atex.HTTP` and associated modules as the abstraction caused a bit too
31 much complexities for how early atex is. It may come back in the future as
32 something more fleshed out once we're more stable.
33- Rename `Atex.XRPC.Client` to `Atex.XRPC.LoginClient`
34
35### Added
36
37- `Atex.OAuth` module with utilites for handling some OAuth functionality.
38- `Atex.OAuth.Plug` module (if Plug is loaded) which provides a basic but
39 complete OAuth flow, including storing the tokens in `Plug.Session`.
40- `Atex.XRPC.Client` behaviour for implementing custom client variants.
41- `Atex.XRPC` now supports using different client implementations.
42- `Atex.XRPC.OAuthClient` to make XRPC calls on the behalf of a user who has
43 authenticated with ATProto OAuth.
44
45## [0.4.0] - 2025-08-27
46
47### Added
48
49- `Atex.Lexicon` module that provides the `deflexicon` macro, taking in a JSON
50 Lexicon definition and converts it into a series of schemas for each
51 definition within it.
52- `mix atex.lexicons` for converting lexicon JSON files into modules using
53 `deflexicon` easily.
54
55## [0.3.0] - 2025-06-29
56
57### Changed
58
59- `Atex.XRPC.Adapter` renamed to `Atex.HTTP.Adapter`.
60
61### Added
62
63- `Atex.HTTP` module that delegates to the currently configured adapter.
64- `Atex.HTTP.Response` struct to be returned by `Atex.HTTP.Adapter`.
65- `Atex.IdentityResolver` module for resolving and validating an identity,
66 either by DID or a handle.
67 - Also has a pluggable cache (with a default ETS implementation) for keeping
68 some data locally.
69
70## [0.2.0] - 2025-06-09
71
72### Added
73
74- `Atex.TID` module for manipulating ATProto TIDs.
75- `Atex.Base32Sortable` module for encoding/decoding numbers as
76 `base32-sortable` strings.
77- Basic XRPC client.
78
79## [0.1.0] - 2025-06-07
80
81Initial release.
82
83[unreleased]: https://github.com/cometsh/atex/compare/v0.6.0...HEAD
84[0.6.0]: https://github.com/cometsh/atex/releases/tag/v0.6.0
85[0.5.0]: https://github.com/cometsh/atex/releases/tag/v0.5.0
86[0.4.0]: https://github.com/cometsh/atex/releases/tag/v0.4.0
87[0.3.0]: https://github.com/cometsh/atex/releases/tag/v0.3.0
88[0.2.0]: https://github.com/cometsh/atex/releases/tag/v0.2.0
89[0.1.0]: https://github.com/cometsh/atex/releases/tag/v0.1.0