Repository: conda/conda

Issue:
repo.continuum.io is transitioning to repo.anaconda.com
There is currently no plan to stop service at repo.continuum.io.  However, at some point in the distant future, repo.continuum.io might redirect to repo.anaconda.com.

This issue tracks the change for the `defaults` channel urls from repo.continuum.io to repo.anaconda.com.


Discussion:

Resolving patch:
diff --git a/conda/base/constants.py b/conda/base/constants.py
--- a/conda/base/constants.py
+++ b/conda/base/constants.py
@@ -64,18 +64,18 @@
 
 
 DEFAULT_CHANNELS_UNIX = (
-    'https://repo.continuum.io/pkgs/main',
-    'https://repo.continuum.io/pkgs/free',
-    'https://repo.continuum.io/pkgs/r',
-    'https://repo.continuum.io/pkgs/pro',
+    'https://repo.anaconda.com/pkgs/main',
+    'https://repo.anaconda.com/pkgs/free',
+    'https://repo.anaconda.com/pkgs/r',
+    'https://repo.anaconda.com/pkgs/pro',
 )
 
 DEFAULT_CHANNELS_WIN = (
-    'https://repo.continuum.io/pkgs/main',
-    'https://repo.continuum.io/pkgs/free',
-    'https://repo.continuum.io/pkgs/r',
-    'https://repo.continuum.io/pkgs/pro',
-    'https://repo.continuum.io/pkgs/msys2',
+    'https://repo.anaconda.com/pkgs/main',
+    'https://repo.anaconda.com/pkgs/free',
+    'https://repo.anaconda.com/pkgs/r',
+    'https://repo.anaconda.com/pkgs/pro',
+    'https://repo.anaconda.com/pkgs/msys2',
 )
 
 # use the bool(sys.platform == "win32") definition here so we don't import .compat.on_win
diff --git a/conda/core/subdir_data.py b/conda/core/subdir_data.py
--- a/conda/core/subdir_data.py
+++ b/conda/core/subdir_data.py
@@ -390,7 +390,7 @@ def fetch_repodata_remote_request(url, etag, mod_stamp):
     if mod_stamp:
         headers["If-Modified-Since"] = mod_stamp
 
-    if 'repo.continuum.io' in url:
+    if 'repo.anaconda.com' in url:
         filename = 'repodata.json.bz2'
         headers['Accept-Encoding'] = 'identity'
     else:
diff --git a/conda/models/channel.py b/conda/models/channel.py
--- a/conda/models/channel.py
+++ b/conda/models/channel.py
@@ -114,7 +114,7 @@ def from_value(value):
             return Channel.from_url(value)
         else:
             # at this point assume we don't have a bare (non-scheme) url
-            #   e.g. this would be bad:  repo.continuum.io/pkgs/free
+            #   e.g. this would be bad:  repo.anaconda.com/pkgs/free
             _stripped, platform = split_platform(value, context.known_subdirs)
             if _stripped in context.custom_multichannels:
                 return MultiChannel(_stripped, context.custom_multichannels[_stripped], platform)


Test patch:
diff --git a/tests/build-index2-json.py b/tests/build-index2-json.py
--- a/tests/build-index2-json.py
+++ b/tests/build-index2-json.py
@@ -3,7 +3,7 @@
 
 
 def main():
-    r1 = requests.get('https://repo.continuum.io/pkgs/free/linux-64/repodata.json')
+    r1 = requests.get('https://repo.anaconda.com/pkgs/free/linux-64/repodata.json')
     r1.raise_for_status()
     r2 = requests.get('https://conda.anaconda.org/conda-test/noarch/repodata.json')
     r2.raise_for_status()
diff --git a/tests/build-index4-json.py b/tests/build-index4-json.py
--- a/tests/build-index4-json.py
+++ b/tests/build-index4-json.py
@@ -3,7 +3,7 @@
 
 
 def main():
-    r1 = requests.get('https://repo.continuum.io/pkgs/main/linux-64/repodata.json')
+    r1 = requests.get('https://repo.anaconda.com/pkgs/main/linux-64/repodata.json')
     r1.raise_for_status()
 
     r1json = r1.json()
diff --git a/tests/cli/test_config.py b/tests/cli/test_config.py
--- a/tests/cli/test_config.py
+++ b/tests/cli/test_config.py
@@ -22,7 +22,7 @@
 #     pass
 
 # unset CIO_TEST.  This is a Continuum-internal variable that draws packages from an internal server instead of
-#     repo.continuum.io
+#     repo.anaconda.com
 
 @contextmanager
 def make_temp_condarc(value=None):
diff --git a/tests/core/test_index.py b/tests/core/test_index.py
--- a/tests/core/test_index.py
+++ b/tests/core/test_index.py
@@ -36,7 +36,7 @@ def test_check_whitelist():
             get_index(("conda-canary",))
 
         with pytest.raises(OperationNotAllowed):
