We have several projects in the Buenos Aires Smalltalk group that can match (we provide in fact a migration package when breaking backward compatibility including transformation rules so you have a human benchmark to compare). Here the ones with more history and releases:
- https://github.com/ba-st/Willow - https://github.com/ba-st/Superluminal - https://github.com/ba-st/Stargate - https://github.com/ba-st/Boardwalk - https://github.com/ba-st/Hyperspace - https://github.com/ba-st/Buoy Releases with changes in the major version are the ones breaking backward compatibility. And if you want to test something with a massive amount of code try https://github.com/ba-st/HighchartsSt. It usually breaks all the tools given the size of the codebase. Gabriel On Tue, Apr 6, 2021 at 9:50 AM 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 > > >