./mach try fuzzy: A Try Syntax Alternative

Andrew Halberstadt ahalberstadt at mozilla.com
Wed Aug 2 14:30:32 UTC 2017


I'm pleased to announce an alternative method for scheduling tasks on try
is now landed on mozilla-central. It makes use of the awesome fzf [1]
project to filter down the list of all task labels with a fuzzy matching
algorithm.

It works both with mercurial or git. If using mercurial, you'll need to
make sure you're updated to the latest version-control-tools:

$ ./mach mercurial-setup --update

To push to try, run:

$ ./mach try fuzzy

This will prompt you to install fzf. After bootstrapping is complete, it'll
generate the task list. This takes around ~10-20 seconds, but will be
cached so subsequent invocations won't incur this penalty again.

Now you'll be in the fzf interface. Basic usage is to start typing to
filter down the task list. You can use the arrow keys to move the cursor up
or down, <tab> to select a task, <ctrl-a> to select all tasks and <enter>
to schedule the current selection (and their dependencies) on try.

There are a ton more keyboard shortcuts and features you can use to tweak
fzf just to your liking. For extra help, see:

$ ./mach try fuzzy --help
or
$ man fzf

For a demo and more information on implementation details, see:
https://ahal.ca/blog/2017/mach-try-fuzzy/

I expect this to work on all platforms including Windows for both mercurial
(with push-to-try) and git (with git-cinnabar). But it's a new tool without
a lot of real world testing, so a few bumps are likely. If you find any
bugs or bad UX, please file a bug under Testing :: General and let me know
(we should find a better component for this).

Cheers,
Andrew

p.s When running the fzf bootstrap, you'll be prompted to install some
shell extensions. These aren't necessary for |mach try fuzzy| to work so
feel free to hit 'N' at each prompt. That being said, the fzf shell
extensions are awesome. I highly encourage you to look into setting it up
for your shell. The fzf vim plugin is also great. See the project [1] for
more details.

[1] https://github.com/junegunn/fzf
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/firefox-dev/attachments/20170802/ea7edec8/attachment.html>


More information about the firefox-dev mailing list