Coding period: week #4

navaneethsuresh
Published: 06/21/2019

I had already done the things planned in this week last week itself. This is going to be a blog post about how I still utilized this time to do things which was worth investing time.

 

What did I do this week?

I was waiting for reviews for the first few days. I was contacting my mentor consistently and he told me that he'll pick something for me to work on from the sample space outside the project idea. We also had a video chat in which he told me things regarding my project which I can work on near future. As promised, he gave me a list of things to work on from which I can select whatever I like to work on. Here are those things:

  • Moving shelve extension to core.
  • Moving show extension to core.
  • Improvements around bookmarks.
  • Functionality to exchange shelves.

All of them were interesting to me. So, I decided to work on everything starting from the first one. It was relatively easy. All I had to do was to make sure that all tests are running successfully after moving shelve code from `hgext/shelve.py` to `mercurial/commands.py`. I sent a patch to phabricator regarding that. It can be found here[1].

 

What is coming up next?

Things coming up next week will mainly depend upon the reviews of my this week's patch. If there is time, I plan to extend the functionality of storing unresolved mergestate to multistep commands like `rebase`, `histedit`, etc.

 

Did you get stuck anywhere?

Some of the tests were failing when I moved shelve to core. One of the interesting ones was `test-check-module-imports.t`. I realized that I was importing `rebase` extension for `shelve` in `commands.py` and this `rebase` was itself depend on `commands`. This resulted in an import cycle. Technically, `shelve` will work. But, this `test-check-module-imports.t` will fail as it's not a good programming practice. I fixed this by only importing `rebase` whenever necessary inside the helper functions which shelve was depend upon. Other test fixes were relatively simple.

DJDT

Versions

Time

Settings from gsoc.settings

Headers

Request

SQL queries from 1 connection

Static files (2312 found, 3 used)

Templates (11 rendered)

Cache calls from 1 backend

Signals

Log messages