DEV Community

Cover image for Delving into open source territory with Google: An Investigation
Soham Thaker
Soham Thaker

Posted on • Updated on

Delving into open source territory with Google: An Investigation

Project repo:

blockly-samples by Google Open Source.

Project description:

Blockly by Google Open Source is a JavaScript library for building visual programming editor, which looks something like this,

blockly sample

The project I worked on is called blockly-samples which is a supplementary project to the Blockly project. This project holds code for Plugins which are self-contained pieces of code that add functionality to Blockly. Plugins can add fields, define themes, create renderers, and much more, Examples which are self-contained sample projects demonstrating techniques on how to use Blockly's features and extend the Blockly library and Codelabs which are interactive tutorials demonstrating how to use and customize Blockly.

Issue

1923

PR

N/A

Code Fixes

For this issue, I didn't file a PR even though I was planning to do it originally but the dynamics of the issue changed after I started working on it. Even though I didn't file a PR, I still thought to include this issue as part of the 0.3 release because I spent time and effort on it to test the solution for project maintainers.

I worked on a plugin called workspace-minimap for this issue. You can find its codebase here and it's interactive plugin demo here. A workspace-minimap is a minimap that shows the entire workspace on a tiny map located at the top-right of the workspace. It provides improved navigation and organization within a workspace. A workspace-minimap looks like this,

Minimap mimics the entire workspace. Certain blocks on a workspace can have comments on them. For example function blocks,

function block

When a user opens the comment section from a block present in the workspace and edits it, it won't update the minimap comments in real-time. So the user has to refresh the page to see the updated comments on minimap. Then when they click on the comments button on the blocks present on the minimap it'll show the comments but, they're in read-only mode, which I'm assuming they shouldn't be. Users should be allowed to edit the comments from the minimap as well, as per my understanding from the description attached on the issue. The project maintainers mentioned that the minimap isn't a perfect impression of the workspace so opening the comments should be disabled from minimap altogether.

Since I was new to the codebase, it was hard for me to figure out what they asked the contributor to do to fix the issue. I asked them to give me more information on how to disable the comments feature on minimap since I couldn't decipher the original explanation mentioned to resolve the issue. The description mentioned modify the minimap workspace config to set comments: false which didn't make sense to me since I looked for a config file that is possibly setting config options for the minimap, but that wasn’t the case.

They replied by pointing me to the perfect spot to look for and what to edit to fix the issue. And I went on a mission to fix this bug.

It was a simple fix, by adding comments: false to the workspace-minimap configuration object which helps build the minimap,

minimap configuration

After adding the code changes, I re-ran the reproduction steps only to figure out that the changes I made didn't do anything. At which point I made a video explanation (will download a video file, upon clicking the link) to explain my investigation on this issue.

After a bit of testing on their end, the project maintainer replied saying
they were under the wrong impression of what these code changes do. These changes merely disable the users from creating/editing the comments and do not entirely disable comments from being constructed programmatically.

At that point, I concluded working on this issue by providing an ending remark since they wanted to run this issue through their triage team.

It was a good exercise for me regardless since my main goals from the 0.2 to 0.3 release were to interface more with code that is part of a larger project and facilitate healthy and fruitful conversations with the maintainers, among others as mentioned in first blog of this series within the section called "Measuring progress from 0.2 release".

Top comments (0)