##// END OF EJS Templates
packaging: ship all help .txt files on WiX...
Gregory Szorc -
r44016:697c2e32 default
parent child Browse files
Show More
@@ -1,65 +1,70 b''
1 1 <?xml version="1.0" encoding="utf-8"?>
2 2 <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
3 3
4 4 <?include guids.wxi ?>
5 5 <?include defines.wxi ?>
6 6
7 7 <Fragment>
8 8 <ComponentGroup Id='helpFolder'>
9 9 <ComponentRef Id='help.root' />
10 10 <ComponentRef Id='help.internals' />
11 11 </ComponentGroup>
12 12 </Fragment>
13 13
14 14 <Fragment>
15 15 <DirectoryRef Id="INSTALLDIR">
16 16 <Directory Id="helpdir" Name="help" FileSource="$(var.SourceDir)">
17 17 <Component Id="help.root" Guid="$(var.help.root.guid)" Win64='$(var.IsX64)'>
18 18 <File Name="bundlespec.txt" />
19 19 <File Name="color.txt" />
20 <File Name="common.txt" />
20 21 <File Name="config.txt" KeyPath="yes" />
21 22 <File Name="dates.txt" />
22 23 <File Name="deprecated.txt" />
23 24 <File Name="diffs.txt" />
24 25 <File Name="environment.txt" />
25 26 <File Name="extensions.txt" />
26 27 <File Name="filesets.txt" />
27 28 <File Name="flags.txt" />
28 29 <File Name="glossary.txt" />
30 <File Name="hg-ssh.8.txt" />
31 <File Name="hg.1.txt" />
32 <File Name="hgignore.5.txt" />
29 33 <File Name="hgignore.txt" />
34 <File Name="hgrc.5.txt" />
30 35 <File Name="hgweb.txt" />
31 36 <File Name="merge-tools.txt" />
32 37 <File Name="pager.txt" />
33 38 <File Name="patterns.txt" />
34 39 <File Name="phases.txt" />
35 40 <File Name="revisions.txt" />
36 41 <File Name="scripting.txt" />
37 42 <File Name="subrepos.txt" />
38 43 <File Name="templates.txt" />
39 44 <File Name="urls.txt" />
40 45 </Component>
41 46
42 47 <Directory Id="help.internaldir" Name="internals">
43 48 <Component Id="help.internals" Guid="$(var.help.internals.guid)" Win64='$(var.IsX64)'>
44 49 <File Id="internals.bundle2.txt" Name="bundle2.txt" />
45 50 <File Id="internals.bundles.txt" Name="bundles.txt" KeyPath="yes" />
46 51 <File Id="internals.cbor.txt" Name="cbor.txt" />
47 52 <File Id="internals.censor.txt" Name="censor.txt" />
48 53 <File Id="internals.changegroups.txt" Name="changegroups.txt" />
49 54 <File Id="internals.config.txt" Name="config.txt" />
50 55 <File Id="internals.extensions.txt" Name="extensions.txt" />
51 56 <File Id="internals.linelog.txt" Name="linelog.txt" />
52 57 <File Id="internals.mergestate.txt" Name="mergestate.txt" />
53 58 <File Id="internals.requirements.txt" Name="requirements.txt" />
54 59 <File Id="internals.revlogs.txt" Name="revlogs.txt" />
55 60 <File Id="internals.wireprotocol.txt" Name="wireprotocol.txt" />
56 61 <File Id="internals.wireprotocolrpc.txt" Name="wireprotocolrpc.txt" />
57 62 <File Id="internals.wireprotocolv2.txt" Name="wireprotocolv2.txt" />
58 63 </Component>
59 64 </Directory>
60 65
61 66 </Directory>
62 67 </DirectoryRef>
63 68 </Fragment>
64 69
65 70 </Wix>
@@ -1,315 +1,310 b''
1 1 hg debuginstall
2 2 $ hg debuginstall
3 3 checking encoding (ascii)...
4 4 checking Python executable (*) (glob)
5 5 checking Python version (2.*) (glob) (no-py3 !)
6 6 checking Python version (3.*) (glob) (py3 !)
7 7 checking Python lib (.*[Ll]ib.*)... (re)
8 8 checking Python security support (*) (glob)
9 9 TLS 1.2 not supported by Python install; network connections lack modern security (?)
10 10 SNI not supported by Python install; may have connectivity issues with some servers (?)
11 11 checking Mercurial version (*) (glob)
12 12 checking Mercurial custom build (*) (glob)
13 13 checking module policy (*) (glob)
14 14 checking installed modules (*mercurial)... (glob)
15 15 checking registered compression engines (*zlib*) (glob)
16 16 checking available compression engines (*zlib*) (glob)
17 17 checking available compression engines for wire protocol (*zlib*) (glob)
18 18 checking "re2" regexp engine \((available|missing)\) (re)
19 19 checking templates (*mercurial?templates)... (glob)
20 20 checking default template (*mercurial?templates?map-cmdline.default) (glob)
21 21 checking commit editor... (*) (glob)
22 22 checking username (test)
23 23 no problems detected
24 24
25 25 hg debuginstall JSON
26 26 $ hg debuginstall -Tjson | sed 's|\\\\|\\|g'
27 27 [
28 28 {
29 29 "compengines": ["bz2", "bz2truncated", "none", "zlib"*], (glob)
30 30 "compenginesavail": ["bz2", "bz2truncated", "none", "zlib"*], (glob)
31 31 "compenginesserver": [*"zlib"*], (glob)
32 32 "defaulttemplate": "*mercurial?templates?map-cmdline.default", (glob)
33 33 "defaulttemplateerror": null,
34 34 "defaulttemplatenotfound": "default",
35 35 "editor": "*", (glob)
36 36 "editornotfound": false,
37 37 "encoding": "ascii",
38 38 "encodingerror": null,
39 39 "extensionserror": null, (no-pure !)
40 40 "hgmodulepolicy": "*", (glob)
41 41 "hgmodules": "*mercurial", (glob)
42 42 "hgver": "*", (glob)
43 43 "hgverextra": "*", (glob)
44 44 "problems": 0,
45 45 "pythonexe": "*", (glob)
46 46 "pythonlib": "*", (glob)
47 47 "pythonsecurity": [*], (glob)
48 48 "pythonver": "*.*.*", (glob)
49 49 "re2": (true|false), (re)
50 50 "templatedirs": "*mercurial?templates", (glob)
51 51 "username": "test",
52 52 "usernameerror": null,
53 53 "vinotfound": false
54 54 }
55 55 ]
56 56
57 57 hg debuginstall with no username
58 58 $ HGUSER= hg debuginstall
59 59 checking encoding (ascii)...
60 60 checking Python executable (*) (glob)
61 61 checking Python version (2.*) (glob) (no-py3 !)
62 62 checking Python version (3.*) (glob) (py3 !)
63 63 checking Python lib (.*[Ll]ib.*)... (re)
64 64 checking Python security support (*) (glob)
65 65 TLS 1.2 not supported by Python install; network connections lack modern security (?)
66 66 SNI not supported by Python install; may have connectivity issues with some servers (?)
67 67 checking Mercurial version (*) (glob)
68 68 checking Mercurial custom build (*) (glob)
69 69 checking module policy (*) (glob)
70 70 checking installed modules (*mercurial)... (glob)
71 71 checking registered compression engines (*zlib*) (glob)
72 72 checking available compression engines (*zlib*) (glob)
73 73 checking available compression engines for wire protocol (*zlib*) (glob)
74 74 checking "re2" regexp engine \((available|missing)\) (re)
75 75 checking templates (*mercurial?templates)... (glob)
76 76 checking default template (*mercurial?templates?map-cmdline.default) (glob)
77 77 checking commit editor... (*) (glob)
78 78 checking username...
79 79 no username supplied
80 80 (specify a username in your configuration file)
81 81 1 problems detected, please check your install!
82 82 [1]
83 83
84 84 hg debuginstall with invalid encoding
85 85 $ HGENCODING=invalidenc hg debuginstall | grep encoding
86 86 checking encoding (invalidenc)...
87 87 unknown encoding: invalidenc
88 88
89 89 exception message in JSON
90 90
91 91 $ HGENCODING=invalidenc HGUSER= hg debuginstall -Tjson | grep error
92 92 "defaulttemplateerror": null,
93 93 "encodingerror": "unknown encoding: invalidenc",
94 94 "extensionserror": null, (no-pure !)
95 95 "usernameerror": "no username supplied",
96 96
97 97 path variables are expanded (~ is the same as $TESTTMP)
98 98 $ mkdir tools
99 99 $ touch tools/testeditor.exe
100 100 #if execbit
101 101 $ chmod 755 tools/testeditor.exe
102 102 #endif
103 103 $ HGEDITOR="~/tools/testeditor.exe" hg debuginstall
104 104 checking encoding (ascii)...
105 105 checking Python executable (*) (glob)
106 106 checking Python version (2.*) (glob) (no-py3 !)
107 107 checking Python version (3.*) (glob) (py3 !)
108 108 checking Python lib (.*[Ll]ib.*)... (re)
109 109 checking Python security support (*) (glob)
110 110 TLS 1.2 not supported by Python install; network connections lack modern security (?)
111 111 SNI not supported by Python install; may have connectivity issues with some servers (?)
112 112 checking Mercurial version (*) (glob)
113 113 checking Mercurial custom build (*) (glob)
114 114 checking module policy (*) (glob)
115 115 checking installed modules (*mercurial)... (glob)
116 116 checking registered compression engines (*zlib*) (glob)
117 117 checking available compression engines (*zlib*) (glob)
118 118 checking available compression engines for wire protocol (*zlib*) (glob)
119 119 checking "re2" regexp engine \((available|missing)\) (re)
120 120 checking templates (*mercurial?templates)... (glob)
121 121 checking default template (*mercurial?templates?map-cmdline.default) (glob)
122 122 checking commit editor... ($TESTTMP/tools/testeditor.exe)
123 123 checking username (test)
124 124 no problems detected
125 125
126 126 print out the binary post-shlexsplit in the error message when commit editor is
127 127 not found (this is intentionally using backslashes to mimic a windows usecase).
128 128 $ HGEDITOR="c:\foo\bar\baz.exe -y -z" hg debuginstall
129 129 checking encoding (ascii)...
130 130 checking Python executable (*) (glob)
131 131 checking Python version (2.*) (glob) (no-py3 !)
132 132 checking Python version (3.*) (glob) (py3 !)
133 133 checking Python lib (.*[Ll]ib.*)... (re)
134 134 checking Python security support (*) (glob)
135 135 TLS 1.2 not supported by Python install; network connections lack modern security (?)
136 136 SNI not supported by Python install; may have connectivity issues with some servers (?)
137 137 checking Mercurial version (*) (glob)
138 138 checking Mercurial custom build (*) (glob)
139 139 checking module policy (*) (glob)
140 140 checking installed modules (*mercurial)... (glob)
141 141 checking registered compression engines (*zlib*) (glob)
142 142 checking available compression engines (*zlib*) (glob)
143 143 checking available compression engines for wire protocol (*zlib*) (glob)
144 144 checking "re2" regexp engine \((available|missing)\) (re)
145 145 checking templates (*mercurial?templates)... (glob)
146 146 checking default template (*mercurial?templates?map-cmdline.default) (glob)
147 147 checking commit editor... (c:\foo\bar\baz.exe) (windows !)
148 148 Can't find editor 'c:\foo\bar\baz.exe' in PATH (windows !)
149 149 checking commit editor... (c:foobarbaz.exe) (no-windows !)
150 150 Can't find editor 'c:foobarbaz.exe' in PATH (no-windows !)
151 151 (specify a commit editor in your configuration file)
152 152 checking username (test)
153 153 1 problems detected, please check your install!
154 154 [1]
155 155
156 156 debuginstall extension support
157 157 $ hg debuginstall --config extensions.fsmonitor= --config fsmonitor.watchman_exe=false | grep atchman
158 158 fsmonitor checking for watchman binary... (false)
159 159 watchman binary missing or broken: warning: Watchman unavailable: watchman exited with code 1
160 160 Verify the json works too:
161 161 $ hg debuginstall --config extensions.fsmonitor= --config fsmonitor.watchman_exe=false -Tjson | grep atchman
162 162 "fsmonitor-watchman": "false",
163 163 "fsmonitor-watchman-error": "warning: Watchman unavailable: watchman exited with code 1",
164 164
165 165
166 166 #if test-repo
167 167 $ . "$TESTDIR/helpers-testrepo.sh"
168 168
169 169 $ cat >> wixxml.py << EOF
170 170 > import os
171 171 > import subprocess
172 172 > import sys
173 173 > import xml.etree.ElementTree as ET
174 174 > from mercurial import pycompat
175 175 >
176 176 > # MSYS mangles the path if it expands $TESTDIR
177 177 > testdir = os.environ['TESTDIR']
178 178 > ns = {'wix' : 'http://schemas.microsoft.com/wix/2006/wi'}
179 179 >
180 180 > def directory(node, relpath):
181 181 > '''generator of files in the xml node, rooted at relpath'''
182 182 > dirs = node.findall('./{%(wix)s}Directory' % ns)
183 183 >
184 184 > for d in dirs:
185 185 > for subfile in directory(d, relpath + d.attrib['Name'] + '/'):
186 186 > yield subfile
187 187 >
188 188 > files = node.findall('./{%(wix)s}Component/{%(wix)s}File' % ns)
189 189 >
190 190 > for f in files:
191 191 > yield pycompat.sysbytes(relpath + f.attrib['Name'])
192 192 >
193 193 > def hgdirectory(relpath):
194 194 > '''generator of tracked files, rooted at relpath'''
195 195 > hgdir = "%s/../mercurial" % (testdir)
196 196 > args = ['hg', '--cwd', hgdir, 'files', relpath]
197 197 > proc = subprocess.Popen(args, stdout=subprocess.PIPE,
198 198 > stderr=subprocess.PIPE)
199 199 > output = proc.communicate()[0]
200 200 >
201 201 > for line in output.splitlines():
202 202 > if os.name == 'nt':
203 203 > yield line.replace(pycompat.sysbytes(os.sep), b'/')
204 204 > else:
205 205 > yield line
206 206 >
207 207 > tracked = [f for f in hgdirectory(sys.argv[1])]
208 208 >
209 209 > xml = ET.parse("%s/../contrib/packaging/wix/%s.wxs" % (testdir, sys.argv[1]))
210 210 > root = xml.getroot()
211 211 > dir = root.find('.//{%(wix)s}DirectoryRef' % ns)
212 212 >
213 213 > installed = [f for f in directory(dir, '')]
214 214 >
215 215 > print('Not installed:')
216 216 > for f in sorted(set(tracked) - set(installed)):
217 217 > print(' %s' % pycompat.sysstr(f))
218 218 >
219 219 > print('Not tracked:')
220 220 > for f in sorted(set(installed) - set(tracked)):
221 221 > print(' %s' % pycompat.sysstr(f))
222 222 > EOF
223 223
224 224 $ ( testrepohgenv; "$PYTHON" wixxml.py help )
225 225 Not installed:
226 help/common.txt
227 help/hg-ssh.8.txt
228 help/hg.1.txt
229 help/hgignore.5.txt
230 help/hgrc.5.txt
231 226 Not tracked:
232 227
233 228 $ ( testrepohgenv; "$PYTHON" wixxml.py templates )
234 229 Not installed:
235 230 Not tracked:
236 231
237 232 #endif
238 233
239 234 Verify that Mercurial is installable with pip. Note that this MUST be
240 235 the last test in this file, because we do some nasty things to the
241 236 shell environment in order to make the virtualenv work reliably.
242 237
243 238 On Python 3, we use the venv module, which is part of the standard library.
244 239 But some Linux distros strip out this module's functionality involving pip,
245 240 so we have to look for the ensurepip module, which these distros strip out
246 241 completely.
247 242 On Python 2, we use the 3rd party virtualenv module, if available.
248 243
249 244 $ cd $TESTTMP
250 245 $ unset PYTHONPATH
251 246
252 247 #if py3 ensurepip
253 248 $ "$PYTHON" -m venv installenv >> pip.log
254 249
255 250 Note: we use this weird path to run pip and hg to avoid platform differences,
256 251 since it's bin on most platforms but Scripts on Windows.
257 252 $ ./installenv/*/pip install --no-index $TESTDIR/.. >> pip.log
258 253 $ ./installenv/*/hg debuginstall || cat pip.log
259 254 checking encoding (ascii)...
260 255 checking Python executable (*) (glob)
261 256 checking Python version (3.*) (glob)
262 257 checking Python lib (*)... (glob)
263 258 checking Python security support (*) (glob)
264 259 checking Mercurial version (*) (glob)
265 260 checking Mercurial custom build (*) (glob)
266 261 checking module policy (*) (glob)
267 262 checking installed modules (*/mercurial)... (glob)
268 263 checking registered compression engines (*) (glob)
269 264 checking available compression engines (*) (glob)
270 265 checking available compression engines for wire protocol (*) (glob)
271 266 checking "re2" regexp engine \((available|missing)\) (re)
272 267 checking templates ($TESTTMP/installenv/*/site-packages/mercurial/templates)... (glob)
273 268 checking default template ($TESTTMP/installenv/*/site-packages/mercurial/templates/map-cmdline.default) (glob)
274 269 checking commit editor... (*) (glob)
275 270 checking username (test)
276 271 no problems detected
277 272 #endif
278 273
279 274 #if no-py3 virtualenv
280 275
281 276 Note: --no-site-packages is deprecated, but some places have an
282 277 ancient virtualenv from their linux distro or similar and it's not yet
283 278 the default for them.
284 279
285 280 $ "$PYTHON" -m virtualenv --no-site-packages --never-download installenv >> pip.log
286 281 DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7. (?)
287 282 DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support (?)
288 283
289 284 Note: we use this weird path to run pip and hg to avoid platform differences,
290 285 since it's bin on most platforms but Scripts on Windows.
291 286 $ ./installenv/*/pip install --no-index $TESTDIR/.. >> pip.log
292 287 DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7. (?)
293 288 DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support (?)
294 289 $ ./installenv/*/hg debuginstall || cat pip.log
295 290 checking encoding (ascii)...
296 291 checking Python executable (*) (glob)
297 292 checking Python version (2.*) (glob)
298 293 checking Python lib (*)... (glob)
299 294 checking Python security support (*) (glob)
300 295 TLS 1.2 not supported by Python install; network connections lack modern security (?)
301 296 SNI not supported by Python install; may have connectivity issues with some servers (?)
302 297 checking Mercurial version (*) (glob)
303 298 checking Mercurial custom build (*) (glob)
304 299 checking module policy (*) (glob)
305 300 checking installed modules (*/mercurial)... (glob)
306 301 checking registered compression engines (*) (glob)
307 302 checking available compression engines (*) (glob)
308 303 checking available compression engines for wire protocol (*) (glob)
309 304 checking "re2" regexp engine \((available|missing)\) (re)
310 305 checking templates ($TESTTMP/installenv/*/site-packages/mercurial/templates)... (glob)
311 306 checking default template ($TESTTMP/installenv/*/site-packages/mercurial/templates/map-cmdline.default) (glob)
312 307 checking commit editor... (*) (glob)
313 308 checking username (test)
314 309 no problems detected
315 310 #endif
General Comments 0
You need to be logged in to leave comments. Login now