kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

Azure DevOps 2021/8/4の更新

Sprint 189が出ないなぁと思っていたらなぜかスキップされてSprint 190がリリースされました。オリジナルはこちらから読んでください。

docs.microsoft.com

Boardsはバグ修正だけのようですが、Pipelinesはいくつか重要な仕様変更や機能追加がありますね。排他的ロックチェックに新しく追加されたsequentialオプションはupstreamとhotfixを別にリリースするような場合、environementに排他チェックをしていると現在は最新のリリースのみ実行されていました。累積的になっている場合はいいのですが、hotfixだけリリースすると累積的になっていないので古いパッチがリリースされず困るケースがあります。そういう時に「順番にすべてのパッチをデプロイしたい」場合に便利ですね。

Ubuntuエージェントの.NET Coreインストールポリシーが変更されましたがWindowsとmacOSも同じポリシーになります。.NET Core SDKの3桁目のマイナーバージョンの先頭桁は機能バージョンとなっており、最新の機能バージョンのみインストールされることになったそうです。9/6からこの仕様変更をうけるので、global.json"rollForward": "patch"が指定されていない場合、9/6以降ビルドが失敗する可能性がありますので気を付けてください。

PublishBuildArtifactsDownloadBuildArtifactsはすでに非推奨タスクになっていると思いますが、まだ使っている人は早めに移行しましょう。特にself-hostedのエージェントを使っていて、ネットワーク的にエージェントの自動更新ができないような環境ではアーティファクトのダウンロードで失敗することがあります。TLSハンドシェイクのエラーなどでアーティファクトのダウンロードが失敗するような場合はタスクの移行とエージェントの更新を行ってください。

また次6週間後にならないといいですね。ではまた3週間後。

Translate to Japanese to Azure DevOps release not…

Chocolateyからwingetへ移行する

chocolatey.org

今までパッケージ管理にはChocolateyを使っていました。

docs.microsoft.com

Windows 10のwingetが正式版になったということで、移行しよう…と思ったのですが、ChocolateyはWindows Installerのデータベースとは別にパッケージ管理しています。

一台はちょっと力技というか、アンインストール→インストールし直したのですが、どうも無駄。よくよく考えてみればそんな技必要ないようなということで調べたらやっぱりありました。

  1. C:\ProgramData\chocolatey\lib配下にある対象パッケージを削除する。依存関係もあるので注意
  2. コマンドでパッケージ情報だけを削除する

安全にということで、2番目の公式方法で実行。

choco uninstall パッケージ名 -n --skipautouninstaller

これで綺麗にChocolateyから消えました。とはいっても、Chcolateyを完全に捨てることはできません。wingetはどうもインストーラーがあるツールを前提にしているようで、例えば私が使っているツールではこの辺がサポートされておらず、困っています。

  • sysinternals
  • hugo
  • yarn

他にもツール側が悪いのですが、アプリ内部に更新機能を持っているツールで更新してしまうとWindows Installerのバージョンが更新されないケースがあります。そういう時に明示的にwingetでハッシュを上書きしないといけないのが困りものです。

  • Teams
  • OBS Studio

など(現時点の情報なので将来変わっているかもしれません)。更新情報のソースとして、Windows Installerのバージョン情報を見ているので、更新を忘れていたツールでもwinget upgradeで一括更新できるのはいいですね。大多数の人にはこれでいいんじゃないかなと思います。

今のところ完全にwingetにするのは開発系のツールでは特に困ることがあるので、Chocolateyと併用しないといけないのは残念ですが、wingetを徐々に使っていく予定です。

(追記)
もう一つ困るケースがありました。例えばSSMSなんですが、言語別にインストーラーが分かれています。WinGetでは一応localeの設定はあるのですが、英語版しか設定されていないためか、自動的に英語版のSSMSがダウンロードされるので、ちょっと困ります。

docs.microsoft.com

SSMSの例。

github.com

これ現在のlocale判定できるようならPR出したほうがいいんでしょうね(割と真剣に困ってる)。

Microsoft MVP Award renewal

f:id:kkamegawa:20210702125817p:plain

ということで、今年も何とかMVP Awardを Developer Technologiesのカテゴリーで受賞できました(11回目です)。ありがとうございます。

ワクチン接種が始まりましたが、まだまだ予断を許さない状態で引きこもり生活は続きそうです。気軽にお話しするということで、足利さんと松村さんの三人で隔週でこんな深夜ラジオやってます。今日もやります。

devblog.connpass.com

最近MicrosoftさんはGitHubを押し出していますが、Azure DevOpsもまだまだ楽しく触っています。GitHubの新しいサービスもいろいろ触らせてもらっています。イベントといえば、ラジオ以外のイベントやってないので、そろそろやりたいなと思っていますが…8月下旬か9月くらい?

また一年間よろしくお願いします。

GitHub Copilotを試してみる

copilot.github.com

サインアップしたのが通ったので軽く動かしてみました。


www.youtube.com

どうせだから使ったことない言語というか、現在のCopilotがうまくサジェストしてくれると書いているJavaScript, Go, Pythonいずれも得意ではないのですけど、今回はGoでやってみました。

コメントを書き始めるとCopilotが候補をサジェストしてくれます。薄い文字がサジェストされている文章で、Tabを押したらそのまま受け入れることになります。

コメントを書かなくても関数名に具体的な処理を表す名前、例えばdevide_by_valueみたいな名前にすると、意図通りの処理が自動生成されています。

動画では英語で書いていますが、試したらコメントや関数名に日本語使ってもちゃんと解釈してくれるのはびっくりです。

実際、これが実用になるかというとどうなんだろうとは思います。ただ、ちょっとしたコードを作るとか初めての言語で過去使っていた言語と同じ処理を書く場合とかの練習には便利だと思います。

あと、テストコードとかである程度同じようなコードになるのでそういうコードの生産にも便利かもしれないですね。

このご時世なので、対面でペアプロは難しいのですが、代わりにこういうサービスがサジェストしてくれると便利そうですね。