Merge lp:~vila/bzr/integration into lp:bzr

Proposed by Vincent Ladeuil
Status: Merged
Approved by: Vincent Ladeuil
Approved revision: no longer in the source branch.
Merged at revision: 6620
Proposed branch: lp:~vila/bzr/integration
Merge into: lp:bzr
Diff against target: 424 lines (+160/-37)
14 files modified
.bzrignore (+1/-0)
MANIFEST.in (+10/-1)
Makefile (+3/-8)
bzr (+1/-1)
bzrlib/__init__.py (+1/-1)
bzrlib/lazy_regex.py (+11/-1)
bzrlib/tests/test_diff.py (+1/-3)
bzrlib/tests/test_http.py (+17/-2)
bzrlib/transport/http/_pycurl.py (+5/-1)
bzrlib/transport/http/_urllib2_wrappers.py (+3/-2)
bzrlib/transport/sftp.py (+3/-2)
doc/developers/releasing.txt (+42/-11)
doc/en/release-notes/bzr-2.7.txt (+59/-0)
doc/en/release-notes/bzr-2.8.txt (+3/-4)
To merge this branch: bzr merge lp:~vila/bzr/integration
Reviewer Review Type Date Requested Status
Vincent Ladeuil Approve
Review via email: mp+314910@code.launchpad.net

Commit message

Merge 2.7 into trunk including fixes for bugs #1622039, #1644003, #1579093 and #1645017.

Description of the change

Merge 2.7 into trunk including fixes for bugs #1644003, #1579093 and #1645017.

To post a comment you must log in.
Revision history for this message
Vincent Ladeuil (vila) wrote :

Re-sync trunk with 2.7.

review: Approve
Revision history for this message
bzr PQM (bzr-pqm) wrote :
Download full text (2.8 MiB)

The attempt to merge lp:~vila/bzr/integration into lp:bzr failed. Below is the output from the failed tests.

python tools/rst2html.py --link-stylesheet --footnote-references=superscript --halt=warning --stylesheet=../../default.css doc/en/tutorials/tutorial.txt "doc/en/tutorials/tutorial.html"
python tools/rst2html.py --link-stylesheet --footnote-references=superscript --halt=warning --stylesheet=../../default.css doc/en/tutorials/using_bazaar_with_launchpad.txt "doc/en/tutorials/using_bazaar_with_launchpad.html"
python tools/rst2html.py --link-stylesheet --footnote-references=superscript --halt=warning --stylesheet=../../default.css doc/en/tutorials/centralized_workflow.txt "doc/en/tutorials/centralized_workflow.html"
python tools/rst2html.py --link-stylesheet --footnote-references=superscript --halt=warning --stylesheet=../../default.css doc/ru/tutorials/centralized_workflow.txt "doc/ru/tutorials/centralized_workflow.html"
python tools/rst2html.py --link-stylesheet --footnote-references=superscript --halt=warning --stylesheet=../../default.css doc/ru/tutorials/using_bazaar_with_launchpad.txt "doc/ru/tutorials/using_bazaar_with_launchpad.html"
python tools/rst2html.py --link-stylesheet --footnote-references=superscript --halt=warning --stylesheet=../../default.css doc/ru/tutorials/tutorial.txt "doc/ru/tutorials/tutorial.html"
python tools/rst2html.py --link-stylesheet --footnote-references=superscript --halt=warning --stylesheet=../../default.css doc/ja/tutorials/tutorial.txt "doc/ja/tutorials/tutorial.html"
python tools/rst2html.py --link-stylesheet --footnote-references=superscript --halt=warning --stylesheet=../../default.css doc/ja/tutorials/using_bazaar_with_launchpad.txt "doc/ja/tutorials/using_bazaar_with_launchpad.html"
python tools/rst2html.py --link-stylesheet --footnote-references=superscript --halt=warning --stylesheet=../../default.css doc/ja/tutorials/centralized_workflow.txt "doc/ja/tutorials/centralized_workflow.html"
python tools/rst2html.py --link-stylesheet --footnote-references=superscript --halt=warning --stylesheet=../../default.css doc/en/mini-tutorial/index.txt "doc/en/mini-tutorial/index.html"
python tools/rst2html.py --link-stylesheet --footnote-references=superscript --halt=warning --stylesheet=../../default.css doc/ja/mini-tutorial/index.txt "doc/ja/mini-tutorial/index.html"
python tools/rst2html.py --link-stylesheet --footnote-references=superscript --halt=warning --stylesheet=../../default.css doc/ru/mini-tutorial/index.txt "doc/ru/mini-tutorial/index.html"
python tools/rst2html.py --link-stylesheet --footnote-references=superscript --halt=warning --stylesheet=../../default.css doc/es/mini-tutorial/index.txt "doc/es/mini-tutorial/index.html"
python tools/rst2html.py --link-stylesheet --footnote-references=superscript --halt=warning --stylesheet=../../default.css doc/en/user-guide/index-plain.txt doc/en/user-guide/index-plain.html
python tools/rst2html.py --link-stylesheet --footnote-references=superscript --halt=warning --stylesheet=../../default.css doc/ja/user-guide/index-plain.txt "doc/ja/user-guide/index-plain.html"
python tools/rst2html.py --link-stylesheet --footnote-references=superscript --halt=warning ...

