Hi Oleksandr, Nice project! I don't have a project recommendation but maybe my project can be useful to you. One of the functionalities allows you to apply multiple transformation rules in a custom set of classes (or all classes in Pharo image).
https://github.com/jordanmontt/RewriteToolsSet ________________________________ De: Oleksandr Zaitsev <olk.zayt...@gmail.com> Enviado: martes, 6 de abril de 2021 08:50 Para: Any question about pharo is welcome <pharo-users@lists.pharo.org> Cc: Stéphane Ducasse <stephane.duca...@inria.fr>; Nicolas Anquetil <nicolas.anque...@inria.fr>; arnaud.thiefa...@arolla.fr <arnaud.thiefa...@arolla.fr> Asunto: [Pharo-users] Help Needed: Looking for projects to use in a study of transforming deprecations 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<https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fblog.oleks.fr%2Fdeprewriter&data=04%7C01%7C%7C57960772ad9b4c187f6d08d8f8fa9389%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637533102389223343%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=GAN8yRcVVB%2BEhC3HZnVIEP8JFoS2dFPv%2BfEPlI6PQu8%3D&reserved=0> 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