Go 같은 경우 GitHub을 통해 Document와 Package 문서가
자동으로 작성되기 때문에 Release(배포)가 중요합니다.
처음부터 배포를 신중하게 하는 것이 중요하지만 종종 실수하기 마련입니다.
먼저 말하자면, 배포 이후에 tag를 삭제하거나 수정하여 같은 버전으로 배포하는 경우에는
문서(godoc)가 refresh되지 않습니다.
GitHub에서 tagging과 동시에 Release 문서를 작성하면 더 신중하게 검토할 수 있으니
GitHub 페이지를 통해 배포하는것을 추천드립니다.
새 버전을 Release 하거나 latest commit이 변경되면 일정 시간 후에 자동으로 갱신되지만
그렇지 않은 경우, 직접적으로 갱신을 요청할 수 있습니다.
이번 포스팅에선 GitHub로 Release하는 방법과 직접 godoc 갱신을 요청하는 방법 두 가지를 알아보겠습니다.
우선 배포하고자 하는 GitHub 페이지에서 오른쪽 하단 Releases를 선택합니다.
Draft a new release를 선택합니다.
Choose a tag를 선택하여 배포하고자하는 버전을 입력하고, Create New tag를 선택합니다.
가장 아래의 Publish release를 선택합니다.
위와 같이 배포하여도 package 문서가 바로 적용되지는 않습니다.
일정 시간 지나면 자동으로 배포되는게 정상이나 종종 그렇지 못한 경우가 있습니다.
아래 go issue에 따르면 'pkg.go.dev/<path>@master'에 접속하여 갱신하는 것이 최선의 방법임을 확인할 수 있습니다.
https://pkg.go.dev/github.com/bang9211/wire-jacket@v1.1.1에 접속하여
Request 버튼을 선택해 페이지 추가를 요청합니다.
기다리면 아래와 같은 문구가 발생하며 추가되는 중임을 확인할 수 있습니다.
기다리면 아래와 같이 README.md에서 최신 release 버전이 적용된 것을 확인할 수 있습니다.
몇 분 후 package 문서를 다시 확인하면 제대로 적용된 것을 확인할 수 있습니다.
만약 위의 방법이 동작하지 않는 경우, 직접 요청을 보내는 방법이 있습니다.
아래와 같이 Makefile을 만들어 두고 계속 사용하면 좋습니다.
Makefile 작성
update-pkg-cache:
GOPROXY=https://proxy.golang.org GO111MODULE=on \
go get github.com/$(USER)/$(PACKAGE)@v$(VERSION)
아래와 같이 실행
make update-pkg-cache USER=bang9211 PACKAGE=wire-jacket VERSION=1.1.1
Go의 문서는 GitHub에 의존하기 때문에 신중하게 처리하는 것이 좋습니다.
문서 갱신이 실시간으로 이루어지지 않기 때문에 결과를 확인하기에도 오래 걸리고,
배포가 잘못되어 수정되어도 문서가 갱신되지 않기 때문입니다.
Release Note를 만들 겸, GitHub의 Release를 적극 활용하면
실수를 줄일 수 있으니 활용하기를 추천드립니다.
'Programming > Go' 카테고리의 다른 글
Go/Golang for sets: map[T]struct{} vs. map[T]bool (0) | 2021.11.29 |
---|---|
[ko]Wire-Jacket: IoC Container of google/wire for cloud-native (0) | 2021.10.07 |
Go/Golang HTTP 성능 튜닝 (0) | 2021.09.24 |
Go/Golang Dependency Injection (12) | 2021.09.10 |
Go/Golang Scheduling (8) | 2021.09.02 |