← Back to team overview

launchpad-reviewers team mailing list archive

[Merge] lp:~lifeless/launchpad/edge into lp:launchpad/devel

 

Robert Collins has proposed merging lp:~lifeless/launchpad/edge into lp:launchpad/devel.

Requested reviews:
  Launchpad code reviewers (launchpad-reviewers)


Bye Bye edge.

I thought about keeping the cookie stuff around, but really to do a disable-feature check against it it would need to change anyway, so its better to have someone just resurrect any useful bits from this commit.

Almost entirely mechanical.
-- 
https://code.launchpad.net/~lifeless/launchpad/edge/+merge/39233
Your team Launchpad code reviewers is requested to review the proposed merge of lp:~lifeless/launchpad/edge into lp:launchpad/devel.
=== modified file 'configs/README.txt'
--- configs/README.txt	2010-10-18 03:29:59 +0000
+++ configs/README.txt	2010-10-24 21:19:03 +0000
@@ -299,10 +299,6 @@
         |    |
         |    + staging-mailman/launchpad-lazr.conf
         |
-        + edge-lazr.conf
-        |    |
-        |    + edge<1-4>/launchpad-lazr.conf
-        |
         + lpnet-lazr.conf
         |    |
         |    + lpnet<1-8>/launchpad-lazr.conf

=== modified file 'lib/canonical/config/schema-lazr.conf'
--- lib/canonical/config/schema-lazr.conf	2010-10-22 10:23:44 +0000
+++ lib/canonical/config/schema-lazr.conf	2010-10-24 21:19:03 +0000
@@ -356,8 +356,8 @@
 bzr_lp_prefix: lp:
 
 # The hosts which may be used to refer to this server's branches in lp: urls
-# The double-comma is used to produce the empty string.
-lp_url_hosts: edge,,production
+# The comma is used to produce the empty string.
+lp_url_hosts: ,production
 
 # see [error_reports].
 error_dir: none
@@ -988,10 +988,6 @@
 # datatype: boolean
 is_demo: False
 
-# Should the 'edge system' indicator in the footer be turned on?
-# Should be true for edge and false for all other live systems.
-is_edge: False
-
 # On launchpad.net, Launchpad's version and revision numbers aren't shown,
 # because it's a Web site. Should be True for launchpad.net and False for all
 # other systems.

=== modified file 'lib/canonical/launchpad/doc/decoratedresultset.txt'
--- lib/canonical/launchpad/doc/decoratedresultset.txt	2010-10-09 16:36:22 +0000
+++ lib/canonical/launchpad/doc/decoratedresultset.txt	2010-10-24 21:19:03 +0000
@@ -75,7 +75,7 @@
 
 There was a bug in the Storm API whereby calling count (or other aggregates)
 on a storm ResultSet does not respect the distinct