-            get_index(("https://repo.continuum.io/pkgs/denied",))
+            get_index(("https://repo.anaconda.com/pkgs/denied",))
 
         check_whitelist(("defaults",))
         check_whitelist((DEFAULT_CHANNELS[0], DEFAULT_CHANNELS[1]))
diff --git a/tests/core/test_repodata.py b/tests/core/test_repodata.py
--- a/tests/core/test_repodata.py
+++ b/tests/core/test_repodata.py
@@ -35,7 +35,7 @@ def test_get_index_no_platform_with_offline_cache(self):
         with env_var('CONDA_REPODATA_TIMEOUT_SECS', '0', reset_context):
             with patch.object(conda.core.subdir_data, 'read_mod_and_etag') as read_mod_and_etag:
                 read_mod_and_etag.return_value = {}
-                channel_urls = ('https://repo.continuum.io/pkgs/pro',)
+                channel_urls = ('https://repo.anaconda.com/pkgs/pro',)
                 with env_var('CONDA_REPODATA_TIMEOUT_SECS', '0', reset_context):
                     this_platform = context.subdir
                     index = get_index(channel_urls=channel_urls, prepend=False)
@@ -91,7 +91,7 @@ def test_read_mod_and_etag_mod_only(self):
     def test_read_mod_and_etag_etag_only(self):
         etag_only_str = """
         {
-          "_url": "https://repo.continuum.io/pkgs/r/noarch",
+          "_url": "https://repo.anaconda.com/pkgs/r/noarch",
           "info": {},
           "_etag": "\"569c0ecb-48\"",
           "packages": {}
@@ -107,7 +107,7 @@ def test_read_mod_and_etag_etag_mod(self):
         {
           "_etag": "\"569c0ecb-48\"",
           "_mod": "Sun, 17 Jan 2016 21:59:39 GMT",
-          "_url": "https://repo.continuum.io/pkgs/r/noarch",
+          "_url": "https://repo.anaconda.com/pkgs/r/noarch",
           "info": {},
           "packages": {}
         }
@@ -121,7 +121,7 @@ def test_read_mod_and_etag_mod_etag(self):
         mod_etag_str = """
         {
           "_mod": "Sun, 17 Jan 2016 21:59:39 GMT",
-          "_url": "https://repo.continuum.io/pkgs/r/noarch",
+          "_url": "https://repo.anaconda.com/pkgs/r/noarch",
           "info": {},
           "_etag": "\"569c0ecb-48\"",
           "packages": {}
@@ -132,7 +132,7 @@ def test_read_mod_and_etag_mod_etag(self):
             assert mod_etag_dict["_mod"] == "Sun, 17 Jan 2016 21:59:39 GMT"
             assert mod_etag_dict["_etag"] == "\"569c0ecb-48\""
 
-    def test_cache_fn_url(self):
+    def test_cache_fn_url_repo_continuum_io(self):
         hash1 = cache_fn_url("http://repo.continuum.io/pkgs/free/osx-64/")
         hash2 = cache_fn_url("http://repo.continuum.io/pkgs/free/osx-64")
         assert "aa99d924.json" == hash1 == hash2
@@ -147,6 +147,21 @@ def test_cache_fn_url(self):
         hash6 = cache_fn_url("https://repo.continuum.io/pkgs/r/osx-64")
         assert hash4 != hash6
 
+    def test_cache_fn_url_repo_anaconda_com(self):
+        hash1 = cache_fn_url("http://repo.anaconda.com/pkgs/free/osx-64/")
+        hash2 = cache_fn_url("http://repo.anaconda.com/pkgs/free/osx-64")
+        assert "1e817819.json" == hash1 == hash2
+
+        hash3 = cache_fn_url("https://repo.anaconda.com/pkgs/free/osx-64/")
+        hash4 = cache_fn_url("https://repo.anaconda.com/pkgs/free/osx-64")
+        assert "3ce78580.json" == hash3 == hash4 != hash1
+
+        hash5 = cache_fn_url("https://repo.anaconda.com/pkgs/free/linux-64/")
+        assert hash4 != hash5
+
+        hash6 = cache_fn_url("https://repo.anaconda.com/pkgs/r/osx-64")
+        assert hash4 != hash6
+
 
 # @pytest.mark.integration
 # class SubdirDataTests(TestCase):
diff --git a/tests/models/test_channel.py b/tests/models/test_channel.py
--- a/tests/models/test_channel.py
+++ b/tests/models/test_channel.py
@@ -33,17 +33,17 @@ class DefaultConfigChannelTests(TestCase):
     def setUpClass(cls):
         reset_context()
         cls.platform = context.subdir
-        cls.DEFAULT_URLS = ['https://repo.continuum.io/pkgs/main/%s' % cls.platform,
-                            'https://repo.continuum.io/pkgs/main/noarch',
-                            'https://repo.continuum.io/pkgs/free/%s' % cls.platform,
-                            'https://repo.continuum.io/pkgs/free/noarch',
-                            'https://repo.continuum.io/pkgs/r/%s' % cls.platform,
-                            'https://repo.continuum.io/pkgs/r/noarch',
-                            'https://repo.continuum.io/pkgs/pro/%s' % cls.platform,
-                            'https://repo.continuum.io/pkgs/pro/noarch']
+        cls.DEFAULT_URLS = ['https://repo.anaconda.com/pkgs/main/%s' % cls.platform,
+                            'https://repo.anaconda.com/pkgs/main/noarch',
+                            'https://repo.anaconda.com/pkgs/free/%s' % cls.platform,
+                            'https://repo.anaconda.com/pkgs/free/noarch',
+                            'https://repo.anaconda.com/pkgs/r/%s' % cls.platform,
+                            'https://repo.anaconda.com/pkgs/r/noarch',
+                            'https://repo.anaconda.com/pkgs/pro/%s' % cls.platform,
+                            'https://repo.anaconda.com/pkgs/pro/noarch']
         if on_win:
-            cls.DEFAULT_URLS.extend(['https://repo.continuum.io/pkgs/msys2/%s' % cls.platform,
-                                     'https://repo.continuum.io/pkgs/msys2/noarch'])
+            cls.DEFAULT_URLS.extend(['https://repo.anaconda.com/pkgs/msys2/%s' % cls.platform,
+                                     'https://repo.anaconda.com/pkgs/msys2/noarch'])
 
     def test_channel_alias_channels(self):
         channel = Channel('binstar/label/dev')
@@ -103,24 +103,24 @@ def test_default_channel(self):
         dc = Channel('defaults/win-32')
         assert dc.canonical_name == 'defaults'
         assert dc.subdir == 'win-32'
-        assert dc.urls()[0] == 'https://repo.continuum.io/pkgs/main/win-32'
-        assert dc.urls()[1] == 'https://repo.continuum.io/pkgs/main/noarch'
+        assert dc.urls()[0] == 'https://repo.anaconda.com/pkgs/main/win-32'
+        assert dc.urls()[1] == 'https://repo.anaconda.com/pkgs/main/noarch'
         assert dc.urls()[2].endswith('/win-32')
 
     def test_url_channel_w_platform(self):
-        channel = Channel('https://repo.continuum.io/pkgs/free/osx-64')
+        channel = Channel('https://repo.anaconda.com/pkgs/free/osx-64')
 
         assert channel.scheme == "https"
-        assert channel.location == "repo.continuum.io"
+        assert channel.location == "repo.anaconda.com"
         assert channel.platform == 'osx-64' == channel.subdir
         assert channel.name == 'pkgs/free'
 
-        assert channel.base_url == 'https://repo.continuum.io/pkgs/free'
+        assert channel.base_url == 'https://repo.anaconda.com/pkgs/free'
         assert channel.canonical_name == 'defaults'
-        assert channel.url() == 'https://repo.continuum.io/pkgs/free/osx-64'
+        assert channel.url() == 'https://repo.anaconda.com/pkgs/free/osx-64'
         assert channel.urls() == [
-            'https://repo.continuum.io/pkgs/free/osx-64',
-            'https://repo.continuum.io/pkgs/free/noarch',
+            'https://repo.anaconda.com/pkgs/free/osx-64',
+            'https://repo.anaconda.com/pkgs/free/noarch',
         ]
 
     def test_bare_channel(self):
@@ -293,7 +293,7 @@ def setUp(cls):
         migrated_custom_channels:
           darwin: s3://just/cant
           chuck: file:///var/lib/repo/
-          pkgs/anaconda: https://repo.continuum.io
+          pkgs/anaconda: https://repo.anaconda.com
         migrated_channel_aliases:
           - https://conda.anaconda.org
         channel_alias: ftp://new.url:8082
@@ -331,7 +331,7 @@ def test_pkgs_free(self):
             'http://192.168.0.15:8080/pkgs/anaconda/noarch',
         ]
 
