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.
The bookmark I use most often is
rev. Configured to with the
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
cgit with the template
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
lp oslo.config takes me to the project page, and
takes me to the team page.
To navigate directly to a bug in Launchpad, I bind
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
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
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
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
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.
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
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
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
@@@ for the substitution value in URLs.