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