-        channel = Channel('https://repo.continuum.io/pkgs/anaconda')
+        channel = Channel('https://repo.anaconda.com/pkgs/anaconda')
         assert channel.channel_name == "pkgs/anaconda"
         assert channel.channel_location == "192.168.0.15:8080"
         assert channel.canonical_name == "defaults"
@@ -340,7 +340,7 @@ def test_pkgs_free(self):
             'http://192.168.0.15:8080/pkgs/anaconda/noarch',
         ]
 
-        channel = Channel('https://repo.continuum.io/pkgs/anaconda/noarch')
+        channel = Channel('https://repo.anaconda.com/pkgs/anaconda/noarch')
         assert channel.channel_name == "pkgs/anaconda"
         assert channel.channel_location == "192.168.0.15:8080"
         assert channel.canonical_name == "defaults"
@@ -348,7 +348,7 @@ def test_pkgs_free(self):
             'http://192.168.0.15:8080/pkgs/anaconda/noarch',
         ]
 
-        channel = Channel('https://repo.continuum.io/pkgs/anaconda/label/dev')
+        channel = Channel('https://repo.anaconda.com/pkgs/anaconda/label/dev')
         assert channel.channel_name == "pkgs/anaconda/label/dev"
         assert channel.channel_location == "192.168.0.15:8080"
         assert channel.canonical_name == "pkgs/anaconda/label/dev"
