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
>
>
>

Reply via email to