-config option (https://bugs.edge.launchpad.net/storm/+bug/217644):
+config option (https://bugs.launchpad.net/storm/+bug/217644):
 
     >>> from canonical.launchpad.database import (BinaryPackageRelease,
     ...     BinaryPackagePublishingHistory)

=== modified file 'lib/canonical/launchpad/doc/google-searchservice.txt'
--- lib/canonical/launchpad/doc/google-searchservice.txt	2010-10-09 16:36:22 +0000
+++ lib/canonical/launchpad/doc/google-searchservice.txt	2010-10-24 21:19:03 +0000
@@ -300,8 +300,8 @@
     <M>2</M>
     ...
     <R N="1">
-    <U>https://edge.launchpad.net/gc</U>
-    <UE>https://edge.launchpad.net/gc</UE>
+    <U>https://launchpad.net/gc</U>
+    <UE>https://launchpad.net/gc</UE>
     <RK>0</RK>
     <S>
     </S>

=== modified file 'lib/canonical/launchpad/ftests/googlesearches/blog.launchpad.net-feed.xml'
--- lib/canonical/launchpad/ftests/googlesearches/blog.launchpad.net-feed.xml	2010-07-16 20:55:29 +0000
+++ lib/canonical/launchpad/ftests/googlesearches/blog.launchpad.net-feed.xml	2010-10-24 21:19:03 +0000
@@ -54,7 +54,7 @@
     import httplib2
    [...]]]></description>
 			<content:encoded><![CDATA[<p>Three tips from <a href="http://launchpad.net/~leonardr";>Leonard&#8217;s</a> lightning talk in Prague about writing faster <a href="https://help.launchpad.net/API/launchpadlib#preview";>Launchpadlib</a> API clients:</p>
-<p><b>1. Use the latest launchpadlib.</b> It gets faster from one release to the next.  (The versions in the current Ubuntu release should be fine; otherwise run from the <a href="https://code.edge.launchpad.net/~lazr-developers/launchpadlib/trunk";>branch</a> or the latest <a href="https://launchpad.net/launchpadlib/+download";>tarball</a>.)</p>
+<p><b>1. Use the latest launchpadlib.</b> It gets faster from one release to the next.  (The versions in the current Ubuntu release should be fine; otherwise run from the <a href="https://code.launchpad.net/~lazr-developers/launchpadlib/trunk";>branch</a> or the latest <a href="https://launchpad.net/launchpadlib/+download";>tarball</a>.)</p>
 <p><b>2. Profile:</b></p>
 <pre>
     import httplib2

=== modified file 'lib/canonical/launchpad/ftests/googlesearches/googlesearchservice-missing-title.xml'
--- lib/canonical/launchpad/ftests/googlesearches/googlesearchservice-missing-title.xml	2008-05-28 00:48:48 +0000
+++ lib/canonical/launchpad/ftests/googlesearches/googlesearchservice-missing-title.xml	2010-10-24 21:19:03 +0000
@@ -25,8 +25,8 @@
 </NB>
 
 <R N="1">
-<U>https://edge.launchpad.net/gc</U>
-<UE>https://edge.launchpad.net/gc</UE>
+<U>https://launchpad.net/gc</U>
+<UE>https://launchpad.net/gc</UE>
 <RK>0</RK>
 <S>
 </S>

=== modified file 'lib/canonical/launchpad/mail/errortemplates/oops.txt'
--- lib/canonical/launchpad/mail/errortemplates/oops.txt	2008-02-13 13:32:25 +0000
+++ lib/canonical/launchpad/mail/errortemplates/oops.txt	2010-10-24 21:19:03 +0000
@@ -3,5 +3,5 @@
 Apologies for the inconvenience.
 
 If this is blocking your work, please file a question at
-https://answers.edge.launchpad.net/launchpad/+addquestion
+https://answers.launchpad.net/launchpad/+addquestion
 and include the error ID %(oops_id)s in the description.

=== modified file 'lib/canonical/launchpad/pagetests/basics/demo-and-lpnet.txt'
--- lib/canonical/launchpad/pagetests/basics/demo-and-lpnet.txt	2010-06-16 19:07:12 +0000
+++ lib/canonical/launchpad/pagetests/basics/demo-and-lpnet.txt	2010-10-24 21:19:03 +0000
@@ -73,91 +73,3 @@
     &bull; r... devmode
     >>> len(find_tags_by_class(browser.contents, 'sitemessage'))
     0
-
-
-== Launchpad Edge ==
-
-Additionally, when a server is running as an edge server, the site-message
-is appended with a link to disable edge redirects.
-
-In addition to this prominent display on the root page, most pages will
-also include the disable-redirect link in the site_message - if the
-user is a member of the beta group and has not already disabled
-the redirects.
-
-    # Now setup an edge site-message config and re-check.
-    >>> edge_config_data = """
-    ...     [launchpad]
-    ...     site_message: This is a beta site.
-    ...     is_edge: True
-    ...     """
-    >>> config.push('edge_config_data', edge_config_data)
-    >>> beta_browser = setupBrowser(
-    ...     auth='Basic beta-admin@xxxxxxxxxxxxx:test')
-    >>> beta_browser.open('http://launchpad.dev/ubuntu')
-    >>> site_message = find_tags_by_class(
-    ...     beta_browser.contents, 'sitemessage')[0]
-    >>> print extract_text(site_message)
-    This is a beta site. Disable edge redirect.
-    >>> print extract_text(site_message.find(
-    ...     'a', onclick="setBetaRedirect(false)"))
-    Disable edge redirect.
-
-The disable-redirect link will also appear in the site_message when browsed by
-non-beta/anonymous users. This is to reduce the annoyance when users are
-logged into launchpad.net but haven't noticed yet that they need to log into
-edge as well (https://launchpad.net/bugs/160191).
-
-    >>> browser.open('http://launchpad.dev/ubuntu')
-    >>> print extract_text(find_tags_by_class(
-    ...     browser.contents, 'sitemessage')[0])
-    This is a beta site. Disable edge redirect.
-
-Once the redirection has been inhibited, the link changes to enable
-redirects.
-
-    # Workaround bug in mechanize where you cannot use the Cookie
-    # header with the CookieJar
-    >>> from mechanize._clientcookie import Cookie
-    >>> cookiejar = (
-    ...     beta_browser.mech_browser._ua_handlers['_cookies'].cookiejar)
-    >>> cookiejar.set_cookie(
-    ...     Cookie(
-    ...         version=0, name='inhibit_beta_redirect', value='1', port=None,
-    ...         port_specified=False, domain='.launchpad.dev',
-    ...         domain_specified=True, domain_initial_dot=True, path='/',
-    ...         path_specified=True, secure=False, expires=None,
-    ...         discard=None, comment=None, comment_url=None, rest={}))
-    >>> beta_browser.open('http://launchpad.dev/ubuntu')
-    >>> site_message = find_tags_by_class(
-    ...     beta_browser.contents, 'sitemessage')[0]
-    >>> print extract_text(site_message)
-    This is a beta site. Enable edge redirect.
-    >>> print extract_text(site_message.find(
-    ...     'a', onclick="setBetaRedirect(true)"))
-    Enable edge redirect.
-
-    # Remove the specific site-message config data before continuing.
-    >>> dummy = config.pop('edge_config_data')
-
-
-== Launchpad.net ==
-
-On launchpad.net, the version and revision numbers are presented only in an
-HTML comment.
-
-    >>> # Pretend that we're on launchpad.net:
-    >>> test_data = dedent("""
-    ...     [launchpad]
-    ...     is_lpnet: True
-    ...     """)
-    >>> config.push('test_data', test_data)
-
-    >>> browser.open('http://launchpad.dev/ubuntu')
-    >>> print find_tag_by_id(browser.contents, 'lp-version')
-    None
-
-    >>> # Restore the previous config:
-    >>> config_data = config.pop('test_data')
-    >>> print config.launchpad.is_lpnet
-    False

=== modified file 'lib/canonical/launchpad/pagetests/standalone/xx-offsite-form-post.txt'
--- lib/canonical/launchpad/pagetests/standalone/xx-offsite-form-post.txt	2010-03-30 14:33:26 +0000
+++ lib/canonical/launchpad/pagetests/standalone/xx-offsite-form-post.txt	2010-10-24 21:19:03 +0000
@@ -45,7 +45,7 @@
 It also fails if there is no referrer.
 
 Note that we have to set up a monkeypatch to test this in order to work
-around Zope bug 98437 (https://bugs.edge.launchpad.net/zope3/+bug/98437).
+around Zope bug 98437 (https://bugs.launchpad.net/zope3/+bug/98437).
 
   >>> from canonical.launchpad.webapp.servers import LaunchpadBrowserRequest
   >>> original_init = LaunchpadBrowserRequest.__init__
@@ -87,7 +87,7 @@
   No REFERER Header
   ...
   >>> browser.getLink('the FAQ').url
-  'https://answers.edge.launchpad.net/launchpad/+faq/1024'
+  'https://answers.launchpad.net/launchpad/+faq/1024'
   >>> browser.handleErrors = False
 
 We have a few exceptional cases in which we allow POST requests without a

=== modified file 'lib/canonical/launchpad/templates/launchpad-noreferrer.pt'
--- lib/canonical/launchpad/templates/launchpad-noreferrer.pt	2010-03-29 16:11:05 +0000
+++ lib/canonical/launchpad/templates/launchpad-noreferrer.pt	2010-10-24 21:19:03 +0000
@@ -15,7 +15,7 @@
       <code>REFERER</code> headers.</p>
       <p>Unblock <code>REFERER</code> headers for launchpad.net and try
       again, or see <a
-      href="https://answers.edge.launchpad.net/launchpad/+faq/1024";>the
+      href="https://answers.launchpad.net/launchpad/+faq/1024";>the
       FAQ <em>Why does Launchpad require a REFERER header?</em></a> for
       more information.</p>
       <p>You can also join <a href="irc://irc.freenode.net/launchpad">the

=== modified file 'lib/canonical/launchpad/templates/launchpad-requestexpired.pt'
--- lib/canonical/launchpad/templates/launchpad-requestexpired.pt	2010-03-10 19:10:04 +0000
+++ lib/canonical/launchpad/templates/launchpad-requestexpired.pt	2010-10-24 21:19:03 +0000
@@ -9,16 +9,6 @@
   <body>
     <div class="top-portlet" metal:fill-slot="main">
       <h1 class="exception">Timeout error</h1>
-      <div tal:condition="is_edge"
-           id="redirect_notice" class="informational message">
-        <p>Our edge server has a lower timeout threshold than launchpad.net,
-        so we can catch those before they hit a wider audience.
-        If this is blocking your work and you are a member of the Launchpad
-        Beta Testers team, you can disable automatic redirection
-        to edge in order to use launchpad.net.</p>
-        <p><button onclick="setBetaRedirect(false)">Disable redirection
-        for 2 hours</button></p>
-      </div>
       <p>
         Sorry, something just went wrong in Launchpad.
       </p>

=== modified file 'lib/canonical/launchpad/templates/oops.pt'
--- lib/canonical/launchpad/templates/oops.pt	2010-03-15 17:58:27 +0000
+++ lib/canonical/launchpad/templates/oops.pt	2010-10-24 21:19:03 +0000
@@ -31,26 +31,6 @@
           <tal:oops replace="structure view/oops_id_text" />)
         </p>
 
-        <div id="redirect_notice" style="display:none"
-             class="informational message">
-          <p>This server runs pre-release code, so it's possible this problem
-          doesn't affect launchpad.net. If you're a member of the Launchpad
-          Beta Testers team, you can disable redirection in order to use
-          launchpad.net.</p>
-          <p><button onclick="setBetaRedirect(false)">Disable redirection
-          for 2 hours</button></p>
-        </div>
-        <tal:comment condition="nothing">
-          Can't use the 'is_edge' global because we don't use our page
-          macros here.
-        </tal:comment>
-        <script type="text/javascript">
-          if (document.location.hostname.match('edge.')) {
-            redirect_notice_div = document.getElementById('redirect_notice');
-            redirect_notice_div.style.display = "block";
-          };
-        </script>
-
         <tal:traceback replace="structure view/maybeShowTraceback" />
 
         <div class="related">

=== modified file 'lib/canonical/launchpad/testing/browser.py'
--- lib/canonical/launchpad/testing/browser.py	2010-08-20 20:31:18 +0000
+++ lib/canonical/launchpad/testing/browser.py	2010-10-24 21:19:03 +0000
@@ -104,7 +104,7 @@
     def _clickSubmit(self, form, control, coord):
         # XXX gary 2010-03-08 bug=98437
         # This change is taken from
-        # https://bugs.edge.launchpad.net/zope3/+bug/98437/comments/9 .  It
+        # https://bugs.launchpad.net/zope3/+bug/98437/comments/9 .  It
         # should be pushed upstream, per that comment.
         labels = control.get_labels()
         if labels:

=== modified file 'lib/canonical/launchpad/tour/bugs'
--- lib/canonical/launchpad/tour/bugs	2010-04-21 09:47:58 +0000
+++ lib/canonical/launchpad/tour/bugs	2010-10-24 21:19:03 +0000
@@ -99,7 +99,7 @@
                         Manage bug reports entirely through your email client.
 <br /><br />
 						You can use email to report, subscribe, comment on, assign, prioritise and make just about any other update to bugs tracked in Launchpad. Launchpad will also mail you with updates on any bug you're interested in, whether an individual bug or all the bugs associated with a particular project or package. Read more about <a href="https://help.launchpad.net/Bugs/EmailInterface";>the bug tracker's e-mail interface &gt;</a><br /><br />
-						And, if you prefer, you can also subscribe to bug information in your feed reader with our Atom feeds. <img src="https://edge.launchpad.net/@@/rss"; alt="Feed logo" />
+						And, if you prefer, you can also subscribe to bug information in your feed reader with our Atom feeds. <img src="https://launchpad.net/@@/rss"; alt="Feed logo" />
                         </p>
                     </div>
                     <div class="block odd">

=== modified file 'lib/canonical/launchpad/webapp/servers.py'
--- lib/canonical/launchpad/webapp/servers.py	2010-10-18 10:19:56 +0000
+++ lib/canonical/launchpad/webapp/servers.py	2010-10-24 21:19:03 +0000
@@ -620,10 +620,6 @@
         """As per zope.publisher.browser.BrowserRequest._createResponse"""
         return LaunchpadBrowserResponse()
 
-    def isRedirectInhibited(self):
-        """Returns True if edge redirection has been inhibited."""
-        return self.cookies.get('inhibit_beta_redirect', '0') == '1'
-
     @cachedproperty
     def form_ng(self):
         """See ILaunchpadBrowserApplicationRequest."""

=== modified file 'lib/canonical/launchpad/webapp/tests/test_servers.py'
--- lib/canonical/launchpad/webapp/tests/test_servers.py	2010-09-28 07:00:56 +0000
+++ lib/canonical/launchpad/webapp/tests/test_servers.py	2010-10-24 21:19:03 +0000
@@ -485,19 +485,6 @@
             "The query_string_params dict correctly interprets encoded "
             "parameters.")
 
-    def test_isRedirectInhibited_without_cookie(self):
-        # When the request doesn't include the inhibit_beta_redirect cookie,
-        # isRedirectInhibited() returns False.
-        request = LaunchpadBrowserRequest('', {})
-        self.assertFalse(request.isRedirectInhibited())
-
-    def test_isRedirectInhibited_with_cookie(self):
-        # When the request includes the inhibit_beta_redirect cookie,
-        # isRedirectInhibited() returns True.
-        request = LaunchpadBrowserRequest(
-            '', dict(HTTP_COOKIE="inhibit_beta_redirect=1"))
-        self.assertTrue(request.isRedirectInhibited())
-
 
 def test_suite():
     suite = unittest.TestSuite()

=== modified file 'lib/devscripts/autoland.py'
--- lib/devscripts/autoland.py	2010-09-02 20:25:02 +0000
+++ lib/devscripts/autoland.py	2010-10-24 21:19:03 +0000
@@ -28,7 +28,7 @@
         self._launchpad = launchpad
 
     @classmethod
-    def load(cls, service_root='edge'):
+    def load(cls, service_root='production'):
         # XXX: JonathanLange 2009-09-24: No unit tests.
         # XXX: JonathanLange 2009-09-24 bug=435813: If cached data invalid,
         # there's no easy way to delete it and try again.

=== renamed file 'lib/lp/app/stories/basics/xx-beta-testers-redirection.txt' => 'lib/lp/app/stories/basics/xx-beta-testers-redirection.txt.THIS'
=== modified file 'lib/lp/app/templates/base-layout-macros.pt'
--- lib/lp/app/templates/base-layout-macros.pt	2010-10-04 12:23:40 +0000
+++ lib/lp/app/templates/base-layout-macros.pt	2010-10-24 21:19:03 +0000
@@ -424,15 +424,13 @@
       &nbsp;&bull;&nbsp;
       <a href="http://identi.ca/launchpadstatus";
         >System status</a>
-      <span id="lp-version" tal:condition="not:is_lpnet">
+      <span id="lp-version">
       &nbsp;&bull;&nbsp;
         r<tal:revno replace="revno" />
         <tal:devmode condition="devmode">devmode</tal:devmode>
         <tal:demo condition="is_demo">demo site</tal:demo>
-        <tal:edge condition="is_edge">
-          beta site (<a href="https://code.edge.launchpad.net/~launchpad-pqm/launchpad/stable/";
+        (<a href="https://code.launchpad.net/~launchpad-pqm/launchpad/stable/";
              >get the code</a>)
-        </tal:edge>
       </span>
     </div>
   </div>
@@ -443,16 +441,6 @@
     <tal:site_message tal:content="structure site_message">
       This site is running pre-release code.
     </tal:site_message>
-    <tal:edge_only condition="is_edge">
-      <a href="#" class="js-action" onclick="setBetaRedirect(false)"
-         tal:condition="not:request/isRedirectInhibited">
-        Disable edge redirect.
-      </a>
-      <a href="#" class="js-action" onclick="setBetaRedirect(true)"
-         tal:condition="request/isRedirectInhibited">
-        Enable edge redirect.
-      </a>
-    </tal:edge_only>
   </div>
 </metal:site-message>
 

=== modified file 'lib/lp/app/templates/base-layout.pt'
--- lib/lp/app/templates/base-layout.pt	2010-08-19 16:04:43 +0000
+++ lib/lp/app/templates/base-layout.pt	2010-10-24 21:19:03 +0000
@@ -9,7 +9,6 @@
     devmode modules/canonical.config/config/devmode;
     rooturl modules/canonical.launchpad.webapp.vhosts/allvhosts/configs/mainsite/rooturl;
     is_demo modules/canonical.config/config/launchpad/is_demo;
-    is_edge modules/canonical.config/config/launchpad/is_edge;
     is_lpnet modules/canonical.config/config/launchpad/is_lpnet;
     site_message modules/canonical.config/config/launchpad/site_message;
     icingroot string:${rooturl}+icing/rev${revno};

=== modified file 'lib/lp/archiveuploader/tests/test_ppauploadprocessor.py'
--- lib/lp/archiveuploader/tests/test_ppauploadprocessor.py	2010-10-22 14:54:39 +0000
+++ lib/lp/archiveuploader/tests/test_ppauploadprocessor.py	2010-10-24 21:19:03 +0000
@@ -484,7 +484,7 @@
         Anyone listed as an uploader in ArchivePermissions will automatically
         get an upload notification email.
 
-        See https://bugs.edge.launchpad.net/soyuz/+bug/397077
+        See https://bugs.launchpad.net/soyuz/+bug/397077
         """
         # Create the extra permissions. We're making an extra team and
         # adding it to cprov's upload permission, plus name12.
@@ -1040,7 +1040,7 @@
 
         Some error messages can contain the PPA display name, which may
         sometimes contain unicode characters.  There was a bug
-        https://bugs.edge.launchpad.net/bugs/275509 reported about getting
+        https://bugs.launchpad.net/bugs/275509 reported about getting
         upload errors related to unicode.  This only happened when the
         uploder was attaching a .orig.tar.gz file with different contents
         than the one already in the PPA.

=== modified file 'lib/lp/blueprints/vocabularies/specificationdependency.py'
--- lib/lp/blueprints/vocabularies/specificationdependency.py	2010-09-26 22:29:58 +0000
+++ lib/lp/blueprints/vocabularies/specificationdependency.py	2010-10-24 21:19:03 +0000
@@ -97,7 +97,7 @@
         This implementation is a little fuzzy and will return specs for URLs
         that, for example, don't have the host name right.  This seems
         unlikely to cause confusion in practice, and being too anal probably
-        would be confusing (e.g. not accepting edge URLs on lpnet).
+        would be confusing (e.g. not accepting production URLs on staging).
         """
         scheme, netloc, path, params, args, fragment = urlparse(url)
         if not scheme or not netloc:

=== modified file 'lib/lp/blueprints/vocabularies/tests/specificationdepcandidates.txt'
--- lib/lp/blueprints/vocabularies/tests/specificationdepcandidates.txt	2010-08-27 04:24:55 +0000
+++ lib/lp/blueprints/vocabularies/tests/specificationdepcandidates.txt	2010-10-24 21:19:03 +0000
@@ -90,7 +90,7 @@
 appropriately. Queries conataining regual expression operators, for
 example, will simply look for the respective characters within the
 vocabulary's item (this used to be the cause of an OOPS, see
-https://bugs.edge.launchpad.net/blueprint/+bug/139385 for more
+https://bugs.launchpad.net/blueprint/+bug/139385 for more
 details).
 
     >>> list(naked_vocab.search('*'))

=== modified file 'lib/lp/bugs/javascript/tests/test_me_too.js'
--- lib/lp/bugs/javascript/tests/test_me_too.js	2010-07-11 00:32:53 +0000
+++ lib/lp/bugs/javascript/tests/test_me_too.js	2010-10-24 21:19:03 +0000
@@ -53,19 +53,19 @@
         var inpage = Y.Node.create([
             '<span id="affectsmetoo">',
             '  <span class="static">',
-            '    <img src="https://bugs.edge.launchpad.net/@@/flame-icon"; alt="" />',
+            '    <img src="https://bugs.launchpad.net/@@/flame-icon"; alt="" />',
             '    This bug affects me too',
             '    <a href="+affectsmetoo">',
             '      <img class="editicon" alt="Edit"',
-            '           src="https://bugs.edge.launchpad.net/@@/edit"; />',
+            '           src="https://bugs.launchpad.net/@@/edit"; />',
             '    </a>',
             '  </span>',
             '  <span class="dynamic unseen">',
             '    <img class="editicon" alt="Edit"',
-            '         src="https://bugs.edge.launchpad.net/@@/edit"; />',
+            '         src="https://bugs.launchpad.net/@@/edit"; />',
             '    <a href="+affectsmetoo" class="js-action"',
             '       ><span class="value">Does this bug affect you?</span></a>',
-            '    <img src="https://bugs.edge.launchpad.net/@@/flame-icon"; alt=""/>',
+            '    <img src="https://bugs.launchpad.net/@@/flame-icon"; alt=""/>',
             '  </span>',
             '</span>'].join(''));
         Y.one("body").appendChild(inpage);

=== modified file 'lib/lp/bugs/model/bug.py'
--- lib/lp/bugs/model/bug.py	2010-10-19 21:30:53 +0000
+++ lib/lp/bugs/model/bug.py	2010-10-24 21:19:03 +0000
@@ -948,12 +948,12 @@
             # (person X is in the team X)
             TeamParticipation.person == person.id,
             # XXX: Storm fails to compile this, so manually done.
-            # bug=https://bugs.edge.launchpad.net/storm/+bug/627137
+            # bug=https://bugs.launchpad.net/storm/+bug/627137
             # RBC 20100831
             SQL("""TeamParticipation.team = BugSubscription.person"""),
             # Join in the Person rows we want
             # XXX: Storm fails to compile this, so manually done.
-            # bug=https://bugs.edge.launchpad.net/storm/+bug/627137
+            # bug=https://bugs.launchpad.net/storm/+bug/627137
             # RBC 20100831
             SQL("""Person.id = TeamParticipation.team"""),
             ).order_by(Person.name),
@@ -1713,7 +1713,7 @@
                 self.date_made_private = None
 
             # XXX: This should be a bulk update. RBC 20100827
-            # bug=https://bugs.edge.launchpad.net/storm/+bug/625071
+            # bug=https://bugs.launchpad.net/storm/+bug/625071
             for attachment in self.attachments_unpopulated:
                 attachment.libraryfile.restricted = private
 

=== modified file 'lib/lp/bugs/model/bugtask.py'
--- lib/lp/bugs/model/bugtask.py	2010-10-22 19:56:26 +0000
+++ lib/lp/bugs/model/bugtask.py	2010-10-24 21:19:03 +0000
@@ -1488,7 +1488,7 @@
         """See `IBugTaskSet`."""
         # XXX: JSK: 2007-12-19: This method should probably return
         # None when task_id is not present. See:
-        # https://bugs.edge.launchpad.net/launchpad/+bug/123592
+        # https://bugs.launchpad.net/launchpad/+bug/123592
         try:
             bugtask = BugTask.get(task_id)
         except SQLObjectNotFound:

=== modified file 'lib/lp/bugs/stories/distribution/xx-distribution-upstream-bug-report.txt'
--- lib/lp/bugs/stories/distribution/xx-distribution-upstream-bug-report.txt	2010-10-09 16:36:22 +0000
+++ lib/lp/bugs/stories/distribution/xx-distribution-upstream-bug-report.txt	2010-10-24 21:19:03 +0000
@@ -71,7 +71,7 @@
 broken percentage when comparing with bugs marked upstream. Perhaps
 we'd solve this by separating the watched column into natively watched
 and remote watched, but I don't know how to fix this right now.  See
-https://bugs.edge.launchpad.net/malone/+bug/188020
+https://bugs.launchpad.net/malone/+bug/188020
     -- kiko, 2008-02-01
 
 

=== modified file 'lib/lp/code/browser/sourcepackagerecipe.py'
--- lib/lp/code/browser/sourcepackagerecipe.py	2010-10-03 15:30:06 +0000
+++ lib/lp/code/browser/sourcepackagerecipe.py	2010-10-24 21:19:03 +0000
@@ -77,7 +77,7 @@
     'We\'re still working on source package recipes. '
     'We would love for you to try them out, and if you have '
     'any issues, please '
-    '<a href="http://bugs.edge.launchpad.net/launchpad-code";>'
+    '<a href="http://bugs.launchpad.net/launchpad-code";>'
     'file a bug</a>.  We\'ll be happy to fix any problems you encounter.')
 
 

=== modified file 'lib/lp/code/model/tests/test_branchlookup.py'
--- lib/lp/code/model/tests/test_branchlookup.py	2010-09-28 21:27:42 +0000
+++ lib/lp/code/model/tests/test_branchlookup.py	2010-10-24 21:19:03 +0000
@@ -310,7 +310,7 @@
         """test_getByURL works with production values."""
         branch_set = getUtility(IBranchLookup)
         branch = self.makeProductBranch()
-        self.pushConfig('codehosting', lp_url_hosts='edge,production,,')
+        self.pushConfig('codehosting', lp_url_hosts='production,,')
         branch2 = branch_set.getByUrl('lp://staging/~aa/b/c')
         self.assertIs(None, branch2)
         branch2 = branch_set.getByUrl('lp://asdf/~aa/b/c')
@@ -319,8 +319,6 @@
         self.assertEqual(branch, branch2)
         branch2 = branch_set.getByUrl('lp://production/~aa/b/c')
         self.assertEqual(branch, branch2)
-        branch2 = branch_set.getByUrl('lp://edge/~aa/b/c')
-        self.assertEqual(branch, branch2)
 
     def test_getByUrls(self):
         # getByUrls returns a dictionary mapping branches to URLs.

=== modified file 'lib/lp/registry/help/home-page-staging-help.html'
--- lib/lp/registry/help/home-page-staging-help.html	2010-01-12 16:16:27 +0000
+++ lib/lp/registry/help/home-page-staging-help.html	2010-10-24 21:19:03 +0000
@@ -18,8 +18,8 @@
     <p>However, there are a few things to note about staging:</p>
 
     <ul>
-      <li>Every 24 hours, staging's database is replaced with a fresh snapshot of Launchpad's production database: you will lose anything you do on staging.</li>
-      <li>Staging runs the latest bleeding edge code from the Launchpad developers &mdash; if things go wrong, <a target="_blank" href="https://bugs.launchpad.net/launchpad/+filebug";>please let us know</a>.</li>
+      <li>Every week, staging's database is replaced with a fresh snapshot of Launchpad's production database: you will lose anything you do on staging.</li>
+      <li>Staging runs the latest code with changed database models from the Launchpad developers &mdash; if things go wrong, <a target="_blank" href="https://bugs.launchpad.net/launchpad/+filebug";>please let us know</a>.</li>
       <li>You can't create a new account on staging &mdash; instead, create one in <a href="https://launchpad.net/";>Launchpad's production environment</a> and then wait up to 24 hours for your account to be available on staging.</li>
       <li>Staging does not send email.</li>
       <li>You can upload translations and templates but not export them &mdash; uploaded translations/templates will disappear after 24 hours.</li>

=== modified file 'lib/lp/registry/interfaces/distributionsourcepackage.py'
--- lib/lp/registry/interfaces/distributionsourcepackage.py	2010-08-23 16:51:11 +0000
+++ lib/lp/registry/interfaces/distributionsourcepackage.py	2010-10-24 21:19:03 +0000
@@ -176,7 +176,7 @@
             - The latest distroseries wins
             - updates > security > release
 
-        See https://bugs.edge.launchpad.net/soyuz/+bug/236922 for a plan
+        See https://bugs.launchpad.net/soyuz/+bug/236922 for a plan
         on how this criteria will be centrally encoded.
         """)
 

=== modified file 'lib/lp/registry/model/distributionsourcepackage.py'
--- lib/lp/registry/model/distributionsourcepackage.py	2010-09-21 09:37:06 +0000
+++ lib/lp/registry/model/distributionsourcepackage.py	2010-10-24 21:19:03 +0000
@@ -235,7 +235,7 @@
         # latest relevant publication. It relies on ordering of status
         # and pocket enum values, which is arguably evil but much faster
         # than CASE sorting; at any rate this can be fixed when
-        # https://bugs.edge.launchpad.net/soyuz/+bug/236922 is.
+        # https://bugs.launchpad.net/soyuz/+bug/236922 is.
         spph = SourcePackagePublishingHistory.selectFirst("""
             SourcePackagePublishingHistory.distroseries = DistroSeries.id AND
             DistroSeries.distribution = %s AND

=== modified file 'lib/lp/registry/model/person.py'
--- lib/lp/registry/model/person.py	2010-10-19 20:54:44 +0000
+++ lib/lp/registry/model/person.py	2010-10-24 21:19:03 +0000
@@ -311,7 +311,7 @@
     Note that it performs poorly at least some of the time, and if
     EmailAddress and Person are already being queried, its probably better to
     query Account directly. See bug
-    https://bugs.edge.launchpad.net/launchpad-registry/+bug/615237 for some
+    https://bugs.launchpad.net/launchpad-registry/+bug/615237 for some
     corroborating information.
     """
 

=== modified file 'lib/lp/services/features/__init__.py'
--- lib/lp/services/features/__init__.py	2010-09-29 08:36:22 +0000
+++ lib/lp/services/features/__init__.py	2010-10-24 21:19:03 +0000
@@ -27,7 +27,7 @@
 Flags are defined by a I{name} that typically looks like a Python
 identifier, for example C{notification.global.text}.  A definition is
 given for a particular I{scope}, which also looks like a dotted identifier,
-for example C{user.beta} or C{server.edge}.  This is just a naming
+for example C{user.beta} or C{server.lpnet}.  This is just a naming
 convention, and they do not need to correspond to Python modules.
 
 The value is stored in the database as just a Unicode string, and it might

=== modified file 'lib/lp/services/features/webapp.py'
--- lib/lp/services/features/webapp.py	2010-09-25 09:27:30 +0000
+++ lib/lp/services/features/webapp.py	2010-10-24 21:19:03 +0000
@@ -25,7 +25,7 @@
 
         Currently supports the following scopes:
          - default
-         - is_edge/is_lpnet etc (thunks through to the config)
+         - server.is_edge/is_lpnet etc (thunks through to the config)
          - pageid:
            This scope works on a namespace model: for a page
            with pageid SomeType:+view#subselector

=== modified file 'lib/lp/services/mail/tests/incomingmail.txt'
--- lib/lp/services/mail/tests/incomingmail.txt	2010-10-18 22:24:59 +0000
+++ lib/lp/services/mail/tests/incomingmail.txt	2010-10-24 21:19:03 +0000
@@ -119,7 +119,7 @@
     Apologies for the inconvenience.
     <BLANKLINE>
     If this is blocking your work, please file a question at
-    https://answers.edge.launchpad.net/launchpad/+addquestion
+    https://answers.launchpad.net/launchpad/+addquestion
     and include the error ID OOPS-... in the description.
     ...
     From: Sample Person <test@xxxxxxxxxxxxx>
@@ -256,7 +256,7 @@
     Apologies for the inconvenience.
     <BLANKLINE>
     If this is blocking your work, please file a question at
-    https://answers.edge.launchpad.net/launchpad/+addquestion
+    https://answers.launchpad.net/launchpad/+addquestion
     and include the error ID OOPS-...TEMAIL... in the description.
     ...
     From: Foo Bar <foo.bar@xxxxxxxxxxxxx>
@@ -301,7 +301,7 @@
     Apologies for the inconvenience.
     <BLANKLINE>
     If this is blocking your work, please file a question at
-    https://answers.edge.launchpad.net/launchpad/+addquestion
+    https://answers.launchpad.net/launchpad/+addquestion
     and include the error ID OOPS-...TEMAIL... in the description.
     ...
     From: Foo Bar <foo.bar@xxxxxxxxxxxxx>

=== modified file 'lib/lp/services/memcache/doc/tales-cache.txt'
--- lib/lp/services/memcache/doc/tales-cache.txt	2010-10-18 22:24:59 +0000
+++ lib/lp/services/memcache/doc/tales-cache.txt	2010-10-24 21:19:03 +0000
@@ -32,8 +32,7 @@
 
 We also see some comments showing that we had a cache hit, and what the
 configuration was for it ("public").  These comments are only present
-when Launchpad's config is not configured as edge or production (``is_edge``
-or ``is_lpnet``, respectively).
+when Launchpad's config is not configured as production (``is_lpnet``).
 
 If we clear the cache, it will be rendered as expected.
 

=== modified file 'lib/lp/services/memcache/tales.py'
--- lib/lp/services/memcache/tales.py	2010-09-12 05:52:41 +0000
+++ lib/lp/services/memcache/tales.py	2010-10-24 21:19:03 +0000
@@ -274,7 +274,7 @@
         self._memcache_expr = memcache_expr
 
     def __call__(self, value):
-        if not config.launchpad.is_lpnet and not config.launchpad.is_edge:
+        if not config.launchpad.is_lpnet:
             # For debugging and testing purposes, prepend a description of
             # the memcache expression used to the stored value.
             rule = '%s [%s seconds]' % (self._memcache_expr, self._max_age)

=== modified file 'lib/lp/testing/__init__.py'
--- lib/lp/testing/__init__.py	2010-10-19 23:04:18 +0000
+++ lib/lp/testing/__init__.py	2010-10-24 21:19:03 +0000
@@ -90,7 +90,7 @@
 import transaction
 # zope.exception demands more of frame objects than twisted.python.failure
 # provides in its fake frames.  This is enough to make it work with them
-# as of 2009-09-16.  See https://bugs.edge.launchpad.net/bugs/425113.
+# as of 2009-09-16.  See https://bugs.launchpad.net/bugs/425113.
 from twisted.python.failure import _Frame
 from windmill.authoring import WindmillTestClient
 from zope.component import (

=== modified file 'lib/lp/translations/templates/translationimportqueue-index.pt'
--- lib/lp/translations/templates/translationimportqueue-index.pt	2010-01-12 13:48:24 +0000
+++ lib/lp/translations/templates/translationimportqueue-index.pt	2010-10-24 21:19:03 +0000
@@ -25,7 +25,7 @@
       </p>
       <p>
         If your import is taking longer than you'd expect, <a href="
-        https://answers.edge.launchpad.net/rosetta/+addquestion";
+        https://answers.launchpad.net/rosetta/+addquestion";
         >contact us</a>.
         (<a href="/+help/successful-imports.html" target="help">Learn
         more about getting a successful import</a>)

=== modified file 'utilities/create-lp-wadl-and-apidoc.py'
--- utilities/create-lp-wadl-and-apidoc.py	2010-10-19 18:43:44 +0000
+++ utilities/create-lp-wadl-and-apidoc.py	2010-10-24 21:19:03 +0000
@@ -7,8 +7,12 @@
 
 Example:
 
+<<<<<<< TREE
     % LPCONFIG=development bin/py utilities/create-lp-wadl-and-apidoc.py \\
       "lib/canonical/launchpad/apidoc/wadl-development-%(version)s.xml"
+=======
+% LPCONFIG="lpnet" utilities/create-lp-wadl.py launchpad-%(version)s.wadl
+>>>>>>> MERGE-SOURCE
 """
 import _pythonpath # Not lint, actually needed.
 

=== modified file 'utilities/on-edge'
--- utilities/on-edge	2010-04-27 19:48:39 +0000
+++ utilities/on-edge	2010-10-24 21:19:03 +0000
@@ -118,30 +118,24 @@
     parser.add_option(
         '-v', '--verbose', action='store_true', help="Show revision log.")
     parser.add_option(
-        '--edge-only', action='store_true',
-        help="Only show revisions not on edge. Do not consult staging.")
-    parser.add_option(
-        '--staging-only', action='store_true',
-        help="Only show revisions not on staging. Do not consult edge.")
+        '--edge', action='store_true',
+        help="Show revisions on edge.")
     return parser
 
 
