sakura
sakura copied to clipboard
クリッカブルURLの仕様変更に対するロールバック要求
問題内容
バージョン 2.4.1 から 2.4.2 の間に登録された次の Issue と Pull request が対応誤りだと思われるため、コミット内容のロールバックを求めます。 もしどうしても対応が必要だと考える場合でも、いったんゼロベースに戻してから改めて検討していただきたく思います。
クリッカブルURL機能から実行可能ファイルを直接実行できるのは仕様かどうか #1705 ブラウザでURLを開く機能の改善 #1708
■サクラエディタの機能の誤認について。 まず、Pull request のタイトルと目的に書かれている「ブラウザで URL を開く機能」は、サクラエディタの機能を誤認しています。 サクラエディタでいう「クリッカブルURL」とはヘルプにも書かれている通りのシンプルな機能です。
ヘルプ:クリッカブルURL(リンク先の最上部を参照) テキスト中のURLをダブルクリックすると、Windowsのシェルを介して関連付けされたアプリケーション(Webブラウザ等)にURLを渡します。
注意していただきたいのは「Webブラウザ等」とは、機能が実行された結果の一例であるという事です。 厳密に「Windowsのシェルを介して関連付けされたアプリケーション」とは、exeやbatなどWindows標準で実行可能なファイル拡張子と、Windowsの以下の設定内容を指しています。
- 設定 -> アプリ -> 既定のアプリ -> ファイルの種類ごとに既定のアプリを選ぶ
- 設定 -> アプリ -> 既定のアプリ -> プロトコルごとに既定のアプリを選ぶ
■クリッカブルURLの仕様について。 現在のサクラエディタは、初回起動時に「テキストのタイプ別設定」に「正規表現キーワード」を2つ初期登録しています。
ヘルプ:タイプ別設定 『正規表現キーワード』プロパティ(リンク先の最下部を参照) /\b[a-zA-Z]:\[\w-.\/$%~]*/k /\B\\[\w-.\/$%~]+/k
このいずれかの正規表現にマッチする文字列が「クリッカブルURL」としてサクラエディタ上でリンク表示されます。 そして、それをダブルクリックしたときに前述したWindowsの関連付け設定に従ってリンクを開く仕様になっていました。
もし問題があるとしても、仕様の根幹を変えるのではなく、初期登録する正規表現の修正を検討するべきだったと思います。
問題のカテゴリ
- 仕様の問題
- プログラムの動作上の問題
- 正式リリース版
環境情報
- サクラエディタバージョン 2.4.2
このPR見てます?
- #1702
#1708 は #1702 の改善と言ってるので、ロールバックするなら #1702 も対象になりそうです。
こういう使い方をしたいから削除された機能を元に戻して欲しい であれば理解できるかも知れません。
exeを実行する使い方はともかく、最低限ヘルプに書かれているようなシェルを通した使い方はしたいから、削除された機能を元に戻して欲しいです。
それと、CodeFactor は OS command injection の可能性を指摘しているようですが、それはあくまで「Possible = 可能性」であり「実際に攻撃することが難しい」ならツールの指摘は無視することもできます。 個人的に、この機能は利便性と危険性とのバランスの上に成り立っている機能で、本質的にはWindowsのエクスプローラやデスクトップ上に表示されているローカルファイルやショートカットをダブルクリックする事と変わらないと思っています。
関連PRをまとめてrevertするか、ドキュメント記載との差異を埋めるか、ドキュメントを直すか。
なんらかの対処が要ると思います。
元の動作が良いというユーザー向けに共通設定にチェックボックスの項目を追加するのはどうでしょうか? デフォルトではチェックが付いていない状態で良いと思います。
過去のコミット内容のロールバック要求
issueタイトルが意味不明ですね。
自分も当初はおかしなタイトルのissueをたくさん作りました。 いまになって振り返ると「これじゃ対応できない」の気持ちも少し分かります。
結局、何が困るんでしたっけ?
困りごとを正しく文章化するスキルはレアなので、 可能であれば「何に困っているか」を共有いただけるとありがたいです。
クリッカブルURLの話と少しずれますが、メニューのファイル > ブラウズの動作を確認してみました。
| バージョン | 取得元 | 動作 |
|---|---|---|
| v2.2.0.1 | https://sakura-editor.github.io/old_download.html にリンクが張られている | 現在サクラエディタで開いているファイルを関連付けしているアプリで開く |
| v2.4.2 | https://github.com/sakura-editor/sakura/releases/tag/v2.4.2 | 現在サクラエディタで開いているファイルをWebブラウザで開く |
ヘルプのブラウズの説明 link を見ると関連付けされたアプリで開くという事なので、それと一致しない挙動になっていると思います。
実際に困っているのは途中で書かせてもらった「クリッカブルURL機能」が使えなくなった事でした。 しかし、本質的な問題はこのプロジェクトに必要のないプログラム修正が加えられた事で、それを明確にしたくてこのようなタイトルにしました。
・CodeFactorの警告を消すためだけにプログラムを修正し、実害があるかどうかを検証していない。 ・サクラエディタの機能や仕様を正しく理解せずプログラム修正している。
それと「外部から見た動作が変わるようなプログラム修正」をリファクタリングと呼ぶのは止める事をおすすめします。 一般的にリファクタリングと書かれるとアプリの仕様は変わらないと思ってしまいます。
クリッカブルURLの説明 link に書かれている通りに タイプ別設定 『正規表現キーワード』プロパティ の画面で正規表現 /.*/k 色指定 URL の正規表現キーワードを追加して確認してみました。
| バージョン | 動作 |
|---|---|
| v2.2.0.1 | 関連付けしているアプリで開く。URLスキームが付いてなくても開ける。 |
| v2.4.2 | Webブラウザで開く。URLスキームが付いてないと開けない。 |
実際に困っているのは途中で書かせてもらった「クリッカブルURL機能」が使えなくなった事でした。 しかし、本質的な問題はこのプロジェクトに必要のないプログラム修正が加えられた事で、それを明確にしたくてこのようなタイトルにしました。
気持ちは伝わるのですが、他のIssueが同じようなタイトルで作成された場合の事を考えてみてください。Issue一覧画面を見た時にそういうタイトルのIssueが並んでいたら見分けが付きにくくないでしょうか?
あまりに基本的な問題だと思ったので、タイトルに結論を書くことに不自然を感じませんでした。
似たようなタイトルのissueが並んでいて区別が付かないという状況は、同じ問題が繰り返し発生しているという事になります。 今そうなる事を心配するより、将来そうならないようにプロジェクトを管理する事を考えるべきではないでしょうか。
自分がもしタイトルを付けるとしたら「ブラウズとクリッカブルURLで関連付けされたアプリケーションで開くことが出来なくなってしまっている」にします。
あまりに基本的な問題だと思ったので、タイトルに結論を書くことに不自然を感じませんでした。
正直それはちょっと性急だと思いますね。
似たようなタイトルのissueが並んでいて区別が付かないという状況は、同じ問題が繰り返し発生しているという事になります。 今そうなる事を心配するより、将来そうならないようにプロジェクトを管理する事を考えるべきではないでしょうか。
問題報告を行うIssueのタイトルはその問題の内容を表したものにしましょう、という事が私が伝えたい内容です。
なお同じ問題を扱うIssueが既に存在するのに、それに関する別のIssueを作成するというのはそれは重複 (Duplicated) になるので好ましくないです。プロジェクトによっては管理者によってチケットがCloseされます。
タイトルに結論を書くのは別に構わないと思うのですが、今のタイトルだとどのコミットに対するロールバック要求なのかが全く分からないという点で結論としても不適切です。私なら「クリッカブルURLの仕様変更に対するロールバック要求」とします。
プロジェクト運営に関する話があるならプログラム修正の話とは分けて、Discussionsなどでした方が良いのではと思います。
タイトルを修正しました。
対象を限定していなかったのは、限定すればその箇所だけ対処される予感がしたからです。 しかし本文には特定のコミットしか挙げていないので矛盾していましたね。