Week 5 - CircuitVerse@GSOC'23

I am exploring the world of technology and playing with them. Like a kid, breaking them and modiy them.
Search for a command to run...

I am exploring the world of technology and playing with them. Like a kid, breaking them and modiy them.
No comments yet. Be the first to comment.
This week was interesting and frustrating at the same time. The maximum time went to explore solutions and resolving the issues with specific library packages. This time everything does not go as planned. The scheduled task for this week was Write R...
From last year (July~August), I am working on an open source PaaS to deploy and manage applications easily on any VPS. I have a motive to create a solution which you once setup on your cloud, you will get same kind of experience like other platforms ...

This blog is coming after a long time [almost 3 weeks]. Throughout this week, the main tasks involved were - Update the docker setup to make it more convenient Test the docker setup in all OS [Linux, Mac, Windows] Rewrite Documentation Revamp Do...

Finally, On July 14, I received this email about passing the midterm evaluation 🎉🎉. You can check out the blog on the phase 1 report here: https://blog.circuitverse.org/posts/tanmoy_sarkar_phase_1_report/ You should check other blogs here: https:/...

At the start, this week's main focus was completing the RBS integration. But that does not go well due to having issues with rbs_rails Gem. So I raised PR in rbs_rails the gem repository about the issue to get some hints from the maintainers. You can...

This week was more on learning rather than coding.
The main objectives of this week were
Learn RBS to start working on it
Generate code coverage report and write the missing unit-tests
Split Solargraph PR to small PRs for better review
At first, I thought RBS was pretty straightforward, and I needed to write the type signature of defined functions. But that's not enough.
We know Rails use the metaprogramming concept hugely. So it's essential to have some extra type signatures in ActiveModel, ApplicationRecord, and Controllers.
But, I found a much easier way for this at last.
We can generate an untyped version of the *.rbs file for an *rb file
bundle exec rbs prototype rb <ruby_file_path> > <output_rbs_file_path>
After the *rbs file is generated, we can edit the argument type and return type to make it works.
In the coming weeks, I think to complete writing rbs annotations for the codebase.
As I was learning RBS, I focused on making some active contributions. So picked the next task -> writing unit test for missing code coverage.
I need first to analyze which unit-test cases are missing. I use simplecov with HTMLFormatter which generates coverage reports as HTML.

From the report, It's nice that most of the code has unit tests, and a few codes have only missing tests.
Created this issue to have a track -> CircuitVerse/CircuitVerse#3817
This issue has all the linked PRs
This rspec-rails gem has this great documentation https://rspec.info/features/6-0/rspec-rails/controller-specs/, and it makes the task easier.
Last week, I finalized solargraph-integration PR CircuitVerse/CircuitVerse#3766

See the changes in the PR, it's hard to review this large PR.
So my mentor suggested splitting this PR into smaller PRs. The main problem with smaller PRs was - We usually do a checkout from the master/main branch to do the changes. But in this case, I need the previous PR's file merged before moving. It's not practical as maintainers will do reviews in their free time and there will be a long waiting time. So found a better way.
Checkout from master/main branch to branch_A
Do the changes in branch_A and raise Pull Request for changes in branch_A
Now, Checkout from branch_A to branch_B
Do the changes in branch_B and raise Pull Request for changes in branch_B
Do this as many times as we need .......
After merging PR_A, we need to update branch_B against the master/main branch, which will make PR_B small. Do this until all PRs merge is completed.
We need to make sure that the PR's merged in the same order at the time of raising PR, else merge conflict can be arised
Here is the Issue, where I have listed all the PRs - CircuitVerse/CircuitVerse#3761
That's all for this week. Subscribe to the newsletter for more updates.