summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.adoc148
-rw-r--r--_doc/index.adoc4
-rw-r--r--pakakeh.go2
3 files changed, 150 insertions, 4 deletions
diff --git a/CHANGELOG.adoc b/CHANGELOG.adoc
index 2c446964..84eb5f7e 100644
--- a/CHANGELOG.adoc
+++ b/CHANGELOG.adoc
@@ -2,6 +2,7 @@
// SPDX-License-Identifier: BSD-3-Clause
= pakakeh.go CHANGELOG
+:std_url: https://pkg.go.dev
:sectanchors:
:sectlinks:
:toc:
@@ -26,7 +27,149 @@ This is changelog for `pakakeh.go` module since v0.12.0 until v0.21.0.
link:CHANGELOG_2018-2019.html[Changelog from 2018 to 2019^].
This is changelog for `pakakeh.go` module since v0.1.0 until v0.11.0.
+//{{{
+[#v0_60_0]
+== pakakeh.go v0.60.0 (2025-02-xx)
+Some changes that affected almost all packages are by replacing
+"interface{}" with "any" (added since Go 1.18),
+using for-range on numeric value (supported on Go 1.22).
+
+
+[#v0_60_0__lib_bytes]
+=== lib/bytes
+
+[BREAKING CHANGES] +
+We remove Copy and Concat functions in favor of standard library.
+Since Go 1.20, the standard bytes package have the Copy function.
+Since Go 1.22, the standard slices package have the Concat function.
+
+[BREAKING CHANGES] +
+We also remove "lib/bytes.AppendXxx", "lib/bytes.ReadXxx", and
+"lib/bytes.WriteXxx" in favor of standard library.
+Since Go 1.19, package "encoding/binary" support appending byte order.
+The ReadXxx and WriteXxx can be replaced with standard library
+BigEndian/LittleEndian UintXxx and PutUintXxx.
+
+
+[#v0_60_0__lib_debug]
+=== lib/debug
+
+[BREAKING CHANGES] +
+The global Value variable has been removed.
+Using global variable inside one package is a mistake.
+If, for example, package X set debug.Value to 1, another packages that
+does need to be debugged will print unnecessary log messages.
+
+
+[#v0_60_0__lib_dns]
+=== lib/dns
+
+[BUG FIX] +
+We fix unpacking HTTPS where the response answers contains RR other than
+SVCB parameters, for example CNAME.
+
+[ENHANCEMENT] +
+This release now detect invalid response header earlier, like invalid op
+code and response code, before we continue unpacking the rest data.
+Previously, we unpack the header and then question without
+detecting whether the header itself is valid or not.
+This cause the unpacking question return an error like
+
+ label length overflow at index xxx
+
+One of the case is when someone sent random or HTTP request
+to DoT port.
+
+[ENHANCEMENT] +
+In the logging part, we improve the logging prefix on serveTCPClient.
+The serveTCPClient is used to serve TCP and DoT clients.
+Previously, the error returned from this method is prefixed based on the
+kind, for example
+
+ serveTCPClient TCP: ...
+ serveTCPClient DoT: ...
+
+This changes pass the log prefix to the method so now it become
+
+ serveTCPClient: ...
+ serveDoTClient: ...
+
+
+[#v0_60_0__lib_http]
+=== lib/http
+
+[ENHANCEMENT] +
+On server with TryDirect is true, a GET request to a directory now always
+rescan the content and the generate the new "index.html".
+
+In the generated "index.html" we display the file time in UTC instead of
+local time.
+
+The ParseContentRange function now return an error instead of nil
+"*RangePosition".
+
+
+[#v0_60_0__lib_goanalysis]
+=== lib/goanalysis
+
+[NEW FEATURE] +
+Package goanalysis implement go static analysis using
+[Analyzer] that are not included in the default "go vet", but included in
+the [passes] directory, including: fieldalignment, nilness,
+reflectvaluecompare, shadow, sortslice, unusedwrite, and waitgroup.
+This package is not mean to be imported directly by other package
+except main, like we have in [cmd/gocheck].
+
+
+[#v0_60_0__lib_hunspell]
+=== lib/hunspell
+
+This package has been renamed to "_hunspell".
+The hunspell is still in progress and we did not have time to continue
+it, so we rename it to "_hunspell" for now to prevent it being checked by
+linters or being imported.
+
+
+[#v0_60_0__lib_memfs]
+=== lib/memfs
+
+[BUG FIX] +
+Fix possible panic on AddChild if path is not included.
+
+
+[#v0_60_0__lib_play]
+=== lib/play
+
+[ENHANCEMENT] +
+One of the major issue that we previously have is the Run and Test
+functions can write file in any unsafe path.
+Another issue is default GoVersion and Timeout is set on the package level.
+
+This release introduce new type "Go" as the top level type that can be
+instantiate with different Root, GoVersion, and Timeout.
+The instance of Go then can Format, Run, or Test the Go code in their
+own scope.
+
+Any request to Run or Test Go code that requires writing new files now
+joined with the [GoOptions.Root] first.
+If the final absolute path does not have Root as the prefix it will return
+an error [os.ErrPermission].
+This fix possible security issue where file may be written outside of the
+Root directory.
+
+[#v0_60_0__lib_test]
+=== lib/test
+
+[ENHANCEMENT] +
+Inside the Assert, we call the [T.Helper] method.
+The Helper method mark the Assert function as test helper, which when
+printing file and line information, the stack trace from Assert function
+will be skipped.
+This remove manual lines skipping that previously we have.
+
+//}}}
+//{{{
[#v0_59_0]
== pakakeh.go v0.59.0 (2025-01-06)
@@ -49,7 +192,8 @@ indicates the type of changes.
[#v0_59_0__lib_binary]
=== lib/binary
-The "lib/binary] is new package that complement the standard binary package.
+The "lib/binary" is the new package that complement the standard binary
+package.
[NEW FEATURE] +
Implement append-only binary that encode the data using [binary.Writer].
@@ -250,3 +394,5 @@ The channel send an empty slice if no changes.
The implementation of file changes in this code is naive, using loop and
comparison of mode, modification time, and size; at least it should
works on most operating system.
+
+//}}}
diff --git a/_doc/index.adoc b/_doc/index.adoc
index b6802b9e..e0eca4f6 100644
--- a/_doc/index.adoc
+++ b/_doc/index.adoc
@@ -41,8 +41,8 @@ This library is released every month, usually at the first week of month.
link:CHANGELOG.html[Latest changelog^].
-link:CHANGELOG_2024.html[Changelog in 2023^].
-Changelog for `pakakeh.go` module since v0.42.0 until v0.58.1.
+link:CHANGELOG_2024.html[Changelog in 2024^].
+Changelog for `pakakeh.go` module since v0.52.0 until v0.58.1.
link:CHANGELOG_2023.html[Changelog in 2023^].
Changelog for `pakakeh.go` module since v0.43.0 until v0.51.0.
diff --git a/pakakeh.go b/pakakeh.go
index fa0983a3..1669bfa9 100644
--- a/pakakeh.go
+++ b/pakakeh.go
@@ -7,5 +7,5 @@ package pakakeh
var (
// Version of this module.
- Version = `0.59.0`
+ Version = `0.60.0`
)