summaryrefslogtreecommitdiff
path: root/CHANGELOG.adoc
diff options
context:
space:
mode:
Diffstat (limited to 'CHANGELOG.adoc')
-rw-r--r--CHANGELOG.adoc118
1 files changed, 118 insertions, 0 deletions
diff --git a/CHANGELOG.adoc b/CHANGELOG.adoc
index 6e3697f4..5fabf71a 100644
--- a/CHANGELOG.adoc
+++ b/CHANGELOG.adoc
@@ -6,6 +6,123 @@ Shulhan <ms@kilabit.info>
This library is released every month, usually at the first week of month.
+[#v0.37.0]
+== share v0.37.0 (2022-05-09)
+
+[#v0.37.0_breaking_changes]
+=== Breaking changes
+
+* lib/dns: refactor Server RemoveCachesByNames to return removed Answer
++
+--
+Previously, RemoveCachesByNames does not return anything, its only
+print the domain name being removed if debugging level is set to >= 1.
+
+This changes rewrite the RemoveCachesByNames to return list of Answer
+being removed to allow the caller to inspect and/or print the Answer.
+--
+
+* lib/memfs: change the Watch method to accept struct
++
+--
+Previously, we assume that the list of files being Watch-ed is same
+with the list of files in Includes.
+This may not be correct.
+For example, we may want to watch "*.ts" files only but did not want
+it to be included during GoEmbed.
+
+This changes introduce list of pattern for files to be watched in
+the `WatchOptions.Watches` field.
+If this field is empty, only files match the Includes filter will be
+watched.
+--
+
+[#v0.37.0_new_features]
+=== New features
+
+* lib/dns: add method to get the record in HostsFile by name and/or value
++
+--
+The Get method return the first resource record that match with domain
+name and/or value.
+The value parameter is optional, if its empty, then only the first record
+that match with domain name that will be returned.
+
+If no record matched, it will return nil.
+
+While at it, reformat the hosts_file comments with next Go 1.19 format.
+--
+
+* lib/dns: add method CachesClear to remove all caches
+
+* lib/net: add method to populate query on ResolvConf
++
+--
+Given a domain name to be resolved, the PopulateQuery generate
+list of names to be queried based on registered Domain and Search
+in the resolv.conf file.
+
+The domain name itself will be on top of the list if its contains any
+dot.
+--
+
+* lib/dns: add function to create new client using name server URL
++
+--
+The NewClient create new DNS client using the name server URL.
+The name server URL is defined in the same format as ServerOptions's
+NameServer.
+
+The function also accept second parameter: isInsecure, which is only
+usable for DNS over TLS and DNS over HTTPS.
+--
+
+[#v0.37.0_bug_fixes]
+=== Bug fixes
+
+* lib/ini: fix panic when marshaling unexported field with type struct
++
+While at it, split the example for marshaling and unmarshaling
+struct into separate examples.
+
+* lib/memfs: make the Node's addChild to be idempotent
++
+If the same Node's Path already exists on the Childs, adding another
+Node with same Path should not add the Node to the Childs.
+
+[#v0.37.0_enhancements]
+=== Enhancements
+
+* lib/ini: implement marshaling and unmarshaling map with struct element
++
+--
+For a field F with type map[K]S `ini:"sec"`, where K is string and S is
+a struct or pointer to struct element, marshaling the field F will
+result in the following ini format,
+
+ [sec "K"]
+ <S.Field.Tag> = <S.Field.Value>
+
+Each field in struct S unmarshaled normally as "key = value".
+
+This rule is also applied when unmarshalling from ini text into map[K]V.
+
+This implementation allow multiple section with dynamic subsections as
+key.
+--
+
+[#v0.37.0_chores]
+=== Chores
+
+* all: reformat all codes using gofmt 1.19 (the Go tip)
+
+* all: replace any usage of ioutil package with `os` or `io`
++
+Since Go 1.16, the ioutil package has been deprecated.
+This changes replace any usage that use functions from ioutil package
+with their replacement from package os or package io.
+
+
[#v0.36.0]
== share v0.36.0 (2022-04-03)
@@ -752,6 +869,7 @@ Other string beside "none" will be considered as path to socket.
* math/big: return nil on Quo and QuoRat instead of panic
+
+--
Previously, if the first parameter of Quo or the second/next parameters
of QuoRat is not convertable to Rat or zero, the method/function will
panic.