論文の概要: Towards Better Comprehension of Breaking Changes in the NPM Ecosystem
- arxiv url: http://arxiv.org/abs/2408.14431v2
- Date: Mon, 14 Oct 2024 13:28:59 GMT
- ステータス: 処理完了
- システム内更新日: 2024-11-08 05:04:12.039080
- Title: Towards Better Comprehension of Breaking Changes in the NPM Ecosystem
- Title(参考訳): NPM生態系の破壊的変化の理解向上に向けて
- Authors: Dezhen Kong, Jiakun Liu, Lingfeng Bao, David Lo,
- Abstract要約: 我々は,NPM生態系の破壊的変化を調査するため,大規模な実証的研究を行っている。
我々は381のNPMプロジェクトから明示的に文書化された破壊的変更のデータセットを構築した。
我々は、JavaScriptとTypeScript固有の構文的破壊変化の分類と、主要な行動的破壊変化の分類を生成する。
- 参考スコア(独自算出の注目度): 12.392457751450374
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: Breaking changes cause a lot of effort to both downstream and upstream developers: downstream developers need to adapt to breaking changes and upstream developers are responsible for identifying and documenting them. In the NPM ecosystem, characterized by frequent code changes and a high tolerance for making breaking changes, the effort is larger. For better comprehension of breaking changes in the NPM ecosystem and to enhance breaking change detection tools, we conduct a large-scale empirical study to investigate breaking changes in the NPM ecosystem. We construct a dataset of explicitly documented breaking changes from 381 popular NPM projects. We find that 95.4% of the detected breaking changes can be covered by developers' documentation, and about 19% of the breaking changes cannot be detected by regression testing. Then in the process of investigating source code of our collected breaking changes, we yield a taxonomy of JavaScript and TypeScript-specific syntactic breaking changes and a taxonomy of major types of behavioral breaking changes. Additionally, we investigate the reasons why developers make breaking changes in NPM and find three major reasons, i.e., to reduce code redundancy, to improve identifier name, and to improve API design, and each category contains several sub-items. We provide actionable implications for future research, e.g., automatic naming and renaming techniques should be applied in JavaScript projects to improve identifier names, future research can try to detect more types of behavioral breaking changes. By presenting the implications, we also discuss the weakness of automatic renaming and breaking change detection approaches.
- Abstract(参考訳): 下流の開発者は、破壊的な変更に適応する必要があるし、上流の開発者はそれらを識別し、文書化する責任がある。
NPMエコシステムでは、頻繁なコード変更と破壊的な変更に対する高い耐性によって特徴づけられるが、その労力は大きい。
NPMエコシステムの破壊的変化の理解を深め,破壊的変化検出ツールを強化するため,我々はNPMエコシステムの破壊的変化を大規模に調査する。
我々は381のNPMプロジェクトから明示的に文書化された破壊的変更のデータセットを構築した。
検出された破壊的な変更の95.4%は開発者のドキュメントでカバーでき、破壊的な変更の約19%は回帰テストでは検出できない。
次に、収集した破壊的変化のソースコードを調べる過程で、JavaScriptとTypeScript固有の構文的破壊的変化の分類と、主要な行動的破壊的変化の分類が得られる。
さらに、開発者がNPMの破壊的な変更を行う理由を調査し、コードの冗長性を減らし、識別子名を改善し、API設計を改善する3つの主な理由を見つけ、それぞれのカテゴリにはいくつかのサブ項目が含まれている。
例えば、JavaScriptプロジェクトでは、識別子名を改善するために自動命名とリネーム技術が適用されるべきであり、将来の研究では、より多くのタイプの行動破壊的な変更を検出することができる。
本発表では,自動改名および変更検出手法の弱点についても論じる。
関連論文リスト
- ChangeGuard: Validating Code Changes via Pairwise Learning-Guided Execution [16.130469984234956]
ChangeGuardは、学習誘導型実行を使用して、修正された関数の実行動作を比較するアプローチである。
提案手法は,77.1%の精度で,69.5%のリコールで意味的変化を識別する。
論文 参考訳(メタデータ) (2024-10-21T15:13:32Z) - Enhancing Perception of Key Changes in Remote Sensing Image Change Captioning [49.24306593078429]
KCFI(Key Change Features and Instruction-tuned)によるリモートセンシング画像変換キャプションのための新しいフレームワークを提案する。
KCFIは、バイテンポラルリモートセンシング画像特徴を抽出するViTsエンコーダと、重要な変化領域を識別するキー特徴知覚器と、画素レベルの変化検出デコーダとを含む。
提案手法の有効性を検証するため,LEVIR-CCデータセット上のいくつかの最新の変更キャプション手法との比較を行った。
論文 参考訳(メタデータ) (2024-09-19T09:33:33Z) - Understanding Code Change with Micro-Changes [9.321152185934105]
マイクロチェンジのカタログと自動マイクロチェンジ検出器について述べる。
我々の検出器は、研究中のシステムで起きている変化の67%以上を説明できることがわかった。
論文 参考訳(メタデータ) (2024-09-16T01:47:25Z) - Language Modeling with Editable External Knowledge [90.7714362827356]
本稿では,新たな文書取得時のモデル動作を改善するERASEを提案する。
ドキュメントを追加するたびに、知識ベースで他のエントリを段階的に削除または書き直します。
7-13%(Mixtral-8x7B)と6-10%(Llama-3-8B)の精度を向上する。
論文 参考訳(メタデータ) (2024-06-17T17:59:35Z) - An Empirical Study of Token-based Micro Commits [1.4749940504074461]
ソフトウェア開発では、開発者は1回のコミットで数行変更するソースコードにメンテナンスアクティビティを頻繁に適用します。
本稿では,変更トークンに基づく小変化の一種であるマイクロコミットを定義する。
マイクロコミットは、主に単一の名前またはリテラルトークンに置き換えられており、マイクロコミットはバグを修正するために使用される可能性が高い。
論文 参考訳(メタデータ) (2024-05-15T07:52:13Z) - Segment Any Change [64.23961453159454]
本稿では、ゼロショット予測と、見えない変更タイプやデータ分布の一般化をサポートする新しいタイプの変更検出モデルを提案する。
AnyChangeは、トレーニング不要適応法、バイテンポラルラテントマッチングを通じてSAM(Se segment Any Model)上に構築されます。
また、AnyChangeのゼロショットオブジェクト中心の変更検出機能を有効にするためのポイントクエリ機構を提案する。
論文 参考訳(メタデータ) (2024-02-02T07:17:39Z) - MS-Former: Memory-Supported Transformer for Weakly Supervised Change
Detection with Patch-Level Annotations [50.79913333804232]
弱い教師付き変化検出のためのメモリ支援トランス (MS-Former) を提案する。
MS-Former は双方向注意ブロック (BAB) とパッチレベルの監視スキーム (PSS) から構成される。
3つのベンチマークデータセットの実験結果から,提案手法の有効性が示された。
論文 参考訳(メタデータ) (2023-11-16T09:57:29Z) - A Large-Scale Empirical Study on Semantic Versioning in Golang Ecosystem [38.357000816448405]
私たちはGoエコシステムで最初に大規模な実証的研究を行い、変化の破壊とその影響に関してSemVerのコンプライアンスを調査しました。
GitHubから124K TPLと532Kクライアントプログラムを含む、依存性グラフを備えた最初の大規模Goデータセットを収集しました。
論文 参考訳(メタデータ) (2023-09-06T10:33:00Z) - Do code refactorings influence the merge effort? [80.1936417993664]
複数のコントリビュータがソースコードを並行して変更して,新機能の実装やバグの修正,既存のコードの変更などを行っている。
これらの同時変更は、ソースコードの同じバージョンにマージする必要がある。
研究によると、すべてのマージの試みの10~20%が衝突を起こしており、これはプロセスを完了するために手動開発者の介入を必要とする。
論文 参考訳(メタデータ) (2023-05-10T13:24:59Z) - Editing Factual Knowledge in Language Models [51.947280241185]
本稿では,この知識を編集する手法であるKnowledgeEditorを提案する。
knowledgeeditorは計算効率が高いだけでなく、lm事前トレーニングの修正も必要としない。
2つの一般的なアーキテクチャと知識集約型タスクで、KnowledgeEditorの有効性を示します。
論文 参考訳(メタデータ) (2021-04-16T15:24:42Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。