Bug(バグ) #2397
完了プロジェクトルートに同梱されているsymfonyファイルを誤って更新している
100%
説明
内容¶
#673 「update symfony to 1.4.3 (同梱するsymfonyのバージョンを1.4.3に上げる)」によりsymfonyのバージョンアップが行われたが,この変更によってプロジェクトルートに存在するsymfonyファイルを更新されている.
https://github.com/openpne/OpenPNE3/commit/02b9af44d8ef1679d4d618b4d7e3d9637649faab#diff-107
しかし, http://redmine.openpne.jp/issues/1334#note-5 の調査結果により本来更新する必要がないはずが更新が行われていると考えられる.
このsymfonyファイルを適切なものに置き換える必要がある.
確認方法¶
- 空のプロジェクト内でsymfony-1.4.3のプロジェクトを作成タスクを行う
- 生成されたプロジェクトルートのsymfonyファイルを確認
- #673 における変更されたプロジェクトルートのsymfonyファイルに差異が存在していることを確認
原因¶
#623 によって誤った変更が行われている.具体的には,lib/vendor/symfony/data/bin/symfonyとプロジェクトルートに生成されるsymfonyは別であるが,lib/vendor/symfony/data/bin/symfonyのものがOpenPNEのプロジェクトルートに設置されている.
修正方針¶
対象ファイルを以下の内容のものに置き換える.
#!/usr/bin/env php <?php /* * This file is part of the symfony package. * (c) Fabien Potencier <fabien.potencier@symfony-project.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ chdir(dirname(__FILE__)); require_once(dirname(__FILE__).'/config/ProjectConfiguration.class.php'); include(sfCoreAutoload::getInstance()->getBaseDir().'/command/cli.php');
また,その他ファイルについても誤った更新が行われているかどうかを確認する.
確認バージョン¶
OpenPNE master, 3.6beta13, 3.4.12.1
ただし3.4.12.1は #1466 の修正により変更が加えられている.
補足¶
本チケットの修正により #1334 の問題も解決できると思われる.
Yuya Watanabe さんが13年以上前に更新
確認方法¶
http://redmine.openpne.jp/issues/1334#note-5 より抜粋および追加.
- symfonyのプロジェクト生成タスクを実行
- OpenPNE3のソースコードを取得
- 1および2において得られたsymfonyファイルの差異を確認
mkdir project cd project mkdir lib mkdir lib/vendor cd lib/vendor wget http://www.symfony-project.org/get/symfony-1.4.3.zip unzip symfony-1.4.3.zip ln -s symfony-1.4.3 symfony cd ../.. ./lib/vendor/symfony/data/bin/symfony generate:project project cd .. git clone https://github.com/openpne/OpenPNE3.git diff project/symfony OpenPNE3/symfony
出力結果
12,14c12,37 < chdir(dirname(__FILE__)); < require_once(dirname(__FILE__).'/config/ProjectConfiguration.class.php'); < include(sfCoreAutoload::getInstance()->getBaseDir().'/command/cli.php'); --- > // project exists? > if (file_exists('config/ProjectConfiguration.class.php')) > { > require_once('config/ProjectConfiguration.class.php'); > $dir = sfCoreAutoload::getInstance()->getBaseDir(); > } > else > { > if (is_readable(dirname(__FILE__).'/../../lib/autoload/sfCoreAutoload.class.php')) > { > // SVN > $dir = realpath(dirname(__FILE__).'/../../lib'); > } > else > { > // PEAR > $dir = '@PEAR-DIR@/symfony'; > > if (!is_dir($dir)) > { > throw new Exception('Unable to find symfony libraries'); > } > } > } > > include($dir.'/command/cli.php');
Yuya Watanabe さんが13年以上前に更新
OpenPNE3.7.0-devに同梱されているsymfony-1.4.6で生成されたプロジェクトと比較をし,OpenPNE側で手を加えられていない部分としてsymfonyファイル以外に差異が存在してないことを確認しました.symfonyファイルのみを差し替えます.
wa ta さんが13年以上前に更新
- ステータス を Accepted(着手) から Pending Review(レビュー待ち) に変更
- 進捗率 を 0 から 50 に変更
更新履歴 0734d849b39112b4c325df965885776de5c74fbc で適用されました。
Kousuke Ebihara さんが13年以上前に更新
- ステータス を Pending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
- 進捗率 を 50 から 70 に変更
Shouta Kashiwagi さんがほぼ13年前に更新
- ステータス を Pending Testing(テスト待ち) から Fixed(完了) に変更
- 進捗率 を 70 から 100 に変更
- 3.6 で発生するか を Yes から Unknown (未調査) に変更
- 3.4 で発生するか を Unknown (未調査) にセット
テストOKです.