@@ -357,7 +357,7 @@ def test_pkgs_free(self):
             'http://192.168.0.15:8080/pkgs/anaconda/label/dev/noarch',
         ]
 
-        channel = Channel('https://repo.continuum.io/pkgs/anaconda/noarch/flask-1.0.tar.bz2')
+        channel = Channel('https://repo.anaconda.com/pkgs/anaconda/noarch/flask-1.0.tar.bz2')
         assert channel.channel_name == "pkgs/anaconda"
         assert channel.channel_location == "192.168.0.15:8080"
         assert channel.platform == "noarch"
@@ -377,40 +377,40 @@ def test_pkgs_pro(self):
             'http://192.168.0.15:8080/pkgs/pro/noarch',
         ]
 
-        channel = Channel('https://repo.continuum.io/pkgs/pro')
+        channel = Channel('https://repo.anaconda.com/pkgs/pro')
         assert channel.channel_name == "pkgs/pro"
-        assert channel.channel_location == "repo.continuum.io"
+        assert channel.channel_location == "repo.anaconda.com"
         assert channel.canonical_name == "defaults"
         assert channel.urls() == [
-            'https://repo.continuum.io/pkgs/pro/%s' % self.platform,
-            'https://repo.continuum.io/pkgs/pro/noarch',
+            'https://repo.anaconda.com/pkgs/pro/%s' % self.platform,
+            'https://repo.anaconda.com/pkgs/pro/noarch',
         ]
 
-        channel = Channel('https://repo.continuum.io/pkgs/pro/noarch')
+        channel = Channel('https://repo.anaconda.com/pkgs/pro/noarch')
         assert channel.channel_name == "pkgs/pro"
-        assert channel.channel_location == "repo.continuum.io"
+        assert channel.channel_location == "repo.anaconda.com"
         assert channel.canonical_name == "defaults"
         assert channel.urls() == [
-            'https://repo.continuum.io/pkgs/pro/noarch',
+            'https://repo.anaconda.com/pkgs/pro/noarch',
         ]
 
-        channel = Channel('https://repo.continuum.io/pkgs/pro/label/dev')
+        channel = Channel('https://repo.anaconda.com/pkgs/pro/label/dev')
         assert channel.channel_name == "pkgs/pro/label/dev"
-        assert channel.channel_location == "repo.continuum.io"
+        assert channel.channel_location == "repo.anaconda.com"
         assert channel.canonical_name == "pkgs/pro/label/dev"
         assert channel.urls() == [
-            'https://repo.continuum.io/pkgs/pro/label/dev/%s' % self.platform,
-            'https://repo.continuum.io/pkgs/pro/label/dev/noarch',
+            'https://repo.anaconda.com/pkgs/pro/label/dev/%s' % self.platform,
+            'https://repo.anaconda.com/pkgs/pro/label/dev/noarch',
         ]
 
-        channel = Channel('https://repo.continuum.io/pkgs/pro/noarch/flask-1.0.tar.bz2')
+        channel = Channel('https://repo.anaconda.com/pkgs/pro/noarch/flask-1.0.tar.bz2')
         assert channel.channel_name == "pkgs/pro"
-        assert channel.channel_location == "repo.continuum.io"
+        assert channel.channel_location == "repo.anaconda.com"
         assert channel.platform == "noarch"
         assert channel.package_filename == "flask-1.0.tar.bz2"
         assert channel.canonical_name == "defaults"
         assert channel.urls() == [
-            'https://repo.continuum.io/pkgs/pro/noarch',
+            'https://repo.anaconda.com/pkgs/pro/noarch',
         ]
 
     def test_custom_channels(self):
@@ -976,21 +976,21 @@ def test_multichannel_priority():
             ('https://conda.anaconda.org/conda-test/new-optimized-subdir', ('conda-test', 0)),
             ('https://conda.anaconda.org/conda-test/linux-32', ('conda-test', 0)),
             ('https://conda.anaconda.org/conda-test/noarch', ('conda-test', 0)),
