Cybozu Productivity News

#4 - 2022.07.14

actions/setup-go アクションが単体でのキャッシュに対応

共有担当: @korosuke613

  • GitHub Actions において公式アクションである actions/setup-go が単体でのキャッシュに対応しました
  • actions/setup-go@v3.2.0 から利用可能
  • with.cachetrue にすることで有効になります
  • with.cache-dependency-path に go.sum のパスを与えることでモノレポでも利用可能
  • 便利

Developers Summit 2022 Summer が 2022.07.21 に開催

共有担当: @korosuke613

Terraform 1.3でoptional()によるobject attributes(variable)へのデフォルト値設定が改善

共有担当: @ganta0087

  • 実験的機能としてoptional() modifier(v0.14〜)とdefaults() function(v0.15〜)が追加されていた。
  • この2つを組み合わせてobject typeのvariableのうち、任意のattributeにデフォルト値を持たせることができたが、かなり冗長な定義になり、直感的にわかりづらいものであった。
  • Terraform 1.3ではoptional() modifierにデフォルト値の設定機能が追加され、シンプルかつ直感的に書けるようになる予定。

高速で設定しやすいZsh/BashプラグインマネージャーSheldonの紹介

共有担当: @ganta0087

  • Rust製で高速に起動するZsh/Bash向けプラグインマネージャー。
  • TOML形式のファイルに設定し、設定項目がわかりやすく直感的に書ける。

GitHub Copilot が GA になりました

共有担当: @miyajan

  • GitHub Copilot は、コメントやコードのコンテキストから AI がコードスニペットを提案してくれるサービスです
  • 料金は、無料トライアル 60 日のあとは $10/month か $100/year がかかります
    • 学生や有名 OSS の開発者は無料
    • 企業向けのプランは年内を予定
  • 公式 FAQ によると、GitHub Copilot 利用者の手元のコードは GitHub Copilot のサービス側に送られるけど、他の利用者への提案として使用されることはないとのことです
  • GitHub Copilot が生成したコードを利用することによる著作権侵害のリスクについては議論があります
    • 自分の調査メモ
    • GitHub Copilot の生成するコードは創作性が認められて著作権を侵害するリスクがあるのか?
    • GitHub Copilot が著作権を侵害するコードを生成する場合、利用者側はそれに気づいて適切な対策をとれるのか?
  • AWS が同様のサービスとして Amazon CodeWhisperer をプレビュー版として公開しました
    • 公式の紹介記事
    • プレビュー期間中は無料
    • こちらは学習データに OSS だけでなく Amazon 内部のリポジトリなども利用しているとのこと
    • JetBrains 製品、VSCode、AWS Cloud9 などから利用可能
    • Python、Java、JavaScript をサポート
    • 学習データに似ているコードスニペットが生成される場合は、利用者にそのコードの元となるリポジトリとそのライセンス情報が通知され、自分のコードに取り込むか判断材料にできる
    • ステレオタイプに基づいたバイアスをコードから排除する技術も実装されているとのこと

ちょうどよいビルドツールEarthlyの紹介

共有担当:@akihisa1210

  • OSS のビルドツール Earthly を、Bazel や Gradle などの他のビルドツールと比較して紹介する記事の紹介です。
  • Earthly の公式サイトはこちら
  • Earthly の特徴(上記の記事 & 公式サイトより)
    • Dockerfile と Makefile を組み合わせたような文法の設定ファイル(Earthfile)を持つ。
    • 基本的にすべての処理がコンテナ内で実行されるので、再現性が高い。
      • ローカルのツールに依存しないので、依存関係も明確になる。
    • Earthfile 内のターゲットを別の Earthfile から参照できる。
      • ネットワーク越しでも参照可能。
    • キャッシュに Docker のレイヤーキャッシングと同じ考え方が使える。
  • 公式チュートリアルexamples もあります。

We are hiring

サイボウズの開発者の生産性を上げる「生産性向上チーム」とは!?