diff options
Diffstat (limited to '_doc/CHANGELOG.html')
| -rw-r--r-- | _doc/CHANGELOG.html | 190 |
1 files changed, 189 insertions, 1 deletions
diff --git a/_doc/CHANGELOG.html b/_doc/CHANGELOG.html index 26506ef6..bb15b863 100644 --- a/_doc/CHANGELOG.html +++ b/_doc/CHANGELOG.html @@ -240,10 +240,18 @@ dd { <div class="details"> <span id="author" class="author">Shulhan</span><br> <span id="email" class="email"><a href="mailto:ms@kilabit.info">ms@kilabit.info</a></span><br> +<span id="revdate">31 May 2022</span> </div> <div id="toc" class="toc"> <div id="toctitle">Table of Contents</div> <ul class="sectlevel1"> +<li><a href="#v0_38_0">share v0.38.0 (2022-06-05)</a> +<ul class="sectlevel2"> +<li><a href="#_breaking_changes">Breaking changes</a></li> +<li><a href="#v0_38_0_enhancements">Enhancements</a></li> +<li><a href="#v0_38_0_chores">Chores</a></li> +</ul> +</li> <li><a href="#v0_37_0">share v0.37.0 (2022-05-09)</a> <ul class="sectlevel2"> <li><a href="#v0_37_0_breaking_changes">Breaking changes</a></li> @@ -573,6 +581,186 @@ dd { </div> </div> <div class="sect1"> +<h2 id="v0_38_0"><a class="anchor" href="#v0_38_0"></a><a class="link" href="#v0_38_0">share v0.38.0 (2022-06-05)</a></h2> +<div class="sectionbody"> +<div class="paragraph"> +<p>This release update the minimum Go version to 1.17.</p> +</div> +<div class="sect2"> +<h3 id="_breaking_changes"><a class="anchor" href="#_breaking_changes"></a><a class="link" href="#_breaking_changes">Breaking changes</a></h3> +<div class="ulist"> +<ul> +<li> +<p>lib/dns: move all caches operations from Server to Caches type</p> +<div class="openblock"> +<div class="content"> +<div class="paragraph"> +<p>Previously all caches operation are tied to the Server type.</p> +</div> +<div class="paragraph"> +<p>In order to separate the responsibilities between server and caches, +we move all caches operations to Cache type.</p> +</div> +</div> +</div> +</li> +<li> +<p>lib/dns: change the Zone SOA field type from ResourceRecord to RDataSOA</p> +<div class="openblock"> +<div class="content"> +<div class="paragraph"> +<p>Using the RDataSOA type directly minimize interface check and conversion.</p> +</div> +</div> +</div> +</li> +</ul> +</div> +</div> +<div class="sect2"> +<h3 id="v0_38_0_enhancements"><a class="anchor" href="#v0_38_0_enhancements"></a><a class="link" href="#v0_38_0_enhancements">Enhancements</a></h3> +<div class="ulist"> +<ul> +<li> +<p>lib/dns: replace Ticker with Timer on Caches’ worker</p> +<div class="paragraph"> +<p>Since the worker call time.Now() inside the body, we can minimize it +by using Timer.</p> +</div> +</li> +<li> +<p>lib/dns: export the Caches type and field on Server</p> +<div class="paragraph"> +<p>The idea is move all server’s caches operations (methods) to this +type later.</p> +</div> +</li> +<li> +<p>lib/dns: split storage between internal and external caches</p> +<div class="openblock"> +<div class="content"> +<div class="paragraph"> +<p>Previously, the indexed caches for internal (records from hosts or zone +files) and external (records from parent name servers) are stored inside +single map.</p> +</div> +<div class="paragraph"> +<p>This changes split those internal and external caches into two maps, +so any operation on one caches does not affect the other one, and vice +versa.</p> +</div> +</div> +</div> +</li> +<li> +<p>lib/dns: return the removed record on caches RemoveCachesByRR</p> +<div class="openblock"> +<div class="content"> +<div class="paragraph"> +<p>If the record being removed found on caches, it will return it; +otherwise it will return nil without error.</p> +</div> +</div> +</div> +</li> +<li> +<p>lib/dns: disable JSON marshaling Zone Records field</p> +<div class="openblock"> +<div class="content"> +<div class="paragraph"> +<p>On service that manage many zones, providing an API to fetch list of +zones only will return large payload if we include the Records field +in the response.</p> +</div> +<div class="paragraph"> +<p>So, it is recommended to provide another API to fetch the records on +specific zone.</p> +</div> +</div> +</div> +</li> +<li> +<p>lib/dns: print the field Value on ResourceRecord Stringer instead of rdlen</p> +</li> +<li> +<p>lib/dns: export the zoneRecords type</p> +<div class="openblock"> +<div class="content"> +<div class="paragraph"> +<p>Since the Zone type is exported and its contains exported field Records +with type zoneRecords, then that field type should also exported.</p> +</div> +</div> +</div> +</li> +<li> +<p>lib/dns: return the deleted record on HostsFile RemoveRecord</p> +<div class="openblock"> +<div class="content"> +<div class="paragraph"> +<p>Previously, the RemoveRecord method on HostsFile return a boolean +true if the record found.</p> +</div> +<div class="paragraph"> +<p>This changes the return type to the ResourceRecord being deleted, +to allow the caller inspect and/or print the record.</p> +</div> +</div> +</div> +</li> +</ul> +</div> +</div> +<div class="sect2"> +<h3 id="v0_38_0_chores"><a class="anchor" href="#v0_38_0_chores"></a><a class="link" href="#v0_38_0_chores">Chores</a></h3> +<div class="ulist"> +<ul> +<li> +<p>all: rewrite all codes to use "var" instead of ":="</p> +<div class="openblock"> +<div class="content"> +<div class="paragraph"> +<p>Using ":=" simplify the code but we lose the type. For example,</p> +</div> +<div class="literalblock"> +<div class="content"> +<pre>v := F()</pre> +</div> +</div> +<div class="paragraph"> +<p>The only way we know what the type of v is by inspecting the function +F. +Another disadvantages of using ":=" may cause extra variables +allocation where two or more variables with same type is declared +inside body of function where it could be only one.</p> +</div> +<div class="paragraph"> +<p>While at it, we split the struct for test case into separate type.</p> +</div> +</div> +</div> +</li> +<li> +<p>lib/memfs: format comment in embedded Go template according to gofmt tip</p> +<div class="openblock"> +<div class="content"> +<div class="paragraph"> +<p>In the next gofmt (Go v1.19), the comment format does not allow empty +lines "//" at the top and bottom of the comment.</p> +</div> +<div class="paragraph"> +<p>This changes make the generated Go code from Embed method to match +as close as possible with output of gofmt.</p> +</div> +</div> +</div> +</li> +</ul> +</div> +</div> +</div> +</div> +<div class="sect1"> <h2 id="v0_37_0"><a class="anchor" href="#v0_37_0"></a><a class="link" href="#v0_37_0">share v0.37.0 (2022-05-09)</a></h2> <div class="sectionbody"> <div class="sect2"> @@ -6247,7 +6435,7 @@ and several libraries.</p> </div> <div id="footer"> <div id="footer-text"> -Last updated 2022-05-31 21:50:10 +0700 +Last updated 2022-05-31 21:54:29 +0700 </div> </div> </div> |
