Go 1.24の新機能で、Go製ツールのバージョンをGo Modulesで管理できるようになったので、その概要と便利なポイントを紹介していきます。 これまでのGo製ツールのバージョン管理について これまで、Go製ツールのバージョンを管理する方法として標準的なものはありませんでした。 そのため、仕方なく直接go installgithub.com/XXX/cmd/ツール名@バージョン をコマンドとして打たざるを得ないシーンが多々ありました。(過去の方法については今回あまり深堀りしません) これからのGo製ツールのバージョン管理についてGo 1.24からGo組み込みの機能として提供される新しいツール管理方法は、従来のものよりずっと手軽になっています。 使い方が非常に簡単なので、ここで紹介する内容はGo以外のプロジェクトでも使えると思っています。Go Modulesを既存のプロジェクトに同
tl;dr リポジトリを新オーナーにTransferする 返す刀でTransferしたRepositoryを元オーナー側にForkしもどす Forkしたものをアーカイブする Transfer先のモジュール名を変更し、新しいタグを打って開発を継続するGitHubのリポジトリのオーナー変更 この記事はGo Advent Calendar 2021カレンダー2の10日目の記事です。 さて、オーナー変更や個人プロジェクトをオーガニゼーションに移行したい等の理由で、GitHub上のリポジトリのオーナーを変更することがあるでしょう。GitHubにはTransferring a repositoryの機能があり、それを使えば簡単です。issueやpull request等の履歴も含めて引き継いでくれますし、旧リポジトリから新リポジトリへのリダイレクトも自動的におこなわれます。なのでこれで解決なのです

Naoki Hiroshima さんをゲストに迎えて、ワクチン、Swift、ライブラリ、ソーシャルメディア、将棋などについて話しました。 ShowNotes Biden’s New Plan to GetCOVID-19 Vaccines to Every American Uniqlo to close S.F. store, adding to flood of retail vacancies near Union SquareGoogle GIGA School Package |Google for EducationSwift Concurrency Manifestoswift-evolution/0296-async-await A Proposal for Adding Generics toGo - TheGoBlogSwift.org - Pack
はじめに 今年の 8 月にリリースが予定されているGo 1.13 では、Go 1.11 で導入されたGo modules に加え、Go module proxy といった新しいエコシステムが登場します。 そこで、そもそもGo modules は何を行っているのかや、何ができるのか、どういった要素で構成されているのかを紹介します。 また、古いGo バージョンからGo 1.13 へアップデートする場合や、 dep や Glide といったベンダリングツールからGo modules へ移行する際の懸念点も併せて紹介します。 先日発表した "Go Modules and Proxy Walkthrough" はこのポストがベースになっています。 TL;DR な人はスライドを見るのがおすすめです。speakerdeck.comGo ModulesGo modules という仕組みは
GitHub上のGoのリポジトリに対して継続的インテグレーション(CI)を行なう場合、CircleCIやTravisCIを使うのが一般的だろう。 CicrcleCI2.1でGo Modulesを使いながらマルチJobを定義したWorkflowを定義する。 attach_workspaceを使ってジョブ間のデータ共有をするのにひと手間必要だった。 TL;DRCircleCI2.0はWorkflowを使って複数Jobを平行実行することができる save_cacheを使うとWorkflowを実行するたびにModuleをダウンロードせずに済む persist_to_workspaceを使うと各ジョブで毎回Moduleをダウンロードせずに済む attach_workspaceするときにuser:rootの設定が必要な場合がある めんどくさいときは @__timakin__さんのCircleCI O
![[Go] CicleCI2.1でgo modのデータを共有しながら複数ジョブを実行する - My External Storage](/image.pl?url=https%3a%2f%2fcdn-ak-scissors.b.st-hatena.com%2fimage%2fsquare%2fac7859a2a946334ef6c8c8418904e531cef98374%2fheight%3d288%3bversion%3d1%3bwidth%3d512%2fhttps%253A%252F%252Fbudougumi0617.github.io%252Flogos%252Fcircleci.png&f=jpg&w=240)
TL;DRGo Modules(vgo)はGo1.11から導入され始めたGoの新しいバージョン管理Go1.12ではまだ有効にはなっていない(Go1.13からはデフォルトで有効になる)Go Modulesの概要とTipsなどを簡単にまとめたGo1.12のModules関連の変更をDockerを動かして確認してみたGOPATHi外でgo.modがなくてもgo run可能 replaceディレクティブで依存パッケージをローカルのコードを使って解決etc… 確認に利用したDockerfileやスクリプトは以下のリポジトリにある。 https://github.com/budougumi0617/gomodules-explore vgo発表前のGoのバージョン管理は以下のような手法が取られていた。go getでgo1タグ・ブランチもしくは最新のmasterブランチを取得するgo g

