Merge lp:~jelmer/bzr-builddeb/commands-are-lazy into lp:bzr-builddeb

Proposed by Jelmer Vernooij
Status: Merged
Approved by: Vincent Ladeuil
Approved revision: 663
Merged at revision: 660
Proposed branch: lp:~jelmer/bzr-builddeb/commands-are-lazy
Merge into: lp:bzr-builddeb
Diff against target: 261 lines (+93/-50)
1 file modified
cmds.py (+93/-50)
To merge this branch: bzr merge lp:~jelmer/bzr-builddeb/commands-are-lazy
Reviewer Review Type Date Requested Status
Vincent Ladeuil Approve
Review via email: mp+85468@code.launchpad.net

Description of the change

Defer a bunch of imports in cmds.py. This gets us some way towards fixing bug 903650.

Also, clean up temporary directories created by merge-upstream.

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

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'cmds.py'
2--- cmds.py 2011-12-03 01:24:37 +0000
3+++ cmds.py 2011-12-13 11:42:23 +0000
4@@ -47,7 +47,6 @@
5 NoWorkingTree,
6 )
7 from bzrlib.option import Option
8-from bzrlib.tag import _merge_tags_if_possible
9 from bzrlib.trace import note, warning
10 from bzrlib.workingtree import WorkingTree
11
12@@ -55,12 +54,8 @@
13 default_build_dir,
14 default_orig_dir,
15 default_result_dir,
16- dh_make,
17 gettext,
18 )
19-from bzrlib.plugins.builddeb.builder import (
20- DebBuild,
21- )
22 from bzrlib.plugins.builddeb.config import (
23 BUILD_TYPE_MERGE,
24 BUILD_TYPE_NATIVE,
25@@ -75,51 +70,24 @@
26 StrictBuildFailed,
27 )
28 from bzrlib.plugins.builddeb.hooks import run_hook
29-from bzrlib.plugins.builddeb.import_dsc import (
30- DistributionBranch,
31- DistributionBranchSet,
32- DscCache,
33- DscComp,
34- )
35-from bzrlib.plugins.builddeb.merge_package import fix_ancestry_as_needed
36-from bzrlib.plugins.builddeb.source_distiller import (
37- FullSourceDistiller,
38- MergeModeDistiller,
39- NativeSourceDistiller,
40- )
41-from bzrlib.plugins.builddeb.upstream import (
42- AptSource,
43- DebianRulesSource,
44- SelfSplitSource,
45- TarfileSource,
46- UScanSource,
47- UpstreamProvider,
48- )
49-from bzrlib.plugins.builddeb.upstream.branch import (
50- LazyUpstreamBranchSource,
51- UpstreamBranchSource,
52- )
53-from bzrlib.plugins.builddeb.upstream.pristinetar import (
54- PristineTarSource,
55- )
56 from bzrlib.plugins.builddeb.util import (
57- FORMAT_3_0_QUILT,
58- FORMAT_3_0_NATIVE,
59- component_from_orig_tarball,
60- debuild_config,
61- dget_changes,
62- find_changelog,
63- find_last_distribution,
64- find_previous_upload,
65- get_source_format,
66- guess_build_type,
67- lookup_distribution,
68- md5sum_filename,
69- open_file,
70- open_file_via_transport,
71- tarball_name,
72- tree_contains_upstream_source,
73- )
74+ FORMAT_3_0_QUILT,
75+ FORMAT_3_0_NATIVE,
76+ component_from_orig_tarball,
77+ debuild_config,
78+ dget_changes,
79+ find_changelog,
80+ find_last_distribution,
81+ find_previous_upload,
82+ get_source_format,
83+ guess_build_type,
84+ lookup_distribution,
85+ md5sum_filename,
86+ open_file,
87+ open_file_via_transport,
88+ tarball_name,
89+ tree_contains_upstream_source,
90+ )
91
92 dont_purge_opt = Option('dont-purge',
93 help="Don't purge the build directory after building.")
94@@ -312,6 +280,9 @@
95
96 def _get_upstream_branch(self, export_upstream, export_upstream_revision,
97 config, version):
98+ from bzrlib.plugins.builddeb.upstream.branch import (
99+ LazyUpstreamBranchSource,
100+ )
101 upstream_source = LazyUpstreamBranchSource(export_upstream,
102 config=config)
103 if export_upstream_revision:
104@@ -327,6 +298,26 @@
105 quick=False, reuse=False, native=None,
106 source=False, revision=None, result=None, package_merge=None,
107 strict=False):
108+ from bzrlib.plugins.builddeb.source_distiller import (
109+ FullSourceDistiller,
110+ MergeModeDistiller,
111+ NativeSourceDistiller,
112+ )
113+ from bzrlib.plugins.builddeb.builder import DebBuild
114+ from bzrlib.plugins.builddeb.upstream.branch import (
115+ LazyUpstreamBranchSource,
116+ )
117+ from bzrlib.plugins.builddeb.upstream import (
118+ AptSource,
119+ DebianRulesSource,
120+ SelfSplitSource,
121+ UScanSource,
122+ UpstreamProvider,
123+ )
124+ from bzrlib.plugins.builddeb.upstream.pristinetar import (
125+ PristineTarSource,
126+ )
127+
128 if result is not None:
129 warning(gettext("--result is deprecated, use --result-dir instead"))
130 location, build_options, source = self._branch_and_build_options(
131@@ -476,6 +467,15 @@
132 takes_args = ["version?"]
133
134 def run(self, directory='.', version=None):
135+ from bzrlib.plugins.builddeb.upstream import (
136+ AptSource,
137+ DebianRulesSource,
138+ UScanSource,
139+ UpstreamProvider,
140+ )
141+ from bzrlib.plugins.builddeb.upstream.pristinetar import (
142+ PristineTarSource,
143+ )
144 tree = WorkingTree.open_containing(directory)[0]
145 config = debuild_config(tree, tree)
146
147@@ -594,6 +594,10 @@
148 def _do_merge(self, tree, tarball_filenames, package, version,
149 current_version, upstream_branch, upstream_revisions, merge_type,
150 force):
151+ from bzrlib.plugins.builddeb.import_dsc import (
152+ DistributionBranch,
153+ DistributionBranchSet,
154+ )
155 db = DistributionBranch(tree.branch, tree.branch, tree=tree)
156 dbs = DistributionBranchSet()
157 dbs.add_branch(db)
158@@ -673,6 +677,10 @@
159 distribution=None, package=None,
160 directory=".", revision=None, merge_type=None,
161 last_version=None, force=None, snapshot=False, launchpad=False):
162+ from bzrlib.plugins.builddeb.upstream.branch import (
163+ UpstreamBranchSource,
164+ )
165+
166 tree, _ = WorkingTree.open_containing(directory)
167 tree.lock_write()
168 try:
169@@ -783,7 +791,8 @@
170 "'export-upstream-revision' in the configuration." %
171 (version, upstream_branch_source))
172 if need_upstream_tarball:
173- target_dir = tempfile.mkdtemp() # FIXME: Cleanup?
174+ target_dir = tempfile.mkdtemp()
175+ self.add_cleanup(shutil.rmtree, target_dir)
176 try:
177 locations = primary_upstream_source.fetch_tarballs(
178 package, version, target_dir, components=[None])
179@@ -859,6 +868,10 @@
180 takes_options = [filename_opt]
181
182 def import_many(self, db, files_list, orig_target):
183+ from bzrlib.plugins.builddeb.import_dsc import (
184+ DscCache,
185+ DscComp,
186+ )
187 cache = DscCache()
188 files_list.sort(cmp=DscComp(cache).cmp)
189 if not os.path.exists(orig_target):
190@@ -882,6 +895,10 @@
191 db.import_package(os.path.join(orig_target, filename))
192
193 def run(self, files_list, file=None):
194+ from bzrlib.plugins.builddeb.import_dsc import (
195+ DistributionBranch,
196+ DistributionBranchSet,
197+ )
198 try:
199 tree = WorkingTree.open_containing('.')[0]
200 except NotBranchError:
201@@ -988,6 +1005,10 @@
202 takes_args = ['version', 'location', 'upstream_branch?']
203
204 def run(self, version, location, upstream_branch=None, revision=None):
205+ from bzrlib.plugins.builddeb.import_dsc import (
206+ DistributionBranch,
207+ DistributionBranchSet,
208+ )
209 # TODO: search for similarity etc.
210 version = version.encode('utf8')
211 branch, _ = Branch.open_containing('.')
212@@ -1080,6 +1101,21 @@
213 aliases = ['bd-do']
214
215 def run(self, command_list=None):
216+ from bzrlib.plugins.builddeb.source_distiller import (
217+ MergeModeDistiller,
218+ )
219+ from bzrlib.plugins.builddeb.builder import (
220+ DebBuild,
221+ )
222+ from bzrlib.plugins.builddeb.upstream import (
223+ AptSource,
224+ DebianRulesSource,
225+ UScanSource,
226+ UpstreamProvider,
227+ )
228+ from bzrlib.plugins.builddeb.upstream.pristinetar import (
229+ PristineTarSource,
230+ )
231 t = WorkingTree.open_containing('.')[0]
232 config = debuild_config(t, t)
233 if config.build_type != BUILD_TYPE_MERGE:
234@@ -1163,6 +1199,10 @@
235 takes_options = [merge_opt, force]
236
237 def run(self, merge=None, force=None):
238+ from bzrlib.plugins.builddeb.import_dsc import (
239+ DistributionBranch,
240+ DistributionBranchSet,
241+ )
242 t = WorkingTree.open_containing('.')[0]
243 t.lock_write()
244 try:
245@@ -1208,6 +1248,8 @@
246 takes_args = ['source']
247
248 def run(self, source, revision=None):
249+ from bzrlib.tag import _merge_tags_if_possible
250+ from bzrlib.plugins.builddeb.merge_package import fix_ancestry_as_needed
251 source_branch = None
252 # Get the target branch.
253 try:
254@@ -1287,6 +1329,7 @@
255 takes_options = [bzr_only_opt, v3_opt]
256
257 def run(self, package_name, version, tarball, bzr_only=None, v3=None):
258+ from bzrlib.plugins.builddeb import dh_make
259 tree = dh_make.import_upstream(tarball, package_name,
260 version.encode("utf-8"), use_v3=v3)
261 if not bzr_only:

Subscribers

People subscribed via source and target branches