Project Goals
In the initial proposal, the list of project’s goals were:
- Improving code critiques descriptions.
- Updating the source code comparison view for a split interface.
- Fixing the “automatically resolve this issue” option to follow a sequence from code selection for a better user experience.
- Enhancing code critiques global browser.
- Building, testing and integrating profiles. The structure and classification will be coordinated with experienced users.
Changes to the Proposal
CriticBrowser uses a deprecated version of Spec. Therefore, implementing the new enhancements directly was not feasible without first migrating the CriticBrowser to the Spec2 version. I created my own repository to do the migrations as Pharo10 was in release at the moment; Therefore, the last project goal was replaced by CriticBrowser migration. After these changes, the rest of project goals were done.
Contributions Timeline
-
Work package 1 - Improving Critic Description
The goal of this work package was to review and improve all the code critiques and rules descriptions. There were cases where meaningful descriptions were not provided or updated, according to the logic of the rule issue#9450, issue#9308; As well as others, they didn’t need it issue#9312, issue#9310, issue#9309.
-
Work package 2— Critic Browser migration
I created my own repository named Tool-CritiqueBrowser to do migration and then work on improvements. The following image is one of the classes in the package Tool-CriticBrowser which inherits from the deprecated ComposablePresenter.
-
Work package 3 — Enhancing code critiques global browser
Updating UI for selecting packages and rules
I've updated the user interface for selecting packages and rules. This to make it more intuitive for anyone who wants to use it. Some examples in detail are in the enhancements section.
-
Work package 3 — Enhancing code critiques global browser
Refining Critic Browser for ① quality rules and ② rule's critiques
I improved the flow of the tool to make it more intuitive for anyone who wants to use it. These changes are notable mainly in ① quality rules and ② rule critiques. Some examples in detail are in the enhancements section.
-
Work package 4 - Enhancing changes browser
I've improved the Changes Browser view. This view is called when a critique has the "automatically resolve this issue" option. The new version has the option to show the changes in unified view and split view.
-
Work package 5 - New version of Critic Browser and Changes Browser in Pharo10!
The new version brings many improvements in user interface and implementation. All of these are summarized in issue #9773. After some improvements, the tool was integrated to the repository NewTools of Pharo issue #289.
Conclusion
In short, this summer was focused on fixing bugs, updating interfaces and adding new features for the Critic Browser and Changes Browser. These changes will help Pharo developers to not have to inspect method by method to see if there are critiques in it and fix them. In addition, enhancing the "automatically resolve this issue" option. Nevertheless, there are still quite a few things pending that I hope to work on.
I have also considerably improved my knowledge of describing user interfaces with Spec and defining quality rules with Renraku. Also, I feel much more comfortable programming in Pharo.
After GSoC'21
Critiques, rules, and interfaces are a big area that are actively developed and maintained. I plan on continuing to contribute and learn of the Pharo projects, and hope to be an active member of the open source community.