-def run(verbose, edge_only, staging_only):
-    if edge_only and staging_only:
-        raise UsageError("Cannot show only edge and only staging.")
+def run(verbose, edge):
     parent_dir = get_parent_directory()
-    if not staging_only:
+    if edge:
         edge_revision = get_edge_revision()
         stable_branch = os.path.join(parent_dir, 'stable')
         report_difference_to_server(
             'edge', stable_branch, edge_revision, verbose)
-    if not edge_only:
-        staging_revision = get_staging_revision()
-        db_stable_branch = os.path.join(parent_dir, 'db-stable')
-        report_difference_to_server(
-            'staging', db_stable_branch, staging_revision, verbose)
-        print "Last automatic merge on db-stable r%s was stable r%s." % (
-            get_last_automatic_stable_merge_revno(db_stable_branch))
+    staging_revision = get_staging_revision()
+    db_stable_branch = os.path.join(parent_dir, 'db-stable')
+    report_difference_to_server(
+        'staging', db_stable_branch, staging_revision, verbose)
+    print "Last automatic merge on db-stable r%s was stable r%s." % (
+        get_last_automatic_stable_merge_revno(db_stable_branch))
 
 
 def main(argv):
@@ -149,7 +143,7 @@
     options, args = parser.parse_args(argv)
     if args:
         raise UsageError("Don't know what to do with arguments: %s" % args)
