Add command to contact maintainer

* package.el (package-menu-mode-map): Add package-contact-maintainer.
(package--query-desc): Extract a common utility function.
(package-browse-url): Use package--query-desc.
(package-contact-maintainer): Add command.
33 jobs for feature/package+vc in 64 minutes and 38 seconds (queued for 20 seconds)
latest
Status Job ID Name Coverage
  Build Images
passed #39842
build-image-inotify

00:50:01

 
  Normal
passed #39843
test-lib-src-inotify

00:02:04

passed #39845
test-lisp-calc-inotify

00:07:53

passed #39846
test-lisp-calendar-inotify

00:03:55

passed #39847
test-lisp-cedet-inotify

00:04:46

passed #39849
test-lisp-cedet-semantic-bovine-inotify

00:03:26

passed #39848
test-lisp-cedet-semantic-inotify

00:02:15

passed #39850
test-lisp-cedet-srecode-inotify

00:02:59

passed #39852
test-lisp-emacs-lisp-eieio-tests-inotify

00:10:01

passed #39853
test-lisp-emacs-lisp-faceup-tests-inotify

00:01:41

passed #39851
test-lisp-emacs-lisp-inotify

00:09:52

passed #39854
test-lisp-emulation-inotify

00:04:02

passed #39855
test-lisp-erc-inotify

00:03:25

failed #39856
test-lisp-eshell-inotify

00:03:07

passed #39857
test-lisp-gnus-inotify

00:02:33

passed #39858
test-lisp-image-inotify

00:03:57

passed #39844
test-lisp-inotify

00:09:47

passed #39859
test-lisp-international-inotify

00:04:00

passed #39860
test-lisp-mail-inotify

00:04:01

passed #39861
test-lisp-mh-e-inotify

00:02:01

passed #39862
test-lisp-net-inotify

00:09:37

passed #39863
test-lisp-nxml-inotify

00:03:52

passed #39864
test-lisp-obsolete-inotify

00:04:16

passed #39865
test-lisp-org-inotify

00:02:23

passed #39866
test-lisp-play-inotify

00:03:09

passed #39867
test-lisp-progmodes-inotify

00:02:47

passed #39868
test-lisp-so-long-tests-inotify

00:03:15

passed #39869
test-lisp-term-inotify

00:01:43

passed #39870
test-lisp-textmodes-inotify

00:03:00

passed #39871
test-lisp-url-inotify

00:02:40

passed #39872
test-lisp-vc-inotify

00:02:41

passed #39873
test-misc-inotify

00:01:23

passed #39874
test-src-inotify

00:03:41

 
Name Stage Failure
failed
test-lisp-eshell-inotify Normal
Uploading artifacts for failed job
Uploading artifacts...
test-lisp-eshell-inotify-edd73bd0/: found 11 matching files and directories

Uploading artifacts as "archive" to coordinator... ok
id=39856 responseStatus=201 Created token=nPgrrc-y
Uploading artifacts...
test-lisp-eshell-inotify-edd73bd0/junit-test-report.xml: found 1 matching files and directories

Uploading artifacts as "junit" to coordinator... ok
id=39856 responseStatus=201 Created token=nPgrrc-y
Cleaning up project directory and file based variables
ERROR: Job failed: exit code 2