-            ('https://repo.continuum.io/pkgs/main/new-optimized-subdir', ('defaults', 1)),
-            ('https://repo.continuum.io/pkgs/main/linux-32', ('defaults', 1)),
-            ('https://repo.continuum.io/pkgs/main/noarch', ('defaults', 1)),
-            ('https://repo.continuum.io/pkgs/free/new-optimized-subdir', ('defaults', 2)),
-            ('https://repo.continuum.io/pkgs/free/linux-32', ('defaults', 2)),
-            ('https://repo.continuum.io/pkgs/free/noarch', ('defaults', 2)),
-            ('https://repo.continuum.io/pkgs/r/new-optimized-subdir', ('defaults', 3)),
-            ('https://repo.continuum.io/pkgs/r/linux-32', ('defaults', 3)),
-            ('https://repo.continuum.io/pkgs/r/noarch', ('defaults', 3)),
-            ('https://repo.continuum.io/pkgs/pro/new-optimized-subdir', ('defaults', 4)),
-            ('https://repo.continuum.io/pkgs/pro/linux-32', ('defaults', 4)),
-            ('https://repo.continuum.io/pkgs/pro/noarch', ('defaults', 4)),
-            ('https://repo.continuum.io/pkgs/msys2/new-optimized-subdir', ('defaults', 5)),
-            ('https://repo.continuum.io/pkgs/msys2/linux-32', ('defaults', 5)),
-            ('https://repo.continuum.io/pkgs/msys2/noarch', ('defaults', 5)),
+            ('https://repo.anaconda.com/pkgs/main/new-optimized-subdir', ('defaults', 1)),
+            ('https://repo.anaconda.com/pkgs/main/linux-32', ('defaults', 1)),
+            ('https://repo.anaconda.com/pkgs/main/noarch', ('defaults', 1)),
+            ('https://repo.anaconda.com/pkgs/free/new-optimized-subdir', ('defaults', 2)),
+            ('https://repo.anaconda.com/pkgs/free/linux-32', ('defaults', 2)),
+            ('https://repo.anaconda.com/pkgs/free/noarch', ('defaults', 2)),
+            ('https://repo.anaconda.com/pkgs/r/new-optimized-subdir', ('defaults', 3)),
+            ('https://repo.anaconda.com/pkgs/r/linux-32', ('defaults', 3)),
+            ('https://repo.anaconda.com/pkgs/r/noarch', ('defaults', 3)),
+            ('https://repo.anaconda.com/pkgs/pro/new-optimized-subdir', ('defaults', 4)),
+            ('https://repo.anaconda.com/pkgs/pro/linux-32', ('defaults', 4)),
+            ('https://repo.anaconda.com/pkgs/pro/noarch', ('defaults', 4)),
+            ('https://repo.anaconda.com/pkgs/msys2/new-optimized-subdir', ('defaults', 5)),
+            ('https://repo.anaconda.com/pkgs/msys2/linux-32', ('defaults', 5)),
+            ('https://repo.anaconda.com/pkgs/msys2/noarch', ('defaults', 5)),
             ('https://conda.anaconda.org/conda-forge/new-optimized-subdir', ('conda-forge', 6)),
             ('https://conda.anaconda.org/conda-forge/linux-32', ('conda-forge', 6)),
             ('https://conda.anaconda.org/conda-forge/noarch', ('conda-forge', 6)),
@@ -1000,18 +1000,18 @@ def test_multichannel_priority():
             ('https://conda.anaconda.org/conda-test/new-optimized-subdir', ('conda-test', 0)),
             ('https://conda.anaconda.org/conda-test/linux-32', ('conda-test', 0)),
             ('https://conda.anaconda.org/conda-test/noarch', ('conda-test', 0)),
-            ('https://repo.continuum.io/pkgs/main/new-optimized-subdir', ('defaults', 1)),
-            ('https://repo.continuum.io/pkgs/main/linux-32', ('defaults', 1)),
-            ('https://repo.continuum.io/pkgs/main/noarch', ('defaults', 1)),
-            ('https://repo.continuum.io/pkgs/free/new-optimized-subdir', ('defaults', 2)),
-            ('https://repo.continuum.io/pkgs/free/linux-32', ('defaults', 2)),
-            ('https://repo.continuum.io/pkgs/free/noarch', ('defaults', 2)),
-            ('https://repo.continuum.io/pkgs/r/new-optimized-subdir', ('defaults', 3)),
-            ('https://repo.continuum.io/pkgs/r/linux-32', ('defaults', 3)),
-            ('https://repo.continuum.io/pkgs/r/noarch', ('defaults', 3)),
-            ('https://repo.continuum.io/pkgs/pro/new-optimized-subdir', ('defaults', 4)),
-            ('https://repo.continuum.io/pkgs/pro/linux-32', ('defaults', 4)),
-            ('https://repo.continuum.io/pkgs/pro/noarch', ('defaults', 4)),
+            ('https://repo.anaconda.com/pkgs/main/new-optimized-subdir', ('defaults', 1)),
+            ('https://repo.anaconda.com/pkgs/main/linux-32', ('defaults', 1)),
+            ('https://repo.anaconda.com/pkgs/main/noarch', ('defaults', 1)),
+            ('https://repo.anaconda.com/pkgs/free/new-optimized-subdir', ('defaults', 2)),
+            ('https://repo.anaconda.com/pkgs/free/linux-32', ('defaults', 2)),
+            ('https://repo.anaconda.com/pkgs/free/noarch', ('defaults', 2)),
+            ('https://repo.anaconda.com/pkgs/r/new-optimized-subdir', ('defaults', 3)),
+            ('https://repo.anaconda.com/pkgs/r/linux-32', ('defaults', 3)),
+            ('https://repo.anaconda.com/pkgs/r/noarch', ('defaults', 3)),
+            ('https://repo.anaconda.com/pkgs/pro/new-optimized-subdir', ('defaults', 4)),
+            ('https://repo.anaconda.com/pkgs/pro/linux-32', ('defaults', 4)),
+            ('https://repo.anaconda.com/pkgs/pro/noarch', ('defaults', 4)),
             ('https://conda.anaconda.org/conda-forge/new-optimized-subdir', ('conda-forge', 5)),
             ('https://conda.anaconda.org/conda-forge/linux-32', ('conda-forge', 5)),
             ('https://conda.anaconda.org/conda-forge/noarch', ('conda-forge', 5)),
