kkamegawa's weblog

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

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みたいな名前にすると、意図通りの処理が自動生成されています。

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

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

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

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

GitHub issue(beta)試してみた

github.blog

新しいGitHub issueベータ版が公開されたので、waiting list申請したら通ったので、軽く使ってみました。GitHub issueも使いますが、ほとんど自分のタスク管理というか、個人リポジトリのToDoみたいな使い方です。あと、オープンソースプロジェクトで問題があったらissueを調べまくるくらいでしょうか。

issueとなっていますが、実際はProjectの新しいやつという感じです。

f:id:kkamegawa:20210630154757p:plain

New Projectの隣にall-new projectsがあるので、こちらから作っていきます。

f:id:kkamegawa:20210630154802p:plain

ProjectsのBetaが出ているのでこちらから作っていきます。作るのはProjectsと変わりません。既存のProjectsとは別管理になるようで、今Projectsに追加しているissueがあっても改めて追加し直します。

f:id:kkamegawa:20210630154808p:plain

明示的にBetaとついている方を選択します。

f:id:kkamegawa:20210630154812p:plain

名前も変更しておきます。ちょっと誤ってDanger ZoneClose this projectが保存かと思ってクリックしそうになりました。ちょっと間違えやすいので、ここは正式版までには変わったほうがいいじゃないかな。

f:id:kkamegawa:20210630154818p:plain

列は歯車アイコンのところから自由に追加できます。今までのProjectはあらかじめ用意されていたstatusに応じて自動移動するパターン、完全に自分で構築するパターンと両極端でしたが、新しいやつではビューを定義する形で一度登録したissueをいろんなビューで見えるようになります。それは上のタブで切り替えます。

f:id:kkamegawa:20210630195048p:plain

View1の隣にある▼をクリックすると、ビューの名前の変更、複製といったことができます。

f:id:kkamegawa:20210630204224p:plain

同じissueに対して複数のビューを作って、色々な視点で見えるようです。

f:id:kkamegawa:20210630195042p:plain

追加する列はテキスト、数値、日付、選択肢と選べますね。自分で入れてもいいのですが、これは他のシステムと連携して作成した列に対してAPIで連携システムのデータを入れられるともっと面白い使い方ができそうです。

デモの動画ではAzure DevOpsのBoardsにあるAreaを定義して該当Areaのissueだけ抽出するということが簡単にできますね。ここでは紹介していませんが、従来のようなstatusでのカンバン表示にも簡単に切り替えられます。

最初なのでできるのかもしれないですが、個人単位で参照したいissueを手動で登録していくのはちょっと辛いので、特定のタグが付いたissueを自動的に登録するとか、open状態のissueが自動的に反映されるとかそういう仕組みが欲しいなと思いました。

今までのGitHub issueで管理できる場合はそれでもいいのですが、やはりissueが多くなるとこういうものを使わないときついので、これからの強化に期待です。