森田が紹介するのはCPU をアジャイルの流儀で開発しようと主張する An Agile Approach toBuildingRISC-V Microprocessors, 向井が紹介するのはGo の次世代バージョン管理システムのデザインを解説したGo & Versioning です。感想などはハッシュタグ #misreading か hello@misreading.chat にお寄せください。 An Agile Approach toBuildingRISC-V MicroprocessorsRISC-VRISC-V Foundation | Instruction Set Architecture (ISA) Design of theRISC-V Instruction Set Architecture Intel and the x86 Architecture

最近は仕事でも新しくGoのプロジェクトをイチからはじめることが増えてきて、コピペ元が欲しくなるので、スナップショットとして残しておきます。とくにGo でウェブアプリケーションを書くような場合を想定していて、npm エコシステムにも乗っていきます。 大まかな方針としては、 self-contained である グローバルな環境を汚染しない コマンド一発で開発環境が再現できる ……というところを目指します。 motemen/prchecklist がこれを達成しているつもりなので、以下、これを例に見ていきます。 依存ライブラリは dep なり何かしらのツールとGo 標準の vendoring で管理すればよい一方、そのツール自体であったり、他の開発中に必要なツール(golint とかgobump とか)であったりのインストールをどうするかという話。 npm であれば devDepende
« Re:Go でシングルバイナリな Web アプリを開発しているときにwebpack --watch をうまいところやる | Main |Ruby の a = a + 1 はなぜ undefined method '+' for nil:NilClass なのか »golang にはパッケージマネージャが無数にあります。 PackageManagementTools ·golang/go Wiki ·GitHub Home ArticlesBlogs Books BoundingResourceUsecgoChromeOS CodeReview CodeReviewComments CodeTools C... https://github.com/golang/go/wiki/PackageManagementTools 僕もその一つのgom というのを開発している

Go でツール書くときはタスクランナーとして make を使っています。ビルドだけじゃなくて、テストや配布用パッケージ作成も一括して make でやっています。 今回は整理も兼ねて、自分が普段どういう Makefile を使っているのか解剖していきます。 なぜ make を使うのか ビルドフラグ覚えるのが面倒だから、make は (Windows を除く) 大半のプラットフォームに入っていて使いやすいからというのが理由です。script/build みたいにシェルスクリプトを複数用意するのでもまあ良いと思いますが…。大半のGoプロジェクトは Makefile 置いてありますね。 make を使った開発フロー 基本的には、リポジトリを git clone /go get -d した後に以下のコマンドを打てばアプリケーションをインストールできるようにしています。


glideってなんぞ? glideはGo1.5以降で使用可能なvendoring機能を利用した。 パッケージ管理ツールです。 (正確にはvendor管理) glideを使うと下記のようにvendorにプロジェクトに必要なパッケージがインストールされ、そのプロジェクト内でのみ利用が可能となります。 (通常のgo get,go installのようにグローバル管理ではない) - $GOPATH/src/myProject (プロジェクトのディレクトリ) | |-- glide.yaml | |-- main.go | |-- mySubpackage (サブパッケージ) | | | |-- foo.go | |-- vendor (この配下がglideで作成されるもの) |--github.com | |-- Masterminds | |-- ...etc.

setup.py is your friend.It’s real sorry about what happened last time. Okay folks. Time’s up.It’s too late to say thatPython’s packaging ecosystem terrible any more. I’m callingit.Python packaging is not bad any more. If you’re a developer, and you’re trying tocreate or consumePython libraries,it can be a tractable, even pleasant experience. I need to say this, because for a long time, Pyt
しっくり来る所まで来たのでまとめ。 前提Mac OS X 10.11.3 homebrewGo 1.6 zshneovim 1.3-devGo自体の管理 homebrewでインストール。 $ brew installgo $go versiongo versiongo1.6 darwin/amd64 $ whichgo /usr/local/bin/go .zshrcに以下の環境変数を設定。 # forgolang exportGOVERSION=1.6 exportGOPATH=$HOME/.go/$GOVERSION export PATH=$GOPATH/bin:$PATH 一応バージョンをGOPATHに入れて新しいバージョンのGoがリリースされても最初から綺麗にディレクトリ分けてビルドできるようにしてる。後方互換結構大事にしているように見受けられるのであまり
こんにちは、白ヤギでは下手の横好き的なPythonistaのシバタアキラです。 カメリオのような複雑なオンラインサービスを開発提供していく上では、様々な開発言語からミドルウェアそしてハードウェアやモニタリングに至るまで、様々な計算技術を応用しています。開発言語自体はあくまで手段であって目的ではないので、自分たちのマインドシェアの中でも小さくあるべきと思っています。一方で、未だにvim vsemacsなんていう些細な選択肢に関しても「戦争」が起こる様に(起こってない?)なんだかんだいって、ツールというのはエンジニアにとってもデータサイエンティストにとってもとても大切なモノです。 昨年PyConJPのスポンサー(今年もやります!)をして以来、Pythonコミュニティーでコアに活動されている方々とお付き合いさせていただく機会も増え、また自分でもPyData.Tokyoというデータサイエンスに特

リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く