diff --git a/tests/models/test_dist.py b/tests/models/test_dist.py
--- a/tests/models/test_dist.py
+++ b/tests/models/test_dist.py
@@ -56,7 +56,7 @@ class UrlDistTests(TestCase):
 
     def test_dist_with_channel_url(self):
         # standard named channel
-        url = "https://repo.continuum.io/pkgs/free/win-64/spyder-app-2.3.8-py27_0.tar.bz2"
+        url = "https://repo.anaconda.com/pkgs/free/win-64/spyder-app-2.3.8-py27_0.tar.bz2"
         d = Dist(url)
         assert d.channel == 'defaults'
         assert d.name == 'spyder-app'
@@ -120,7 +120,7 @@ def test_dist_with_channel_url(self):
 
     def test_dist_with_non_channel_url(self):
         # contrived url
-        url = "https://repo.continuum.io/pkgs/anaconda/cffi-1.9.1-py34_0.tar.bz2"
+        url = "https://repo.anaconda.com/pkgs/anaconda/cffi-1.9.1-py34_0.tar.bz2"
         d = Dist(url)
         assert d.channel == '<unknown>'
         assert d.name == 'cffi'
diff --git a/tests/models/test_index_record.py b/tests/models/test_index_record.py
--- a/tests/models/test_index_record.py
+++ b/tests/models/test_index_record.py
@@ -21,23 +21,23 @@ def test_prefix_record_no_channel(self):
             version='1.2.3',
             build_string='py34_2',
             build_number=2,
-            url="https://repo.continuum.io/pkgs/free/win-32/austin-1.2.3-py34_2.tar.bz2",
+            url="https://repo.anaconda.com/pkgs/free/win-32/austin-1.2.3-py34_2.tar.bz2",
             subdir="win-32",
             md5='0123456789',
             files=(),
         )
-        assert pr.url == "https://repo.continuum.io/pkgs/free/win-32/austin-1.2.3-py34_2.tar.bz2"
+        assert pr.url == "https://repo.anaconda.com/pkgs/free/win-32/austin-1.2.3-py34_2.tar.bz2"
         assert pr.channel.canonical_name == 'defaults'
         assert pr.subdir == "win-32"
         assert pr.fn == "austin-1.2.3-py34_2.tar.bz2"
