Skip to content

Commit eea3f1c

Browse files
DonJayamannepanpan-linIanMatthewHuffrchiodokarthiknadig
authored
Merge master into ds custom (#10261)
* fixing a typo in CONTRIBUTING.md (#10044) * fix for button backgrounds (#10234) * add kernel connection sys info string (#10236) * Fix to return env variables of interpreter that is not current interpreter (#10251) For #10250 * Bug fix * Support jupyter output in the remote scenario too (#10241) * Add some output for remote situations * Add news entry * Skip flaky FS test (#10244) Merely disables test for #10240 * Switch experiments settings scope to machine (#10237) * Switch experiments settings scope to machine * Add news item * Show quickfixes for launch.json (#10245) * Added implementation * Added tests * Moved into providers * Add code actions vscode mock and convert .test.ts into unit.test.ts * Rename folders * Dispose registered services * News entry * Added unit tests * Rename core service * Reduce the number of build agents used by CI. (#10221) * Drop extra jobs from the PR-validation pipeline. This reduces the number of build agents we are using most frequently, without sacrificing much coverage. Note that this relies on 2 things: * sufficient unit test coverage * manual "full CI" runs when there may be OS-specific concerns With this change: * all tests get run on 3.x on linux (including smoke) * for 2.7 only the unit and functional tests are run (and only on linux) * on Windows and OSX, only functional and "single workspace" tests are run The total number of test jobs (and hence agents) drops from 13 to 8. * Drop extra jobs from the PR-merge pipeline. This change relies on the nightly CI run covering the full matrix. The total number of test jobs (and hence agents) drops from 39 to 24. * Limit # of parallel jobs in each job matrix in the PR-merge and nightly pipelines. This reduces the max number of agents used by the PR-merge pipeline to 8 (from 24). For the nightly pipeline it goes down from 84 to 12. Both will take longer to complete, but that shouldn't be a major problem. * Add a "manual build" CI pipeline for faster turnaround. * Do not test internal tools on lower than Python 3.7. * Drop the temporary workaround jobs. * (again) Do not test internal tools on lower than Python 3.7. * Improve the perf of functional tests running with real jupyter (#10242) * Improve the perf of subsequent tests by caching interpreters * Add back the nightly flake * Remove coverage * Add news entry * Use a static map to allow promise to be cleared on new interpreters (as it was before) Co-authored-by: Panpan Lin <[email protected]> Co-authored-by: Ian Huff <[email protected]> Co-authored-by: Rich Chiodo <[email protected]> Co-authored-by: Karthik Nadig <[email protected]> Co-authored-by: Kartik Raj <[email protected]> Co-authored-by: Eric Snow <[email protected]>
1 parent 93cf440 commit eea3f1c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+1082
-259
lines changed

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ From there use the ```Extension + Debugger``` launch option.
188188
Information on our coding standards can be found [here](https://github.com/Microsoft/vscode-python/blob/master/CODING_STANDARDS.md).
189189
We have CI tests to ensure the code committed will adhere to the above coding standards. *You can run this locally by executing the command `npx gulp precommit` or use the `precommit` Task.
190190

191-
Messages displayed to the user must ve localized using/created constants from/in the [localize.ts](https://github.com/Microsoft/vscode-python/blob/master/src/client/common/utils/localize.ts) file.
191+
Messages displayed to the user must be localized using/created constants from/in the [localize.ts](https://github.com/Microsoft/vscode-python/blob/master/src/client/common/utils/localize.ts) file.
192192

193193
## Development process
194194

build/.mocha.functional.perf.opts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
./out/test/**/*.functional.test.js
2+
--require=out/test/unittests.js
3+
--exclude=out/**/*.jsx
4+
--ui=tdd
5+
--recursive
6+
--colors
7+
--exit
8+
--timeout=180000
9+
--reporter spec

build/ci/vscode-python-ci-manual.yaml

Lines changed: 296 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,296 @@
1+
# manual CI build
2+
3+
name: '$(Year:yyyy).$(Month).0.$(BuildID)-manual'
4+
5+
trigger: none
6+
pr: none
7+
8+
# Variables that are available for the entire pipeline.
9+
variables:
10+
- template: templates/globals.yml
11+
12+
stages:
13+
- stage: Build
14+
jobs:
15+
- template: templates/jobs/build_compile.yml
16+
17+
# Each item in each matrix has a number of possible values it may
18+
# define. They are detailed in templates/test_phases.yml. The only
19+
# required value is "TestsToRun".
20+
21+
- stage: Linux
22+
dependsOn: []
23+
jobs:
24+
- job: 'Py3x'
25+
dependsOn: []
26+
timeoutInMinutes: 120
27+
strategy:
28+
matrix:
29+
'Unit':
30+
# with mocks
31+
# focused on small units (i.e. functions)
32+
# and tightly controlled dependencies
33+
TestsToRun: 'testUnitTests, pythonUnitTests, pythonInternalTools, pythonIPythonTests'
34+
NeedsPythonTestReqs: true
35+
NeedsIPythonReqs: true
36+
'Functional':
37+
# no mocks, no vscode
38+
# focused on integration
39+
TestsToRun: 'testfunctional'
40+
NeedsPythonTestReqs: true
41+
NeedsPythonFunctionalReqs: true
42+
'Single Workspace':
43+
# no mocks, with vscode
44+
# focused on integration
45+
TestsToRun: 'testSingleWorkspace'
46+
NeedsPythonTestReqs: true
47+
'Multi Workspace':
48+
# no mocks, with vscode
49+
# focused on integration
50+
TestsToRun: 'testMultiWorkspace'
51+
NeedsPythonTestReqs: true
52+
'Venv':
53+
TestsToRun: 'venvTests'
54+
NeedsPythonTestReqs: true
55+
NeedsIPythonReqs: true
56+
# This is for the venvTests to use, not needed if you don't run venv tests...
57+
PYTHON_VIRTUAL_ENVS_LOCATION: './src/tmp/envPaths.json'
58+
'Debugger':
59+
TestsToRun: 'testDebugger'
60+
NeedsPythonTestReqs: true
61+
'Smoke':
62+
TestsToRun: 'testSmoke'
63+
NeedsPythonTestReqs: true
64+
NeedsIPythonReqs: true
65+
#maxParallel: 3
66+
pool:
67+
vmImage: 'ubuntu-16.04'
68+
steps:
69+
- template: templates/test_phases.yml
70+
71+
# This is the oldest Python 3 version we support.
72+
- job: 'Py36'
73+
dependsOn: []
74+
timeoutInMinutes: 120
75+
strategy:
76+
matrix:
77+
'Unit':
78+
PythonVersion: '3.6'
79+
# Note: "pythonInternalTools" tests are 3.7+.
80+
TestsToRun: 'testUnitTests, pythonUnitTests, pythonIPythonTests'
81+
NeedsPythonTestReqs: true
82+
NeedsIPythonReqs: true
83+
'Functional':
84+
PythonVersion: '3.6'
85+
TestsToRun: 'testfunctional'
86+
NeedsPythonTestReqs: true
87+
NeedsPythonFunctionalReqs: true
88+
'Single Workspace':
89+
PythonVersion: '3.6'
90+
TestsToRun: 'testSingleWorkspace'
91+
NeedsPythonTestReqs: true
92+
#maxParallel: 3
93+
pool:
94+
vmImage: 'ubuntu-16.04'
95+
steps:
96+
- template: templates/test_phases.yml
97+
98+
# This is the oldest Python 3 version we support.
99+
- job: 'Py35'
100+
dependsOn: []
101+
timeoutInMinutes: 120
102+
strategy:
103+
matrix:
104+
'Unit':
105+
PythonVersion: '3.5'
106+
# Note: "pythonInternalTools" tests are 3.7+.
107+
TestsToRun: 'testUnitTests, pythonUnitTests, pythonIPythonTests'
108+
NeedsPythonTestReqs: true
109+
NeedsIPythonReqs: true
110+
'Functional':
111+
PythonVersion: '3.5'
112+
TestsToRun: 'testfunctional'
113+
NeedsPythonTestReqs: true
114+
NeedsPythonFunctionalReqs: true
115+
'Single Workspace':
116+
PythonVersion: '3.5'
117+
TestsToRun: 'testSingleWorkspace'
118+
NeedsPythonTestReqs: true
119+
'Venv':
120+
PythonVersion: '3.5'
121+
TestsToRun: 'venvTests'
122+
NeedsPythonTestReqs: true
123+
NeedsIPythonReqs: true
124+
PYTHON_VIRTUAL_ENVS_LOCATION: './src/tmp/envPaths.json'
125+
'Debugger':
126+
PythonVersion: '3.5'
127+
TestsToRun: 'testDebugger'
128+
NeedsPythonTestReqs: true
129+
#maxParallel: 3
130+
pool:
131+
vmImage: 'ubuntu-16.04'
132+
steps:
133+
- template: templates/test_phases.yml
134+
135+
- stage: Mac
136+
dependsOn: []
137+
jobs:
138+
- job: 'Py3x'
139+
dependsOn: []
140+
timeoutInMinutes: 120
141+
strategy:
142+
matrix:
143+
'Unit':
144+
TestsToRun: 'testUnitTests, pythonUnitTests, pythonInternalTools, pythonIPythonTests'
145+
NeedsPythonTestReqs: true
146+
NeedsIPythonReqs: true
147+
'Functional':
148+
TestsToRun: 'testfunctional'
149+
NeedsPythonTestReqs: true
150+
NeedsPythonFunctionalReqs: true
151+
'Single Workspace':
152+
TestsToRun: 'testSingleWorkspace'
153+
NeedsPythonTestReqs: true
154+
'Multi Workspace':
155+
TestsToRun: 'testMultiWorkspace'
156+
NeedsPythonTestReqs: true
157+
'Venv':
158+
TestsToRun: 'venvTests'
159+
NeedsPythonTestReqs: true
160+
NeedsIPythonReqs: true
161+
PYTHON_VIRTUAL_ENVS_LOCATION: './src/tmp/envPaths.json'
162+
'Debugger':
163+
TestsToRun: 'testDebugger'
164+
NeedsPythonTestReqs: true
165+
'Smoke':
166+
TestsToRun: 'testSmoke'
167+
NeedsPythonTestReqs: true
168+
NeedsIPythonReqs: true
169+
#maxParallel: 3
170+
pool:
171+
vmImage: 'macos-10.13'
172+
steps:
173+
- template: templates/test_phases.yml
174+
175+
# This is the oldest Python 3 version we support.
176+
- job: 'Py35'
177+
dependsOn: []
178+
timeoutInMinutes: 120
179+
strategy:
180+
matrix:
181+
'Unit':
182+
PythonVersion: '3.5'
183+
# Note: "pythonInternalTools" tests are 3.7+.
184+
TestsToRun: 'testUnitTests, pythonUnitTests, pythonIPythonTests'
185+
NeedsPythonTestReqs: true
186+
NeedsIPythonReqs: true
187+
'Functional':
188+
PythonVersion: '3.5'
189+
TestsToRun: 'testfunctional'
190+
NeedsPythonTestReqs: true
191+
NeedsPythonFunctionalReqs: true
192+
'Single Workspace':
193+
PythonVersion: '3.5'
194+
TestsToRun: 'testSingleWorkspace'
195+
NeedsPythonTestReqs: true
196+
'Venv':
197+
PythonVersion: '3.5'
198+
TestsToRun: 'venvTests'
199+
NeedsPythonTestReqs: true
200+
NeedsIPythonReqs: true
201+
PYTHON_VIRTUAL_ENVS_LOCATION: './src/tmp/envPaths.json'
202+
'Debugger':
203+
PythonVersion: '3.5'
204+
TestsToRun: 'testDebugger'
205+
NeedsPythonTestReqs: true
206+
#maxParallel: 3
207+
pool:
208+
vmImage: 'macos-10.13'
209+
steps:
210+
- template: templates/test_phases.yml
211+
212+
- stage: Windows
213+
dependsOn: []
214+
jobs:
215+
- job: 'Py3x'
216+
dependsOn: []
217+
timeoutInMinutes: 120
218+
strategy:
219+
matrix:
220+
'Unit':
221+
TestsToRun: 'testUnitTests, pythonUnitTests, pythonInternalTools, pythonIPythonTests'
222+
NeedsPythonTestReqs: true
223+
NeedsIPythonReqs: true
224+
'Functional':
225+
TestsToRun: 'testfunctional'
226+
NeedsPythonTestReqs: true
227+
NeedsPythonFunctionalReqs: true
228+
'Single Workspace':
229+
TestsToRun: 'testSingleWorkspace'
230+
NeedsPythonTestReqs: true
231+
'Multi Workspace':
232+
TestsToRun: 'testMultiWorkspace'
233+
NeedsPythonTestReqs: true
234+
'Venv':
235+
TestsToRun: 'venvTests'
236+
NeedsPythonTestReqs: true
237+
NeedsIPythonReqs: true
238+
PYTHON_VIRTUAL_ENVS_LOCATION: './src/tmp/envPaths.json'
239+
'Debugger':
240+
TestsToRun: 'testDebugger'
241+
NeedsPythonTestReqs: true
242+
'Smoke':
243+
TestsToRun: 'testSmoke'
244+
NeedsPythonTestReqs: true
245+
NeedsIPythonReqs: true
246+
#maxParallel: 3
247+
pool:
248+
vmImage: 'vs2017-win2016'
249+
steps:
250+
- template: templates/test_phases.yml
251+
252+
# This is the oldest Python 3 version we support.
253+
- job: 'Py35'
254+
dependsOn: []
255+
timeoutInMinutes: 120
256+
strategy:
257+
matrix:
258+
'Unit':
259+
PythonVersion: '3.5'
260+
# Note: "pythonInternalTools" tests are 3.7+.
261+
TestsToRun: 'testUnitTests, pythonUnitTests, pythonIPythonTests'
262+
NeedsPythonTestReqs: true
263+
NeedsIPythonReqs: true
264+
'Functional':
265+
PythonVersion: '3.5'
266+
TestsToRun: 'testfunctional'
267+
NeedsPythonTestReqs: true
268+
NeedsPythonFunctionalReqs: true
269+
'Single Workspace':
270+
PythonVersion: '3.5'
271+
TestsToRun: 'testSingleWorkspace'
272+
NeedsPythonTestReqs: true
273+
'Venv':
274+
PythonVersion: '3.5'
275+
TestsToRun: 'venvTests'
276+
NeedsPythonTestReqs: true
277+
NeedsIPythonReqs: true
278+
PYTHON_VIRTUAL_ENVS_LOCATION: './src/tmp/envPaths.json'
279+
'Debugger':
280+
PythonVersion: '3.5'
281+
TestsToRun: 'testDebugger'
282+
NeedsPythonTestReqs: true
283+
#maxParallel: 3
284+
pool:
285+
vmImage: 'vs2017-win2016'
286+
steps:
287+
- template: templates/test_phases.yml
288+
289+
- stage: Reports
290+
dependsOn:
291+
- Linux
292+
- Mac
293+
- Windows
294+
condition: always()
295+
jobs:
296+
- template: templates/jobs/coverage.yml

0 commit comments

Comments
 (0)