Revision history for this message
Vincent Ladeuil (vila) wrote :

15:59:23 O: ======================================================================
15:59:23 O: ERROR: bzrlib.tests.per_transport.TransportTests.test_copy_to(SFTPTransport,SFTPHomeDirServer)
15:59:23 O: ----------------------------------------------------------------------
15:59:23 O: Traceback (most recent call last):
15:59:23 O: testtools.testresult.real._StringException: lost connection during test 'bzrlib.tests.per_transport.TransportTests.test_copy_to(SFTPTransport,SFTPHomeDirServer)'

Progress: on more debian reported test failure :-}

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file '.bzrignore'
--- .bzrignore 2012-08-07 06:32:51 +0000
+++ .bzrignore 2017-01-17 15:27:25 +0000
@@ -7,6 +7,7 @@
7CHANGELOG7CHANGELOG
8# generated documents8# generated documents
9bzr.19bzr.1
10MANIFEST
10./doc/*.html11./doc/*.html
11./doc/*/_build/12./doc/*/_build/
12./doc/*/Makefile13./doc/*/Makefile
1314
=== modified file 'MANIFEST.in'
--- MANIFEST.in 2010-01-13 16:23:07 +0000
+++ MANIFEST.in 2017-01-17 15:27:25 +0000
@@ -1,3 +1,12 @@
1include bzr README setup.py1include bzr README setup.py COPYING.txt
2# FIXME: Not needed, remove after 2.7.0 -- vila 2016-02-07
3include BRANCH.TODO bzr.ico INSTALL Makefile MANIFEST.in NEWS profile_imports.py README_BDIST_RPM .rsyncexclude .testr.conf TODO tools/bzr_epydoc tools/packaging/lp-upload-release tools/subunit-sum bzrlib/plugins/news_merge/README bzrlib/plugins/po_merge/README bzrlib/tests/ssl_certs/ca.key bzrlib/tests/ssl_certs/server.csr bzrlib/plugins/grep/.bzrignore bzrlib/plugins/grep/NEWS
4# bzr export still create some empty dirs that need to be removed
5# bzrlib/plugins/weave_fmt/tests/ bzrlib/store/revision/ doc/ja/_templates/ man1/ man1
6recursive-include tools/win32 *
2recursive-include bzrlib *.py *.pyx *.pxd *.txt *.c *.h7recursive-include bzrlib *.py *.pyx *.pxd *.txt *.c *.h
3recursive-include tools *.py *.sh8recursive-include tools *.py *.sh
9recursive-include apport *
10recursive-include contrib *
11recursive-include doc *
12recursive-include po *
413
=== modified file 'Makefile'
--- Makefile 2016-04-03 16:32:31 +0000
+++ Makefile 2017-01-17 15:27:25 +0000
@@ -1,4 +1,4 @@
1# Copyright (C) 2005-2012, 2016 Canonical Ltd1# Copyright (C) 2005-2012, 2016, 2017 Canonical Ltd
2#2#
3# This program is free software; you can redistribute it and/or modify3# This program is free software; you can redistribute it and/or modify
4# it under the terms of the GNU General Public License as published by4# it under the terms of the GNU General Public License as published by
@@ -454,9 +454,6 @@
454.PHONY: dist check-dist-tarball454.PHONY: dist check-dist-tarball
455455
456# build a distribution source tarball456# build a distribution source tarball
457#
458# this method of copying the pyrex generated files is a bit ugly; it would be
459# nicer to generate it from distutils.
460dist: 457dist:
461 version=`./bzr version --short` && \458 version=`./bzr version --short` && \
462 echo Building distribution of bzr $$version && \459 echo Building distribution of bzr $$version && \
@@ -465,10 +462,8 @@
465 tarball=$$PWD/../bzr-$$version.tar.gz && \462 tarball=$$PWD/../bzr-$$version.tar.gz && \
466 $(MAKE) clean && \463 $(MAKE) clean && \
467 $(MAKE) && \464 $(MAKE) && \
468 bzr export $$expdir && \465 $(PYTHON) setup.py sdist -d $$PWD/.. && \
469 cp bzrlib/*.c bzrlib/*.h $$expdir/bzrlib/. && \466 gpg --detach-sign --armor $$tarball && \
470 tar cfz $$tarball -C $$expbasedir bzr-$$version && \
471 gpg --detach-sign $$tarball && \
472 rm -rf $$expbasedir467 rm -rf $$expbasedir
473468
474# run all tests in a previously built tarball469# run all tests in a previously built tarball
475470
=== modified file 'bzr'
--- bzr 2016-02-01 19:26:41 +0000
+++ bzr 2017-01-17 15:27:25 +0000
@@ -1,6 +1,6 @@
1#! /usr/bin/env python1#! /usr/bin/env python
22
3# Copyright (C) 2005-2013, 2016 Canonical Ltd3# Copyright (C) 2005-2013, 2016, 2017 Canonical Ltd
4#4#
5# This program is free software; you can redistribute it and/or modify5# This program is free software; you can redistribute it and/or modify
6# it under the terms of the GNU General Public License as published by6# it under the terms of the GNU General Public License as published by
77
=== modified file 'bzrlib/__init__.py'
--- bzrlib/__init__.py 2016-02-01 19:26:41 +0000
+++ bzrlib/__init__.py 2017-01-17 15:27:25 +0000
@@ -1,4 +1,4 @@
1# Copyright (C) 2005-2013, 2016 Canonical Ltd1# Copyright (C) 2005-2013, 2016, 2017 Canonical Ltd
2#2#
3# This program is free software; you can redistribute it and/or modify3# This program is free software; you can redistribute it and/or modify
4# it under the terms of the GNU General Public License as published by4# it under the terms of the GNU General Public License as published by
55
=== modified file 'bzrlib/lazy_regex.py'
--- bzrlib/lazy_regex.py 2011-12-19 13:23:58 +0000
+++ bzrlib/lazy_regex.py 2017-01-17 15:27:25 +0000
@@ -1,4 +1,4 @@
1# Copyright (C) 2006 Canonical Ltd1# Copyright (C) 2006, 2008-2011, 2017 Canonical Ltd
2#2#
3# This program is free software; you can redistribute it and/or modify3# This program is free software; you can redistribute it and/or modify
4# it under the terms of the GNU General Public License as published by4# it under the terms of the GNU General Public License as published by
@@ -131,3 +131,13 @@
131 raise AssertionError(131 raise AssertionError(
132 "re.compile has already been overridden as lazy_compile, but this would" \132 "re.compile has already been overridden as lazy_compile, but this would" \
133 " cause infinite recursion")133 " cause infinite recursion")
134
135
136# re.finditer get confused if it receives a LazyRegex
137if getattr(re, 'finditer', None is not None):
138 def finditer_public(pattern, string, flags=0):
139 if isinstance(pattern, LazyRegex):
140 return pattern.finditer(string)
141 else:
142 return _real_re_compile(pattern, flags).finditer(string)
143re.finditer = finditer_public
134144
=== modified file 'bzrlib/tests/test_diff.py'
--- bzrlib/tests/test_diff.py 2016-02-01 18:06:32 +0000
+++ bzrlib/tests/test_diff.py 2017-01-17 15:27:25 +0000
@@ -1,4 +1,4 @@
1# Copyright (C) 2005-2012, 2014, 2016 Canonical Ltd1# Copyright (C) 2005-2012, 2014, 2016, 2017 Canonical Ltd
2#2#
3# This program is free software; you can redistribute it and/or modify3# This program is free software; you can redistribute it and/or modify
4# it under the terms of the GNU General Public License as published by4# it under the terms of the GNU General Public License as published by
@@ -313,8 +313,6 @@
313 pipe = subprocess.Popen(cmd, stdout=subprocess.PIPE,313 pipe = subprocess.Popen(cmd, stdout=subprocess.PIPE,
314 stdin=subprocess.PIPE)314 stdin=subprocess.PIPE)
315 out, err = pipe.communicate()315 out, err = pipe.communicate()
316 # Diff returns '2' on Binary files.
317 self.assertEqual(2, pipe.returncode)
318 # We should output whatever diff tells us, plus a trailing newline316 # We should output whatever diff tells us, plus a trailing newline
319 self.assertEqual(out.splitlines(True) + ['\n'], lines)317 self.assertEqual(out.splitlines(True) + ['\n'], lines)
320318
321319
=== modified file 'bzrlib/tests/test_http.py'
--- bzrlib/tests/test_http.py 2016-02-01 18:06:32 +0000
+++ bzrlib/tests/test_http.py 2017-01-17 15:27:25 +0000
@@ -1,4 +1,4 @@
1# Copyright (C) 2005-2012, 2015, 2016 Canonical Ltd1# Copyright (C) 2005-2012, 2015, 2016, 2017 Canonical Ltd
2#2#
3# This program is free software; you can redistribute it and/or modify3# This program is free software; you can redistribute it and/or modify
4# it under the terms of the GNU General Public License as published by4# it under the terms of the GNU General Public License as published by
@@ -260,6 +260,16 @@
260 self.assertEqual('basic', scheme)260 self.assertEqual('basic', scheme)
261 self.assertEqual('realm="Thou should not pass"', remainder)261 self.assertEqual('realm="Thou should not pass"', remainder)
262262
263 def test_build_basic_header_with_long_creds(self):
264 handler = _urllib2_wrappers.BasicAuthHandler()
265 user = 'user' * 10 # length 40
266 password = 'password' * 5 # length 40
267 header = handler.build_auth_header(
268 dict(user=user, password=password), None)
269 # https://bugs.launchpad.net/bzr/+bug/1606203 was caused by incorrectly
270 # creating a header value with an embedded '\n'
271 self.assertFalse('\n' in header)
272
263 def test_basic_extract_realm(self):273 def test_basic_extract_realm(self):
264 scheme, remainder = self.parse_header(274 scheme, remainder = self.parse_header(
265 'Basic realm="Thou should not pass"',275 'Basic realm="Thou should not pass"',
@@ -1273,6 +1283,8 @@
1273 self.no_proxy_host = self.server_host_port1283 self.no_proxy_host = self.server_host_port
1274 # The secondary server is the proxy1284 # The secondary server is the proxy
1275 self.proxy_url = self.get_secondary_url()1285 self.proxy_url = self.get_secondary_url()
1286 if self._testing_pycurl():
1287 self.proxy_url = self.proxy_url.replace('+pycurl', '')
12761288
1277 def _testing_pycurl(self):1289 def _testing_pycurl(self):
1278 # TODO: This is duplicated for lots of the classes in this file1290 # TODO: This is duplicated for lots of the classes in this file
@@ -1853,7 +1865,10 @@
1853 ])1865 ])
18541866
1855 def get_user_transport(self, user, password):1867 def get_user_transport(self, user, password):
1856 self.overrideEnv('all_proxy', self.get_user_url(user, password))1868 proxy_url = self.get_user_url(user, password)
1869 if self._testing_pycurl():
1870 proxy_url = proxy_url.replace('+pycurl', '')
1871 self.overrideEnv('all_proxy', proxy_url)
1857 return TestAuth.get_user_transport(self, user, password)1872 return TestAuth.get_user_transport(self, user, password)
18581873
1859 def test_empty_pass(self):1874 def test_empty_pass(self):
18601875
=== modified file 'bzrlib/transport/http/_pycurl.py'
--- bzrlib/transport/http/_pycurl.py 2011-12-19 13:23:58 +0000
+++ bzrlib/transport/http/_pycurl.py 2017-01-17 15:27:25 +0000
@@ -1,4 +1,4 @@
1# Copyright (C) 2006-2010 Canonical Ltd1# Copyright (C) 2006-2011, 2017 Canonical Ltd
2#2#
3# This program is free software; you can redistribute it and/or modify3# This program is free software; you can redistribute it and/or modify
4# it under the terms of the GNU General Public License as published by4# it under the terms of the GNU General Public License as published by
@@ -85,6 +85,9 @@
85 """85 """
86 return pycurl.__dict__.get(symbol, default)86 return pycurl.__dict__.get(symbol, default)
8787
88# Yes, weird but returned on weird http error (invalid status line)
89CURLE_FTP_WEIRD_SERVER_REPLY = _get_pycurl_errcode(
90 'E_FTP_WEIRD_SERVER_REPLY', 8)
88CURLE_COULDNT_CONNECT = _get_pycurl_errcode('E_COULDNT_CONNECT', 7)91CURLE_COULDNT_CONNECT = _get_pycurl_errcode('E_COULDNT_CONNECT', 7)
89CURLE_COULDNT_RESOLVE_HOST = _get_pycurl_errcode('E_COULDNT_RESOLVE_HOST', 6)92CURLE_COULDNT_RESOLVE_HOST = _get_pycurl_errcode('E_COULDNT_RESOLVE_HOST', 6)
90CURLE_COULDNT_RESOLVE_PROXY = _get_pycurl_errcode('E_COULDNT_RESOLVE_PROXY', 5)93CURLE_COULDNT_RESOLVE_PROXY = _get_pycurl_errcode('E_COULDNT_RESOLVE_PROXY', 5)
@@ -397,6 +400,7 @@
397 if e[0] in (CURLE_COULDNT_RESOLVE_HOST,400 if e[0] in (CURLE_COULDNT_RESOLVE_HOST,
398 CURLE_COULDNT_RESOLVE_PROXY,401 CURLE_COULDNT_RESOLVE_PROXY,
399 CURLE_COULDNT_CONNECT,402 CURLE_COULDNT_CONNECT,
403 CURLE_FTP_WEIRD_SERVER_REPLY,
400 CURLE_GOT_NOTHING,404 CURLE_GOT_NOTHING,
401 CURLE_SSL_CACERT,405 CURLE_SSL_CACERT,
402 CURLE_SSL_CACERT_BADFILE,406 CURLE_SSL_CACERT_BADFILE,
403407
=== modified file 'bzrlib/transport/http/_urllib2_wrappers.py'
--- bzrlib/transport/http/_urllib2_wrappers.py 2016-01-31 12:55:31 +0000
+++ bzrlib/transport/http/_urllib2_wrappers.py 2017-01-17 15:27:25 +0000
@@ -1,4 +1,4 @@
1# Copyright (C) 2006-2013, 2016 Canonical Ltd1# Copyright (C) 2006-2013, 2016, 2017 Canonical Ltd
2#2#
3# This program is free software; you can redistribute it and/or modify3# This program is free software; you can redistribute it and/or modify
4# it under the terms of the GNU General Public License as published by4# it under the terms of the GNU General Public License as published by
@@ -48,6 +48,7 @@
48# actual code more or less do that, tests should be written to48# actual code more or less do that, tests should be written to
49# ensure that.49# ensure that.
5050
51import base64
51import errno52import errno
52import httplib53import httplib
53import os54import os
@@ -1491,7 +1492,7 @@
14911492
1492 def build_auth_header(self, auth, request):1493 def build_auth_header(self, auth, request):
1493 raw = '%s:%s' % (auth['user'], auth['password'])1494 raw = '%s:%s' % (auth['user'], auth['password'])
1494 auth_header = 'Basic ' + raw.encode('base64').strip()1495 auth_header = 'Basic ' + base64.b64encode(raw)
1495 return auth_header1496 return auth_header
14961497
1497 def extract_realm(self, header_value):1498 def extract_realm(self, header_value):
14981499
=== modified file 'bzrlib/transport/sftp.py'
--- bzrlib/transport/sftp.py 2016-01-21 17:48:07 +0000
+++ bzrlib/transport/sftp.py 2017-01-17 15:27:25 +0000
@@ -1,4 +1,4 @@
1# Copyright (C) 2005-2011, 2016 Canonical Ltd1# Copyright (C) 2005-2011, 2016, 2017 Canonical Ltd
2#2#
3# This program is free software; you can redistribute it and/or modify3# This program is free software; you can redistribute it and/or modify
4# it under the terms of the GNU General Public License as published by4# it under the terms of the GNU General Public License as published by
@@ -410,8 +410,9 @@
410 try:410 try:
411 path = self._remote_path(relpath)411 path = self._remote_path(relpath)
412 f = self._get_sftp().file(path, mode='rb')412 f = self._get_sftp().file(path, mode='rb')
413 size = f.stat().st_size
413 if self._do_prefetch and (getattr(f, 'prefetch', None) is not None):414 if self._do_prefetch and (getattr(f, 'prefetch', None) is not None):
414 f.prefetch()415 f.prefetch(size)
415 return f416 return f
416 except (IOError, paramiko.SSHException), e:417 except (IOError, paramiko.SSHException), e:
417 self._translate_io_exception(e, path, ': error retrieving',418 self._translate_io_exception(e, path, ': error retrieving',
418419
=== modified file 'doc/developers/releasing.txt'
--- doc/developers/releasing.txt 2013-08-05 12:16:25 +0000
+++ doc/developers/releasing.txt 2017-01-17 15:27:25 +0000
@@ -513,7 +513,7 @@
513----------------------------513----------------------------
514514
515#. Post to the ``bazaar@lists.canonical.com`` and515#. Post to the ``bazaar@lists.canonical.com`` and
516 ``bzr-packagers@list.launchpad.net`` lists, saying that the source has516 ``bzr-packagers@lists.launchpad.net`` lists, saying that the source has
517 been frozen. Be extra clear that this is only a *source* release targeted517 been frozen. Be extra clear that this is only a *source* release targeted
518 at packagers and installer builders (see518 at packagers and installer builders (see
519 <https://bugs.launchpad.net/launchpad/+bug/645084>). This is the cue for519 <https://bugs.launchpad.net/launchpad/+bug/645084>). This is the cue for
@@ -551,12 +551,12 @@
551 <http://doc.bazaar.canonical.com>. It should be automatically build when551 <http://doc.bazaar.canonical.com>. It should be automatically build when
552 the branch is created, by a cron script ``update-bzr-docs`` on552 the branch is created, by a cron script ``update-bzr-docs`` on
553 ``escudero``. When the first release is created in a new series, a branch553 ``escudero``. When the first release is created in a new series, a branch
554 needs to be created on zhongshan::554 needs to be created on ``escudero``::
555555
556 ssh zhongshan.canonical.com556 ssh escudero.canonical.com
557 sudo -u bzr-web -s557 sudo -u bzr-web -s
558 cd /srv/doc.bazaar.canonical.com/558 cd /srv/doc.bazaar.canonical.com/
559 bzr branch http://bazaar.launchpad.net/~bzr-pqm/bzr/2.6 bzr/bzr.2.6559 bzr branch lp:bzr/2.7 bzr/bzr.2.7
560560
561 And the ``bzr/bin/update-bzr-docs`` script needs to refer to it.561 And the ``bzr/bin/update-bzr-docs`` script needs to refer to it.
562562
@@ -640,17 +640,48 @@
640#. Update `<http://en.wikipedia.org/wiki/Bazaar_(software)>`_ -- this should640#. Update `<http://en.wikipedia.org/wiki/Bazaar_(software)>`_ -- this should
641 be done for the stable and beta releases.641 be done for the stable and beta releases.
642642
643#. Update the python package index: <http://pypi.python.org/pypi/bzr> - best643#. Update the python package index: <http://pypi.python.org/pypi/bzr>
644 done by running ::644
645645 From the tarball created and tested earlier ::
646 python setup.py register646
647 twine upload -s ../bzr-2.7.0.tar.gz
647648
648 Remember to check the results afterward -- this should be done for649 Remember to check the results afterward -- this should be done for
649 stable releases but not for beta releases nor SRUs.650 stable releases but not for beta releases nor SRUs.
650651
651 To be able to register the release you must create an account on652 The ``twine`` command is provided by the ``twine`` package on Debian and
652 <http://pypi.python.org/pypi> and have one of the existing owners of653 Ubuntu.
653 the project add you to the group.654
655 If in doubt, you can test with <https://testpypi.python.org/pypi> where
656 you can register yourself, register the bzr project and upload (and then
657 remove the upload and delete the project so a new release manager can
658 enjoy the same facilities). If the project already exists, have one of
659 the existing owners of the project add you to the group.
660
661 To use the pypi test site, you need to record your credentials for an
662 existing user (the registration process is manual and starts at
663 <https://testpypi.python.org/pypi?%3Aaction=register_form>.
664
665 Once registered, you can record your crdentials in your ``~/pypirc`` file
666 with ::
667
668 [testpypi]
669 username:<login on testpypi>
670 password:<password on testpypi>
671 repository = https://testpypi.python.org/pypi
672
673 Registering the bzr project if doesn't exist is achieved with::
674
675 python setup.py -r https://testpypi.python.org/pypi register
676
677 Uploading is done with::
678
679 twine upload -r testpypi -s ../bzr-2.7.0.tar.gz
680
681 To be able to upload the release you must create an account on
682 <http://pypi.python.org/pypi> and have one of the existing owners of the
683 project add you to the group and update your ``[pypi]`` section in your
684 ``~/pypirc`` file.
654685
655686
656Merging the released code back to trunk687Merging the released code back to trunk
657688
=== modified file 'doc/en/release-notes/bzr-2.7.txt'
--- doc/en/release-notes/bzr-2.7.txt 2016-02-01 18:09:33 +0000
+++ doc/en/release-notes/bzr-2.7.txt 2017-01-17 15:27:25 +0000
@@ -5,6 +5,65 @@
5.. toctree::5.. toctree::
6 :maxdepth: 16 :maxdepth: 1
77
8bzr 2.7.1
9#########
10
11:2.7.1: NOT RELEASED YET
12
13
14External Compatibility Breaks
15*****************************
16
17None.
18
19New Features
20************
21
22None.
23
24Improvements
25************
26
27None.
28
29
30Bug Fixes
31*********
32
33* Complete monkey-patching of re.finditer or LazyRegexps leak.
34 (Vincent Ladeuil, #1644003)
35
36* Cope with paramiko making argument to SFTPFile.prefetch() mandatory.
37 (Jelmer Vernooij, #1579093)
38
39Documentation
40*************
41
42* Clarify pypi uploads for releases. (Vincent Ladeuil, #1542903)
43
44API Changes
45***********
46
47None.
48
49Internals
50*********
51
52None.
53
54Changed Behaviour
55*****************
56
57None.
58
59Testing
60*******
61
62* Recent versions of pycurl started being stricter about the proxy url,
63 using 'http+pycurl:' is not allowed anymore and should just be 'http:'
64 (Vincent Ladeuil, #1645017).
65
66
8bzr 2.7.067bzr 2.7.0
9#########68#########
1069
1170
=== modified file 'doc/en/release-notes/bzr-2.8.txt'
--- doc/en/release-notes/bzr-2.8.txt 2016-04-03 16:32:31 +0000
+++ doc/en/release-notes/bzr-2.8.txt 2017-01-17 15:27:25 +0000
@@ -56,10 +56,9 @@
56Testing56Testing
57*******57*******
5858
59.. Fixes and changes that are only relevant to bzr's test framework and 59* POSIX mandates diff to exit with status 1 (was 2 previously), bzr didn't
60 suite. This can include new facilities for writing tests, fixes to 60 rely on that feature but one of the tests did.
61 spurious test failures and changes to the way things should be tested.61 (Vincent Ladeuil, #1622039)
62
6362
64..63..
65 vim: tw=74 ft=rst ff=unix64 vim: tw=74 ft=rst ff=unix