-        channel_str = text_type(Channel("https://repo.continuum.io/pkgs/free/win-32/austin-1.2.3-py34_2.tar.bz2"))
-        assert channel_str == "https://repo.continuum.io/pkgs/free/win-32"
+        channel_str = text_type(Channel("https://repo.anaconda.com/pkgs/free/win-32/austin-1.2.3-py34_2.tar.bz2"))
+        assert channel_str == "https://repo.anaconda.com/pkgs/free/win-32"
         assert dict(pr.dump()) == dict(
             name='austin',
             version='1.2.3',
             build='py34_2',
             build_number=2,
-            url="https://repo.continuum.io/pkgs/free/win-32/austin-1.2.3-py34_2.tar.bz2",
+            url="https://repo.anaconda.com/pkgs/free/win-32/austin-1.2.3-py34_2.tar.bz2",
             md5='0123456789',
             files=(),
             channel=channel_str,
diff --git a/tests/models/test_match_spec.py b/tests/models/test_match_spec.py
--- a/tests/models/test_match_spec.py
+++ b/tests/models/test_match_spec.py
@@ -178,17 +178,17 @@ def test_canonical_string_forms(self):
         assert m("numpy=1.7=py3*_2") == "numpy==1.7[build=py3*_2]"
         assert m("numpy=1.7.*=py3*_2") == "numpy=1.7[build=py3*_2]"
 
-        assert m("https://repo.continuum.io/pkgs/free::numpy") == "defaults::numpy"
-        assert m("numpy[channel=https://repo.continuum.io/pkgs/free]") == "defaults::numpy"
+        assert m("https://repo.anaconda.com/pkgs/free::numpy") == "defaults::numpy"
+        assert m("numpy[channel=https://repo.anaconda.com/pkgs/free]") == "defaults::numpy"
         assert m("defaults::numpy") == "defaults::numpy"
         assert m("numpy[channel=defaults]") == "defaults::numpy"
         assert m("conda-forge::numpy") == "conda-forge::numpy"
         assert m("numpy[channel=conda-forge]") == "conda-forge::numpy"
 
         assert m("numpy[channel=defaults,subdir=osx-64]") == "defaults/osx-64::numpy"
-        assert m("numpy[channel=https://repo.continuum.io/pkgs/free/osx-64, subdir=linux-64]") == "defaults/linux-64::numpy"
-        assert m("https://repo.continuum.io/pkgs/free/win-32::numpy") == "defaults/win-32::numpy"
-        assert m("numpy[channel=https://repo.continuum.io/pkgs/free/osx-64]") == "defaults/osx-64::numpy"
+        assert m("numpy[channel=https://repo.anaconda.com/pkgs/free/osx-64, subdir=linux-64]") == "defaults/linux-64::numpy"
+        assert m("https://repo.anaconda.com/pkgs/free/win-32::numpy") == "defaults/win-32::numpy"
+        assert m("numpy[channel=https://repo.anaconda.com/pkgs/free/osx-64]") == "defaults/osx-64::numpy"
         assert m("defaults/win-32::numpy") == "defaults/win-32::numpy"
         assert m("conda-forge/linux-64::numpy") == "conda-forge/linux-64::numpy"
         assert m("numpy[channel=conda-forge,subdir=noarch]") == "conda-forge/noarch::numpy"
@@ -198,8 +198,8 @@ def test_canonical_string_forms(self):
         assert m("*/win-32::numpy[subdir=\"osx-64\"]") == 'numpy[subdir=osx-64]'
 
         # TODO: should the result in these example pull out subdir?
-        assert m("https://repo.continuum.io/pkgs/free/linux-32::numpy") == "defaults/linux-32::numpy"
-        assert m("numpy[channel=https://repo.continuum.io/pkgs/free/linux-32]") == "defaults/linux-32::numpy"
+        assert m("https://repo.anaconda.com/pkgs/free/linux-32::numpy") == "defaults/linux-32::numpy"
+        assert m("numpy[channel=https://repo.anaconda.com/pkgs/free/linux-32]") == "defaults/linux-32::numpy"
 
         assert m("numpy=1.10=py38_0") == "numpy==1.10=py38_0"
         assert m("numpy==1.10=py38_0") == "numpy==1.10=py38_0"
@@ -280,13 +280,13 @@ def test_channel_matching(self):
         #   it might have to for backward compatibility
         #   but more ideally, the first would be true, and the second would be false
         #   (or maybe it's the other way around)
-        assert ChannelMatch("https://repo.continuum.io/pkgs/free").match('defaults') is True
-        assert ChannelMatch("defaults").match("https://repo.continuum.io/pkgs/free") is True
+        assert ChannelMatch("https://repo.anaconda.com/pkgs/free").match('defaults') is True
+        assert ChannelMatch("defaults").match("https://repo.anaconda.com/pkgs/free") is True
 
         assert ChannelMatch("https://conda.anaconda.org/conda-forge").match('conda-forge') is True
         assert ChannelMatch("conda-forge").match("https://conda.anaconda.org/conda-forge") is True
 
-        assert ChannelMatch("https://repo.continuum.io/pkgs/free").match('conda-forge') is False
+        assert ChannelMatch("https://repo.anaconda.com/pkgs/free").match('conda-forge') is False
 
     def test_matchspec_errors(self):
         with pytest.raises(ValueError):
@@ -335,13 +335,13 @@ def test_dist(self):
                                      depends=('openssl 1.0.2*', 'readline 6.2*', 'sqlite',
                                                'tk 8.5*', 'xz 5.0.5', 'zlib 1.2*', 'pip'),
                                      channel=Channel(scheme='https', auth=None,
-                                                      location='repo.continuum.io', token=None,
+                                                      location='repo.anaconda.com', token=None,
                                                       name='pkgs/free', platform='osx-64',
                                                       package_filename=None),
                                      subdir='osx-64', fn='python-3.5.1-0.tar.bz2',
                                      md5='a813bc0a32691ab3331ac9f37125164c', size=14678857,
                                      priority=0,
-                                     url='https://repo.continuum.io/pkgs/free/osx-64/python-3.5.1-0.tar.bz2'))
+                                     url='https://repo.anaconda.com/pkgs/free/osx-64/python-3.5.1-0.tar.bz2'))
 
     def test_index_record(self):
         dst = Dist('defaults::foo-1.2.3-4.tar.bz2')
@@ -452,7 +452,7 @@ def test_pip_style(self):
 class SpecStrParsingTests(TestCase):
 
     def test_parse_spec_str_tarball_url(self):
-        url = "https://repo.continuum.io/pkgs/free/linux-64/_license-1.1-py27_1.tar.bz2"
+        url = "https://repo.anaconda.com/pkgs/free/linux-64/_license-1.1-py27_1.tar.bz2"
         assert _parse_spec_str(url) == {
             "channel": "defaults",
             "subdir": "linux-64",
@@ -502,7 +502,7 @@ def test_parse_spec_str_no_brackets(self):
             "channel": "defaults",
             "name": "numpy",
         }
