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

Reply via email to