-    run(options.verbose, options.edge_only, options.staging_only)
+    run(options.verbose, options.edge)
 
 
 if __name__ == '__main__':

=== modified file 'utilities/page-performance-report-daily.sh'
--- utilities/page-performance-report-daily.sh	2010-08-11 16:25:05 +0000
+++ utilities/page-performance-report-daily.sh	2010-10-24 21:19:03 +0000
@@ -39,7 +39,6 @@
     }
 
 report() {
-    category_report $* edge /srv/launchpad.net-logs/edge
     category_report $* lpnet /srv/launchpad.net-logs/production
     return 0
 }

=== modified file 'utilities/page-performance-report.ini'
--- utilities/page-performance-report.ini	2010-08-11 11:53:39 +0000
+++ utilities/page-performance-report.ini	2010-10-24 21:19:03 +0000
@@ -5,13 +5,13 @@
 All Launchpad=.
 All launchpad except opstats=(?<!\+opstats)$
 
-Launchpad Frontpage=^https?://(edge\.)?launchpad\.[^/]+/?$
+Launchpad Frontpage=^https?://launchpad\.[^/]+/?$
 
 # Note that the bug text dump is served on the main launchpad domain
 # and we need to exlude it from the registry stats.
-Registry=^https?://(edge\.)?launchpad\.(?<!/\+text)$
-Registry - Person Index=^https?://(edge\.)?launchpad\.[^/]+/(~|%7E)[^/]+$
-Registry - Pillar Index=^https?://(edge\.)?launchpad\.[^/]+/\w[^/]*$
+Registry=^https?://launchpad\.(?<!/\+text)$
+Registry - Person Index=^https?://launchpad\.[^/]+/(~|%7E)[^/]+$
+Registry - Pillar Index=^https?://launchpad\.[^/]+/\w[^/]*$
 
 Answers=^https?://answers\.
 Answers - Front page=^https?://answers\.[^/]+/?$
