The package MonticelloPackageRenaming-Noury.1 introduces 2 new menu items into the Monticello Browser, by overriding and extending several methods in Monticello. If this code is included with Pharo, it should become part of Monticello itself. There are 4 test cases included.
Below I review the two new functionalities independently: 1. Replace Classes Prefix: This functionality is useful, however the implementation depends on the presence of the Refactoring Browser. Furthermore this functionality is already present in the Refactoring Browser (OB-Regex) in a more generic fashion. Open | Rewrite Class allows one to batch rename, batch copy and batch create a set of classes using regular expressions. 2. Rename Package: This functionality renames class categories and method protocols to match the new package name. The code also takes care of the dependencies and removing traces of the old package in the Monticello Browser. It does not depend on external functionality. There are however 3 major problems with the implementation: (1) Class extensions extinct if they do not match the package names in a case-sensitive way. PackageInfo treats class categories case-sensitive, but protocols are handled case-insensitive. (2) Packages that share the same prefix are wrongly renamed, even if PackageInfo does not consider them to be from the same package (for example Morphic and MorphicExtras). (3) The ancestry of the renamed package is not preserved, what makes merging packages across renaming impossible. Though, I don't know if such a functionality would be possible with Monticello at all? Given the number of problems I don't suggest to include these extensions for now. Cheers, Lukas -- Lukas Renggli http://www.lukas-renggli.ch _______________________________________________ Pharo-project mailing list [email protected] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
