This is an automated email from the ASF dual-hosted git repository.

hanahmily pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/skywalking-banyandb.git


The following commit(s) were added to refs/heads/main by this push:
     new 4391412  Update go 1.19 (#152)
4391412 is described below

commit 4391412ba4f79e9b614e145a8f61fe7acc60d49e
Author: Jiajing LU <[email protected]>
AuthorDate: Mon Aug 8 22:47:23 2022 +0800

    Update go 1.19 (#152)
    
    * update to go 1.19
---
 .github/workflows/e2e.storage.yml             |  2 +-
 .github/workflows/go.yml                      |  6 +++---
 .github/workflows/publish-docker.yml          |  2 +-
 api/proto/banyandb/measure/v1/topn.pb.go      |  2 +-
 api/proto/banyandb/measure/v1/write.pb.go     |  2 +-
 api/proto/banyandb/model/v1/common.pb.go      |  2 ++
 banyand/Dockerfile                            |  4 ++--
 banyand/internal/cmd/root.go                  |  1 +
 banyand/measure/encode.go                     |  3 +--
 banyand/measure/field_flag_test.go            |  3 +--
 banyand/measure/measure_write_test.go         |  7 +++----
 banyand/measure/metadata.go                   |  3 +--
 banyand/observability/metric.go               |  3 +--
 banyand/observability/type.go                 |  3 +--
 banyand/query/processor_test.go               |  4 ++--
 banyand/query/query_suite_test.go             |  3 +--
 banyand/stream/stream_query_test.go           |  4 ++--
 banyand/tsdb/bucket/bucket_suite_test.go      |  3 +--
 banyand/tsdb/bucket/queue.go                  |  3 +--
 banyand/tsdb/bucket/queue_test.go             |  3 +--
 banyand/tsdb/bucket/strategy_test.go          |  3 +--
 banyand/tsdb/metric.go                        |  3 +--
 banyand/tsdb/scope.go                         |  3 +--
 banyand/tsdb/series_test.go                   |  3 +--
 banyand/tsdb/shard_test.go                    |  3 +--
 banyand/tsdb/tsdb.go                          |  8 +++-----
 banyand/tsdb/tsdb_suite_test.go               |  3 +--
 bydbctl/Dockerfile                            |  2 +-
 bydbctl/cmd/bydbctl/main.go                   |  1 +
 bydbctl/internal/cmd/root.go                  |  1 +
 go.mod                                        |  4 ++--
 pkg/grpchelper/client.go                      |  3 +--
 pkg/query/aggregation/aggregation.go          |  3 +--
 pkg/query/aggregation/function.go             |  3 +--
 pkg/query/logical/common_test.go              |  6 +++---
 pkg/query/logical/iter.go                     |  7 +++++--
 pkg/query/logical/measure_plan_aggregation.go |  3 +--
 pkg/query/logical/measure_plan_groupby.go     |  3 +--
 pkg/query/logical/measure_plan_top.go         |  3 +--
 pkg/query/logical/measure_top.go              |  3 +--
 pkg/query/logical/measure_top_test.go         |  3 +--
 pkg/query/logical/stream_analyzer.go          |  5 +++--
 pkg/run/run.go                                | 29 +++++++++++++--------------
 pkg/test/helpers/fail_interceptor.go          |  3 +--
 pkg/test/helpers/grpc_health.go               |  3 +--
 pkg/test/matcher.go                           |  3 +--
 pkg/test/measure/traffic/traffic.go           |  4 ++--
 pkg/test/space.go                             |  5 ++---
 pkg/test/stream/traffic/traffic.go            | 10 ++++-----
 pkg/timestamp/clock.go                        |  3 +--
 pkg/timestamp/duration.go                     |  3 +--
 pkg/timestamp/duration_test.go                |  3 +--
 pkg/timestamp/nano.go                         |  4 ++--
 pkg/timestamp/nano_test.go                    |  3 +--
 pkg/timestamp/range.go                        |  3 +--
 scripts/build/lint-bin.mk                     |  2 +-
 scripts/ci/check/version_test.go              | 26 ++++++++++++++----------
 ui/embed.go                                   |  2 ++
 58 files changed, 112 insertions(+), 133 deletions(-)

diff --git a/.github/workflows/e2e.storage.yml 
b/.github/workflows/e2e.storage.yml
index 02eb3f8..9840e35 100644
--- a/.github/workflows/e2e.storage.yml
+++ b/.github/workflows/e2e.storage.yml
@@ -55,7 +55,7 @@ jobs:
       - name: Install Go
         uses: actions/setup-go@v2
         with:
-          go-version: 1.18
+          go-version: 1.19
       - name: Check out code into the Go module directory
         uses: actions/checkout@v2
         with:
diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml
index ac275ce..8c89b58 100644
--- a/.github/workflows/go.yml
+++ b/.github/workflows/go.yml
@@ -33,7 +33,7 @@ jobs:
       - name: Install Go
         uses: actions/setup-go@v2
         with:
-          go-version: 1.18
+          go-version: 1.19
       - name: Check out code into the Go module directory
         uses: actions/checkout@v2
       - name: Check License Header
@@ -66,7 +66,7 @@ jobs:
       - name: Install Go
         uses: actions/setup-go@v2
         with:
-          go-version: 1.18
+          go-version: 1.19
       - name: Check out code into the Go module directory
         uses: actions/checkout@v2
       - uses: actions/cache@v3
@@ -100,7 +100,7 @@ jobs:
       - name: Install Go
         uses: actions/setup-go@v2
         with:
-          go-version: 1.18
+          go-version: 1.19
       - name: Check out code into the Go module directory
         uses: actions/checkout@v2
       - uses: actions/cache@v3
diff --git a/.github/workflows/publish-docker.yml 
b/.github/workflows/publish-docker.yml
index 051b9a2..1e6e78a 100644
--- a/.github/workflows/publish-docker.yml
+++ b/.github/workflows/publish-docker.yml
@@ -44,7 +44,7 @@ jobs:
       - name: Install Go
         uses: actions/setup-go@v2
         with:
-          go-version: 1.18
+          go-version: 1.19
       - name: Check out code into the Go module directory
         uses: actions/checkout@v2
       - name: Update dependencies 
diff --git a/api/proto/banyandb/measure/v1/topn.pb.go 
b/api/proto/banyandb/measure/v1/topn.pb.go
index 92eb78e..2f3cc61 100644
--- a/api/proto/banyandb/measure/v1/topn.pb.go
+++ b/api/proto/banyandb/measure/v1/topn.pb.go
@@ -41,7 +41,7 @@ const (
        _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-//TopNList contains a series of topN items
+// TopNList contains a series of topN items
 type TopNList struct {
        state         protoimpl.MessageState
        sizeCache     protoimpl.SizeCache
diff --git a/api/proto/banyandb/measure/v1/write.pb.go 
b/api/proto/banyandb/measure/v1/write.pb.go
index e693cbb..ac30c4c 100644
--- a/api/proto/banyandb/measure/v1/write.pb.go
+++ b/api/proto/banyandb/measure/v1/write.pb.go
@@ -41,7 +41,7 @@ const (
        _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-//DataPointValue is the data point for writing. It only contains values.
+// DataPointValue is the data point for writing. It only contains values.
 type DataPointValue struct {
        state         protoimpl.MessageState
        sizeCache     protoimpl.SizeCache
diff --git a/api/proto/banyandb/model/v1/common.pb.go 
b/api/proto/banyandb/model/v1/common.pb.go
index b88a476..cd5e94a 100644
--- a/api/proto/banyandb/model/v1/common.pb.go
+++ b/api/proto/banyandb/model/v1/common.pb.go
@@ -337,6 +337,7 @@ type TagValue struct {
        unknownFields protoimpl.UnknownFields
 
        // Types that are assignable to Value:
+       //
        //      *TagValue_Null
        //      *TagValue_Str
        //      *TagValue_StrArray
@@ -534,6 +535,7 @@ type FieldValue struct {
        unknownFields protoimpl.UnknownFields
 
        // Types that are assignable to Value:
+       //
        //      *FieldValue_Null
        //      *FieldValue_Str
        //      *FieldValue_Int
diff --git a/banyand/Dockerfile b/banyand/Dockerfile
index e6da33b..dc40e27 100644
--- a/banyand/Dockerfile
+++ b/banyand/Dockerfile
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM golang:1.18 AS dev
+FROM golang:1.19 AS dev
 WORKDIR /app
 ENV GOOS="linux"
 ENV CGO_ENABLED=0
@@ -27,7 +27,7 @@ EXPOSE 2345
 
 ENTRYPOINT ["air"]
 
-FROM golang:1.18 AS base
+FROM golang:1.19 AS base
 
 ENV GOPATH "/go"
 ENV GO111MODULE "on"
diff --git a/banyand/internal/cmd/root.go b/banyand/internal/cmd/root.go
index fb6d89f..0bbfbd5 100644
--- a/banyand/internal/cmd/root.go
+++ b/banyand/internal/cmd/root.go
@@ -15,6 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
+// Package cmd is an internal package defining cli commands for BanyanDB
 package cmd
 
 import (
diff --git a/banyand/measure/encode.go b/banyand/measure/encode.go
index 936e018..7e29d0b 100644
--- a/banyand/measure/encode.go
+++ b/banyand/measure/encode.go
@@ -6,7 +6,7 @@
 // not use this file except in compliance with the License.
 // You may obtain a copy of the License at
 //
-//     http://www.apache.org/licenses/LICENSE-2.0
+//     http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing,
 // software distributed under the License is distributed on an
@@ -14,7 +14,6 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-//
 package measure
 
 import (
diff --git a/banyand/measure/field_flag_test.go 
b/banyand/measure/field_flag_test.go
index baec5b8..fba88db 100644
--- a/banyand/measure/field_flag_test.go
+++ b/banyand/measure/field_flag_test.go
@@ -6,7 +6,7 @@
 // not use this file except in compliance with the License.
 // You may obtain a copy of the License at
 //
-//     http://www.apache.org/licenses/LICENSE-2.0
+//     http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing,
 // software distributed under the License is distributed on an
@@ -14,7 +14,6 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-//
 package measure
 
 import (
diff --git a/banyand/measure/measure_write_test.go 
b/banyand/measure/measure_write_test.go
index ec2f3eb..935de8d 100644
--- a/banyand/measure/measure_write_test.go
+++ b/banyand/measure/measure_write_test.go
@@ -22,9 +22,9 @@ import (
        "encoding/json"
        "time"
 
-       "github.com/golang/protobuf/jsonpb"
        . "github.com/onsi/ginkgo/v2"
        . "github.com/onsi/gomega"
+       "google.golang.org/protobuf/encoding/protojson"
        "google.golang.org/protobuf/types/known/timestamppb"
 
        commonv1 
"github.com/apache/skywalking-banyandb/api/proto/banyandb/common/v1"
@@ -132,10 +132,9 @@ func writeDataWithBaseTime(baseTime time.Time, dataFile 
string, measure measure.
                rawDataPointValue, errMarshal := json.Marshal(template)
                Expect(errMarshal).ShouldNot(HaveOccurred())
                dataPointValue := &measurev1.DataPointValue{}
+               Expect(protojson.Unmarshal(rawDataPointValue, 
dataPointValue)).ShouldNot(HaveOccurred())
                dataPointValue.Timestamp = 
timestamppb.New(baseTime.Add(time.Duration(i) * time.Minute))
-               Expect(jsonpb.UnmarshalString(string(rawDataPointValue), 
dataPointValue)).ShouldNot(HaveOccurred())
-               errInner := measure.Write(dataPointValue)
-               Expect(errInner).ShouldNot(HaveOccurred())
+               Expect(measure.Write(dataPointValue)).Should(Succeed())
        }
        return baseTime
 }
diff --git a/banyand/measure/metadata.go b/banyand/measure/metadata.go
index 9a455be..2fad3d5 100644
--- a/banyand/measure/metadata.go
+++ b/banyand/measure/metadata.go
@@ -6,7 +6,7 @@
 // not use this file except in compliance with the License.
 // You may obtain a copy of the License at
 //
-//     http://www.apache.org/licenses/LICENSE-2.0
+//     http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing,
 // software distributed under the License is distributed on an
@@ -14,7 +14,6 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-//
 package measure
 
 import (
diff --git a/banyand/observability/metric.go b/banyand/observability/metric.go
index 29f353b..180bc84 100644
--- a/banyand/observability/metric.go
+++ b/banyand/observability/metric.go
@@ -6,7 +6,7 @@
 // not use this file except in compliance with the License.
 // You may obtain a copy of the License at
 //
-//     http://www.apache.org/licenses/LICENSE-2.0
+//     http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing,
 // software distributed under the License is distributed on an
@@ -14,7 +14,6 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-//
 package observability
 
 import (
diff --git a/banyand/observability/type.go b/banyand/observability/type.go
index 1b26330..ab8cb1b 100644
--- a/banyand/observability/type.go
+++ b/banyand/observability/type.go
@@ -6,7 +6,7 @@
 // not use this file except in compliance with the License.
 // You may obtain a copy of the License at
 //
-//     http://www.apache.org/licenses/LICENSE-2.0
+//     http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing,
 // software distributed under the License is distributed on an
@@ -14,7 +14,6 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-//
 package observability
 
 type Statistics struct {
diff --git a/banyand/query/processor_test.go b/banyand/query/processor_test.go
index b72908b..e8bc07e 100644
--- a/banyand/query/processor_test.go
+++ b/banyand/query/processor_test.go
@@ -26,9 +26,9 @@ import (
        "strconv"
        "time"
 
-       "github.com/golang/protobuf/jsonpb"
        . "github.com/onsi/ginkgo/v2"
        . "github.com/onsi/gomega"
+       "google.golang.org/protobuf/encoding/protojson"
        "google.golang.org/protobuf/types/known/timestamppb"
 
        "github.com/apache/skywalking-banyandb/api/data"
@@ -158,7 +158,7 @@ func setUpStreamQueryData(dataFile string, stream 
stream.Stream) (baseTime time.
                rawSearchTagFamily, errMarshal := json.Marshal(template)
                Expect(errMarshal).ShouldNot(HaveOccurred())
                searchTagFamily := &modelv1.TagFamilyForWrite{}
-               Expect(jsonpb.UnmarshalString(string(rawSearchTagFamily), 
searchTagFamily)).Should(Succeed())
+               Expect(protojson.Unmarshal(rawSearchTagFamily, 
searchTagFamily)).Should(Succeed())
                e := &streamv1.ElementValue{
                        ElementId: strconv.Itoa(i),
                        Timestamp: timestamppb.New(baseTime.Add(500 * 
time.Millisecond * time.Duration(i))),
diff --git a/banyand/query/query_suite_test.go 
b/banyand/query/query_suite_test.go
index 53315da..970d5ee 100644
--- a/banyand/query/query_suite_test.go
+++ b/banyand/query/query_suite_test.go
@@ -6,7 +6,7 @@
 // not use this file except in compliance with the License.
 // You may obtain a copy of the License at
 //
-//     http://www.apache.org/licenses/LICENSE-2.0
+//     http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing,
 // software distributed under the License is distributed on an
@@ -14,7 +14,6 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-//
 package query_test
 
 import (
diff --git a/banyand/stream/stream_query_test.go 
b/banyand/stream/stream_query_test.go
index b0092c1..9735e4f 100644
--- a/banyand/stream/stream_query_test.go
+++ b/banyand/stream/stream_query_test.go
@@ -28,10 +28,10 @@ import (
        "strconv"
        "time"
 
-       "github.com/golang/protobuf/jsonpb"
        . "github.com/onsi/ginkgo/v2"
        . "github.com/onsi/gomega"
        "github.com/pkg/errors"
+       "google.golang.org/protobuf/encoding/protojson"
        "google.golang.org/protobuf/types/known/timestamppb"
 
        "github.com/apache/skywalking-banyandb/api/common"
@@ -990,7 +990,7 @@ func setupQueryData(dataFile string, stream *stream) 
(baseTime time.Time) {
                rawSearchTagFamily, errMarshal := json.Marshal(template)
                Expect(errMarshal).ShouldNot(HaveOccurred())
                searchTagFamily := &modelv1.TagFamilyForWrite{}
-               Expect(jsonpb.UnmarshalString(string(rawSearchTagFamily), 
searchTagFamily)).ShouldNot(HaveOccurred())
+               Expect(protojson.Unmarshal(rawSearchTagFamily, 
searchTagFamily)).ShouldNot(HaveOccurred())
                e := &streamv1.ElementValue{
                        ElementId: strconv.Itoa(i),
                        Timestamp: timestamppb.New(baseTime.Add(500 * 
time.Millisecond * time.Duration(i))),
diff --git a/banyand/tsdb/bucket/bucket_suite_test.go 
b/banyand/tsdb/bucket/bucket_suite_test.go
index 8c442e3..59ca1fe 100644
--- a/banyand/tsdb/bucket/bucket_suite_test.go
+++ b/banyand/tsdb/bucket/bucket_suite_test.go
@@ -6,7 +6,7 @@
 // not use this file except in compliance with the License.
 // You may obtain a copy of the License at
 //
-//     http://www.apache.org/licenses/LICENSE-2.0
+//     http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing,
 // software distributed under the License is distributed on an
@@ -14,7 +14,6 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-//
 package bucket_test
 
 import (
diff --git a/banyand/tsdb/bucket/queue.go b/banyand/tsdb/bucket/queue.go
index 85b73fa..af13d6b 100644
--- a/banyand/tsdb/bucket/queue.go
+++ b/banyand/tsdb/bucket/queue.go
@@ -6,7 +6,7 @@
 // not use this file except in compliance with the License.
 // You may obtain a copy of the License at
 //
-//     http://www.apache.org/licenses/LICENSE-2.0
+//     http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing,
 // software distributed under the License is distributed on an
@@ -14,7 +14,6 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-//
 package bucket
 
 import (
diff --git a/banyand/tsdb/bucket/queue_test.go 
b/banyand/tsdb/bucket/queue_test.go
index fbda289..fb90169 100644
--- a/banyand/tsdb/bucket/queue_test.go
+++ b/banyand/tsdb/bucket/queue_test.go
@@ -6,7 +6,7 @@
 // not use this file except in compliance with the License.
 // You may obtain a copy of the License at
 //
-//     http://www.apache.org/licenses/LICENSE-2.0
+//     http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing,
 // software distributed under the License is distributed on an
@@ -14,7 +14,6 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-//
 package bucket_test
 
 import (
diff --git a/banyand/tsdb/bucket/strategy_test.go 
b/banyand/tsdb/bucket/strategy_test.go
index 80d9f8c..510707c 100644
--- a/banyand/tsdb/bucket/strategy_test.go
+++ b/banyand/tsdb/bucket/strategy_test.go
@@ -6,7 +6,7 @@
 // not use this file except in compliance with the License.
 // You may obtain a copy of the License at
 //
-//     http://www.apache.org/licenses/LICENSE-2.0
+//     http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing,
 // software distributed under the License is distributed on an
@@ -14,7 +14,6 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-//
 package bucket_test
 
 import (
diff --git a/banyand/tsdb/metric.go b/banyand/tsdb/metric.go
index d3d6c06..a45f57d 100644
--- a/banyand/tsdb/metric.go
+++ b/banyand/tsdb/metric.go
@@ -6,7 +6,7 @@
 // not use this file except in compliance with the License.
 // You may obtain a copy of the License at
 //
-//     http://www.apache.org/licenses/LICENSE-2.0
+//     http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing,
 // software distributed under the License is distributed on an
@@ -14,7 +14,6 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-//
 package tsdb
 
 import (
diff --git a/banyand/tsdb/scope.go b/banyand/tsdb/scope.go
index e2d0ff2..8233d9a 100644
--- a/banyand/tsdb/scope.go
+++ b/banyand/tsdb/scope.go
@@ -6,7 +6,7 @@
 // not use this file except in compliance with the License.
 // You may obtain a copy of the License at
 //
-//     http://www.apache.org/licenses/LICENSE-2.0
+//     http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing,
 // software distributed under the License is distributed on an
@@ -14,7 +14,6 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-//
 package tsdb
 
 import (
diff --git a/banyand/tsdb/series_test.go b/banyand/tsdb/series_test.go
index 820d1fe..da2493f 100644
--- a/banyand/tsdb/series_test.go
+++ b/banyand/tsdb/series_test.go
@@ -6,7 +6,7 @@
 // not use this file except in compliance with the License.
 // You may obtain a copy of the License at
 //
-//     http://www.apache.org/licenses/LICENSE-2.0
+//     http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing,
 // software distributed under the License is distributed on an
@@ -14,7 +14,6 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-//
 package tsdb_test
 
 import (
diff --git a/banyand/tsdb/shard_test.go b/banyand/tsdb/shard_test.go
index d798442..7ef3839 100644
--- a/banyand/tsdb/shard_test.go
+++ b/banyand/tsdb/shard_test.go
@@ -6,7 +6,7 @@
 // not use this file except in compliance with the License.
 // You may obtain a copy of the License at
 //
-//     http://www.apache.org/licenses/LICENSE-2.0
+//     http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing,
 // software distributed under the License is distributed on an
@@ -14,7 +14,6 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-//
 package tsdb_test
 
 import (
diff --git a/banyand/tsdb/tsdb.go b/banyand/tsdb/tsdb.go
index 34e84d2..20d8e6e 100644
--- a/banyand/tsdb/tsdb.go
+++ b/banyand/tsdb/tsdb.go
@@ -21,8 +21,6 @@ import (
        "context"
        "fmt"
        "io"
-       "io/fs"
-       "io/ioutil"
        "os"
        "strconv"
        "strings"
@@ -182,9 +180,9 @@ func OpenDatabase(ctx context.Context, opts DatabaseOpts) 
(Database, error) {
                blockSize:   blockSize,
        }
        db.logger.Info().Str("path", opts.Location).Msg("initialized")
-       var entries []fs.FileInfo
+       var entries []os.DirEntry
        var err error
-       if entries, err = ioutil.ReadDir(opts.Location); err != nil {
+       if entries, err = os.ReadDir(opts.Location); err != nil {
                return nil, errors.Wrap(err, "failed to read directory contents 
failed")
        }
        thisContext := context.WithValue(ctx, logger.ContextKey, db.logger)
@@ -262,7 +260,7 @@ func loadDatabase(ctx context.Context, db *database) 
(Database, error) {
 type WalkFn func(suffix, absolutePath string) error
 
 func WalkDir(root, prefix string, walkFn WalkFn) error {
-       files, err := ioutil.ReadDir(root)
+       files, err := os.ReadDir(root)
        if err != nil {
                return errors.Wrapf(err, "failed to walk the database path: 
%s", root)
        }
diff --git a/banyand/tsdb/tsdb_suite_test.go b/banyand/tsdb/tsdb_suite_test.go
index 432ae1d..97c11f2 100644
--- a/banyand/tsdb/tsdb_suite_test.go
+++ b/banyand/tsdb/tsdb_suite_test.go
@@ -6,7 +6,7 @@
 // not use this file except in compliance with the License.
 // You may obtain a copy of the License at
 //
-//     http://www.apache.org/licenses/LICENSE-2.0
+//     http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing,
 // software distributed under the License is distributed on an
@@ -14,7 +14,6 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-//
 package tsdb_test
 
 import (
diff --git a/bydbctl/Dockerfile b/bydbctl/Dockerfile
index c1eaf5c..886eda6 100644
--- a/bydbctl/Dockerfile
+++ b/bydbctl/Dockerfile
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM golang:1.18 AS base
+FROM golang:1.19 AS base
 
 ENV GOPATH "/go"
 ENV GO111MODULE "on"
diff --git a/bydbctl/cmd/bydbctl/main.go b/bydbctl/cmd/bydbctl/main.go
index f7af3ba..ebb144e 100644
--- a/bydbctl/cmd/bydbctl/main.go
+++ b/bydbctl/cmd/bydbctl/main.go
@@ -15,6 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
+// Package main provides main entry for the command-line toolkit, i.e. bydbctl
 package main
 
 import (
diff --git a/bydbctl/internal/cmd/root.go b/bydbctl/internal/cmd/root.go
index a84f69b..5f546e2 100644
--- a/bydbctl/internal/cmd/root.go
+++ b/bydbctl/internal/cmd/root.go
@@ -15,6 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
+// Package cmd is an internal package defining cli commands for bydbctl
 package cmd
 
 import (
diff --git a/go.mod b/go.mod
index abd90a1..3b5b9d7 100644
--- a/go.mod
+++ b/go.mod
@@ -1,6 +1,6 @@
 module github.com/apache/skywalking-banyandb
 
-go 1.18
+go 1.19
 
 require (
        github.com/RoaringBitmap/roaring v0.9.1
@@ -9,7 +9,7 @@ require (
        github.com/dgraph-io/badger/v3 v3.2011.1
        github.com/dgraph-io/ristretto v0.1.0
        github.com/golang/mock v1.6.0
-       github.com/golang/protobuf v1.5.2
+       github.com/golang/protobuf v1.5.2 // indirect
        github.com/google/go-cmp v0.5.8
        github.com/google/uuid v1.3.0
        github.com/klauspost/compress v1.15.6
diff --git a/pkg/grpchelper/client.go b/pkg/grpchelper/client.go
index 6e96a1e..aace243 100644
--- a/pkg/grpchelper/client.go
+++ b/pkg/grpchelper/client.go
@@ -6,7 +6,7 @@
 // not use this file except in compliance with the License.
 // You may obtain a copy of the License at
 //
-//     http://www.apache.org/licenses/LICENSE-2.0
+//     http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing,
 // software distributed under the License is distributed on an
@@ -14,7 +14,6 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-//
 package grpchelper
 
 import (
diff --git a/pkg/query/aggregation/aggregation.go 
b/pkg/query/aggregation/aggregation.go
index 8f7b2a1..708db22 100644
--- a/pkg/query/aggregation/aggregation.go
+++ b/pkg/query/aggregation/aggregation.go
@@ -6,7 +6,7 @@
 // not use this file except in compliance with the License.
 // You may obtain a copy of the License at
 //
-//     http://www.apache.org/licenses/LICENSE-2.0
+//     http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing,
 // software distributed under the License is distributed on an
@@ -14,7 +14,6 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-//
 package aggregation
 
 import (
diff --git a/pkg/query/aggregation/function.go 
b/pkg/query/aggregation/function.go
index 0361317..5144a81 100644
--- a/pkg/query/aggregation/function.go
+++ b/pkg/query/aggregation/function.go
@@ -6,7 +6,7 @@
 // not use this file except in compliance with the License.
 // You may obtain a copy of the License at
 //
-//     http://www.apache.org/licenses/LICENSE-2.0
+//     http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing,
 // software distributed under the License is distributed on an
@@ -14,7 +14,6 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-//
 package aggregation
 
 import "math"
diff --git a/pkg/query/logical/common_test.go b/pkg/query/logical/common_test.go
index cc616ea..0bc72fb 100644
--- a/pkg/query/logical/common_test.go
+++ b/pkg/query/logical/common_test.go
@@ -27,9 +27,9 @@ import (
        "testing"
        "time"
 
-       "github.com/golang/protobuf/jsonpb"
        "github.com/stretchr/testify/assert"
        "github.com/stretchr/testify/require"
+       "google.golang.org/protobuf/encoding/protojson"
        "google.golang.org/protobuf/types/known/timestamppb"
 
        commonv1 
"github.com/apache/skywalking-banyandb/api/proto/banyandb/common/v1"
@@ -63,7 +63,7 @@ func setupQueryData(testing *testing.T, dataFile string, 
stream stream.Stream) (
                rawSearchTagFamily, errMarshal := json.Marshal(template)
                t.NoError(errMarshal)
                searchTagFamily := &modelv1.TagFamilyForWrite{}
-               t.NoError(jsonpb.UnmarshalString(string(rawSearchTagFamily), 
searchTagFamily))
+               t.NoError(protojson.Unmarshal(rawSearchTagFamily, 
searchTagFamily))
                e := &streamv1.ElementValue{
                        ElementId: strconv.Itoa(i),
                        Timestamp: timestamppb.New(baseTime.Add(500 * 
time.Millisecond * time.Duration(i))),
@@ -213,10 +213,10 @@ func setupMeasureQueryData(testing *testing.T, dataFile 
string, measure measure.
                rawDataPointValue, errMarshal := json.Marshal(template)
                t.NoError(errMarshal)
                dataPointValue := &measurev1.DataPointValue{}
+               t.NoError(protojson.Unmarshal(rawDataPointValue, 
dataPointValue))
                if dataPointValue.Timestamp == nil {
                        dataPointValue.Timestamp = 
timestamppb.New(baseTime.Add(time.Duration(i) * time.Minute))
                }
-               t.NoError(jsonpb.UnmarshalString(string(rawDataPointValue), 
dataPointValue))
                errInner := measure.Write(dataPointValue)
                t.NoError(errInner)
        }
diff --git a/pkg/query/logical/iter.go b/pkg/query/logical/iter.go
index 5aa0bb7..739d237 100644
--- a/pkg/query/logical/iter.go
+++ b/pkg/query/logical/iter.go
@@ -94,9 +94,12 @@ func (it *itemIter) init() {
 // pushIterator pushes the given iterator into the underlying deque.
 // Status will be immediately checked if the Iterator has a next value.
 // 1 - If not, it will be close at once and will not be added to the slice,
-//     which means inactive iterator does not exist in the deq.
+//
+//     which means inactive iterator does not exist in the deq.
+//
 // 2 - If so, it will be wrapped into a container and push to the deq.
-//     Then we call SliceStable sort to sort the deq.
+//
+//     Then we call SliceStable sort to sort the deq.
 func (it *itemIter) pushIterator(iter tsdb.Iterator) {
        if !iter.Next() {
                _ = iter.Close()
diff --git a/pkg/query/logical/measure_plan_aggregation.go 
b/pkg/query/logical/measure_plan_aggregation.go
index 6f2bb0d..e665156 100644
--- a/pkg/query/logical/measure_plan_aggregation.go
+++ b/pkg/query/logical/measure_plan_aggregation.go
@@ -6,7 +6,7 @@
 // not use this file except in compliance with the License.
 // You may obtain a copy of the License at
 //
-//     http://www.apache.org/licenses/LICENSE-2.0
+//     http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing,
 // software distributed under the License is distributed on an
@@ -14,7 +14,6 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-//
 package logical
 
 import (
diff --git a/pkg/query/logical/measure_plan_groupby.go 
b/pkg/query/logical/measure_plan_groupby.go
index 9405771..79127f7 100644
--- a/pkg/query/logical/measure_plan_groupby.go
+++ b/pkg/query/logical/measure_plan_groupby.go
@@ -6,7 +6,7 @@
 // not use this file except in compliance with the License.
 // You may obtain a copy of the License at
 //
-//     http://www.apache.org/licenses/LICENSE-2.0
+//     http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing,
 // software distributed under the License is distributed on an
@@ -14,7 +14,6 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-//
 package logical
 
 import (
diff --git a/pkg/query/logical/measure_plan_top.go 
b/pkg/query/logical/measure_plan_top.go
index cf55dc6..7e53c31 100644
--- a/pkg/query/logical/measure_plan_top.go
+++ b/pkg/query/logical/measure_plan_top.go
@@ -6,7 +6,7 @@
 // not use this file except in compliance with the License.
 // You may obtain a copy of the License at
 //
-//     http://www.apache.org/licenses/LICENSE-2.0
+//     http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing,
 // software distributed under the License is distributed on an
@@ -14,7 +14,6 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-//
 package logical
 
 import (
diff --git a/pkg/query/logical/measure_top.go b/pkg/query/logical/measure_top.go
index b9e0dd2..56ae65b 100644
--- a/pkg/query/logical/measure_top.go
+++ b/pkg/query/logical/measure_top.go
@@ -6,7 +6,7 @@
 // not use this file except in compliance with the License.
 // You may obtain a copy of the License at
 //
-//     http://www.apache.org/licenses/LICENSE-2.0
+//     http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing,
 // software distributed under the License is distributed on an
@@ -14,7 +14,6 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-//
 package logical
 
 import (
diff --git a/pkg/query/logical/measure_top_test.go 
b/pkg/query/logical/measure_top_test.go
index 1d80ec7..4cbf96e 100644
--- a/pkg/query/logical/measure_top_test.go
+++ b/pkg/query/logical/measure_top_test.go
@@ -6,7 +6,7 @@
 // not use this file except in compliance with the License.
 // You may obtain a copy of the License at
 //
-//     http://www.apache.org/licenses/LICENSE-2.0
+//     http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing,
 // software distributed under the License is distributed on an
@@ -14,7 +14,6 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-//
 package logical_test
 
 import (
diff --git a/pkg/query/logical/stream_analyzer.go 
b/pkg/query/logical/stream_analyzer.go
index e06ca32..d8f5883 100644
--- a/pkg/query/logical/stream_analyzer.go
+++ b/pkg/query/logical/stream_analyzer.go
@@ -140,8 +140,9 @@ func (a *StreamAnalyzer) Analyze(_ context.Context, 
criteria *streamv1.QueryRequ
 // Basically,
 // 1 - If no criteria is given, we can only scan all shards
 // 2 - If criteria is given, but all of those fields exist in the "entity" 
definition,
-//     i.e. they are top-level sharding keys. For example, for the current 
skywalking's streamSchema,
-//     we use service_id + service_instance_id + state as the compound 
sharding keys.
+//
+//     i.e. they are top-level sharding keys. For example, for the current 
skywalking's streamSchema,
+//     we use service_id + service_instance_id + state as the compound 
sharding keys.
 func parseStreamFields(criteria *streamv1.QueryRequest, metadata 
*commonv1.Metadata, s Schema) (UnresolvedPlan, error) {
        timeRange := criteria.GetTimeRange()
 
diff --git a/pkg/run/run.go b/pkg/run/run.go
index 791e33e..1826d2b 100644
--- a/pkg/run/run.go
+++ b/pkg/run/run.go
@@ -282,24 +282,23 @@ func (g *Group) RunConfig() (interrupted bool, err error) 
{
 //
 // The following phases are executed in the following sequence:
 //
-//   Config phase (serially, in order of Unit registration)
-//     - FlagSet()        Get & register all FlagSets from Config Units.
-//     - Flag Parsing     Using the provided args (os.Args if empty)
-//     - Validate()       Validate Config Units. Exit on first error.
+//     Config phase (serially, in order of Unit registration)
+//       - FlagSet()        Get & register all FlagSets from Config Units.
+//       - Flag Parsing     Using the provided args (os.Args if empty)
+//       - Validate()       Validate Config Units. Exit on first error.
 //
-//   PreRunner phase (serially, in order of Unit registration)
-//     - PreRun()         Execute PreRunner Units. Exit on first error.
+//     PreRunner phase (serially, in order of Unit registration)
+//       - PreRun()         Execute PreRunner Units. Exit on first error.
 //
-//   Service phase (concurrently)
-//     - Serve()          Execute all Service Units in separate Go routines.
-//     - Wait             Block until one of the Serve() methods returns
-//     - GracefulStop()   Call interrupt handlers of all Service Units.
-//
-//   Run will return with the originating error on:
-//   - first Config.Validate()  returning an error
-//   - first PreRunner.PreRun() returning an error
-//   - first Service.Serve()    returning (error or nil)
+//     Service phase (concurrently)
+//       - Serve()          Execute all Service Units in separate Go routines.
+//       - Wait             Block until one of the Serve() methods returns
+//       - GracefulStop()   Call interrupt handlers of all Service Units.
 //
+//     Run will return with the originating error on:
+//     - first Config.Validate()  returning an error
+//     - first PreRunner.PreRun() returning an error
+//     - first Service.Serve()    returning (error or nil)
 func (g *Group) Run() (err error) {
        // run config registration and flag parsing stages
        if interrupted, errRun := g.RunConfig(); interrupted || errRun != nil {
diff --git a/pkg/test/helpers/fail_interceptor.go 
b/pkg/test/helpers/fail_interceptor.go
index ac591c2..a442d27 100644
--- a/pkg/test/helpers/fail_interceptor.go
+++ b/pkg/test/helpers/fail_interceptor.go
@@ -6,7 +6,7 @@
 // not use this file except in compliance with the License.
 // You may obtain a copy of the License at
 //
-//     http://www.apache.org/licenses/LICENSE-2.0
+//     http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing,
 // software distributed under the License is distributed on an
@@ -14,7 +14,6 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-//
 package helpers
 
 import (
diff --git a/pkg/test/helpers/grpc_health.go b/pkg/test/helpers/grpc_health.go
index 41775e7..5b551d0 100644
--- a/pkg/test/helpers/grpc_health.go
+++ b/pkg/test/helpers/grpc_health.go
@@ -6,7 +6,7 @@
 // not use this file except in compliance with the License.
 // You may obtain a copy of the License at
 //
-//     http://www.apache.org/licenses/LICENSE-2.0
+//     http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing,
 // software distributed under the License is distributed on an
@@ -14,7 +14,6 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-//
 package helpers
 
 import (
diff --git a/pkg/test/matcher.go b/pkg/test/matcher.go
index f218bf0..2a0a0dc 100644
--- a/pkg/test/matcher.go
+++ b/pkg/test/matcher.go
@@ -6,7 +6,7 @@
 // not use this file except in compliance with the License.
 // You may obtain a copy of the License at
 //
-//     http://www.apache.org/licenses/LICENSE-2.0
+//     http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing,
 // software distributed under the License is distributed on an
@@ -14,7 +14,6 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-//
 package test
 
 import (
diff --git a/pkg/test/measure/traffic/traffic.go 
b/pkg/test/measure/traffic/traffic.go
index b942590..b7f746b 100644
--- a/pkg/test/measure/traffic/traffic.go
+++ b/pkg/test/measure/traffic/traffic.go
@@ -6,7 +6,7 @@
 // not use this file except in compliance with the License.
 // You may obtain a copy of the License at
 //
-//     http://www.apache.org/licenses/LICENSE-2.0
+//     http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing,
 // software distributed under the License is distributed on an
@@ -14,7 +14,7 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-//
+
 package traffic
 
 import (
diff --git a/pkg/test/space.go b/pkg/test/space.go
index 8fafdb3..9e9e64a 100644
--- a/pkg/test/space.go
+++ b/pkg/test/space.go
@@ -19,7 +19,6 @@ package test
 
 import (
        "fmt"
-       "io/ioutil"
        "os"
 
        "github.com/stretchr/testify/require"
@@ -27,7 +26,7 @@ import (
 
 func Space(t *require.Assertions) (tempDir string, deferFunc func()) {
        var tempDirErr error
-       tempDir, tempDirErr = ioutil.TempDir("", "banyandb-test-*")
+       tempDir, tempDirErr = os.MkdirTemp("", "banyandb-test-*")
        t.Nil(tempDirErr)
        return tempDir, func() {
                if err := os.RemoveAll(tempDir); err != nil {
@@ -37,7 +36,7 @@ func Space(t *require.Assertions) (tempDir string, deferFunc 
func()) {
 }
 
 func NewSpace() (tempDir string, deferFunc func(), err error) {
-       tempDir, err = ioutil.TempDir("", "banyandb-test-*")
+       tempDir, err = os.MkdirTemp("", "banyandb-test-*")
        return tempDir, func() {
                if err = os.RemoveAll(tempDir); err != nil {
                        _, _ = fmt.Fprintf(os.Stderr, "Error while removing 
dir: %v\n", err)
diff --git a/pkg/test/stream/traffic/traffic.go 
b/pkg/test/stream/traffic/traffic.go
index 334c93d..93ac164 100644
--- a/pkg/test/stream/traffic/traffic.go
+++ b/pkg/test/stream/traffic/traffic.go
@@ -6,7 +6,7 @@
 // not use this file except in compliance with the License.
 // You may obtain a copy of the License at
 //
-//     http://www.apache.org/licenses/LICENSE-2.0
+//     http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing,
 // software distributed under the License is distributed on an
@@ -14,7 +14,7 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-//
+
 package traffic
 
 import (
@@ -31,7 +31,7 @@ import (
        "time"
 
        "github.com/dgraph-io/ristretto/z"
-       "github.com/golang/protobuf/jsonpb"
+       "google.golang.org/protobuf/encoding/protojson"
        "google.golang.org/protobuf/proto"
        "google.golang.org/protobuf/types/known/timestamppb"
 
@@ -45,7 +45,7 @@ import (
 
 var (
        //go:embed searchable_template.json
-       content string
+       content []byte
        l       = logger.GetLogger("test_stream_traffic")
 )
 
@@ -57,7 +57,7 @@ type TestCase struct {
 
 func SendWrites(ts TestCase) (*z.Closer, error) {
        searchTagFamily := &modelv1.TagFamilyForWrite{}
-       err := jsonpb.UnmarshalString(content, searchTagFamily)
+       err := protojson.Unmarshal(content, searchTagFamily)
        if err != nil {
                l.Err(err).Msg("unmarshal template")
                return nil, err
diff --git a/pkg/timestamp/clock.go b/pkg/timestamp/clock.go
index 3d55559..92b845a 100644
--- a/pkg/timestamp/clock.go
+++ b/pkg/timestamp/clock.go
@@ -6,7 +6,7 @@
 // not use this file except in compliance with the License.
 // You may obtain a copy of the License at
 //
-//     http://www.apache.org/licenses/LICENSE-2.0
+//     http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing,
 // software distributed under the License is distributed on an
@@ -14,7 +14,6 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-//
 package timestamp
 
 import (
diff --git a/pkg/timestamp/duration.go b/pkg/timestamp/duration.go
index fd7fdbb..8b07aa2 100644
--- a/pkg/timestamp/duration.go
+++ b/pkg/timestamp/duration.go
@@ -6,7 +6,7 @@
 // not use this file except in compliance with the License.
 // You may obtain a copy of the License at
 //
-//     http://www.apache.org/licenses/LICENSE-2.0
+//     http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing,
 // software distributed under the License is distributed on an
@@ -14,7 +14,6 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-//
 package timestamp
 
 import (
diff --git a/pkg/timestamp/duration_test.go b/pkg/timestamp/duration_test.go
index 1ce1d1b..6ed1eef 100644
--- a/pkg/timestamp/duration_test.go
+++ b/pkg/timestamp/duration_test.go
@@ -6,7 +6,7 @@
 // not use this file except in compliance with the License.
 // You may obtain a copy of the License at
 //
-//     http://www.apache.org/licenses/LICENSE-2.0
+//     http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing,
 // software distributed under the License is distributed on an
@@ -14,7 +14,6 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-//
 package timestamp
 
 import (
diff --git a/pkg/timestamp/nano.go b/pkg/timestamp/nano.go
index 085d471..c83decb 100644
--- a/pkg/timestamp/nano.go
+++ b/pkg/timestamp/nano.go
@@ -6,7 +6,7 @@
 // not use this file except in compliance with the License.
 // You may obtain a copy of the License at
 //
-//     http://www.apache.org/licenses/LICENSE-2.0
+//     http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing,
 // software distributed under the License is distributed on an
@@ -14,7 +14,6 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-//
 package timestamp
 
 import (
@@ -36,6 +35,7 @@ var (
 )
 
 // FastRandN is a fast thread local random function.
+//
 //go:linkname fastRandN runtime.fastrandn
 func fastRandN(n uint32) uint32
 
diff --git a/pkg/timestamp/nano_test.go b/pkg/timestamp/nano_test.go
index 6b601ba..422f99f 100644
--- a/pkg/timestamp/nano_test.go
+++ b/pkg/timestamp/nano_test.go
@@ -6,7 +6,7 @@
 // not use this file except in compliance with the License.
 // You may obtain a copy of the License at
 //
-//     http://www.apache.org/licenses/LICENSE-2.0
+//     http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing,
 // software distributed under the License is distributed on an
@@ -14,7 +14,6 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-//
 package timestamp_test
 
 import (
diff --git a/pkg/timestamp/range.go b/pkg/timestamp/range.go
index e0db185..44f0bc0 100644
--- a/pkg/timestamp/range.go
+++ b/pkg/timestamp/range.go
@@ -6,7 +6,7 @@
 // not use this file except in compliance with the License.
 // You may obtain a copy of the License at
 //
-//     http://www.apache.org/licenses/LICENSE-2.0
+//     http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing,
 // software distributed under the License is distributed on an
@@ -14,7 +14,6 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-//
 package timestamp
 
 import (
diff --git a/scripts/build/lint-bin.mk b/scripts/build/lint-bin.mk
index f29b241..b33b5a5 100644
--- a/scripts/build/lint-bin.mk
+++ b/scripts/build/lint-bin.mk
@@ -1,4 +1,4 @@
 
 LINTER := $(tool_bin)/golangci-lint
 $(LINTER):
-       @GOBIN=$(tool_bin) go install 
github.com/golangci/golangci-lint/cmd/[email protected]
+       @GOBIN=$(tool_bin) go install 
github.com/golangci/golangci-lint/cmd/[email protected]
diff --git a/scripts/ci/check/version_test.go b/scripts/ci/check/version_test.go
index 367d605..11df493 100644
--- a/scripts/ci/check/version_test.go
+++ b/scripts/ci/check/version_test.go
@@ -28,7 +28,7 @@ import (
        "golang.org/x/mod/modfile"
 )
 
-const GoVersion = "1.18.3"
+const GoVersion = "1.19"
 
 func TestGoVersion(t *testing.T) {
        goversion, err := exec.Command("go", "version").Output()
@@ -36,17 +36,17 @@ func TestGoVersion(t *testing.T) {
 
        currentVersion := strings.Split(string(goversion), " ")[2][2:]
 
-       currentMayorMinor, currentPatch := splitVersion(currentVersion)
-       expectedMayorMinor, expectedPatch := splitVersion(GoVersion)
+       currentMajorMinor, currentPatch := splitVersion(currentVersion)
+       expectedMajorMinor, expectedPatch := splitVersion(GoVersion)
 
-       require.Equal(t, currentMayorMinor, expectedMayorMinor,
+       require.Equal(t, currentMajorMinor, expectedMajorMinor,
                "go version <mayor>.<minor> mismatch: current[%s], want[%s]",
-               currentMayorMinor, expectedMayorMinor)
+               currentMajorMinor, expectedMajorMinor)
 
        require.True(t, currentPatch >= expectedPatch,
                "go version unsupported, current[%s.%s], minimum[%s.%s]",
-               currentMayorMinor, currentPatch,
-               currentMayorMinor, expectedPatch,
+               currentMajorMinor, currentPatch,
+               currentMajorMinor, expectedPatch,
        )
 
        path, err := exec.Command("git", "rev-parse", 
"--show-toplevel").Output()
@@ -59,14 +59,18 @@ func TestGoVersion(t *testing.T) {
 
        m := parseGoMod(t, root+"/go.mod")
 
-       require.Equal(t, expectedMayorMinor, m.Go.Version,
+       require.Equal(t, expectedMajorMinor, m.Go.Version,
                "go.mod version mismatch: current[%s], want[%s]",
-               m.Go.Version, expectedMayorMinor)
+               m.Go.Version, expectedMajorMinor)
 }
 
 func splitVersion(v string) (string, string) {
-       lastDotPos := strings.LastIndex(v, ".")
-       return v[:lastDotPos], v[lastDotPos+1:]
+       versionParts := strings.SplitN(v, ".", 3)
+       // if v only has two parts, it can be <major>.<minor>
+       if len(versionParts) == 2 {
+               return v, "0"
+       }
+       return strings.Join(versionParts[0:2], "."), versionParts[2]
 }
 
 func parseGoMod(t *testing.T, gomod string) *modfile.File {
diff --git a/ui/embed.go b/ui/embed.go
index ca28177..7d3657c 100644
--- a/ui/embed.go
+++ b/ui/embed.go
@@ -15,10 +15,12 @@
 // specific language governing permissions and limitations
 // under the License.
 
+// Package ui provides Web based UI for BanyanDB
 package ui
 
 import "embed"
 
 // DistContent contains ui distributed pages
+//
 //go:embed dist
 var DistContent embed.FS

Reply via email to