@@ -27,7 +27,7 @@
 Bugs - Bug Page=^https?://bugs\.[^/]+/.+/\+bug/\d+$
 Bugs - Pillar Index=^https?://bugs\.[^/]+/\w[^/]*$
 Bugs - Search=^https?://bugs\.[^/]+/.+/\+bugs\?.*field.searchtext=
-Bugs - Text Dump=^https?://(edge\.)?launchpad\..+/\+text$
+Bugs - Text Dump=^https?://launchpad\..+/\+text$
 
 Code=^https?://code\.
 Code - Front page=^https?://code\.[^/]+/?$

=== modified file 'utilities/rocketfuel-get'
--- utilities/rocketfuel-get	2009-09-11 05:01:06 +0000
+++ utilities/rocketfuel-get	2010-10-24 21:19:03 +0000
@@ -61,7 +61,7 @@
 echo ""
 echo "  ALSO NOTE: You can ignore any warnings you see below about how"
 echo "  'You have not informed bzr of your Launchpad ID ...' etc."
-echo "  See https://bugs.edge.launchpad.net/bzr/+bug/401617 for why."
+echo "  See https://bugs.launchpad.net/bzr/+bug/401617 for why."
 echo ""
 echo "    Sourcedeps: $LP_SOURCEDEPS_PATH"
 

=== modified file 'utilities/rocketfuel-mp-status'
--- utilities/rocketfuel-mp-status	2010-09-16 00:58:27 +0000
+++ utilities/rocketfuel-mp-status	2010-10-24 21:19:03 +0000
@@ -6,7 +6,7 @@
 import os
 import sys
 
-launchpad = Launchpad.login_with('rocketfuel-mp-status', 'edge')
+launchpad = Launchpad.login_with('rocketfuel-mp-status', 'production')
 trunk = commands.getoutput(
     '. ~/.rocketfuel-env.sh && echo $LP_TRUNK_NAME')
 projpath = commands.getoutput(