-        assert _parse_spec_str("https://repo.continuum.io/pkgs/free::numpy") == {
+        assert _parse_spec_str("https://repo.anaconda.com/pkgs/free::numpy") == {
             "channel": "defaults",
             "name": "numpy",
         }
diff --git a/tests/test_cli.py b/tests/test_cli.py
--- a/tests/test_cli.py
+++ b/tests/test_cli.py
@@ -118,7 +118,7 @@ def test_search_3(self):
             result = stdout.replace("Loading channels: ...working... done", "")
             assert "file name   : nose-1.3.7-py36_1.tar.bz2" in result
             assert "name        : nose" in result
-            assert "url         : https://repo.continuum.io/pkgs/free/linux-64/nose-1.3.7-py36_1.tar.bz2" in result
+            assert "url         : https://repo.anaconda.com/pkgs/free/linux-64/nose-1.3.7-py36_1.tar.bz2" in result
             assert "md5         : f4f697f5ad4df9c8fe35357d269718a5" in result
 
     @pytest.mark.integration
diff --git a/tests/test_create.py b/tests/test_create.py
--- a/tests/test_create.py
+++ b/tests/test_create.py
@@ -280,7 +280,7 @@ def test_install_python2_and_search(self):
             assert_package_is_installed(prefix, 'python-2')
 
             # regression test for #4513
-            run_command(Commands.CONFIG, prefix, "--add channels https://repo.continuum.io/pkgs/not-a-channel")
+            run_command(Commands.CONFIG, prefix, "--add channels https://repo.anaconda.com/pkgs/not-a-channel")
             stdout, stderr = run_command(Commands.SEARCH, prefix, "python --json")
             packages = json.loads(stdout)
             assert len(packages) >= 1
@@ -883,7 +883,7 @@ def test_conda_config_validate(self):
 
     def test_rpy_search(self):
         with make_temp_env("python=3.5") as prefix:
-            run_command(Commands.CONFIG, prefix, "--add channels https://repo.continuum.io/pkgs/free")
+            run_command(Commands.CONFIG, prefix, "--add channels https://repo.anaconda.com/pkgs/free")
             run_command(Commands.CONFIG, prefix, "--remove channels defaults")
             stdout, stderr = run_command(Commands.CONFIG, prefix, "--show", "--json")
             json_obj = json_loads(stdout)
@@ -909,7 +909,7 @@ def test_rpy_search(self):
 
     def test_clone_offline_multichannel_with_untracked(self):
         with make_temp_env("python=3.5") as prefix:
-            run_command(Commands.CONFIG, prefix, "--add channels https://repo.continuum.io/pkgs/free")
+            run_command(Commands.CONFIG, prefix, "--add channels https://repo.anaconda.com/pkgs/free")
             run_command(Commands.CONFIG, prefix, "--remove channels defaults")
 
             run_command(Commands.INSTALL, prefix, "-c conda-test flask")
@@ -1174,7 +1174,7 @@ def test_search_gawk_not_win_filter(self):
         with make_temp_env() as prefix:
             stdout, stderr = run_command(
                 Commands.SEARCH, prefix, "*gawk", "--platform", "win-64", "--json",
-                "-c", "https://repo.continuum.io/pkgs/msys2 --json",
+                "-c", "https://repo.anaconda.com/pkgs/msys2 --json",
                 use_exception_handler=True,
             )
             json_obj = json_loads(stdout.replace("Fetching package metadata ...", "").strip())
diff --git a/tests/test_fetch.py b/tests/test_fetch.py
--- a/tests/test_fetch.py
+++ b/tests/test_fetch.py
@@ -42,7 +42,7 @@ def test_tmpDownload(self):
         with env_var('CONDA_REMOTE_CONNECT_TIMEOUT_SECS', 1, reset_context):
             with env_var('CONDA_REMOTE_READ_TIMEOUT_SECS', 1, reset_context):
                 with env_var('CONDA_REMOTE_MAX_RETRIES', 1, reset_context):
-                    url = "https://repo.continuum.io/pkgs/free/osx-64/appscript-1.0.1-py27_0.tar.bz2"
+                    url = "https://repo.anaconda.com/pkgs/free/osx-64/appscript-1.0.1-py27_0.tar.bz2"
                     with TmpDownload(url) as dst:
                         assert exists(dst)
                         assert isfile(dst)
diff --git a/tests/test_misc.py b/tests/test_misc.py
--- a/tests/test_misc.py
+++ b/tests/test_misc.py
@@ -11,6 +11,8 @@ class TestMisc(unittest.TestCase):
     def test_cache_fn_url(self):
         url = "http://repo.continuum.io/pkgs/pro/osx-64/"
         self.assertEqual(cache_fn_url(url), '7618c8b6.json')
+        url = "http://repo.anaconda.com/pkgs/pro/osx-64/"
+        self.assertEqual(cache_fn_url(url), 'e42afea8.json')
 
     def test_url_pat_1(self):
         m = url_pat.match('http://www.cont.io/pkgs/linux-64/foo.tar.bz2'