diff --git a/lib/spack/spack/test/url_parse.py b/lib/spack/spack/test/url_parse.py index 1131d2debc62b9ea4503e1ab6973d625cf23d426..65b49faaa1d51f299b3c5c694891ca7357b5c489 100644 --- a/lib/spack/spack/test/url_parse.py +++ b/lib/spack/spack/test/url_parse.py @@ -340,3 +340,8 @@ def test_nco_version(self): self.check( 'nco', '4.6.3-alpha04', 'https://github.com/nco/nco/archive/4.6.3-alpha04.tar.gz') + + def test_yorick_version(self): + self.check( + 'yorick', '2_2_04', + 'https://github.com/dhmunro/yorick/archive/y_2_2_04.tar.gz') diff --git a/lib/spack/spack/url.py b/lib/spack/spack/url.py index 6921770f6c1dce6f7955f7c57c1a3094fcbe23bf..aa3867b792fe8c86d3a991e88edcf2f59fa39161 100644 --- a/lib/spack/spack/url.py +++ b/lib/spack/spack/url.py @@ -188,6 +188,10 @@ def parse_version_offset(path, debug=False): # e.g. https://github.com/petdance/ack/tarball/1.93_02 (r'github.com/.+/(?:zip|tar)ball/v?((\d+\.)+\d+_(\d+))$', path), + # Yorick is very special. + # e.g. https://github.com/dhmunro/yorick/archive/y_2_2_04.tar.gz + (r'github.com/[^/]+/yorick/archive/y_(\d+(?:_\d+)*)$', path), + # e.g. https://github.com/hpc/lwgrp/archive/v1.0.1.tar.gz (r'github.com/[^/]+/[^/]+/archive/v?(\w+(?:[.-]\w+)*)$', path),