Skip to content
This repository has been archived by the owner on Apr 12, 2023. It is now read-only.

ライセンス通知の自動付与ツールを作成する #255

Open
2 tasks done
Takym opened this issue Jun 26, 2021 · 8 comments · May be fixed by #236 or #237
Open
2 tasks done

ライセンス通知の自動付与ツールを作成する #255

Takym opened this issue Jun 26, 2021 · 8 comments · May be fixed by #236 or #237
Labels
confirmed 開発内部管理用

Comments

@Takym
Copy link
Contributor

Takym commented Jun 26, 2021

その機能リクエストは何らかの問題に関連しますか

本リポジトリではファイルの先頭にライセンス通知を記述する決まり(#80)になっていますが、書き忘れてしまう事も少々あります。例えば DateTimeUtility.cs (#229) 等があります。

using System;
namespace Covid19Radar.Common
{
public interface IDateTimeUtility
{
DateTime UtcNow { get; }
}
public class DateTimeUtility : IDateTimeUtility
{
public static IDateTimeUtility Instance = new DateTimeUtility();
public DateTimeUtility()
{
}
public DateTime UtcNow => DateTime.UtcNow;
}
}

解決策についてお書きください

#236 (Windows版)、#237 (Linux版) により既に解決策となる PR が作成されています。

あなたが考える代替案についてご説明ください

今のところは特にありません。

その他


Internal IDs:

  • NFR 2704
@Takym Takym changed the title ライセンス通知の自動付与ツールを作成 ライセンス通知の自動付与ツールを作成する Jun 26, 2021
@keiji
Copy link
Collaborator

keiji commented Jun 26, 2021

ありがとうございます。
最終的にはツールで自動化したいですね。一方、PreCommitでコードを強制的に変更するスクリプトには経験上、抵抗があり、ライセンス通知を追加する頻度を考えれば、手動で実行する方向で考えています。そういう意味では #236 #237 どちらもあって良い感じです(動作仕様は統一しないといけませんが)。

全部自動処理する前の段階として、CIで「ライセンスが追加されていないファイルが追加されていたらエラーにしすることでマージされるのを防ぐ」手当かなと思います。これなら内部リポジトリからのSyncをPull Requestという扱いでチェックするようにすれば、DateTimeUtility.csのようなことが起きる可能性は小さくなると考えていますが、いかがでしょうか。

そういう意味ではこのIssueとも話がずれるわけですが…ひとまず2つのPull Request( #236 #237 )でGitHub Actionsで実行できて、ライセンス通知がないファイルの「追加」を検出できるものはありそうでしょうか。特に #237

Commit 時に ライセンスの記載漏れがないか確認する

という記述があるので、そういった使われ方を想定しているのかなと思っています。

@Meiryo7743
Copy link
Contributor

ライセンス通知を追加する頻度を考えれば、手動で実行する方向で考えています。

確かに,その頻度はあまり高くありませんから,わざわざ pre-commit でチェックするまでもないと言えそうです。

#237 は将来的に GitHub Actions 等の CI で実行することも想定しています。

イメージとしては,「Create Pull Request」と組み合わせることで,[スクリプトを実行]→[Base branch に対し,通知漏れの修正 PR を自動作成する]……といった具合です。よろしければ別途 PR を作成いたしましょうか……?

@Takym
Copy link
Contributor Author

Takym commented Jun 26, 2021

「ライセンスが追加されていないファイルが追加されていたらエラーにしすることでマージされるのを防ぐ」

ライセンス通知が付与していないファイルの検出であればより単純な機構で動くと思います。

#236 は手動で動かす事を前提に実装したため、標準出力にログを書き込んでいます。

@keiji
Copy link
Collaborator

keiji commented Jun 27, 2021

@Meiryo7743 @Takym
ありがとうございます。ライセンス通知を自動で付加する前段階として、「ライセンス通知の必要なファイルを」を正しく検出できる機能が必要と考えています。おそらくですが、ホワイトリストを作って特定のディレクトリやファイル(他のライセンスが適用されているXamarin.ExposureNotificationなど)を除外するなど必要と思います。

検出の機能をまずはGitHub Actionsに組み込む。問題なく動けばPull Requestに対するコメントであったり、 @Meiryo7743 さん提案のPull Reqeustに対して追加でPull Requestを出すなどができそうですね。

@Takym
Copy link
Contributor Author

Takym commented Jul 6, 2021

提案します。#236 (#245)、#237#261 の向き先を feature ブランチへ変更して頂けますでしょうか。

@keiji
Copy link
Collaborator

keiji commented Jul 6, 2021

feature/license_tools でいいですか?

@Takym
Copy link
Contributor Author

Takym commented Jul 6, 2021

はい。よろしくお願いします。

@keiji
Copy link
Collaborator

keiji commented Jul 6, 2021

変更しました!

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
confirmed 開発内部管理用
Projects
None yet
4 participants