Keyword Bookmarks for OpenStack Developers

As an OpenStack developer, I spend a lot of time looking at web sites for code review, project status, bug reports, the wiki, and other online collaboration tools. As a productivity boost, I’ve set up “keyword bookmarks” for all of the most commonly accessed tools, turning my browser’s input field into a command-line-like short-cut to jump directly to the page I want, without hunting around in a long list of links.

What are “keyword bookmarks”?

Keyword bookmarks are browser bookmarks set up as templates that can be triggered by typing a word and an argument in the browser input field. For example, I have a keyword bookmark “rev” configured to take the name of an OpenStack project as argument and launch a gerrit query for reviews for the project. So I type “rev openstack/requirements” and am directed to https://review.openstack.org/#/q/project:openstack%2Frequirements+is:open,n,z

There’s more information about how to configure keyword bookmarks in your favorite browser at the end of the post.

Useful Bookmarks

The bookmark I use most often is rev. Configured to with the
template https://review.openstack.org/#/q/project:%s+is:open,n,z,
it shows me a list of all of the open reviews for the project given as the argument. I tend to move between projects frequently, either looking at different Oslo libraries or helping with cross-project work. Having a quick way to find open reviews makes this much easier.

I frequently need to send someone a link to a source example, either to point out where they might find something to answer their question or where a change we’re discussing would need to be made. For that I use cgit with the template http://git.openstack.org/cgit/%s to jump directly to the official source repository for the project. There are copies of the code synced to github, too, but I prefer going directly to the canonical repository.

As Oslo PTL and now part of the release team, I often end up reviewing the Launchpad page for a project to ensure the milestones are up to date. For that I use lp bound to https://launchpad.net/%s. Typing lp oslo.config takes me to the project page, and lp ~oslo-drivers takes me to the team page.

To navigate directly to a bug in Launchpad, I bind bug to
https://bugs.launchpad.net/%s. Most of the time the openstack bot on IRC reports titles and links when bugs are mentioned in official OpenStack channels, but sometimes a bug number is mentioned in a way that doesn’t trigger the bot.

Most of OpenStack is written in Python, so the Python documentation is good to have close to hand. For that I configure pydoc to launch a page using the template https://docs.python.org/2/library/%s.html, so I can provide the name of a standard library module and go directly to its documentation.

If I need a concrete example of using one of the standard library modules, pymotw and the module name converts http://pymotw.com/2/%s to a link directly to the Python Module of the Week page for the module.

When I’m working with an OpenStack package and need its developer documentation, osdocs and the project name combined with http://docs.openstack.org/developer/%s take me right there.

While reviewing dependency changes for OpenStack (rev openstack/requirements), I will often want to look up details of new packages being added to the global requirements list. I have pypi mapped to https://pypi.python.org/pypi/%s so I can start with the Python Package Index home page for the project to find its documentation, bug tracker, and support details.

Keyword Template
rev https://review.openstack.org/#/q/project:%s+is:open,n,z
cgit http://git.openstack.org/cgit/%s
lp https://launchpad.net/%s
bug https://bugs.launchpad.net/%s
pydoc https://docs.python.org/2/library/%s.html
pymotw http://pymotw.com/2/%s
osdocs http://docs.openstack.org/developer/%s
pypi https://pypi.python.org/pypi/%s

Browser Support

The steps for setting up keyword bookmarks depend on which browser you use.

Firefox has native support for keyword bookmarks through the bookmark editor. Navigate to a representative page manually, then create a bookmark. Edit the new bookmark to add a “keyword” to trigger it, and replace part of the search query with %s.

Chrome implements keyword bookmarks as search engines instead of normal bookmarks. Under settings, click “Manage Search Engines”. Create a new “engine” by giving a name, a keyword to trigger it, and pasting in a URL. Add %s somewhere in the URL to insert the search term.

Safari requires the KeySearch extension, available through the Extensions tab of the preferences dialog. After it’s installed, click the magnifying glass icon in the toolbar, click the gear icon, then select “Edit Keywords”. Unlike the other implementations, KeySearch uses @@@ for the substitution value in URLs.

See also