DEV Community

Pallat Anchaleechamaikorn
Pallat Anchaleechamaikorn

Posted on

Go vesioning v2

ต่อจากคราวที่แล้วที่เราลองทำ lib ใน Go แบบที่ยังไม่ได้กำหนด version กันจริงจัง คราวนี้เราลองเอาของเดิมมาเล่นต่อ ด้วยการ upgrade มันเป็น version 2 ตามแบบที่ Go ทำกัน ก่อนอื่นก็เอา lib เรามายำก่อน

go.mod

module github.com/pallat/versioning/v2

go 1.16
Enter fullscreen mode Exit fullscreen mode

versioning.go

package versioning

var Number = 2.0
Enter fullscreen mode Exit fullscreen mode

เพื่อบอกว่า lib ตัวนี้ v2 เราเลยต้องแก้ module ให้เติม /v2 ต่อท้ายไป แล้วก็ถือโอกาสเปลี่ยน type ของ Number ให้เป็น float64 ด้วยเลย เพราะมันจะเกิด incompatible ด้วย

จากนั้นก็ commit แล้วก็ push ขึ้นไปบน github แต่ ยังไม่พอ เราต้องติด tag ให้มันด้วยตามนี้

git tag v2
git push --tags

จากนั้นเรามาที่โปรแกรมที่เรียกใช้ lib ตัวนี้เป็นแบบนี้

package main

import (
    "fmt"

    "github.com/pallat/versioning/v2"
)

func main() {
    fmt.Printf("%f\n", versioning.Number)
}
Enter fullscreen mode Exit fullscreen mode

จากนั้นใช้คำสั่ง

go mod tidy

แล้วลองรันดูใหม่ เพียงแค่นี้เราก็ได้ใช้ lib v2 เรียบร้อย

สรุปการทำ lib จะต้องทำอะไรบ้าง

  1. ชื่อ module ให้ลงท้ายเลข major version เช่น /v2
  2. ติด tag ตาม vesion แบบ SamVer โดยต้องมี v นำหน้า ที่สำคัญ อย่าลืม push ขึ้นไปด้วยทั้ง code และทั้ง tag

Top comments (0)