Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Copyright を 2021 にする #1549

Merged
merged 2 commits into from
Feb 24, 2021

Conversation

berryzplus
Copy link
Contributor

@berryzplus berryzplus commented Feb 23, 2021

PR の目的

毎年やってるCopyright更新を行います。
同時に、来年以降の更新がラクになるように簡単なルールを決めて、全C++ソースを対象にCopyrightを挿入します。

カテゴリ

  • その他の問題

PR の背景

サクラエディタはオープンソースのアプリです。

オープンソースのアプリのソースコードには普通、著作権表示を入れます。
著作権表示(=Copyright)を入れる必要があるかどうかは、選択しているライセンスによるので一概に言えません。
サクラエディタが選択している zlib license は、全ソースに入れなくてもいい種類のライセンスです。
入れる必要はないんですが、サクラエディタのソースコードの大半には Copyright が入っています。

Copyrightには、権利発生年を入れる必要があります。

// Copyright (C) 2018-2020, Sakura Editor Organization

この場合、2018年からサクラエディタの organization が管理してるよ、という意味になります。
いま2021年ですが、表記が2020年だから失効か?というとそうではありません。
重要なのはあくまで権利発生日だからです。

Copyrightの更新は、過去3回実施してきました。
このPRでは、年次で更新すべきものとそうでないものを分類して、今後の作業をやりやすくしたいと思います。

PR のメリット

  • バージョン情報のCopyrightが最新になります。
    • これは毎年やってる対応で、ユーザーから見える部分を更新します。
  • C++ソースのすべてにCopyrightが入ります。
    • これは今回限りの対応で、ユーザーから見えない部分を更新します。
    • 以降、ソースコードのCopyrightは「更新が入るときだけ」行えばよくなります。

PR のデメリット (トレードオフとかあれば)

  • CodeSmellsが増えます。
    • zlib license の定型コメントが「コメントアウトされたコード」と誤検知されるためです。
    • 問題を解消する方法は分かっていて、 doxygen コメントを廃止するか、doxygenコメントを2つ目のコメントにするか、doxygenコメントとCopyrightコメントをくっ付けるかを選択する必要があります。

仕様・動作説明

今回の修正ルールの要点を書きだしておきます。
(動きませんが、一応「編集仕様」っすw)

Copyright 更新対象

年次更新の必要があるファイルは以下です。

  • LICENSE
  • sakura_core/sakura_rc.rc2
  • sakura_lang_en_US/sakura_lang_rc.rc2

C++ソースのCopyrightに関してのルール

背景で説明している通り、更新年の更新は必須ではありません。
今後、新規追加やパッチ取込の際に基準にできるようルールを書き出しておきます。

今後新規に追加するファイル

    Copyright (C) 2021, Sakura Editor Organization

上記以外(2020年以前から存在していたファイルの場合)

    (既存のCopyright表記の最後に以下を追加)
    Copyright (C) 2018-2021, Sakura Editor Organization

PR の影響範囲

  • 管理対象C++ソース全てに Sakura Editor Organization のCopyrightが付きます。
  • バージョン情報ダイアログのCopyright表記が (C) 1998-2021 になります。

テスト内容

変更対象はロジックではありませんが、以下のテストを実施して修正すべきファイルに漏れがないことを確認しました。

テスト手順

  1. リポジトリ配下で ^ をgrepして対象ファイルのパス一覧を得る。
  2. リポジトリ配下で 2021, Sakura Editor Organization をgrepして修正済みファイルのパス一覧を得る。
  3. パス一覧同士を比較する。

テスト結果

  • 対象ファイル(*.cpp,*.h,*.hpp,*.cpp.in): 729個
  • 修正済みファイル: 728個
  • 対象外ファイル: 1個
    sakura_core/sakura_rc.h: 手で書いたコメントを入れてはいけないファイルなので対象外です。
  • 対象ファイル(*.cpp,*.h,*.hpp,*.cpp.in以外): 3個
  • 対象ファイル(合計): 731個

関連 issue, PR

#232 copyright を 2018 に変更
#761 Copyright を 2019 にする
#1154 Copyright を 2020 にする

参考資料

issue #761 でCopyrightの年表示について少し議論しているのが参考になると思います。

プロジェクトのCopyrightを更新する。
旧) Copyright (C) 2018-2020 Sakura Editor Organization
新) Copyright (C) 2018-2021, Sakura Editor Organization

今年に入ってから追加されたファイルに関しては以下に統一する。
Copyright (C) 2021, Sakura Editor Organization
一旦以下を付ける。(2018年時点で存在しないファイルもあるが目をつぶる)
Copyright (C) 2018-2021, Sakura Editor Organization

今年に入ってから追加されたファイルに関しては以下で統一する。
Copyright (C) 2021, Sakura Editor Organization
@AppVeyorBot
Copy link

@sonarcloud
Copy link

sonarcloud bot commented Feb 23, 2021

Kudos, SonarCloud Quality Gate passed!

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 12 Code Smells

No Coverage information No Coverage information
0.0% 0.0% Duplication

@berryzplus
Copy link
Contributor Author

レビューありがとうございます。マージしちゃいます。

@berryzplus berryzplus merged commit 099aa94 into sakura-editor:master Feb 24, 2021
@berryzplus berryzplus deleted the feature/update_copyrights branch February 24, 2021 00:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants