This sounds like a very nice tool. Just a word about this particular example:
Collection >> includesAllOf: values self deprecated: ‘Use #includesAll: instead’ transformWith: ‘`@rec includesAllOf: `@arg’ -> ‘`@rec includesAll: `@arg’. ^ self includesAll: values Surely this is back to front? #includesAllOf: reads well and is compatible with GNU Smalltalk (and classic Squeak), while #includesAll: doesn't work in most of the Smalltalks I have access to. My own library has {includes,excludes}{All,Any,None,One}Of: which wouldn't read nearly so well without "Of". On Wed, 7 Apr 2021 at 00:50, Oleksandr Zaitsev <olk.zayt...@gmail.com> wrote: > Hello, > > I need your help to recommend some projects that I can use in my study of > transforming deprecations. > > As many of you know, Pharo supports a very powerful concept of > "transforming" deprecations. You can deprecate a method, providing a > transformation rule. Then when a client application calls the deprecated > method, the call-site will be automatically rewritten to use the new API. > Here is an example of a transforming deprecation: > > Collection >> includesAllOf: values > self > deprecated: ‘Use #includesAll: instead’ > transformWith: ‘`@rec includesAllOf: `@arg’ -> > ‘`@rec includesAll: `@arg’. > > ^ self includesAll: values > > > You can read more about transforming deprecations in my blog post: > https://blog.oleks.fr/deprewriter > > I am working on a tool that can analyse the commit history of a project > and recommend deprecations and transformation rules that can be inserted > before the release. It works like this: > > 1. Collect all commits between two releases of a project > 2. Mine those commits to identify method call replacements (deletions and > additions) that happen frequently > 3. Infer the mapping between the methods of the old and new API > 4. Recommend deprecations and generate transformation rules > > I have validated my approach on Pharo, Moose, Pillar, Famix, and DataFrame > projects. > > Now I am looking for other projects that could benefit from recommended > deprecations and could be used in my study. > > *Required:* > - open source project with accessible commit history (e.g. public git > repository) > - written in Pharo (although if you know projects in other languages that > could be interesting for my study, please let me know about them as well) > > *Prefered:* > - ongoing development > - multiple releases > - has users (other projects that depend on it) > > If you have some projects in mind, please let me know about them! > > And if you are interested in this study and want to learn more, don't > hesitate to contact me by email. > > Oleksandr > > >