diff options
| author | Shulhan <ms@kilabit.info> | 2025-12-27 14:56:49 +0700 |
|---|---|---|
| committer | Shulhan <ms@kilabit.info> | 2025-12-27 14:56:49 +0700 |
| commit | 16b034999523d5956b60176e1ca298e0585e7008 (patch) | |
| tree | 775f00bd43086f874796a836906e8b1d84e04c50 | |
| parent | 76f0c0b80e800cfb3dd7e982b857f9b5b41811ae (diff) | |
| download | kbbi-16b034999523d5956b60176e1ca298e0585e7008.tar.xz | |
Release kbbi v0.2.0 (2025-12-27)v0.2.0
**🪵 all: rename the module and package to "kbbi"**
Since this module is connecting to KBBI server directly, the module and
package name now reflect that, hence we rename them to kbbi.
Another reason is we have an internal module named kamusku, in another
repository.
**🌼 all: add method Write to the LookupResponse**
The LookupResponse print each word and its Lookup information to the stdout.
**💧 all: realign some struct for compact layout**
Changes,
* struct Client realigned from 56 to 40 bytes (-16)
* struct Word realigned from 72 to 56 bytes (-16)
* anonymous struct in test realigned from 40 to 32 bytes (-8)
**🌼 client: use libhttp.Client instead of standard http.Client**
The libhttp.Client provides much simpler API, where we can define global
headers once, like UserAgent and does not need to manually read the
response body.
**🌼 client: fix connection being blocked by CloudFlare**
I think the admin of kbbi set the HTTPS mode minimal to version 1.3, which
cause Go (that use TLS v1.2 by default, but have 1.3 as maximum) being
rejected during handshake.
**🪵 all: add options for Client**
Currently, the options contains Debug field that print the HTML
response as text when set to 1.
**🌼 all: use login with two attempts**
The first attempt detect if we have been blocked by Cloudflare
and store the response cookies.
The second attempt request again with cookies.
Hopefully, this solve the request login being blocked.
While at it, add debug code to dump the HTTP request headers
on preLogin and Lookup.
**💧 all: replace fieldalignment and shadow with internal gocheck command**
Program gocheck implement go static analysis using [Analyzer] that are not
included in the default go vet.
See package [lib/goanalysis] for more information.
[Analyzer]: https://pkg.go.dev/golang.org/x/tools/go/analysis#hdr-Analyzer +
[lib/goanalysis]: https://pkg.go.dev/git.sr.ht/~shulhan/pakakeh.go/lib/goanalysis/
| -rw-r--r-- | CHANGELOG.adoc | 74 | ||||
| -rw-r--r-- | go.mod | 16 | ||||
| -rw-r--r-- | go.sum | 32 | ||||
| -rw-r--r-- | kbbi.go | 2 |
4 files changed, 97 insertions, 27 deletions
diff --git a/CHANGELOG.adoc b/CHANGELOG.adoc index 5328f16..7526a9b 100644 --- a/CHANGELOG.adoc +++ b/CHANGELOG.adoc @@ -4,7 +4,77 @@ :toc: :sectlinks: -== kamusku v0.1.0 (2024-04-06) +Change log of each release of the kkbi software. +The latest release log is put on the top. -kamusku is the Go module that contains HTTP client library and program as +Legend, + +* 🪵: Breaking changes +* 🌱: New feature +* 🌼: Enhancement +* 💧: Chores + + +== kbbi v0.2.0 (2025-12-27) + +**🪵 all: rename the module and package to "kbbi"** + +Since this module is connecting to KBBI server directly, the module and +package name now reflect that, hence we rename them to kbbi. + +Another reason is we have an internal module named kamusku, in another +repository. + +**🌼 all: add method Write to the LookupResponse** + +The LookupResponse print each word and its Lookup information to the stdout. + +**💧 all: realign some struct for compact layout** + +Changes, + +* struct Client realigned from 56 to 40 bytes (-16) +* struct Word realigned from 72 to 56 bytes (-16) +* anonymous struct in test realigned from 40 to 32 bytes (-8) + +**🌼 client: use libhttp.Client instead of standard http.Client** + +The libhttp.Client provides much simpler API, where we can define global +headers once, like UserAgent and does not need to manually read the +response body. + +**🌼 client: fix connection being blocked by CloudFlare** + +I think the admin of kbbi set the HTTPS mode minimal to version 1.3, which +cause Go (that use TLS v1.2 by default, but have 1.3 as maximum) being +rejected during handshake. + +**🪵 all: add options for Client** + +Currently, the options contains Debug field that print the HTML +response as text when set to 1. + +**🌼 all: use login with two attempts** + +The first attempt detect if we have been blocked by Cloudflare +and store the response cookies. +The second attempt request again with cookies. +Hopefully, this solve the request login being blocked. + +While at it, add debug code to dump the HTTP request headers +on preLogin and Lookup. + +**💧 all: replace fieldalignment and shadow with internal gocheck command** + +Program gocheck implement go static analysis using [Analyzer] that are not +included in the default go vet. +See package [lib/goanalysis] for more information. + +[Analyzer]: https://pkg.go.dev/golang.org/x/tools/go/analysis#hdr-Analyzer + +[lib/goanalysis]: https://pkg.go.dev/git.sr.ht/~shulhan/pakakeh.go/lib/goanalysis/ + + +== kbbi v0.1.0 (2024-04-06) + +kbbi is the Go module that contains HTTP client library and program as interface to official KBBI server. @@ -3,19 +3,19 @@ module git.sr.ht/~shulhan/kbbi -go 1.23.4 +go 1.24.0 require ( - git.sr.ht/~shulhan/pakakeh.go v0.60.1 - golang.org/x/net v0.39.0 + git.sr.ht/~shulhan/pakakeh.go v0.60.2 + golang.org/x/net v0.48.0 ) require ( - golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 // indirect - golang.org/x/mod v0.24.0 // indirect - golang.org/x/sync v0.13.0 // indirect - golang.org/x/sys v0.32.0 // indirect - golang.org/x/tools v0.32.0 // indirect + golang.org/x/exp v0.0.0-20251219203646-944ab1f22d93 // indirect + golang.org/x/mod v0.31.0 // indirect + golang.org/x/sync v0.19.0 // indirect + golang.org/x/sys v0.39.0 // indirect + golang.org/x/tools v0.40.0 // indirect ) //replace git.sr.ht/~shulhan/pakakeh.go => ../pakakeh.go @@ -1,16 +1,16 @@ -git.sr.ht/~shulhan/pakakeh.go v0.60.1 h1:JGke3BIh40tK+d9eHg0jYi/W+GVixWcGwFkAcynSBSY= -git.sr.ht/~shulhan/pakakeh.go v0.60.1/go.mod h1:8t/pEqWDrEcyr26qR5sXJkF1M5tFhrs3Jzr5aYoZdIo= -github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= -github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 h1:R84qjqJb5nVJMxqWYb3np9L5ZsaDtB+a39EqjV0JSUM= -golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0/go.mod h1:S9Xr4PYopiDyqSyp5NjCrhFrqg6A5zA2E/iPHPhqnS8= -golang.org/x/mod v0.24.0 h1:ZfthKaKaT4NrhGVZHO1/WDTwGES4De8KtWO0SIbNJMU= -golang.org/x/mod v0.24.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww= -golang.org/x/net v0.39.0 h1:ZCu7HMWDxpXpaiKdhzIfaltL9Lp31x/3fCP11bc6/fY= -golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E= -golang.org/x/sync v0.13.0 h1:AauUjRAJ9OSnvULf/ARrrVywoJDy0YS2AwQ98I37610= -golang.org/x/sync v0.13.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= -golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20= -golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= -golang.org/x/tools v0.32.0 h1:Q7N1vhpkQv7ybVzLFtTjvQya2ewbwNDZzUgfXGqtMWU= -golang.org/x/tools v0.32.0/go.mod h1:ZxrU41P/wAbZD8EDa6dDCa6XfpkhJ7HFMjHJXfBDu8s= +git.sr.ht/~shulhan/pakakeh.go v0.60.2 h1:ZSRE77lYm+mkhvg9pSrxCIO81ydbqt93qbsWuZJpjtI= +git.sr.ht/~shulhan/pakakeh.go v0.60.2/go.mod h1:1MkKXbLZRHTcnheeSEbRpGztkym4Yxzh90ep+jCxbDc= +github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= +github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= +golang.org/x/exp v0.0.0-20251219203646-944ab1f22d93 h1:fQsdNF2N+/YewlRZiricy4P1iimyPKZ/xwniHj8Q2a0= +golang.org/x/exp v0.0.0-20251219203646-944ab1f22d93/go.mod h1:EPRbTFwzwjXj9NpYyyrvenVh9Y+GFeEvMNh7Xuz7xgU= +golang.org/x/mod v0.31.0 h1:HaW9xtz0+kOcWKwli0ZXy79Ix+UW/vOfmWI5QVd2tgI= +golang.org/x/mod v0.31.0/go.mod h1:43JraMp9cGx1Rx3AqioxrbrhNsLl2l/iNAvuBkrezpg= +golang.org/x/net v0.48.0 h1:zyQRTTrjc33Lhh0fBgT/H3oZq9WuvRR5gPC70xpDiQU= +golang.org/x/net v0.48.0/go.mod h1:+ndRgGjkh8FGtu1w1FGbEC31if4VrNVMuKTgcAAnQRY= +golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4= +golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= +golang.org/x/sys v0.39.0 h1:CvCKL8MeisomCi6qNZ+wbb0DN9E5AATixKsvNtMoMFk= +golang.org/x/sys v0.39.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/tools v0.40.0 h1:yLkxfA+Qnul4cs9QA3KnlFu0lVmd8JJfoq+E41uSutA= +golang.org/x/tools v0.40.0/go.mod h1:Ik/tzLRlbscWpqqMRjyWYDisX8bG13FrdXp3o4Sr9lc= @@ -6,4 +6,4 @@ package kbbi // Version of this module. -var Version = `0.1.0` +var Version = `0.2.0` |
