This is going to be a blog post about coding up a much requested feature by the community.
What did I do this week?
This week my mentor asked me to work on an interesting feature which was requested by the community. The issue can be found here. I have sent three patches to Phabricator in which two of them have been merged. You can find the patches here:
: D6709 config: add --all flag to show all known configs
: D6712 config: fix defaultvalue template keyword
: D6704 config: add defaultvalue template keyword
Mercurial has a command called `showconfig` which by default without any flags shows all the config items as set by the hgrc. But, I had to add a flag to show all config items in the config registrar. So, I added an `--all` flag to show all known config items. Also, I added a new template keyword called `defaultvalue` to show the default value of the config item. Until now, nothing was shown on trying to see a default value of a config item which has not set a value by the user. Community was much interested in this and Yuja had suggested the UX. For the `--all` flag to work, I had to walk in such a way that I am digging up the registrar other than just user config options. I had to skip the items which had dynamic default values.
What is coming up next?
I haven't decided upon the exact feature on work on next week. My mentor asked me to select one of either the bug tracker or the WeShouldDoThat page depending upon the community interest.
Did you get stuck anywhere?
I had a starting trouble to find out a way to access the items from the config registrar. Then, my mentor Pulkit told me about a variable called `self._knownconfigs`. That was a turning point. The rest of the task happened really fast.