Compare commits

...

762 Commits

Author SHA1 Message Date
Udeesha Gautam
77b9a708df fix the reference error due to extra $ in default variable (#12524) 2020-09-21 10:21:23 -07:00
Udeesha Gautam
a4ee871b88 Port/db project fixes (#12521)
* Update default values and example text when dropdown value changes (#12493)

* remove option to add reference to same database (#12495)

Co-authored-by: Kim Santiago <31145923+kisantia@users.noreply.github.com>
2020-09-20 21:09:46 -07:00
Charles Gagnon
3f4e19fc08 Arc good ARC bad (#12499) (#12511)
Co-authored-by: Chris LaFreniere <40371649+chlafreniere@users.noreply.github.com>
2020-09-20 11:44:30 -07:00
Barbara Valdez
571fca6de5 In-Viewlet Notebooks Search (#12455) (#12514)
* fix search

* Add sql carbon tags to vs files

Co-authored-by: chlafreniere <hichise@gmail.com>
Co-authored-by: abist <adbist@microsoft.com>

Co-authored-by: chlafreniere <hichise@gmail.com>
Co-authored-by: abist <adbist@microsoft.com>
2020-09-19 18:13:10 -07:00
Barbara Valdez
5a2fdc4034 Add warning message for users using the new version of jupyter book (#12496) (#12500)
* Add warning message for users

* Address pr comments
2020-09-18 20:15:12 -07:00
Chris LaFreniere
cc6d84e7f6 Notebooks: Fix Grids Not Rendering when Unsaved Notebook Reloaded (#12483) (#12498)
* Clear Output and fix output change

* Fix tests after forced clear + append output
2020-09-18 20:14:45 -07:00
Vasu Bhog
99e11d2e22 Fix PySpark kernel connection change (#12494) (#12497) 2020-09-18 20:10:37 -07:00
Charles Gagnon
9a85123e21 Revert BDC deployment back to using old azdata check (#12470) (#12474) 2020-09-18 18:46:22 -07:00
Lucy Zhang
56669db6b6 update resultSet in data provider (#12478) (#12486) 2020-09-18 18:36:40 -07:00
Udeesha Gautam
8782eeb32f Port/ml fixes (#12491)
* change to allow refresh and delete correctly (#12477)

* add table name to models that are imported (#12445)
2020-09-18 17:44:58 -07:00
Charles Gagnon
7f3d5bac0a start with eulaCheckButton hidden (#12427) (#12458)
* start with eulaCheckButton hidden

* reset buttons on card select

* remove testcode

Co-authored-by: Arvind Ranasaria <ranasaria@outlook.com>
2020-09-18 11:52:32 -07:00
Charles Gagnon
7a1e0a7d2e Fix resource deployment text field validation (#12421) (#12457) 2020-09-18 11:22:23 -07:00
Alan Ren
681ecbd946 fix the legacy card style issue (#12428) (#12442)
* fix the legacy card style issue

* replace the card class
2020-09-18 11:14:02 -07:00
Vasu Bhog
e7798a8e32 Fix Spark kernel connections and switch from Kusto to Spark kernels (#12436) (#12441)
* Fix connection dialog for Spark and issue when switching from Kusto to Spark

* Address comments
2020-09-17 21:32:03 -07:00
Aasim Khan
b158180ef4 Added portal link for Azure SQL (#12425) 2020-09-17 17:37:41 -07:00
Aditya Bist
7ad9da7fda fix connection dialog indentation (#12414) 2020-09-17 15:55:54 -07:00
Charles Gagnon
94e2016a16 Port updates for removing EULA acceptance checkbox from Arc deployments (#12409)
* controller dropdown field to SQL MIAA and Postgres deployment. (#12217)

* saving first draft

* throw if no controllers

* cleanup

* bug fixes

* bug fixes and caching controller access

* pr comments and bug fixes.

* fixes

* fixes

* comment fix

* remove debug prints

* comment fixes

* remove debug logs

* inputValueTransformer returns string|Promise

* PR feedback

* pr fixes

* remove _ from protected fields

* anonymous to full methods

* small fixes

(cherry picked from commit 9cf80113fc)

* fix option sources (#12387)


(cherry picked from commit fca8b85a72)

* Remove azdata eula acceptance from arc deployments (#12292)

* saving to switch tasks

* activate to exports in extApi

* working version - cleanup pending

* improve messages

* apply pr feedback from a different review

* remove unneeded strings

* redo apiService

* remove async from getVersionFromOutput

* remove _ prefix from protected fields

* error message fix

* throw specif errors from azdata extension

* arrow methods to regular methods

* pr feedback

* expand azdata extension api

* pr feedback

* remove unused var

* pr feedback

(cherry picked from commit ba44a2f02e)

Co-authored-by: Arvind Ranasaria <ranasaria@outlook.com>
2020-09-17 15:05:02 -07:00
Aditya Bist
21bb577da8 fix maximize bug (#12335) 2020-09-17 14:18:53 -07:00
Udeesha Gautam
5e8325ba28 marking intermittent test failure as unstable (#12402) (#12407) 2020-09-17 13:36:13 -07:00
Aasim Khan
25b7ccade3 Added awaits to change column setting (#12315) 2020-09-17 13:28:21 -07:00
Barbara Valdez
57940c581c Update Windows command and minor update to installation cell (#12361) (#12400)
* Fix windows command and minor update to installation cell

* Add expand_section field on the first section of the book
2020-09-17 13:17:50 -07:00
Chris LaFreniere
82f9e4e24b Notebooks: Fast update WYSIWYG support for source update (#12289) (#12399)
* Fast update WYSIWYG support for source update

* Do bracket matching over hardcoding line offsets
2020-09-17 13:17:03 -07:00
Hale Rankin
3e22fcfd2d 12360 Notebook UI - Mac/Win fix for Select all. (#12383) (#12397)
* 12360 Notebook UI - Mac/Win fix for Select all.

* Fix for ctrl key selecting all in windows

* Fix undo as well

* preventDefault to prevent confusing behavior

Co-authored-by: chlafreniere <hichise@gmail.com>

Co-authored-by: chlafreniere <hichise@gmail.com>
2020-09-17 12:18:47 -07:00
Lucy Zhang
0bc81e1078 Fix notebook table rendering with multiple code cells (#12363) (#12391)
* create unique query runner for each cell

* use cellUri instead of cellId to identify runner

* disconnect each query runner connection

* remove queryrunners size check
2020-09-17 10:32:11 -07:00
Barbara Valdez
7b6328dccf Fix highlight issue (#12278) (#12362)
* Fix highlight issue

* Address PR comments
2020-09-16 13:48:14 -07:00
Vasu Bhog
05124273ea Fix Notebook Kusto Kernel Consistency (#12256) (#12352)
* fix kusto notebook consistency

* Address undefined
2020-09-16 12:08:28 -07:00
Lucy Zhang
b1d4444522 Fix notebook cancel query bug (#12300) (#12351)
* fix undefined query runner error

* store connection id

* revert sqlSessionManager change
2020-09-16 12:07:38 -07:00
Alan Ren
4ee2d369cf vbump sql-db-proj extension (#12336) (#12354)
* vbump sql-db-proj extension (#12336)

* update sqlproj dependency version (#12359)

Co-authored-by: Udeesha Gautam <46980425+udeeshagautam@users.noreply.github.com>
2020-09-16 11:47:51 -07:00
Charles Gagnon
fb28b69bb0 Fix component items in declarative table not showing (#12330) (#12331)
(cherry picked from commit 4dd04cb250)
2020-09-16 11:43:01 -07:00
Chris LaFreniere
f2709c7100 Watch for on load event (#12309) (#12346) 2020-09-16 00:43:23 -07:00
Chris LaFreniere
3476f5ae38 Add newline after caption (#12276) (#12340) 2020-09-15 23:07:18 -07:00
Chris LaFreniere
b937fdee7a 12284 Removed custom CSS that positioned editor text beneath overlapping layers. Text is now selectable. (#12312) (#12339)
Co-authored-by: Hale Rankin <harankin@microsoft.com>
2020-09-15 23:04:30 -07:00
Chris LaFreniere
dd9ac2e362 Add heasdingStyle atx option (#12286) (#12338) 2020-09-15 22:50:46 -07:00
Alan Ren
403ff6cfec remove data-workspace dependency (#12321) (#12327) 2020-09-15 17:05:29 -07:00
Udeesha Gautam
4a6226974e adding icon for add new and open project (#12265) (#12324) 2020-09-15 16:28:42 -07:00
Charles Gagnon
6a2c47f511 Disable resource viewer (#12291) (#12298)
* Disable resource viewer

* comment

* Remove unused

(cherry picked from commit 95b76f08f2)
2020-09-15 16:13:53 -07:00
Aditya Bist
3d9a316f4b bump vscode version (#12258) 2020-09-14 14:53:26 -07:00
dependabot[bot]
cea9194595 Bump node-fetch from 2.6.0 to 2.6.1 in /build (#12220)
Bumps [node-fetch](https://github.com/bitinn/node-fetch) from 2.6.0 to 2.6.1.
- [Release notes](https://github.com/bitinn/node-fetch/releases)
- [Changelog](https://github.com/node-fetch/node-fetch/blob/master/docs/CHANGELOG.md)
- [Commits](https://github.com/bitinn/node-fetch/compare/v2.6.0...v2.6.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-09-14 09:18:18 -07:00
dependabot[bot]
08050956c9 Bump node-fetch from 2.6.0 to 2.6.1 in /build/actions (#12219)
Bumps [node-fetch](https://github.com/bitinn/node-fetch) from 2.6.0 to 2.6.1.
- [Release notes](https://github.com/bitinn/node-fetch/releases)
- [Changelog](https://github.com/node-fetch/node-fetch/blob/master/docs/CHANGELOG.md)
- [Commits](https://github.com/bitinn/node-fetch/compare/v2.6.0...v2.6.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-09-14 09:17:23 -07:00
Barbara Valdez
e16d3ed827 Address comments jupyter create book notebook (#12250)
* Remove toc file link and add warning for windows users
2020-09-11 17:31:30 -07:00
Aasim Khan
8cc8dcc89c Added loading to dropdowns (#12214)
* Added loading prop to dropdowns

* Added property for setting loading text message

* removed unnecessary sets

* changed code to match new changes

* Changed the dropdown loader to use select component instead of edit.
Added missing props in dropdown loader
2020-09-11 16:57:28 -07:00
Barbara Valdez
173a715a4d Fix pinned notebooks navigator (#12246) 2020-09-11 16:39:40 -07:00
Chris LaFreniere
4fee0210f6 Notebooks: Add setting for default text cell edit behavior (#12245)
* Add setting for default text cell edit behavior

* string updates
2020-09-11 16:29:09 -07:00
Lucy Zhang
f99adf3de4 Notebooks: Hide link and image buttons in text cell toolbar in WYSIWYG mode (#12240)
* hide link and image buttons in WYSIWYG mode

* defined taskbar actions

* rename arrays
2020-09-11 15:55:06 -07:00
Kartik Arora
3d81da9762 fix bug that doesn't register double click enabled on new notebook contexts (#12239) 2020-09-11 14:42:13 -07:00
Kim Santiago
a567ff6de4 Have default values in add database dialog input boxes (#12155)
* show default values in text boxes

* add sqlcmd formatting

* add tests

* Add some sqlcmd variable name validation

* Addressing comments

* fixes after merge

* fix test

* don't localize OtherServer

* fix for windows

* one more fix

* fix test
2020-09-11 14:05:39 -07:00
Amir Omidi
61ceb72cea Change tables to make them work for our scenario (#12193)
* Change tables to make them work for our scenario

* Comments & deprecate API

* Disable selections by default
2020-09-11 13:44:19 -07:00
Chris LaFreniere
58d3b969a2 Set items in cell model (#12237) 2020-09-11 13:12:41 -07:00
Monica Gupta
f8d725e15b Make SandDance work generically for Kusto (#12229)
* Make SandDance work generically for Kusto and Postgres

* Addressed comments

* removed param

Co-authored-by: Monica Gupta <mogupt@microsoft.com>
2020-09-11 11:28:30 -07:00
Aasim Khan
a823e44393 Resource Deployment UX Refresh (#12173)
* adding new card to styles

* renamed property, removed unnecessary css

* Fixed to match new props

* added horizontal class

* merged from master
2020-09-11 11:13:59 -07:00
Karl Burtram
6929a803dc Fix missing package update (#12235) 2020-09-11 11:10:08 -07:00
Kim Santiago
8a6c776a5f make schema compare test unstable (#12234)
* make schema compare test unstable

* also make Standalone database context menu test unstable
2020-09-11 10:57:48 -07:00
Karl Burtram
d1ba3e23f4 Update external repo links (#12226)
* Update external repo links

* Update yarn files
2020-09-11 10:50:12 -07:00
Hale Rankin
6670289057 Hackathon - Better Markdown Editor (#11540)
* Hackathon - better markdown editor - modified Bold to wrap selection in HTML. Split Image button into two new options: embed and link. Made preview container contentEditable.

* Removed the new dropdown from Image button -- it is not necessary since we are adding a context panel instead.

* Modified preview icons

* Set code-component dimensions so it is not visible. It is still being used to pass markdown changes to however.

* add turndown and save markdown

* update model on UI when source changes

* Added conditional that sets element attribute contentEditable when it is in edit mode.

* Added textView component that can be used for editing.

* update source on MD view not on every keystroke

* Added markdown editor buttons that allow user to swap editor, preview views.

* Cleaning up implementation

* Setting base value of _showPreview to false.

* don't allow html edit on split view

* Update editor automagically

* Add an image picking dialog to notebook toolbar.

* Await transformText()

* revert pushEditOperations to fix cursor issue

* Implemented radio buttons for three view toggles.

* Added new, optional properties to radioButton: name, icon class and tooltip. This allows for display as toggleable icon. Updated styles and theme accordingly.

* Style tweaks.

* Added new ViewAction file where the RadioButton action will reside.

* Removed radio button implementation in exchange for native button instantiation. Adjusted CSS and theme accordingly.

* Styles, component and template changes to handle view toggle between text, markdownn an splitview. Includes reverting of radioButton as this is no longer used.

* WYSIWYG 3 Modes

* Ensure one action active at a time

* Setting Text View button active by default. Cleaned up styles. Moved toolbar element to prevent code cell layout overflow.

* Ensure we respect editMode, add showMarkdown

* hiding overflow on code-cell

* Empty text container needs 100% width. Eliminates weird selection border too.

* Initialize _previewMode

* Actions Compatibility

* Further toolbar enhancements

* Update yarn lock after merge

* Slim down changes

* Remove commented out code

* Added margins around notebook-preview container for more visual space for text

* Add turndown to workbench html

* Tweak import

* Add types/turndown

* Remove workbench.html fix

* Import cjs modules directly for turndown

* Leverage solution from github

* browser umd

* non browser umd

* welp dependency

* Modified updatePreview to insert a p tag only when text cell is empty.

* add listener for undo

* add turndown to remote and web

* Fix workbench, check in plugin

* PR comment

Co-authored-by: maddydev <makoripa@microsoft.com>
Co-authored-by: chlafreniere <hichise@gmail.com>
Co-authored-by: Cory Rivera <corivera@microsoft.com>
Co-authored-by: Lucy Zhang <luczhan@microsoft.com>
2020-09-11 00:22:07 -07:00
Chris LaFreniere
0f8fa0ccef Quick tweaks to resource viewer (v1) (#12210) 2020-09-10 21:57:43 -07:00
Chris LaFreniere
02ddfc20f1 Add vcore limit support (#12212) 2020-09-10 21:45:38 -07:00
Chris LaFreniere
1f0cdf82e4 Notebook Text Cell Highlight Improvements (#12197)
* 1st iteration

* works but multiple highlights

* remove comment

* Works but multiple selects

* wip

* cleanup

* cleanup

* Update TPN

* Add mark.js to remote + web

* PR feedback

* Tweak workbench html files
2020-09-10 21:40:29 -07:00
Aditya Bist
baa12d725f fix focus order (#12233) 2020-09-10 19:17:24 -07:00
Kim Santiago
133ff73a43 Add reference to another sql project (#12186)
* add projects to add database reference dialog

* able to add project references

* check for circular dependency

* only allow adding reference to project in the same workspace

* fix location dropdown when project reference is enabled

* add tests

* more tests

* cleanup

* fix flakey test

* addressing comments
2020-09-10 17:44:39 -07:00
Alan Ren
7df132b307 data workspace extension batch 2 (#12208)
* work in progress

* load projects in view and test cases

* update scope

* make the sql proj menu available in workspace view

* add extension unit test

* address comments

* fix errors
2020-09-10 17:17:57 -07:00
Aditya Bist
cd8102535b remove unused splash screen and fix issue reporter path (#12218) 2020-09-10 16:31:38 -07:00
Udeesha Gautam
974e832f78 Update SqlToolsService For a DacFx Fix (#12224) 2020-09-10 14:21:56 -07:00
Lucy Zhang
e3ec6bf9c5 Add grid streaming support for notebooks (#12175)
* add onResultUpdate handler in gridoutput

* convert rows to mimetype and html

* wait for data conversion to finish before saving

* detach changeRef after output is created

* fix save grid action

* move data conversion check to each cell

* move conversion logic to dataprovider

* notify data converting when user saves

* add comments and remove unused methods

* fix method return type

* fix tests

* fix convertData method header

* move azdata changes to azdata proposed

* address PR comments

* display top rows message

* fix messages/table ordering and query 100 rows

* add missing escape import

* set default max rows to 5000

* add undefined check to updateResultSet

* change gridDataConversionComplete return type
2020-09-10 13:31:40 -07:00
Kartik Arora
1528c642d1 Enable double click edit (#12200)
* fix to working version

* add comment documentation

* minor changes based on review

* resolve comments

* remnove unnecessary assignment
2020-09-10 12:18:42 -07:00
Monica Gupta
5730940492 Added color theme for Kusto (#12216)
* Added color theme

* Changed Kusto extension UI labels

Co-authored-by: Monica Gupta <mogupt@microsoft.com>
2020-09-10 12:07:04 -07:00
Barbara Valdez
3ff9df8e0b Add support for new version of Jupyter Book (#12086)
* Add support for new jupyter book version

* Add changes to the jupyter notebook to create books

* Create config file

* Add support of new version of jupyter book on ADS

* Fix paths for opening folder with v1 and v2 books

* Add tests for jupyter book v2

* Update tests

* Fix tests

* Fix get parent issue

* Address PR comments

* Fix bookVersion condition in getSections and fix issue on create book notebook

* Fix search

* update python notebook

* Remove commented lines
2020-09-10 11:32:58 -07:00
Vasu Bhog
ff61eae164 Fixed Kusto change connections for previous notebooks (#12207)
* fix connection dialog for change connection on notebook

* Better way to show all connections for providers

* minor change
2020-09-10 13:20:35 -05:00
dependabot[bot]
773ff0e62a Bump yargs-parser in /extensions/markdown-language-features (#12213)
Bumps [yargs-parser](https://github.com/yargs/yargs-parser) from 13.1.1 to 13.1.2.
- [Release notes](https://github.com/yargs/yargs-parser/releases)
- [Changelog](https://github.com/yargs/yargs-parser/blob/master/docs/CHANGELOG-full.md)
- [Commits](https://github.com/yargs/yargs-parser/commits)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-09-10 10:58:39 -07:00
Chris LaFreniere
869d071f73 storage class data controller (#12209) 2020-09-10 10:41:12 -07:00
Anthony Dresser
d01dc5a5c7 increase memory size for valid layers check (#12206) 2020-09-10 10:18:35 -07:00
Chris LaFreniere
adefa213e2 String update (#12202) 2020-09-09 19:07:40 -07:00
Arvind Ranasaria
2d29ef7eca 2 failing tests fixes (#12121)
* For testing azdata Ext

* add back skipped test

* all tests fixed on linux

* For testing azdata Ext

* fix for mac

* brew upgrade test fix

* remove temp changes

* remove Logger.log calls from test

* _ for unused parameters
2020-09-09 17:59:57 -07:00
Kim Santiago
dad31bc387 get delete and exclude to work for pre and post deploy scripts (#12191) 2020-09-09 16:46:09 -07:00
Alan Ren
afb872b3e1 use latest SQL Tools Service (#12201) 2020-09-09 15:50:22 -07:00
Mark Ghanayem
6dcc832983 changed image path a 3rd time to be a URL (#12203)
* Add CodeQL Analysis workflow (#10195)

* Add CodeQL Analysis workflow

* Fix path

* [Kusto extension]  Moved Gifs files to resources/images folder

* changing image path a 3rd time

Co-authored-by: Justin Hutchings <jhutchings1@users.noreply.github.com>
2020-09-09 14:29:00 -07:00
Mark Ghanayem
7a744bc7f2 [Kusto extension] Moved Gifs files to resources/images folder (#12196)
* Add CodeQL Analysis workflow (#10195)

* Add CodeQL Analysis workflow

* Fix path

* [Kusto extension]  Moved Gifs files to resources/images folder

Co-authored-by: Justin Hutchings <jhutchings1@users.noreply.github.com>
2020-09-09 14:09:30 -07:00
Anthony Dresser
8a8137e96c Add initial resource view (#12180)
* add inital resource view

* fix strict compile

* hide resource viewer behind arc

* fix arc detection

* fix hygiene

* add disposable

* make the css more specific
2020-09-09 10:49:14 -07:00
Vladimir Chernov
5ae9495bc6 Sql Assessment fixes (#12169)
* prevent simultaneous actions runs and label fix
* sqltools service version update
2020-09-09 17:54:48 +03:00
Vasu Bhog
3a0be70783 Kusto Kernel New Notebook Changes (#12085)
* Kusto New Notebook Action Changes

* Kusto Cluster properly switches context when kernel changes

* SQL Connections kernel change to Kusto works properly

* Multiple New Kusto Notebooks open properly and change kernels properly

* Fix SQL Notebook - Change to Kusto Kernel

* Fix unit tests

* Address comments

* Add test, and finalize changes
2020-09-09 09:19:36 -05:00
Amir Omidi
a840057cd8 Fix zonejs eating all errors (#12188) 2020-09-08 18:02:34 -07:00
Amir Omidi
f56e09cfa1 Splits the work of the assessment dialog into smaller managable chunks (#12172)
* Splits the work of the assessment dialog into smaller managable chunks

* Use the new assessment dialog page
2020-09-08 17:22:23 -07:00
Amir Omidi
9ed274fb39 Genericify components (#12158)
* Genericify components

* Fix compile issue

* Fix feedback

* Genericify azdata components (#12164)

* azdata generics

* Add the withProps method to azdata proposed as there may be mistakes with the interfaces in the generics

* Fix build issues because of other extensions

* Remove extra spaces
2020-09-08 16:15:24 -07:00
Alan Ren
e2b5e9bd66 support multiple flavor of notebooks (#12159)
* support multiple flavor of notebooks

* update resource

* comments
2020-09-08 16:07:55 -07:00
Anthony Dresser
f6c63f2dcb strict null chart (#12167) 2020-09-08 15:28:39 -07:00
Anthony Dresser
2b33c7c27f fix query plan css (#12181) 2020-09-08 15:18:58 -07:00
Anthony Dresser
d9b4af1217 strict null check contrib/editorReplace and services/queryEditor (#12166) 2020-09-08 14:06:43 -07:00
Aasim Khan
7231df34ce Changing import version to 1.0 for GA (#12177) 2020-09-08 12:34:37 -07:00
Mark Ghanayem
68709c02fe [Kusto] Update ReadMe file (#12116)
* Add CodeQL Analysis workflow (#10195)

* Add CodeQL Analysis workflow

* Fix path

* [Kusto] Update readme

* changed click to select

* Add Animated gifs and some text updtes

* add link

* change in media format syntax

* Removed peek definitions

* removed all machine learning refs

* removed en-us

* rename media to images

* removed gifs

* added back peek definitions

* changed media to images

* rename folder again and remove azuredatastudio repo link

* help whitespace identions

* renamed media files

* change image format text

* removed gifs

* add gifs back

* edit gulpfile.hygiene.js file to add gifs

* fixed image

Co-authored-by: Justin Hutchings <jhutchings1@users.noreply.github.com>
2020-09-08 09:50:08 -07:00
Anthony Dresser
3134449b38 Merge branch 'ads-main-vscode-2020-09-05T03-17-37' into main 2020-09-06 13:20:50 -07:00
Anthony Dresser
2b2b9ff44d add debug typings and comment out tests separtely for a few directories (#12163) 2020-09-05 20:32:06 -07:00
Arvind Ranasaria
c5d0c6f623 defining arc api (#12153)
* defining arcApi

* pr feedback

* activate arc extension in test

* skip failing test temporarily

* remove arcService test file
2020-09-05 10:09:15 -07:00
Charles Gagnon
3d7d1b23cb Add refresh/edit columns resource viewer actions (#12161)
* Add refresh/edit columns resource viewer actions

* add actions
2020-09-05 07:51:06 -07:00
Charles Gagnon
7cbf471913 Add azure data provider (#12160) 2020-09-05 01:21:51 -07:00
Anthony Dresser
3b2cd653a7 rerender view on layout (#12143) 2020-09-05 00:27:39 -07:00
ADS Merger
6718c7565d Merge from vscode 892353d48e17303de203bb5071f21ea69573367d 2020-09-05 03:17:42 +00:00
Charles Gagnon
b8d0e2a9e3 Cleanup and fixes for resource viewer and filter plugin (#12154)
* Cleanup and fixes for resource viewer and filter plugin

* fix strict nulls
2020-09-04 19:10:26 -07:00
Barbara Valdez
fa5bfee0cf Add tests to GitHubRemoteBook (#11953)
* Tests for githubRemoteBook class

* Add some tests and remove unused class

* Address PR comments
2020-09-04 18:51:04 -07:00
Anthony Dresser
704222b8d7 remove some vscode differences (#12146) 2020-09-04 18:04:30 -07:00
Anthony Dresser
503090856a Strict null scripting (#12126)
* strict null scripting

* fix compile

* fix tests

* fix icon
2020-09-04 18:04:08 -07:00
Alan Ren
bbe5b98a2c replace the placeholder with real workspace icon (#12150) 2020-09-04 16:01:53 -07:00
Charles Gagnon
84ca18b428 Remove extra id property from azure subs and add type name helper (#12145)
* Remove extra id property from azure subs and add type name helper

* case

* Change a few names
2020-09-04 16:01:05 -07:00
Kim Santiago
f6b46a1c5c Change DSP in new project template from 130 to 150 (#12139)
* change DSP in new project template from 130 to 150

* addressing comments
2020-09-04 15:51:41 -07:00
Amir Omidi
59bb827d2e Introduce vertical cards (#12125)
* Introduce vertical cards

* Simplify and add a css type

* Feedback

* Update yarn.lock
2020-09-04 15:15:58 -07:00
Charles Gagnon
c2320831f7 Add subscription ID to all graph query items (#12133)
* Add subscription ID to all graph query items

* fix machine-learning
2020-09-04 13:08:10 -07:00
Charles Gagnon
1d12823f09 error handling (#12140) 2020-09-04 11:44:37 -07:00
Charles Gagnon
a69ce7ec62 azdata string fixes (#12132)
* azdata string fixes

* Remove getResponses function

* change

* minor change
2020-09-04 08:38:11 -07:00
Alan Ren
1e49e47a37 ASDE updates (#12134)
* add storage account cleanup and other misc stuff

* force load

* cell -> code cell
2020-09-03 22:12:10 -07:00
Laura Jiang
4cc3a3f788 Provide bookTreeView comment to ensure compatibility (#12122)
* compatibility comment

* add importance
2020-09-03 21:54:34 -07:00
Maddy
a57379be49 add role on toggelMore action element (#11975)
* add role on toggelMore action element

* add aria-haspopup

* Fix localization and more descriptive

* single localized constant

Co-authored-by: Vasu Bhog <vabhog@microsoft.com>
2020-09-03 23:37:39 -05:00
Charles Gagnon
787245b058 Don't propagate click when clicking on header filter (#12130) 2020-09-03 21:36:11 -07:00
Amir Omidi
1e5ab4d9f0 remove unnecessary import (#12129) 2020-09-03 21:17:58 -07:00
Charles Gagnon
9004769865 Update azure graph queries to allow multiple subs (#12124) 2020-09-03 19:07:37 -07:00
Anthony Dresser
b1ce53ade3 Merge branch 'ads-main-vscode-2020-09-03T02-34-50' into main 2020-09-03 19:05:37 -07:00
Charles Gagnon
1b4f6f8934 Add Data Grid Provider API (#12097)
* Add RegisterResourceDataProvider API

* Change to data grid provider

* fixes

* updates
2020-09-03 17:55:25 -07:00
Anthony Dresser
4eb98a9dcc fix hygiene
remove sqllint for now

fix hygiene

Revert "remove sqllint for now"

This reverts commit 981ff90b9a5bbf3710d0f0ce58a8b67a92fe64eb.

distro

update smoke version

fix default theme
2020-09-03 16:27:59 -07:00
ADS Merger
a63578e6f7 Merge from vscode 7eaf220cafb9d9e901370ffce02229171cbf3ea6 2020-09-03 16:27:57 -07:00
Alan Ren
39d9eed585 give back the getter for container property (#12110)
* give back the getter for container property

* parameter type
2020-09-03 13:59:38 -07:00
Kim Santiago
78ff0c7d93 More add database reference dialog UI (#12066)
* add suppress missing dependencies checkbox

* add example usage

* set font-styles

* Fix typo

* allow example usage to be selectable

* don't localize example usage

* move example usage strings to a new section
2020-09-03 13:22:26 -07:00
Shafiq Ur Rahman
80b85ad74c Official icon for ADX (#12102) 2020-09-03 13:03:32 -07:00
Arvind Ranasaria
1c4e65ebe1 azdata startup: install/update commands and configrations (#11924)
* WIP

* first version with working tests

* fixes needed after merge from main

* Linux untest changes and merge from other changes from mac

* after testing getTextContent

* rename 2 methods

* linux discovery

* tested code on linux

* using release.json for update discovery on linux

* comment added

* dead code removed

* coomments

* revert unrelated change

* revert testing changes

* code complete, testing pending

* test complete

* PR feedback

* remove SendOutputChannelToConsole

* cleanup

* pr feedback

* PR Feedback

* pr feedback

* pr feedback

* pr feedback

* fix loc function

* install/upgrade command - context sensitive

* add awaits as pr feedback

* cleanup

* merge from main

* merge from main

* cleanup and pr feedback

* PR feedback and cleanup

* cleanup

* pr feedback

* pr feedback.

* revert accidental changes

* cleanup

* test fixes

* test fixes and pr feedback

* pr fixes and eula similar to install/upgrade

* revert extraneous change

* log and prompt fixes

* string fixes

* string updates

* string updates based on PR feedback

* loc const rename

* pr feedback

* string fixes

* make setContext settings uniform

* add commandPallete

* eulaAccepted setContext  from memento

* misc fixes

* bug fixes

* test fix

* skip failinf test for fix later

* pr feedback

* upgrading -> updating

Co-authored-by: chgagnon <chgagnon@microsoft.com>
2020-09-03 12:23:53 -07:00
Anthony Dresser
b7c2eaa65d strict compile contrib/backup (#12088) 2020-09-03 11:50:53 -07:00
Charles Gagnon
528fbb14ea vBump Arc extension to 0.3.5 (#12105) 2020-09-03 11:38:00 -07:00
Kim Santiago
f29127d515 Add db and server sqlcmd variables for database references (#12089)
* add support for adding db and server sqlcmd variables

* fix incrementing

* split up test
2020-09-03 10:27:02 -07:00
anjalia
d97993e518 Allow edit of sqlproj in place and reload (#11980)
* edit sql proj file

* bug fix

* updating reload project method

* adding test for reload

* formatting
2020-09-03 10:08:12 -07:00
Charles Gagnon
887ce88100 Fix tree view icons (#12095) 2020-09-02 18:46:34 -07:00
Charles Gagnon
6be8c1d54b Remove PG dashboard link (#12094) 2020-09-02 17:22:03 -07:00
Karl Burtram
c5e90d0236 Add migration service calls to migration wizard (#12090)
* Hook up migration apis WIP

* WIP 2

* WIP 3

* Fix build breaks

* Break 2

* WIP 4

* SKU recommendation page work

* WIP 5

* A few minor fixes

* Merge main

* Add back assessment dialog

* Address feedback

Co-authored-by: Amir Omidi <amomidi@microsoft.com>
2020-09-02 16:15:39 -07:00
Anthony Dresser
65e253ae0d attempt to adjust timing (#12064)
* attempt to adject timing

* add another animation frame wait

* add another debounce
2020-09-02 13:35:55 -07:00
Anthony Dresser
a6314b57b7 Add different flag for azure dialog (#12073)
* add different flag for azure dialog

* missing code change

* rename browser to browse
2020-09-02 13:35:36 -07:00
Charles Gagnon
e6d250c640 Base resource viewer editor (#12039)
* Base resource viewer editor

* Use table more directly

* Dispose listeners

* Fix strict compile

* undo

* More strict fixes

* Remove theming logic

* comments

* more fixes

* cleanup

* Remove actions contribution
2020-09-02 13:02:58 -07:00
Anthony Dresser
c982ea338d Update strict compile numbers (#12087)
* update strict compile numbers

* fix json
2020-09-02 12:15:16 -07:00
Anthony Dresser
8b8bef0401 add strict compile for restore (#12067) 2020-09-02 11:58:30 -07:00
Lucy Zhang
bfe694763b Add tests for Jupyter Session (#12053)
* add tests for Jupyter Session

* remove comment and fix description

* throw error if spark kernel provider is not mssql

* use localize strings and add pythonEnvVarPath test
2020-09-02 11:44:15 -07:00
Kim Santiago
f174dc1c77 Support for adding new SQLCMD variables to a project (#12009) 2020-09-02 11:22:36 -07:00
dependabot[bot]
2d33c8dd82 Bump bl from 4.0.2 to 4.0.3 (#12084)
Bumps [bl](https://github.com/rvagg/bl) from 4.0.2 to 4.0.3.
- [Release notes](https://github.com/rvagg/bl/releases)
- [Commits](https://github.com/rvagg/bl/compare/v4.0.2...v4.0.3)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-09-02 09:12:25 -07:00
Anthony Dresser
d8dcc90857 Strict nulls for contrib/restore and contrib/views (#12044)
* strict nulls for contrib/restore and contrib/views

* remove unnecessary function

* compile error
2020-09-01 17:53:29 -07:00
Anthony Dresser
9dde80ce1c add check for preview features on children providers on all azure tree providers (#12068) 2020-09-01 17:26:54 -07:00
Jorge Berumen
7b099e703a Updating config to point to latest service layer (#12058) 2020-09-01 17:10:06 -07:00
Monica Gupta
5d4afae616 Sets language mode based on connection type (#12065)
Co-authored-by: Monica Gupta <mogupt@microsoft.com>
2020-09-01 15:43:37 -07:00
Alan Ren
6cbfc0fb1c introduce data workspace extension (#12046)
* initial commit

* command name

* format file

* update view name

* spacing

* comments

* update yarn.lock

* comments

* Revert "comments"

This reverts commit 3aa7f68edbe87a3312e206df7b162cdd57419dd4.

* address comments

* use built-in icon
2020-09-01 13:26:37 -07:00
anjalia
2b59cc0185 Auto incrementing default name when adding object to database project (#12013)
* adding auto increment

* changing while to do while

* streamlining code
2020-09-01 13:15:16 -07:00
Alan Ren
b0211b434a fix the issue that error dialog is not showing (#12061) 2020-09-01 13:08:38 -07:00
Amir Omidi
7ceee95f52 radio card change (#12049)
* radio card change

* Clone the object

* freeze change description

* Change to deepClone
2020-09-01 12:06:38 -07:00
Shafiq Ur Rahman
34e317a559 Marketplace resources (#12042) 2020-09-01 11:35:43 -07:00
Kim Santiago
177d9bef39 Hook up add database references dialog (#12002)
* initial dialog

* got enabling working

* add tests

* cleanup

* add test coverage for systemDbRadioButtonClick()

* change DAC to .dacpac

* remove isEmptyOrUndefined

* hook up add database reference dialog

* cleanup

* Addressing comments
2020-09-01 11:06:04 -07:00
Charles Gagnon
8f8d01cee2 Post-update vBump arc extension (#12056) 2020-09-01 10:12:51 -07:00
Charles Gagnon
5cba0b4f7c vBump arc extension (#12055) 2020-09-01 10:05:46 -07:00
Charles Gagnon
48d4b806ad Add storage class options for Arc PG Deployment (#12054)
* Add storage class options for Arc PG Deployment

* Fix JSON

* Fix descriptions

* Update section title
2020-09-01 09:56:29 -07:00
Udeesha Gautam
3c6796938d minor cleanups to hide extra tree items and command that are not required (#12038) 2020-09-01 09:38:21 -07:00
Amir Omidi
53081cfca9 SKU recommendation page work (#12050) 2020-09-01 09:31:39 -07:00
Monica Gupta
96a6d0674a Fix for language provider text -non sql family too (#12040)
Co-authored-by: Monica Gupta <mogupt@microsoft.com>
2020-09-01 09:01:53 -07:00
Anthony Dresser
2bc1a41ec4 add contrib/tasks to strict compile (#12034) 2020-08-31 20:19:44 -07:00
Leila Lali
635da9a2b2 ML - Bug fixing (#11920)
* Fixed a bug with validating inputs when generating predict script

* Fixed the bug with verifying R packages

* Fixed the tests

* Added warning for when output column data type doesn't match with model output data type

* Fix the issue with selecting db
2020-08-31 20:02:30 -07:00
Arvind Ranasaria
23bd05ea68 Eula handling for Azdata (#12035)
* Eula handling for Azdata

* PR feedback

* pr feedback

* pr feedback

* remove extra await

Co-authored-by: chgagnon <chgagnon@microsoft.com>
2020-08-31 18:57:22 -07:00
Charles Gagnon
85e6d785ff Bump arc/azdata versions (#12043) 2020-08-31 18:55:00 -07:00
Charles Gagnon
02248fc065 Add dont show prompt to azdata toasts (#12037)
* Add dont show prompt to azdata toasts

* Undo version change

* undo
2020-08-31 17:15:26 -07:00
Justin M
a5b1e027c1 3491 Added Function to NodeTypes. Added Function to CanAlter and CanExecute. Added function support to css. Added drag and drop support for functions (#11990) 2020-08-31 16:46:00 -07:00
Anthony Dresser
a35c267214 update strict compile numbers (#12033) 2020-08-31 16:09:41 -07:00
Charles Gagnon
98d8c19b07 Only copy coverage if tests were ran (#12032) 2020-08-31 15:47:56 -07:00
Anthony Dresser
b6e45b69a6 simplify tsconfig (#11927) 2020-08-31 15:35:21 -07:00
Amir Omidi
2692df3cc7 Amir/enable sql vms for sql migration/assessments (#12029)
* Enable SQL Vms

* Enable SQL VMs

* Undo abd commit
2020-08-31 15:12:54 -07:00
Leila Lali
22c88cdd2e setting selected db name in drop down to current connection db name (#11912) 2020-08-31 14:44:08 -07:00
Monica Gupta
81e81f1c49 Fix Kusto startup error (#12028)
Co-authored-by: Monica Gupta <mogupt@microsoft.com>
2020-08-31 14:26:17 -07:00
Anthony Dresser
f3befb0f4d Merge branch 'ads-main-vscode-2020-08-22T06-06-45' into main 2020-08-31 14:22:42 -07:00
Charles Gagnon
f7c7274463 Fix context menu for disconnected server nodes (#12018)
* Fix context menu for disconnected server nodes

* Fix strict compile
2020-08-31 13:34:21 -07:00
Laura Jiang
cb1d892747 adjust div order (#12022) 2020-08-31 13:09:26 -07:00
Arvind Ranasaria
7495259e13 Manual azdata installation/upgrade using Readme (#12023)
* code complete

* string fixes

* show logger

* pr feedback
2020-08-31 12:50:10 -07:00
Amir Omidi
61e5003931 fix setCurrentPage (#12025)
* fix setCurrentPage

* Fix wrong import
2020-08-31 12:36:38 -07:00
Anthony Dresser
8d88791a0b fix hygiene
fix compile errors

fix build; disable a bunch of failing tests

update smoke extension

fix modals

fix icons
2020-08-31 12:35:57 -07:00
ADS Merger
4ad73d381c Merge from vscode ad407028575a77ea387eb7cc219b323dc017b686 2020-08-31 12:35:56 -07:00
Charles Gagnon
404260b8a0 Arc dashboard fixes (#12021)
* Arc dashboard fixes

* Bump versions
2020-08-31 12:32:26 -07:00
Monica Gupta
3d0dd0de98 Fix for query editor toolbar actions to show correctly based on file type (#11976)
* Fix for query editor toolbar actions to show correctly based on file type when not connected

* Addressed comments

* Fix when it is .sql file but connection is kust

Co-authored-by: Monica Gupta <mogupt@microsoft.com>
2020-08-31 12:01:23 -07:00
Kim Santiago
1984c4ca97 Update publish dialog UI (#11996)
* change svgs

* change label to server and get rid of connection string

* fix user for windows auth

* move blue icons out of dark and light folders
2020-08-31 10:25:58 -07:00
Maddy
ae830d9e64 Pinning Notebooks on Notebooks view (#11963)
* initial commit

* added tests

* code cleanup and more tests

* add missed util test

* changes to address comments

* remove pin from resources
2020-08-31 08:53:11 -07:00
Charles Gagnon
b4a3325a21 Add Azure properties back to Arc dashboards (#12010)
* Add Azure properties back to dashboards

* remove
2020-08-29 07:58:06 -07:00
Arvind Ranasaria
48e437c4a5 Improve discovery/upgrade messages (#12003) 2020-08-28 16:53:18 -07:00
Charles Gagnon
e9b00062a4 azdata extension fix/updates (#12008) 2020-08-28 16:49:21 -07:00
Charles Gagnon
47c1204e89 Fix arc node info updating (#12007)
* Fix arc node info updating

* Missed await
2020-08-28 15:53:17 -07:00
Amir Omidi
ceb4df5b8b Support SQL Servers for migrations (#11987)
* Support SQL Servers

* Use function but dont do anything with it for now
2020-08-28 12:56:08 -07:00
Charles Gagnon
d8aa9b8d7f azdata debug logging on all commands and always accept eula (#12001) 2020-08-28 12:46:41 -07:00
David Shiflet
94958236cd redo profiler feature move from protocolclient (#12000)
* redo profiler feature move from protocolclient

* remove commented code
2020-08-28 14:50:32 -04:00
Vasu Bhog
d59063ebab Add tests to NotebookUriHandler (#11959)
* NotebookUriHandler Test

* set test to previous, return promise for handleUri

* Added tests for file uri scheme https/http

* Updated NotebookUri to await handleUri calls and add more tests
2020-08-28 10:51:12 -05:00
Arvind Ranasaria
795300347b remove extra quotes (#11997) 2020-08-28 08:24:34 -07:00
Charles Gagnon
4789f2165b Add debug config option to azdata extension (#11999) 2020-08-28 07:04:47 -07:00
Monica Gupta
e9c5a6dfbd Fix VSIX file generation for Kusto (#11998)
Co-authored-by: Monica Gupta <mogupt@microsoft.com>
2020-08-27 22:22:53 -07:00
Charles Gagnon
100072cabd Add Storage Class params to MIAA deploy (#11993) 2020-08-27 18:19:31 -07:00
Monica Gupta
57ce9fae6f Update servuce-downloader version (#11994)
Co-authored-by: Monica Gupta <mogupt@microsoft.com>
2020-08-27 18:03:39 -07:00
Charles Gagnon
c04f2aa110 Fix arc controller connect (#11995) 2020-08-27 18:01:02 -07:00
Kim Santiago
70399be699 Initial add database reference dialog UI (#11944)
* initial dialog

* got enabling working

* add tests

* cleanup

* add test coverage for systemDbRadioButtonClick()

* change DAC to .dacpac

* remove isEmptyOrUndefined
2020-08-27 17:22:40 -07:00
Charles Gagnon
bf278c39bd Make editable dropdowns emit value change events on type (#11970) 2020-08-27 14:52:20 -07:00
Charles Gagnon
9824118a07 Disable new async tree by default (#11991) 2020-08-27 14:49:55 -07:00
Arvind Ranasaria
00c7600b05 Changes to discover and perform azdata update (#11906)
* WIP

* first version with working tests

* fixes needed after merge from main

* Linux untest changes and merge from other changes from mac

* after testing getTextContent

* rename 2 methods

* linux discovery

* tested code on linux

* using release.json for update discovery on linux

* comment added

* dead code removed

* coomments

* revert unrelated change

* revert testing changes

* PR feedback

* remove SendOutputChannelToConsole

* cleanup

* pr feedback

* PR Feedback

* pr feedback

* pr feedback

* merge from main

* merge from main

* cleanup and pr feedback

* pr feedback

* pr feedback.

* pr feedback

Co-authored-by: chgagnon <chgagnon@microsoft.com>
2020-08-27 13:25:54 -07:00
Charles Gagnon
b715e6ed82 Use namespace instead of listing all pods (#11986) 2020-08-27 12:40:07 -07:00
Sakshi Sharma
75812c71df Add folder icon to project (#11904)
* Add folder icon to project

* Fix conflicts arising due to merge
2020-08-27 10:50:17 -07:00
Sakshi Sharma
21c8609eb7 Changes to add pre/post deploy script to sqlproj (#11864)
* Initial changes for adding pre/post deploy script in project

* Right click > Add pre/post deploy script

* Print script files in tree

* Add new pre-post deploy items with their own tags and additional ones with None

* Add tests

* Fix error due to merge conflicts

* Addressed comments and fixed tests.

* Fix code scan error

* Addressed comments
2020-08-27 10:50:02 -07:00
Charles Gagnon
fa664bc92f Show message when external endpoint isn't configured (#11962) 2020-08-27 07:35:44 -07:00
Amir Omidi
c4e06f4db3 Fix test failure (#11973)
* Fix test failure

* Fix the right thing

* move them around
2020-08-26 15:49:52 -07:00
Amir Omidi
5a301f9073 Potentially fixes the test percentage (#11974)
* Potentially fixes the test percentage

* PR feedback
2020-08-26 14:44:32 -07:00
Shafiq Ur Rahman
2f94307635 Kusto extension for ADS (#11752)
* Kusto extension

* Add kusto to extensions.ts

* Remove objectExplorerNodeProvider

* Removed some BDC items + CR cleanup

* Cleanup unused strings in package.nls.json

* Remove unused svgs, and some cleanup

* Bringing objectExplorerNode back and hygiene changes

* rename to KustoObjectExplorerNodeProvider

* rename to KustoIconProvider

* Cleanup SQL code

* Fix compilation error

* Clean up in objectExplorerNodeProvider folder

* Some more clean up based on comments

* apiWrapper add

* changed to camelCase

* Remove unused functions/files

* Removed AgentServicesFeature

* dacfx, cms, schemacompare clean up

* Clean up and addressed few comments

* Remove apWrapper from kusto extension

* Addressed few comments

* credentialstore and escapeexception changes

* Added strict check for Kusto extension

* Fix error and addressed comment

* Saving Kusto files shoulf default to .kql

* package.json changes

* Fix objectExplorerNodeProvider

* Amir/kusto fix (#11972)

* Add the compiled extensions.js

* Fix strict compile rules

Co-authored-by: Monica Gupta <mogupt@microsoft.com>
Co-authored-by: Amir Omidi <amomidi@microsoft.com>
2020-08-26 14:13:31 -07:00
anjalia
f7279cb1f5 Auto increment new db project name (#11882)
* auto increment db proj name

* auto increment on import project from db

* adding separate message if workspace setting is invalid

* updating based on feedback

* adding do not ask again functionality

* moving constants

* making newprojecttool only top level functions

* adding tests

* updating to address merge conflicts

* fixing tests

* fixing tests
2020-08-26 12:14:51 -07:00
Lucy Zhang
a3121c0b2d Add tests for Jupyter Session (#11961)
* add tests for config kernel and connection

* move sinon.restore and fix config filepath
2020-08-25 18:59:53 -07:00
Amir Omidi
15017917b3 don't pass in an object (#11957) 2020-08-25 18:14:05 -07:00
Amir Omidi
4659d727b7 strict null checks azure (#11928)
* strict null checks azure

* strict compilation

* Fix compilation issues

* Return empty arrays instead
2020-08-25 18:12:47 -07:00
Charles Gagnon
8b52e7200c Add arc controllerModel tests (#11947)
* Add arc controllerModel tests

* Fix compile
2020-08-25 13:18:35 -07:00
Kim Santiago
b95e20b6ee Change name from import new database project (#11946)
* change name from import new database project

* update command name to 'Create Project From Database'
2020-08-25 12:00:04 -07:00
Chris LaFreniere
82132583af Re-enable previously commented out configure python wizard tests (#11945)
* Re-enable configure python wizard tests

* Remove extra comment
2020-08-25 11:26:37 -07:00
Charles Gagnon
7b54abbc96 Fix connection status badge display (#11933) 2020-08-25 08:45:42 -07:00
Laura Jiang
8e74ce1881 change indiffeditor (#11943) 2020-08-24 19:22:16 -07:00
Charles Gagnon
52ec96e4f1 Fix dropping async oe tree item onto root (#11934) 2020-08-24 18:07:42 -07:00
Charles Gagnon
969932743a Add external miaa endpoint property (#11940) 2020-08-24 18:07:25 -07:00
Charles Gagnon
54826b5fe3 Fix dnd auto-connecting profiles when dragging (#11935)
* Fix dnd auto-connecting profiles when dragging

* Expand connected nodes

* fix
2020-08-24 18:07:08 -07:00
Charles Gagnon
bd2ab6071d Disable Arc PG Manage action and clean up commands (#11942) 2020-08-24 18:05:15 -07:00
Laura Jiang
18a6879d64 Create sticky run code button for notebook code cell (#11903)
* update css for run code button

* rm extra position change
2020-08-24 16:05:31 -07:00
Maddy
384553c231 bookTreeView tests (#11746)
* bookTreeView tests

* add types

* CI failure change test

* test mix up corrected

* check notebook path exists

* missing file error fix

* error msg update

* openNotebook test error alternative fix

* move openNotebook test to unstable

* skip instead of marking unstable
2020-08-24 14:41:12 -07:00
Charles Gagnon
0e4e8c304c Add static logger class for azdata extension (#11939)
* Add static logger class for arc extension

* Fix compile errors

* Fix test
2020-08-24 12:32:45 -07:00
Charles Gagnon
d96e83c3f0 Update arc api (#11932) 2020-08-23 07:23:14 -07:00
Anthony Dresser
d8f9cdeacb update error counts for strict compile (#11926) 2020-08-21 23:38:57 -07:00
Anthony Dresser
3e515f2f59 Strict nulls check contrib/queryplan (#11917)
* remove angular query pla neditor and replace with non-angular version; strict null check contrib/queryPlan

* fix compile
2020-08-21 23:04:36 -07:00
Anthony Dresser
91065ebc38 Strict null contrib/webview (#11921)
* strict null contrib/webview

* fix compile
2020-08-21 23:04:29 -07:00
Kim Santiago
9133bef329 Update publish project dialog to look closer to the mockups (#11875)
* initial changes

* got everything lined up

* get rid of bottom scrollbar

* change database textbox to dropdown and cleanup

* more cleanup and fix profile text box

* fix label

* add fireOnTextChange to editable dropdown

* change edit icon and enable input boxes
2020-08-21 18:17:42 -07:00
Anthony Dresser
1eb2e5f41a add more granularity to strict vscode (#11922) 2020-08-21 17:30:52 -07:00
Amir Omidi
9a472cf8ec Expose the graph API (#11919)
* Exposing the graph API

* Azure managed instance retrival

* Fix compile error
2020-08-21 17:19:00 -07:00
Anthony Dresser
9d680be37a add strict nulls for contrib/extensions (#11916) 2020-08-21 17:17:59 -07:00
Anthony Dresser
f4f4271115 disable telemetry permently in web (#11918) 2020-08-21 17:14:01 -07:00
Anthony Dresser
faff61bb82 strict null for contrib/preferences and contrib/configuration (#11915) 2020-08-21 15:51:29 -07:00
Charles Gagnon
061052e4f3 Update arc deployment wizards (#11907) 2020-08-21 14:45:00 -07:00
Charles Gagnon
a6efd56844 Add Arc MIAA delete action back (#11901)
* Add Arc MIAA delete action back

* fix
2020-08-21 14:10:29 -07:00
Charles Gagnon
b4d61a067e Bump Arc extension version (#11914) 2020-08-21 13:14:08 -07:00
Charles Gagnon
d073cd595b Disable connectivity mode selection (#11911)
* Disable connectivity mode selection until Direct mode is fully completed

* add azdata change
2020-08-21 13:08:49 -07:00
Anthony Dresser
1b02fb6906 Add strict compiling for profiler service (#11898)
* add strict compiling for profiler

* fix up strict

* add contrib
2020-08-21 12:52:24 -07:00
Anthony Dresser
31323d6efb fix clicking on a profile in azure connection dialog (#11900) 2020-08-20 20:41:54 -07:00
Laura Jiang
84d21b1e76 adjust css to pin toolbar (#11894) 2020-08-20 17:11:53 -07:00
Charles Gagnon
b2a1738836 Remove REST API from Arc extension (#11888)
* wip

* Remove old API

* Fix tests
2020-08-20 15:56:46 -07:00
Monica Gupta
9c81db574e Fix for File -> New Query (#11893)
Co-authored-by: Monica Gupta <mogupt@microsoft.com>
2020-08-20 14:55:56 -07:00
Amir Omidi
18dc7e75ff use azurecore and azureresource as typings (#11892)
* use azurecore and azureresource as typings

* Remove unrelated file
2020-08-20 14:45:22 -07:00
Anthony Dresser
adfdd56907 Even more strictness (#11879)
* add more to strict nulls

* maintain error handling properly

* fix lint

* the rest of workbench/services

* fix compile
2020-08-20 14:00:26 -07:00
Amir Omidi
ca2b893c2c Update test cover dependency (#11889) 2020-08-20 12:25:12 -07:00
Kim Santiago
7029276f16 Update import project toolbar icon to be blue (#11878)
* update import project toolbar icon to be blue

* get rid of dark and light
2020-08-20 10:43:28 -07:00
Amir Omidi
bcce80094d Azure Subscription Page and another azdata change (#11877)
* Azure subscription page

* .
2020-08-20 10:23:48 -07:00
Sakshi Sharma
9861ca77e0 Add Import Database at server level (#11821)
* Add Import Database at server levelin dataExplorer

* Add Import database at server level in objectExplorer
2020-08-20 00:26:48 -07:00
Anthony Dresser
9327624930 Add more to strict nulls (#11871)
* add more to strict nulls

* maintain error handling properly

* fix lint
2020-08-19 18:38:34 -07:00
Lucy Zhang
69a96a7d5d Adding tests for DataResourceDataProvider (#11743)
* tests for getRow method

* use suiteSetup

* added more tests

* revert changes to gridOutput.component.ts

* mocked out services for DataResourceDataProvider

* add test for serializeResults

* change path to fsPath

* fix param type and use fs promises

* use async in startSerialization

* mock ContextService
2020-08-19 17:08:27 -07:00
Vasu Bhog
29fbc7d952 Refactored Server Instance Tests (#11868)
* Refactored and improved testing through sinon

* Addressed changes - helper function and direct call to function refactor
2020-08-19 17:28:15 -05:00
Lucy Zhang
fefb47da83 change notebook grid actions orientation to horizontal (#11870)
* change actions orientation to horizontal

* add missing import
2020-08-19 14:42:06 -07:00
Anthony Dresser
de3c6e6e99 Disable telemetry on web smoke (#11858)
* disable telemtry on web smoke

* add true
2020-08-19 14:34:13 -07:00
Alan Ren
a3ae2df0ce support aria-expand for actions (#11869)
* support aria-expand for actions

* update text
2020-08-19 14:18:52 -07:00
Charles Gagnon
3c538d1c2d Add AsyncServerTree (#11838)
* wip

* Fixes

* More fixes

* more fixes

* Disable when preview features disabled

* remove unused imports

* Handle promises

* PR feedback

* Single default ServerGroup color value
2020-08-19 14:01:10 -07:00
Amir Omidi
d2e4eeac88 skuRecommendationPage & azdata change (#11863)
* skuRecommendationPage

* fix
2020-08-19 13:04:08 -07:00
Shafiq Ur Rahman
97b6d71a06 Kusto - ADS Core changes (#11750)
* ADS Core changes

* Generic fix to get language mode based on providerId

* Addressed comments

* Fix failing tests

* Fix for "New Notebook" from file menu option

* Remove line

* Fix for merge conflict

* Add removed comment back

* Addressed comments

Co-authored-by: Monica Gupta <mogupt@microsoft.com>
2020-08-19 12:27:16 -07:00
Aasim Khan
43f08e7efb Added ESRP task for signing extensions (#11845)
* Added esrp task for vsix

* added the condition to sign only when needed

* Changed dotnet core task name for more context
2020-08-19 10:43:23 -07:00
Anthony Dresser
60c62c0668 Fix a bunch of strict issues (#11857)
* fix a bunch of strict issues

* fix tests

* fix tests
2020-08-19 10:37:30 -07:00
Sakshi Sharma
e90341b3d2 Initial Pre-post deployment changes (#11703)
* Update Open Project to display pre-post deployment scripts in the project tree

* Address comments

* Fixed tests

* Update nonDeployScripts to noneDeployScripts and throw a warning message instead of informational message for prePostDeployCount
2020-08-19 01:06:29 -07:00
Cory Rivera
0f063d3a2e Skip adding python user package directory to PATH on SAW devices. (#11849) 2020-08-18 17:14:19 -07:00
Shafiq Ur Rahman
62d60f62f3 Kusto - AzureCore changes (#11751)
* AzureCore changes

* Removed connectazuredataexplorer command from command.ts, package.json, and package.nls.json (#11844)

Co-authored-by: Monica Gupta <mogupt@microsoft.com>
Co-authored-by: Justin M <63619224+JustinMDotNet@users.noreply.github.com>
2020-08-18 16:56:17 -07:00
Vasu Bhog
2bfba53e21 Kusto Notebook Kernel Changes (#11760)
* Able to get Kernel Alias using extension registery

* Get Kernel Alias through Capability Services

* Notebook Action feature to add kusto to dropdown based on extension - complete

* Fixed indexing issue when Kusto is in kernels Dropdown

* Kusto Kernel listed properly and selected when kernel changes

* Added kernel change when user Attaches To Kusto connection

* Deleted unnecessary code/refactored

* Fix Merge Issues

* Resolving Compile issues - test file error

* Capabilities Provider Changes

* Fixed Notebook Tests

* Rearchitect kernel changes to Notebook Model

* Address minor changes
2020-08-18 14:52:25 -05:00
Amir Omidi
6153b7ad06 Start with the SKU recommendation screen (#11786) 2020-08-18 12:44:58 -07:00
Anthony Dresser
c4b524237c Better table implementation (#11781)
* wip

* wip

* weird splitview scrolling stuff

* working table

* remove spliceable table

* handling resizing columns

* get perf table integrated into grid

* make more improvments to table view

* testing

* wip

* wip

* fix async data window; add more optimization to scrolling

* work on scrolling

* fix column resizing

* start working on table widget

* inital work to get table widget working with styles and mouse controls

* fix unrendering selection; fix sizes of cells

* support high perf table option; remove unused files; add cell borders to high perf

* add accessibility tags

* handle borders and row count

* more styling changfes

* fix strict null checks

* adding inital keyboard navigation

* center row count; add padding left to rows

* inital drag selection

* remove drag implementation; it can be done better utilizing the global mouse monitor object

* range logic

* create custom grid range

* work with new range

* remove unused code

* fix how plus range works

* add drag selection; change focus to set selection; fix problem with creating a range with inverse start and end

* code cleanup

* fix strict-null-checks

* fix up perf table

* fix layering

* inital table service

* finish table service

* fix some compile errors

* fix compile

* fix compile

* fix up for use

* fix layering

* remove console use

* fix strict nulls
2020-08-18 12:10:05 -07:00
Kim Santiago
17856855f6 Make sql project publish SQLCMD table editable (#11812)
* make table editable

* add button to load values from sqlproj

* use form component group

* match mockups

* move UI constants to a separate file

* fix error
2020-08-18 12:04:12 -07:00
Lucy Zhang
b16c6f3faa update sqltoolsservice version (#11843) 2020-08-18 09:41:07 -07:00
Charles Gagnon
fc9d08a62b Fix DT linting errors (#11831) 2020-08-17 13:48:48 -07:00
Cory Rivera
92db8df000 Simplify python reinstallation by only installing jupyter. (#11820) 2020-08-17 11:02:18 -07:00
Maddy
b7e12cb8a7 open resource only when it's file (#11815) 2020-08-17 08:52:30 -07:00
Charles Gagnon
3192d056f2 Update notebook convert action when clause for notebook editor (#11826) 2020-08-15 17:27:43 -07:00
Charles Gagnon
273f6b658a Add separate config for enabling nb convert and fix css (#11811) 2020-08-15 17:15:28 -07:00
Chris LaFreniere
e90578694b Call onDidInsert Before Layout (#11819) 2020-08-14 19:52:27 -07:00
Kim Santiago
3b2e53d270 Add support for AAD interactive connection strings for project data sources (#11761)
* add support for AAD interactive for project data sources

* fix whitespace

* remove warning message

* choose azureMFA if a connection string has both integrated security=true and authentication=active directory interactive
2020-08-14 16:13:22 -07:00
Chris LaFreniere
a34a72795b Notebook Code Cleanup + Utils Test (#11754)
* Cleanup + Utils Test

* Removing unnecessary util method
2020-08-14 14:08:56 -07:00
Cory Rivera
ff2d2d0339 Remove preview flag for Configure Python wizard. (#11813) 2020-08-14 12:36:40 -07:00
anjalia
1ee4af52b4 Expand/collapse all node options (#11728)
* Implementing expand and collapse nodes

* adding constants for error messages

* Removing expand all database projects functionality

* Reformatting imports
2020-08-13 18:31:03 -07:00
anjalia
28aa9b7912 Adding Link to ADS Extension Generator Documentation in Extensions Menu (#11785)
* Link to the extension generator documentation in the extension menu

* Moving actions to correct files

* Reverting changes to imports in vs folder
2020-08-13 18:28:57 -07:00
Anthony Dresser
8cf82c1f8b Azure pane in connection dialog (#11736)
* azure pane in connection dialog

* fix layering

* fix issues

* fix test

* more test fixes

* add back double click to connect for non-contributed views
2020-08-13 17:02:42 -07:00
Anthony Dresser
a69b4bf662 Add check for disable telemetry when showing opt out (#11796)
* add check for disable telemtry when showing output

* remove previous fixes for smoke tests

* fix compile

* continue on error for smoke tests
2020-08-13 16:57:05 -07:00
Kim Santiago
f3a48da3fa Initial project references changes (#11648)
* first changes for showing project references

* add tests

* fix interface and formatting

* add try so that project still gets loaded even if dependency project loading fails

* use instanceof

* add circular reference error
2020-08-13 16:08:32 -07:00
Cory Rivera
d68433ec22 Add some package management unit tests for JupyterServerInstallation (#11777) 2020-08-13 13:12:28 -07:00
Charles Gagnon
c66726cdb5 Fix default query shortcuts not being available (#11775) 2020-08-13 12:45:35 -07:00
Charles Gagnon
d547dd8ba3 Post release vBump (#11774) 2020-08-13 10:37:44 -07:00
Leila Lali
cc8989c2a5 ML - Verifying ODBC Driver (#11587)
* Verifying ODBC is installed before opening package manager dialog
2020-08-13 08:52:10 -07:00
Leila Lali
053a2c7446 ML - Updating sqlmlutil to fix R package management (#11432)
Updating sqlmlutil to fix R package management
2020-08-12 14:29:07 -07:00
Amir Omidi
6e306461d7 Introduces event queue processor to create a consistent UI (#11780) 2020-08-12 14:06:49 -07:00
Leila Lali
e40a81e8e1 ML - Fixed script formatting for prediction (#11767)
* Fixed script formatting for prediction
2020-08-12 13:36:39 -07:00
Charles Gagnon
094ee7c50c Add extension api for calling azdata commands (#11763)
* Add extension api for calling azdata commands

* Update typings file name
2020-08-12 12:57:59 -07:00
Anthony Dresser
d96fe82fbc Rewrite scrollablesplitview (#11566)
* fix issues with scrollable, maybe

* add debounce

* remove scrollable

* fix events

* perf improvements

* fix compile errors

* fix more compile

* add tests

* maybe fix tests

* 💄

* 💄

* maybe this will work

* fix compile

* try this

* remove some unneeded functionality

* fix comment
2020-08-12 12:16:04 -07:00
Anthony Dresser
bc44014532 Fix web smoke tests (#11759)
* fix web smoke tests

* readd web smoke
2020-08-12 12:02:42 -07:00
Amir Omidi
8cbf73dff6 Page changing (#11770) 2020-08-12 11:25:28 -07:00
Leila Lali
28b0d827b9 Changed the order of pages in import model wizard based on the new design (#11579) 2020-08-12 09:31:26 -07:00
Charles Gagnon
01ea89a461 Add azdata tests (#11745) 2020-08-12 09:02:42 -07:00
Charles Gagnon
00af075fb3 Update README and CHANGELOG for August release (#11772)
* Update README and CHANGELOG for August release

* Fix milestone
2020-08-12 09:01:27 -07:00
Udeesha Gautam
72f6d8a006 update sqltoolsService version for a sqltoolsservice and a dacfx fix (#11764) 2020-08-11 22:24:09 -07:00
Kim Santiago
86a019842f Fix importing new project from server dashboard (#11766)
* fix importing new project from server dashboard

* also fix not showing list of dbs if the connection from connection dialog already specified the db
2020-08-11 18:08:13 -07:00
Amir Omidi
207a9a6a25 Sets up the first page with some filler information (#11762)
* Sets up the first page with some filler information

* Add some valid information

* move to its own method
2020-08-11 17:12:05 -07:00
Charles Gagnon
6e26261149 Move rest of DE actions into package contributions (#11755)
* Move rest of DE actions into package contributions

* Add sql-database-projects import
2020-08-11 15:37:03 -07:00
Amir Omidi
acd9fc8fd6 Migration wizard skeleton setup (#11758) 2020-08-11 14:54:40 -07:00
Amir Omidi
3432743f63 Dynamic ws protocol (#11757) 2020-08-11 14:04:35 -07:00
Alex Ma
f45583c0f6 Refresh fix for Edit Data (#11710)
* hook in grid panel to edit data input through the editDataResultsInput

* added then at end of refreshGrid to ensure cell reset happens after refresh.

* abstraction

* Timeout removed as its causing issues with refreshing

* added await for dataRows

* Added working timeout for refresh

* removed spaces

* added comment explaining isRefresh

* Timeout set to 500 for better coverage.

Co-authored-by: Amir Omidi <amomidi@microsoft.com>
Co-authored-by: Anthony Dresser <andresse@microsoft.com>
2020-08-11 14:04:24 -07:00
Charles Gagnon
aecb0efbc0 Fix up data explorer contributed actions on OE nodes (#11685)
* Fix up data explorer contributed actions on OE nodes

* sql carbon edit

* add Database node
2020-08-11 10:25:38 -07:00
Anthony Dresser
86fcd05eff Fix smoke tests (#11734)
* add small timeout to address timeout issues in smoke tests

* fix comment

* longer wait

* fix smoketests

* redisable web
2020-08-10 21:43:27 -07:00
Anthony Dresser
1f71ea301c Merge branch 'publish/server' into main 2020-08-10 19:09:25 -07:00
Anthony Dresser
a721ab559d distro 2020-08-10 17:50:40 -07:00
Anthony Dresser
0c0c87184c reenable server builds 2020-08-10 17:49:31 -07:00
Amir Omidi
39900b7a92 SQL Migration Extension Skeleton (#11625)
* Start on skeleton

* Finish up skeleton

* .

* Change up the skeleton a bit, add some states.
2020-08-10 17:31:50 -07:00
Monica Gupta
6435540f35 Hides Edit Data , Script as Create and Script as drop for Kusto tables (#11742)
* Hide Edit Data , Script as Create and Script as drop for Kusto tables

* clean up

* more clean up

Co-authored-by: Monica Gupta <mogupt@microsoft.com>
2020-08-10 16:32:19 -07:00
Arvind Ranasaria
3b38ba7e30 findAzdata test fix (#11724)
* findAzdata test fix

* cleanup

* pr feedback
2020-08-10 16:07:47 -07:00
Alan Ren
bc0753a95c hide edit data and script as create (#11737) 2020-08-10 13:40:35 -07:00
Leila Lali
76d6e93f7c Updating ML ext version (#11741) 2020-08-10 13:36:27 -07:00
Leila Lali
f7cd25af71 ML - Removing reference to deprecated API (#11733)
* Removing reference to deprecated API
2020-08-10 13:06:47 -07:00
Charles Gagnon
858c1e826d Put export as SQL/Notebook under preview flag (#11726)
* Put export as SQL/Notebook under preview flag

* add sqlcmd under preview

* Remove comment
2020-08-09 16:09:51 -07:00
Arvind Ranasaria
2b0b529b21 Add controller display name (#11675)
* Add controller display name

* pr feedback

* revert unneeded change

* pr feedback
2020-08-07 16:47:10 -07:00
Charles Gagnon
ec0f7f992c Update min required ADS version for machine-learning (#11722) 2020-08-07 15:45:19 -07:00
Maddy
3683aaaf2a Fix/markdown links (#11708)
* test changes

* maintain uri if it's not a file

* check file and path is string

* missed this

* Add SQL CARBON EDIT

Co-authored-by: chgagnon <chgagnon@microsoft.com>
2020-08-07 15:39:39 -07:00
Charles Gagnon
6440bad9bb Update ML package version (#11720) 2020-08-07 14:52:45 -07:00
Alan Ren
f8a6658128 make sure options is not undefined (#11715) 2020-08-07 14:50:09 -07:00
Lucy Zhang
1e00898105 change wizard title to heading 2 (#11711) 2020-08-07 13:37:53 -07:00
Alan Ren
3c647c4376 show backup/restore only for mssql (#11714) 2020-08-07 12:58:33 -07:00
Alan Ren
0a3d109073 custom hint text (#11705) 2020-08-06 21:21:50 -07:00
Karl Burtram
4c4c22331d Add welcomePageWithTour to startupEditor check (#11702) 2020-08-06 20:49:35 -07:00
Monica Gupta
dcd1a175e4 Fix for reading "options" property from backend in manage dashboard (#11701)
Co-authored-by: Monica Gupta <mogupt@microsoft.com>
2020-08-06 17:37:15 -07:00
Anthony Dresser
2b2c912135 Distro (#11693)
* distro

* distro

* distro
2020-08-06 14:04:29 -07:00
Anthony Dresser
99de46adbd Distro (#11692)
* distro

* distro
2020-08-06 13:59:32 -07:00
AzureDataStudio
7fbc37058b Merge branch 'ads-main-vscode-2020-08-06T07-08-45' into main 2020-08-06 13:50:20 -07:00
AzureDataStudio
24b3181cbc Fix errors
distro

distro

comment out reh stuff

distro

fix yml

distro

bump smoke ext
2020-08-06 13:49:27 -07:00
Maddy
adacbdc4cf Fix/save defaults to txt (#11623)
* regression fix from vscode merge

* pass language not mode for getting the extension

* fix compile errors on vscode.

* case sensitive update
2020-08-06 10:17:58 -07:00
Charles Gagnon
9bdfa57be6 Revert "Do ModelView initialization actions before others (#11512)" (#11677)
This reverts commit 9bdd5f2899b36a44bca4add1f05164cf1489929b.
2020-08-06 08:47:33 -07:00
ADS Merger
540046ba00 Merge from vscode cfbd1999769f4f08dce29629fb92fdc0fac53829 2020-08-06 07:08:52 +00:00
Amir Omidi
9c67832880 Return cancelled, not undefined for azure login (#11656)
* Return cancelled, not undefined.

* fallback to reject

* Add type to the rejection

* add default
2020-08-05 14:48:47 -07:00
Cory Rivera
28f1321ad7 Add task for downloading Python package when building ADS for SAW devices. (#11659) 2020-08-05 14:11:44 -07:00
Arvind Ranasaria
92b0603968 emit better errors for azure access failure (#11603)
* emit better errors for azure access failure

* Update modelViewUtils.ts

added missing breaks

* merge changes with those done directly from browser

* pr feedback

* string updates

* print only 1 error for account error

* fix comments

* pr feedback
2020-08-05 13:43:15 -07:00
Amir Omidi
ea2564b133 Dropdown fix (#11660) 2020-08-05 12:47:37 -07:00
v-bbrady
99e1bbf06f fixes button font color not showing on welcome page #11598 (#11658)
* fixes stying issue

* formatting
2020-08-05 11:49:48 -07:00
v-bbrady
c0836409cc fixes button height (#11471) 2020-08-05 11:25:56 -07:00
Alan Ren
50b6789e51 show hidden connection properties (#11646) 2020-08-05 10:15:56 -07:00
Alan Ren
b71432523d replace obsolete command (#11650) 2020-08-05 10:15:36 -07:00
Cory Rivera
d380328f8b Use a regex to detect notebook started message. (#11642) 2020-08-04 18:00:52 -07:00
Christopher Suh
aa151b280f Added Column folder drag & drop (#11595)
* wip

* working folder drag/drop

* helper method

* cleanup

* cleanup

* cleanup

* added view

* helper method for nodeTypeId

* made method static for access from editordroptarget

* pr changes
2020-08-04 20:49:21 -04:00
Alan Ren
656d944894 add some unit test for resource deployment ext (#11604)
* add some unit test for resource deployment ext

* feedback & remove unused method
2020-08-04 17:18:26 -07:00
Charles Gagnon
0c3798ae26 Fix error when clicking on empty dropdown (#11637) 2020-08-04 14:33:25 -07:00
Barbara Valdez
e7ec278ef2 Replace URL and use vscode.URI on local paths (#11624)
* Use vscode.URI for local paths

* Use vscode.uri file method to set the name for remotebookfull path compressed file

* Add await on extract tar function

* Replace remote paths too

* Use vscode.uri.file instead of parse for local paths
2020-08-04 13:22:28 -07:00
Sumit Kumar
9df51b9936 test case failing (#11609)
* initial draft

* change tenant

* assertion error

* fixed failing test
2020-08-04 11:03:26 -07:00
v-bbrady
8fce371e3f fixes duplicate list items on welcome #11366 #11578 (#11378)
* fixes duplicate list items on welcome

* fixes duplicate list, and comments on PR

* updates to use clearNode, and removes unnecessary formatter

* awaits maplistentries, calls functions directly
2020-08-04 10:51:13 -07:00
Sakshi Sharma
381a32929f First set of test for SchemaCompareDialog (#11444)
* Add a test for SchemaCompareDialog and update the product code with deferred promise

* Update test to verify that button clicked worked

* Addressed comments

* Updated verifyButtonsState to use should instead of console.log
2020-08-04 01:10:46 -07:00
Maddy
eeb1f7cf3e remove old code (#11620) 2020-08-03 17:08:00 -07:00
Charles Gagnon
694f34a4cd Add Notebook <-> SQL convert (#11590)
* Add Notebook <-> SQL convert

* Update STS
2020-08-03 14:50:24 -07:00
Udeesha Gautam
fbbb9ce529 load publish profile sqlcmd "value" tag and throw error if not loaded correctly (#11615)
* load publish profile sqlcmd "value" tag and throw error if not loaded correctly

* moved the read profile function to utils
2020-08-03 14:16:00 -07:00
Kim Santiago
9d730bd0b5 make font size consistent in publish dialog (#11614) 2020-08-03 12:56:50 -07:00
Amir Omidi
f941f9910b Tenant list UI for Firewall Rules (#11539)
* Start on the tenant list

* continue work

* Finish up...

* Fix test

* Fix

* Fix tests

* Some PR feedback

* Move responsibilities around

* Fix comment
2020-07-31 20:07:30 -07:00
Hale Rankin
68e7a293ad Notebook cell toolbar additions - move cell, convert cell (#11457)
* Notebook cell toolbar additions - move up and move down added. Stubbed out related actions. Cleaned up component code.

* Added new more actions menu item: Convert cell.

* add move cell support in model

* Schema Compare cleanup (#11418)

* cleanup async and await stuff

* remove awaits

* remove more awaits

* fix (#11437)

* Add some unit tests for PyPiClient. (#11442)

* handle invalid character in kubectl version output (#11460)

* Add tests for azdata extension (#11423)

* Add tests for azdata extension

* Fail on stderr

* Skip test for not implemented logic

* Move executeCommand stub

* Add missing packages

* let semver to parse the version (#11463)

* let semver to parse the version

* check

* Stop hardcoding python3 (#11464)

* Add ConnectControllerDialog tests (#11443)

* Automatically fix up arc controller URL

* wip

* Force tests to pass

* Refactor

* comment

* adds role of button to all links that are buttons (#11465)

* Merge from vscode 0a7364f00514c46c9caceece15e1f82f82e3712f

* bump smoke extensions

* bump node version in builds

* bump smoke extensions

* Add query-history and sql-assessment to recommended extensions (#11477)

* First draft of outputProcessor tests (#11368)

* First draft of outputProcessor tests

* add return type for a function

* pr feedback

* comments and Spellings, getRandom ==> getRandomElement

* pr feedback

* pr feedback

* Adds support for installing azdata on Linux (#11469)

* Large cleanup of AzureCore - Introduction of getAccountSecurityToken and deprecation of getSecurityToken (#11446)

* do a large cleanup of azurecore

* Fix tests

* Rework Device Code

* Fix tests

* Fix AE scenario

* Fix firewall rule - clenaup logging

* Shorthand syntax

* Fix firewall tests

* Start on tests for azureAuth

* Add more tests

* Address comments

* Add a few more important tests

* Don't throw error on old code

* Fill in todo

* Adding button plugin to table component  (#10918)

* Added delete plugin to table component

* Arc - Remove Azure params from Postgres deployment (#11478)

Co-authored-by: Brian Bergeron <brberger@microsoft.com>

* tests for KernelsDropdown class (#11476)

* add return type for a function

* tests for KernelsDropdown class

* remove inadvertent change

* remove inadvertent change

* formatting changes

* pr feedback

* pr feedback

* implement review feedback (#11470)

* fix sql proj sqlcmd table showing after loading profile when it shouldn't (#11479)

* Feature/outer paths for project (#11445)

* allow relative paths in project file outside of project folder

* Adding some tests

* Adding error string to loc strings

* Fixed test

* fix error message

* PR comments and some more fixes

* change userName to match what the azure account display name is (#11484)

* change userName to match what the azure account display name is

* Handle undefined value

* Merge from vscode 8c426f9f3b6b18935cc6c2ec8aa6d45ccd88021e

* recomment out integration tests

* Fix/open book error (#11379)

* add isNotebook param and showPreview option

* showPreview changes

* update OpenNotebookFolder to open a specific path

* added test for showPreviewFile

* test name typo

* remove isNotebook from openBook

* Add test coverage for dacpac wizard import flow (#11483)

* Adding importConfig onPageEnter() test

* Removing redundancy from dacpac wizard pages

* promisifying file selection so it can be awaited in the test

* removing debug prints

* PR feedback

* Remove all accounts regardless of failure in one account (#11431)

* distro (#11487)

* distro

* distro

* distro

* distro

* Adding icons to Database Projects' tree view (#11488)

* Add images

* Splitting to light and dark mode icons

* Hooks up icons to treeItems

* updating package.json with new icon and vbump

* move icon loader before tree view created

* Update Arc extension version and fix Controller connectivity status names (#11498)

* Update connectivity mode names

(cherry picked from commit f0aabcfa86d178cdf74470f9fdeded19718bcea2)

* Bump package version

(cherry picked from commit e08370539006c638d6e25c2f4f23fa2754a3377d)

* deploy to single existing device (#11494)

* deploy to single existing device

* comments

* Add versioning for accounts (#11497)

* Add versioning for accounts

* deletion value

* Changes to getAccountSecurityToken (#11502)

* Hook up convert cell

* Fix tests

* Add convert cell tests

Co-authored-by: chlafreniere <hichise@gmail.com>
Co-authored-by: Kim Santiago <31145923+kisantia@users.noreply.github.com>
Co-authored-by: Maddy <12754347+MaddyDev@users.noreply.github.com>
Co-authored-by: Cory Rivera <corivera@microsoft.com>
Co-authored-by: Alan Ren <alanren@microsoft.com>
Co-authored-by: Charles Gagnon <chgagnon@microsoft.com>
Co-authored-by: Chris LaFreniere <40371649+chlafreniere@users.noreply.github.com>
Co-authored-by: v-bbrady <60623315+v-bbrady@users.noreply.github.com>
Co-authored-by: ADS Merger <andresse@microsoft.com>
Co-authored-by: Arvind Ranasaria <ranasaria@outlook.com>
Co-authored-by: Amir Omidi <amomidi@microsoft.com>
Co-authored-by: Leila Lali <llali@microsoft.com>
Co-authored-by: Brian Bergeron <brian.e.bergeron@gmail.com>
Co-authored-by: Brian Bergeron <brberger@microsoft.com>
Co-authored-by: Udeesha Gautam <46980425+udeeshagautam@users.noreply.github.com>
Co-authored-by: Benjin Dubishar <benjin.dubishar@gmail.com>
2020-07-31 17:57:46 -07:00
Kim Santiago
30845cbd6d update project already exists error message (#11596) 2020-07-31 14:50:31 -07:00
Barbara Valdez
c52155b621 Add setting for collapsing/expanding books at root level (#11543)
* Add setting for max number of expanded books

* Remove extra commas

* Add setting for expanding/collapsing books at root level

* Change typo in name of setting

* Change default value to false
2020-07-31 14:44:45 -07:00
Aasim Khan
1a68f17650 added focus to first element in the form (#11597) 2020-07-31 13:56:00 -07:00
Charles Gagnon
13008cc2b9 Thenable -> Promise in OE Service (#11594)
* Thenable -> Promise in OE Service

* Remove more thens
2020-07-31 13:00:03 -07:00
Kim Santiago
9c1168ba3b Add DacFx summary page tests (#11519)
* remove generate script operation

* add tests for summary page

* add a couple more checks
2020-07-31 10:18:21 -07:00
Vladimir Chernov
89753577ab Sql Assessment HTML report (#11558) 2020-07-31 13:00:00 +03:00
dependabot[bot]
4f58f53e57 Bump elliptic from 6.4.0 to 6.5.3 (#11589)
Bumps [elliptic](https://github.com/indutny/elliptic) from 6.4.0 to 6.5.3.
- [Release notes](https://github.com/indutny/elliptic/releases)
- [Commits](https://github.com/indutny/elliptic/compare/v6.4.0...v6.5.3)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-30 17:15:05 -07:00
dependabot[bot]
969936d98d Bump elliptic in /extensions/markdown-language-features (#11588)
Bumps [elliptic](https://github.com/indutny/elliptic) from 6.4.0 to 6.5.3.
- [Release notes](https://github.com/indutny/elliptic/releases)
- [Commits](https://github.com/indutny/elliptic/compare/v6.4.0...v6.5.3)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-30 17:14:47 -07:00
Alan Ren
21d09cb975 remove the scheduled run info from yml (#11562) 2020-07-30 15:25:02 -07:00
Alan Ren
01957abf71 update to use correct environment variable (#11584) 2020-07-30 15:17:55 -07:00
Kim Santiago
9e5bd182bb don't change focus to file explorer viewlet when automatically opening sql projects in the open folder (#11583) 2020-07-30 14:50:42 -07:00
Charles Gagnon
ee540ac89c Fix Notebook toolbar contributed actions (#11572)
* Fix Notebook toolbar contributed actions

* Fix args

* Remove unused imports
2020-07-30 14:11:15 -07:00
Kim Santiago
5fd9d1b18f Remove system dbs from dacfx wizard dropdowns (#11510)
* remove system dbs from dacfx wizard dropdowns

* add test for filtering out system dbs
2020-07-30 13:52:05 -07:00
Alan Ren
6fbb9c2773 deploy ASDE to multiple devices (#11518) 2020-07-30 12:20:48 -07:00
Charles Gagnon
6e439d66a8 Remove azdata toast startup notifications (#11582) 2020-07-30 08:19:37 -07:00
Kim Santiago
c06bd0821b Add deploy options support (#11567)
* add getOptionsFromProfile request

* update deploy and generate script to accept options

* fix tests

* update message

* update message to say what isn't supported

* bump sqltoolsservice version
2020-07-29 17:52:21 -07:00
Alan Ren
6751dffbc3 update action name (#11565) 2020-07-28 17:56:51 -07:00
Anthony Dresser
d244a14468 Use existing resource for untitled if it is already open (#11536)
* use existing resource for untitled if it is already open

* remove unnecessary call
2020-07-28 13:09:51 -07:00
Arvind Ranasaria
ada8cb2f08 change back to using locationVariableName (#11559) 2020-07-28 12:03:46 -07:00
Charles Gagnon
cf6d02d2b4 azdata improvements (#11516)
* azdata improvements

* Don't error on sudo command stderr either

* Improve output channel logging for commands

* Fix childprocess stuff

* pr comments

* Fix compile errors

* more pr comments
2020-07-28 08:43:10 -07:00
AzureDataStudio
3c7f2df156 Merge branch 'ads-main-vscode-2020-07-24T05-27-28' into main 2020-07-27 20:37:28 -07:00
AzureDataStudio
5b234d5884 fix issue with object explorer tests 2020-07-27 16:21:42 -07:00
Amir Omidi
9d1587f008 Special case personal accounts (#11538)
* Special case personal accounts

* Add comments
2020-07-27 15:36:20 -07:00
Kim Santiago
c7423efe14 add back toolbar icon for importing db project (#11513) 2020-07-27 14:35:13 -07:00
Anthony Dresser
51abf123a9 add wrap for error message (#11535) 2020-07-27 14:13:32 -07:00
Udeesha Gautam
6928904a26 Small fixes for output window and test (#11533)
* Small fixes for output window and test

* removing some parts of recent tests that might cause issues
2020-07-27 13:28:18 -07:00
Arvind Ranasaria
c275f367da emit error for kube file not found (#11524)
* error  for kube file not found

* code cleanup

* pr feedback.

* make 'kube config' localized
2020-07-27 12:25:08 -07:00
Charles Gagnon
67ddf81562 Do ModelView initialization actions before others (#11512) 2020-07-27 10:40:40 -07:00
Christopher Suh
6d77176b92 focus in editor after dropping (#11525) 2020-07-27 12:36:36 -04:00
Lucy Zhang
807d03725f Fix Notebook data export to excel/csv not including headers (#11491)
* added includeHeaders param when getting rows

* fix spacing

* fix syntax and use of map
2020-07-27 09:08:55 -07:00
anjalia
4cf7f9ed66 Onboarding Check In (#11520)
* t-anjaga onboarding check in

* Onboarding check in, using GitHub username
2020-07-27 08:29:30 -07:00
Charles Gagnon
1ab18113ee Fix location parameter for Arc controller deployment (#11503) 2020-07-25 09:51:52 -07:00
Barbara Valdez
6d9efbd603 Open books from Github (#10670)
* Add open book option in UI

* Add dropdowns option on dialog

* Add flow logic

* Fetch releases and validate URL

* Add class for github books and shared file books

* Change code structure

* Unblock local copy + stack overflows

* Download books from github

* Remove unused files

* Clean code and use the openNotebookFolder command to open remote book

* Checkpoint

* Refactor remote book dialog model to only hold data

* Remove ApiWrapper and refactor createlocalcopy method

* Use sinon js framework instead of typemoq for testing remotebookController

* Remove api wrapper

* Add some tests

* Add more tests and address pr comments

* Address PR comments

* Fix remotebook broken tests

* Add download location in output channel and use openBook command

* Address PR comments

* Fix typos, print error message and remove failing test

* Print error message

* Separate tests in different files

* Declare controller variable inside extension.tst

Co-authored-by: chlafreniere <hichise@gmail.com>
2020-07-24 19:39:03 -07:00
Amir Omidi
56d1a1c1af Use home_oid, over oid, over unique_name, over sub (#11514)
* Prefer the homeOid over oid

* Prefer unique_name over sub

* Not always defined
2020-07-24 16:00:25 -07:00
ADS Merger
d965d4aef3 Merge from vscode 731f9c25632dbbf01ee3a7892ad9d2791fe0260c 2020-07-24 05:27:34 +00:00
Amir Omidi
eccf3cf5fe Changes to getAccountSecurityToken (#11502) 2020-07-23 19:14:23 -07:00
Amir Omidi
5b8039379e Add versioning for accounts (#11497)
* Add versioning for accounts

* deletion value
2020-07-23 19:13:44 -07:00
Alan Ren
83211d6e2d deploy to single existing device (#11494)
* deploy to single existing device

* comments
2020-07-23 17:54:32 -07:00
Charles Gagnon
188cfdbd20 Update Arc extension version and fix Controller connectivity status names (#11498)
* Update connectivity mode names

(cherry picked from commit f0aabcfa86d178cdf74470f9fdeded19718bcea2)

* Bump package version

(cherry picked from commit e08370539006c638d6e25c2f4f23fa2754a3377d)
2020-07-23 16:37:48 -07:00
Benjin Dubishar
2b132f6b58 Adding icons to Database Projects' tree view (#11488)
* Add images

* Splitting to light and dark mode icons

* Hooks up icons to treeItems

* updating package.json with new icon and vbump

* move icon loader before tree view created
2020-07-23 11:52:54 -07:00
Anthony Dresser
769a9d4699 distro (#11487)
* distro

* distro

* distro

* distro
2020-07-23 11:07:01 -07:00
Amir Omidi
2fc51ffe82 Remove all accounts regardless of failure in one account (#11431) 2020-07-23 11:06:29 -07:00
Benjin Dubishar
c963e6ec08 Add test coverage for dacpac wizard import flow (#11483)
* Adding importConfig onPageEnter() test

* Removing redundancy from dacpac wizard pages

* promisifying file selection so it can be awaited in the test

* removing debug prints

* PR feedback
2020-07-23 02:15:05 -07:00
Maddy
21cf89fb7e Fix/open book error (#11379)
* add isNotebook param and showPreview option

* showPreview changes

* update OpenNotebookFolder to open a specific path

* added test for showPreviewFile

* test name typo

* remove isNotebook from openBook
2020-07-22 22:23:37 -07:00
Anthony Dresser
a889d017f5 Merge branch 'ads-main-vscode-2020-07-23T02-21-03' into main 2020-07-22 21:31:16 -07:00
Amir Omidi
32047d5557 change userName to match what the azure account display name is (#11484)
* change userName to match what the azure account display name is

* Handle undefined value
2020-07-22 19:31:52 -07:00
Udeesha Gautam
196b3752a9 Feature/outer paths for project (#11445)
* allow relative paths in project file outside of project folder

* Adding some tests

* Adding error string to loc strings

* Fixed test

* fix error message

* PR comments and some more fixes
2020-07-22 19:28:03 -07:00
Anthony Dresser
c76e3ff0c9 recomment out integration tests 2020-07-22 19:23:52 -07:00
ADS Merger
ede827ee82 Merge from vscode 8c426f9f3b6b18935cc6c2ec8aa6d45ccd88021e 2020-07-23 02:21:09 +00:00
Kim Santiago
efc8182954 fix sql proj sqlcmd table showing after loading profile when it shouldn't (#11479) 2020-07-22 17:59:26 -07:00
Alan Ren
154b75a0de implement review feedback (#11470) 2020-07-22 17:54:43 -07:00
Arvind Ranasaria
9b4931bb0e tests for KernelsDropdown class (#11476)
* add return type for a function

* tests for KernelsDropdown class

* remove inadvertent change

* remove inadvertent change

* formatting changes

* pr feedback

* pr feedback
2020-07-22 17:49:01 -07:00
Brian Bergeron
b53d1cee4a Arc - Remove Azure params from Postgres deployment (#11478)
Co-authored-by: Brian Bergeron <brberger@microsoft.com>
2020-07-22 17:03:52 -07:00
Leila Lali
4a88adffd2 Adding button plugin to table component (#10918)
* Added delete plugin to table component
2020-07-22 16:26:16 -07:00
Amir Omidi
587abd43c2 Large cleanup of AzureCore - Introduction of getAccountSecurityToken and deprecation of getSecurityToken (#11446)
* do a large cleanup of azurecore

* Fix tests

* Rework Device Code

* Fix tests

* Fix AE scenario

* Fix firewall rule - clenaup logging

* Shorthand syntax

* Fix firewall tests

* Start on tests for azureAuth

* Add more tests

* Address comments

* Add a few more important tests

* Don't throw error on old code

* Fill in todo
2020-07-22 15:03:42 -07:00
Charles Gagnon
a61b85c9ff Adds support for installing azdata on Linux (#11469) 2020-07-22 13:41:52 -07:00
Arvind Ranasaria
d086b5b01e First draft of outputProcessor tests (#11368)
* First draft of outputProcessor tests

* add return type for a function

* pr feedback

* comments and Spellings, getRandom ==> getRandomElement

* pr feedback

* pr feedback
2020-07-22 12:27:23 -07:00
Charles Gagnon
8da27190a2 Add query-history and sql-assessment to recommended extensions (#11477) 2020-07-22 11:14:59 -07:00
Anthony Dresser
c3d151fbee Merge branch 'ads-main-vscode-2020-07-22T03-06-51' into main 2020-07-22 00:50:38 -07:00
Anthony Dresser
ca39cbe6ab bump smoke extensions 2020-07-21 20:17:22 -07:00
Anthony Dresser
2f0dbb633d bump node version in builds 2020-07-21 20:15:26 -07:00
Anthony Dresser
f316c27098 bump smoke extensions 2020-07-21 20:13:57 -07:00
ADS Merger
1b7b54ce14 Merge from vscode 0a7364f00514c46c9caceece15e1f82f82e3712f 2020-07-22 03:06:57 +00:00
v-bbrady
53ec7585a9 adds role of button to all links that are buttons (#11465) 2020-07-21 19:08:05 -07:00
Charles Gagnon
0f2b463536 Add ConnectControllerDialog tests (#11443)
* Automatically fix up arc controller URL

* wip

* Force tests to pass

* Refactor

* comment
2020-07-21 17:15:13 -07:00
Chris LaFreniere
0c3c714be1 Stop hardcoding python3 (#11464) 2020-07-21 16:38:04 -07:00
Alan Ren
39ca386d2a let semver to parse the version (#11463)
* let semver to parse the version

* check
2020-07-21 16:01:01 -07:00
Charles Gagnon
b57cae5b60 Add tests for azdata extension (#11423)
* Add tests for azdata extension

* Fail on stderr

* Skip test for not implemented logic

* Move executeCommand stub

* Add missing packages
2020-07-21 14:13:58 -07:00
Alan Ren
238d643a8e handle invalid character in kubectl version output (#11460) 2020-07-21 13:36:23 -07:00
Cory Rivera
7461cf844d Add some unit tests for PyPiClient. (#11442) 2020-07-21 10:56:25 -07:00
Maddy
f780db907d fix (#11437) 2020-07-21 10:10:35 -07:00
Kim Santiago
d533af3019 Schema Compare cleanup (#11418)
* cleanup async and await stuff

* remove awaits

* remove more awaits
2020-07-21 09:47:14 -07:00
Alan Ren
92c8d890c4 0.18.0 just got released, bump the version (#11438) 2020-07-20 17:28:13 -07:00
Kim Santiago
69849de6f0 Refactor schema compare options and add tests (#11414)
* refactor to make testing options easier

* some cleanup

* remove async

* get file to 100% coverage

* address a couple comments
2020-07-20 16:53:44 -07:00
Charles Gagnon
7fe3df8259 Automatically fix up arc controller URL (#11177) 2020-07-20 16:24:52 -07:00
Charles Gagnon
d99201002d Remove profiler ApiWrapper (#11441) 2020-07-20 15:42:17 -07:00
Charles Gagnon
8828758b2f Remove CMS ApiWrapper (#11439) 2020-07-20 15:24:36 -07:00
Udeesha Gautam
921beebd79 Test/dacpac tests (#11428)
* Adding test for select operation page and dacpac wizard

* skipping one test for investigation

* Changes as per PR comments
2020-07-20 14:23:27 -07:00
Alan Ren
ca900464e5 update import extension version (#11430) 2020-07-20 14:04:11 -07:00
Chris LaFreniere
3792a6328f Fix Notebooks Word Wrapping Logic (#11415)
* make word wrap logic easier

* Stop passing in IConfigurationService
2020-07-20 13:50:26 -07:00
Cory Rivera
047c51921b Exclude Spark notebook kernels when running on SAW devices. (#11416) 2020-07-20 12:36:40 -07:00
Anthony Dresser
26f833f728 disable web smoke again (#11421) 2020-07-20 12:25:03 -07:00
Lucy Zhang
66632e6262 Fix notebook results grid settings not updating (#11413)
* added boolean for results grid settings changed

* change parameter name to forceThemeUpdate
2020-07-20 10:28:27 -07:00
Aasim Khan
decba446dd -Updated dataclient on services and adding the new version over here. (#11419) 2020-07-20 10:21:22 -07:00
Charles Gagnon
6f9991e22b Add support for installing azdata on Windows (#11387)
* Add support for installing azdata on Windows

* Don't run startup code when in test context since it blocks on UI input

* restart checks

* Disable calls for now
2020-07-18 18:15:52 -07:00
Amir Omidi
5613a97fae Use a unique key for the accounts (#11380)
* Use a unique key for the accounts

* Fix some tests

* Simplify display name

* Change to a random UUID
2020-07-17 13:39:53 -07:00
Anthony Dresser
eb82cd3f4b fix tasks for building (#11412) 2020-07-17 13:03:49 -07:00
Amir Omidi
648174e91d Tenant filter fix (#11411)
* Fix tenant filter

* Test for the azure filter feature
2020-07-17 12:46:22 -07:00
v-bbrady
fea0fb13f6 fixes tab focus not beig visible after deploying a server (#11410) 2020-07-17 12:12:11 -07:00
cssuh
0833de1e7c Merge branch 'ads-main-vscode-2020-07-15T23-51-12' into main 2020-07-17 15:00:28 -04:00
Kim Santiago
3c3c5f7348 remove extension.js from dacpac code coverage (#11406) 2020-07-17 11:07:48 -07:00
Charles Gagnon
4594943b53 Don't throw if cleanup drop fails (#11405) 2020-07-17 10:59:13 -07:00
Alan Ren
42fa5c3275 update change log for 1.20.1 (#11390)
* update change log for 1.20.1

* more info for known issue
2020-07-17 09:59:20 -07:00
v-bbrady
3633a21413 fixes the contrast ratio for hoverable list items in the welcome page new button dropdown (#11106)
* fixes button alignment and missing icons issues with ads welcome page

* removes dead code, registers new Button

* creates one button component and adds proper attributes depending on platform

* Add CodeQL Analysis workflow (#10195)

* Add CodeQL Analysis workflow

* Fix path

* adds return types to functions

* fixes show all extensions command

* updates dropdown color themes

* adjusts colors from color registry

Co-authored-by: Justin Hutchings <jhutchings1@users.noreply.github.com>
2020-07-17 09:52:20 -07:00
Vasu Bhog
71fbe2ed53 Fix markdown cell toolbar focus not being visible (#11386)
* Markdown Toolbar focus fix

* Fixed sizing issues of icons

* Fixed spacing
2020-07-17 11:04:17 -05:00
dependabot[bot]
da4f9152a3 Bump lodash from 4.17.15 to 4.17.19 in /extensions/integration-tests (#11397)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-17 08:47:03 -07:00
dependabot[bot]
54e3df8e84 Bump lodash from 4.17.15 to 4.17.19 in /test/smoke (#11392)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-17 08:46:47 -07:00
dependabot[bot]
9efe275c39 Bump lodash from 4.17.15 to 4.17.19 in /extensions/schema-compare (#11393)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-17 08:46:23 -07:00
dependabot[bot]
27983d4c66 Bump lodash from 4.17.15 to 4.17.19 in /extensions/notebook (#11394)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-17 08:46:10 -07:00
dependabot[bot]
6f2d29ca57 Bump lodash from 4.17.15 to 4.17.19 in /extensions/azurecore (#11395)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-17 08:45:59 -07:00
dependabot[bot]
cdf173c4db Bump lodash from 4.17.15 to 4.17.19 in /extensions/cms (#11396)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-17 08:45:48 -07:00
dependabot[bot]
991b081977 Bump lodash from 4.17.15 to 4.17.19 in /extensions/mssql (#11398)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-17 08:44:46 -07:00
dependabot[bot]
3faadb72a3 Bump lodash from 4.17.15 to 4.17.19 in /extensions/dacpac (#11399)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-17 08:44:38 -07:00
dependabot[bot]
14262151e9 Bump lodash in /extensions/markdown-language-features (#11400)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.10 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.10...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-17 08:44:29 -07:00
dependabot[bot]
1c53a209bc Bump lodash from 4.17.15 to 4.17.19 in /extensions/resource-deployment (#11402)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-17 08:44:21 -07:00
dependabot[bot]
f1a13fae39 Bump lodash from 4.17.15 to 4.17.19 in /samples/sqlservices (#11401)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-17 08:43:53 -07:00
Alan Ren
b098ce64b5 expose realm field to the wizard UI (#11388)
* add realm

* optional fields

* use default values

* localized constant
2020-07-16 21:33:56 -07:00
chlafreniere
b96ea07d8f Test fix try finding text documents multiple times 2020-07-16 18:48:07 -07:00
Christopher Suh
48ef272c66 fix for dragged table name (#11376)
* fix for dragged table name

* escaped bracket characters

* fixed escaping brackets

* moved outer brackets

* using interpolated strings
2020-07-16 17:53:04 -04:00
Anthony Dresser
ddb6129d8b fix issues with smoke tests (#11381) 2020-07-16 14:10:00 -07:00
v-bbrady
309bb51812 updates copy for getting started tour in the command palette (#11383) 2020-07-16 13:59:57 -07:00
Anthony Dresser
c013e3fc27 default theme to light (#11358) 2020-07-16 13:38:18 -07:00
Anthony Dresser
9744d7796c fix array access issues with map iterators 2020-07-16 11:48:51 -07:00
Maddy
9b1eb53665 Test/highlight correct nb (#11348)
* unit test of the method

* stash changes

* revealActiveDocumentInViewlet test

* separate tests

* test on activate

* added tests

* feedback changes

* naming change
2020-07-16 10:55:46 -07:00
dependabot[bot]
b68b655fa5 Bump hoek from 4.2.0 to 4.2.1 (#11377)
Bumps [hoek](https://github.com/hapijs/hoek) from 4.2.0 to 4.2.1.
- [Release notes](https://github.com/hapijs/hoek/releases)
- [Commits](https://github.com/hapijs/hoek/compare/v4.2.0...v4.2.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-16 10:35:24 -07:00
dependabot[bot]
8b206a4d52 Bump lodash from 4.17.4 to 4.17.19 (#11364)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.4 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.4...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-16 10:33:19 -07:00
Alan Ren
16f24d8c6a fix the issue with explorer widget context menu (#11373) 2020-07-16 10:22:47 -07:00
Aasim Khan
021c01e0b6 Remove unstable import test (#11337)
* Remove unstable test

* removed the unstable test

* checking if activate does not throw error

* merged chagnes from master
2020-07-16 10:13:28 -07:00
dependabot[bot]
8322e5dc83 Bump lodash from 4.17.15 to 4.17.19 in /build (#11363)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-16 09:34:27 -07:00
dependabot[bot]
62b8ff4972 Bump lodash from 4.17.15 to 4.17.19 in /extensions/agent (#11361)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-16 09:34:07 -07:00
dependabot[bot]
6d679b6416 Bump lodash from 4.17.15 to 4.17.19 in /extensions/admin-tool-ext-win (#11360)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-16 09:33:52 -07:00
dependabot[bot]
0e81d04b98 Bump lodash from 4.17.15 to 4.17.19 in /extensions/arc (#11362)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-16 09:32:54 -07:00
Anthony Dresser
ac1237d51c bump smoke test extension 2020-07-16 08:00:13 +00:00
Anthony Dresser
8e5da8aa36 update linux build agent 2020-07-16 03:45:34 +00:00
Anthony Dresser
6098bffc99 distro 2020-07-15 19:36:29 -07:00
v-bbrady
cc78d6a8f0 accessibility fix: swaps header tags for label tags on most recent list (#11189)
* switches header tags on form to label tags

* fixes issue according to pr comments
2020-07-15 18:04:21 -07:00
Kim Santiago
0a1c2583cc Load connection from publish profile (#11263)
* initial changes for reading connection from profile

* connection string can now be read from publish.xml

* fix build errors and update test

* move publish profile tests to their own file

* cleanup

* update message

* fix string

* remove apiWrapper
2020-07-15 17:03:25 -07:00
ADS Merger
9d3f12d0b7 Merge from vscode 1b314ab317fbff7d799b21754326b7d849889ceb 2020-07-15 23:51:18 +00:00
Anthony Dresser
aae013d498 add option to open excel file externally (#11324) 2020-07-15 15:06:46 -07:00
v-bbrady
0fa23eb3b5 Bbrady/welcome page focus contrast #10616 (#11233)
* fixes focus \color contrast for welcome page

* removes dead code

* removes dead css

* merge

* merge
2020-07-15 14:16:53 -07:00
Charles Gagnon
f4a4127471 Remove ApiWrapper from sql-database-projects (#11345)
* Remove ApiWrapper

* fix compile error

* Use .resolves

* Check error messages

* Check for not called

* FIx global beforeEach/afterEach
2020-07-15 14:02:33 -07:00
Alan Ren
c7799168b0 post release vbump (#11351)
* v bump

* update vscode version
2020-07-15 09:21:35 -07:00
Alan Ren
59ad8b3e61 update change log and readme (#11352) 2020-07-15 08:46:09 -07:00
Arvind Ranasaria
f8f64340f6 New tests for NotebookServiceImpl module (#11250)
* Working tests Upto 97.5% coverage

* pr feedback

* pr feedback

* pr feedback and test bug fixes + 1 new test

* revert debug change
2020-07-14 23:08:58 -07:00
Benjin Dubishar
dc7e6f59bd Aligns how Import and New project flows work (#11184)
* Slight import refactor

* Test updates

* Adds test, sets script name for File extractType to projectName

* generating correct folder list

* Correctly setting serverId for Imports started from Object Explorer

* Adding regression test

* uncommented test check
2020-07-14 19:31:22 -07:00
Alan Ren
6147e1cba4 bump import extension version (#11346) 2020-07-14 17:47:36 -07:00
Kim Santiago
de69e73a9d Open sql projects in opened folder (#11333)
* open projects in workspace automatically

* add test

* fix for windows
2020-07-14 16:20:37 -07:00
Aasim Khan
24f6cd2e5b Removing ApiWrapper and adding sinon (#11340)
* Added sinon
removed api wrapper
removed unnecesaary utils

* merged from testfix

* merged from aasim/import/downloadTestFix

* merge from aasim/import/downloadTestFix
2020-07-14 14:53:18 -07:00
Aasim Khan
cabbbb56f2 bumping up the services version to 0.0.4 (#11341) 2020-07-14 14:52:05 -07:00
Charles Gagnon
1b616acfdb Remove ApiWrapper from mssql extension (#11336) 2020-07-14 10:59:55 -07:00
Charles Gagnon
cbf3cd7445 Remove AzureCore ApiWrapper (#11335) 2020-07-13 18:11:54 -07:00
Charles Gagnon
9e6056968b Add Sinon docs to test README (#11332) 2020-07-13 18:03:17 -07:00
Anthony Dresser
6e9e97f711 fix screenshots for smoketests (#11334) 2020-07-13 16:34:49 -07:00
Alan Ren
11aa2b73b4 update ASDE strings (#11317)
* update strings

* comments

* update license term link
2020-07-13 15:40:06 -07:00
Amir Omidi
22f85ad4ff Handle don't ask again button (#11236)
* Handle don't ask again button

* Change to ignore

* Change language

* Pass in tenant name and ID

* Fix message

* Don't allow common tenant to get interaction required prompt

* Move things around
2020-07-13 14:52:41 -07:00
Amir Omidi
3c0d819911 Fixes the declarative table issue (#11330) 2020-07-13 14:35:35 -07:00
Anthony Dresser
351ab2f40f fix default connection group by changing ordering of groups (#11303) 2020-07-13 13:25:05 -07:00
Anthony Dresser
286c021df9 Fix access to query editor configuration (#11321)
* fix access to query editor configuration

* fix configuration type

* fix setting type
2020-07-13 13:05:36 -07:00
Amir Omidi
ff979f90d1 Optional PII logging (#11322)
* Start with logger

* allow user to enable PII logging

* prefix the log
2020-07-13 13:05:00 -07:00
Kim Santiago
347c193455 Add main controller tests for a few extensions (#11307)
* add a few tests

* fix errors

* undo change

* move registering commands to extension.ts for dacpac and schema compare

* undo createController() addition

* fix whitespace
2020-07-13 09:59:12 -07:00
Charles Gagnon
1e62030581 Revert to previous behavior for tree data providers getChildren (#11308)
* Revert to previous behavior for tree data providers without resolve support

* Add another sql carbon edit
2020-07-13 09:48:28 -07:00
Arvind Ranasaria
32c3a13f7b Phase 3 of notebookEditor tests (#11188)
* Phase 3 of notebookEditor tests

* update visibility for visibility tests

* saving in progress version to switch tasks

* remove inadvertent change

* corner cases tests to drive to 100%

* remove commented code

* pr feedback
2020-07-13 03:06:19 -07:00
Sakshi Sharma
81008d3803 Mark failing schema compare test as unstable (#11310) 2020-07-12 07:57:32 -07:00
Udeesha Gautam
ab9fceec70 Dacpac extensions tests - for investigation (#11192)
* Adding some tests for dacpac extension to understand how coverage gets affected

* Added config page tests

* Fixing PR issues
2020-07-11 13:45:50 -07:00
Anthony Dresser
d2bdd2bace web smoke tests (#11280)
* distro

* renable web smoke

* add missing script

* update node version

* update node version everywhere

* ensure playwright drivers are installed

* fix screenshot capture

* try this

* rewrite connection dialog code

* fix permissions

* more wip

* replace more $ with ^

* revert changes

* refactor and revert more changes

* add screen shot functionality to playwright

* fix compile

* fix profiler compile

* don't run new files for web

* continue on error for web

* continue on error for web not normal

* revert some changes
2020-07-10 22:12:45 -07:00
Alan Ren
e2b52b97c8 fix insight details dialog issue (#11309)
* fix show details dialog

* update viewlet id
2020-07-10 18:07:39 -07:00
Aasim Khan
df8f5ae3a6 Additional tests for the import wizard (#11273)
* Setting up tests on import extension

* -Added API wrappers for all the azdata and vscode APIs to make them easily mockable
-Added some unit tests for the import extension
-Some code logic separations

* -added code report for the import extension in ci

* Did some more code refractoring

* -Added json report generation

* updated vscodetestcoverage to latest version in import extension.

* -remove duplicate codecoverageConfig.json

* -Added some modifyColumnPage tests

* pushing temp changes

* -Added some more testcases

* -Added tests using available vscode and azdata apis

* some minor comment change

* removed unnecessary test

* added accidently removed test

* Added some comments

* fixed some broken tests and added comments in fileConfigPage

* code clean up and some more comments

* fixed the prosePreviewPage test and the download test

* added getter and setters

* Increasing timeout and fixing a comment

* removed unnecessary comments and some other code cleanup

* Deleting dotnet files before redownloading them

* - made changes in the PR
- Moved extensioncode to utils.test for better reusability

* added some 'should' messages
2020-07-10 15:34:44 -07:00
Christopher Suh
30e8edd875 added name (#11302) 2020-07-10 18:16:01 -04:00
Anthony Dresser
6d6abdff7d fix configuration access for grid (#11299) 2020-07-10 14:51:10 -07:00
Vasu Bhog
e714c876c2 Onboarding Pull Request (#11298)
Co-authored-by: Vasu Bhog <vasubhog@Vasus-MacBook-Pro.local>
2020-07-10 16:17:35 -05:00
Charles Gagnon
3db33de69f Add new ViewContainerLocation for dialogs (#11289) 2020-07-10 14:09:16 -07:00
Charles Gagnon
0835d3ed0f Only throw if releaseNotesUrl doesn't exist (#11295) 2020-07-10 12:31:55 -07:00
Sakshi Sharma
3e860692a2 Add missing await (#11275)
* Add missing await

* Addressed comment
2020-07-10 11:26:18 -07:00
Vladimir Chernov
95b024ed66 Updated README file for Sql Assessment extension (#11293) 2020-07-10 20:56:46 +03:00
Charles Gagnon
16329d6749 Remove unused ViewPane implementation (#11290) 2020-07-10 10:52:02 -07:00
Charles Gagnon
1ce24fae05 Filter to just BDC for create new controller action (#11291) 2020-07-10 10:15:34 -07:00
Lucy Zhang
826a0cf9ec added name to developers.ts (#11288) 2020-07-10 10:02:46 -07:00
Charles Gagnon
399bac33f4 Add empty azdata extension (#11281) 2020-07-10 08:13:39 -07:00
Chris LaFreniere
171f091c88 Fix no books currently selected error in viewlet (#11269)
* Fix no books currently selected error

* check sections undefined vs length
2020-07-09 23:14:46 -07:00
Kim Santiago
7d5ecfe905 Add "Import New Database Project" to dashboard toolbar (#11229)
* add import database project to database and server dashboard home toolbar

* connection profile is getting passed to the extension

* use MenuItemAction instead of creating a new one

* move database picking

* add comment

* add helper function
2020-07-09 16:47:55 -07:00
Aasim Khan
1796b519e5 Fixed a Bug where csv is treated as txt file by import wizard (#11271)
* Add CodeQL Analysis workflow (#10195)

* Add CodeQL Analysis workflow

* Fix path

* Fixed the bug where CSVs were treated as TXT files

Co-authored-by: Justin Hutchings <jhutchings1@users.noreply.github.com>
2020-07-09 15:01:48 -07:00
Amir Omidi
c334a95d35 Fixes the SSMS launch issue (#11257)
* Fixes the SSMS launch issue

* Spelling
2020-07-09 14:04:53 -07:00
Alan Ren
5a275209cc fix account dropdown list issue (#11266)
* fix the empty account list issue

* remove comments
2020-07-09 13:58:07 -07:00
Maddy
9c0f415bd9 Feat/search in books (#11117)
* clean up unsavedBooks to providedBooks

* added notebooks viewley contribution

* added notebookExporerAction context

* temp shortcut key B

* remove commenred code

* changes with master merge

* fix comments

* initial tests

* fix casing and description

* merged master and resolved errors

* initial commit

* search view changes

* remove extension point & add custom view container

* merge latest from master

* remove unused files

* move book images to common

* remove notebookExplorer contrib & move to notebook

* build fix

* remove explorer specific sryles from common

* vscode convention to define container actions

* rename notebooks/title

* show collapsible search view separately

* style changes

* rename method

* code cleanup

* enable search on type

* merged master and resolved compile errors

* highlight fix

* code cleanup

* rename interface

* fix hygiene floating promises errors

* more hygiene errors

* avoid circular dependency

* new ids for notebookSearch actions

* reuse SearchSortOrder from search

* merged main and resolved compile errors

* reuse search code

* vscode merge regression on highlight

* extend searchView

* missed resoved files

* null to undefined

* make treeView readonly

* revert carbon edit

* address PR comments

* convert async
2020-07-09 13:13:36 -07:00
Anthony Dresser
a69032e317 fix issues with file menu commands (#11254) 2020-07-08 18:52:26 -07:00
Kim Santiago
7176c7f42f move load profile button to top of publish dialog (#11264) 2020-07-08 17:30:38 -07:00
Vladimir Chernov
f5a16de2a4 SQL Assessment display name and description update (#11253)
Co-authored-by: Vladimir Chernov <Vladimir.Chernov@viacode.com>
2020-07-08 14:40:39 -07:00
Charles Gagnon
2a7483c036 Fix error when calling getParent (#11252) 2020-07-08 14:23:52 -07:00
Charles Gagnon
ae908530e2 Fix ModelView tree components to keep custom state (#11239)
* Fix ModelView tree components to keep custom state

* override postGetChildren

* deepClone
2020-07-08 13:05:54 -07:00
Charles Gagnon
b3a01fcf77 Remove ApiWrapper from notebook extension (#11224)
* Remove ApiWrapper in notebook extension

* delete file

* Remove copyrights
2020-07-08 11:06:32 -07:00
Alan Ren
449a46d7fc fix the storage object parent (#11243) 2020-07-08 10:00:46 -07:00
Alan Ren
b3121fae22 remove px from width string and then parse (#11241) 2020-07-07 22:00:58 -07:00
Kim Santiago
f95cb5f5d3 don't update database name to master (#11216) 2020-07-07 16:50:59 -07:00
Chris LaFreniere
5f8180ebbf Add Notebook Completion Item Provider Unit Tests (#11222)
* completion item provider tests

* Add nb completionItemProvider tests
2020-07-07 12:48:22 -07:00
Cory Rivera
f409abfc01 Disable python downloads when running notebooks on a SAW. (#11186) 2020-07-07 11:32:05 -07:00
v-bbrady
9f0584f88f removes more link from list element into div (#11218) 2020-07-07 11:06:44 -07:00
Alan Ren
3cf48fb207 SQL Edge deployment using Azure IoT hub (#11202)
* Azure IoT deployment type

* more updates

* organize fields

* a few more improvements

* resolve merge issues

* new rg improvement

* fix tests

* comments 1

* comments 2
2020-07-07 10:36:26 -07:00
Kim Santiago
3084867d7e pass connection profile to extension contributed commands in dashboard toolbar (#11217) 2020-07-07 10:34:04 -07:00
Maddy
ac78822d90 set currentMatch on find changes only (#11215) 2020-07-06 17:33:22 -07:00
Christopher Suh
aa4045c8a9 ServerTreeView unit tests (#11207)
* added unit tests

* removed newlines
2020-07-06 20:25:07 -04:00
Barbara Valdez
2a6fcee913 Add more tests to local content manager (#10350)
* Add more tests

* Add descriptive messages to asserts and remove formats check

* Address comments
2020-07-06 16:58:19 -07:00
Anthony Dresser
6d94d79527 distro (#11210) 2020-07-06 14:11:33 -07:00
v-bbrady
eabacae0c0 fixes show all extensions button #10445 #10625 (#11104)
* fixes button alignment and missing icons issues with ads welcome page

* removes dead code, registers new Button

* creates one button component and adds proper attributes depending on platform

* Add CodeQL Analysis workflow (#10195)

* Add CodeQL Analysis workflow

* Fix path

* adds return types to functions

* fixes show all extensions command

* formats css

* fixes layering issue

* updates querySelectors to be more specific

Co-authored-by: Justin Hutchings <jhutchings1@users.noreply.github.com>
2020-07-06 14:01:08 -07:00
Amir Omidi
84a7d1916a Fixes the azure account pane location (#11211) 2020-07-06 13:32:23 -07:00
Kim Santiago
b238819c89 Standardize slashes in sqlproj (#11174)
* standardize slashes that go in sqlproj

* update tests to not have os specific baselines

* fix test

* fix delete tests

* some cleanup
2020-07-06 13:17:55 -07:00
Amir Omidi
b0cab3125e Revert "Prints out the actual error that happened" (#11212)
* Revert "Prints out the actual error that happened (#11208)"

This reverts commit 6eb88924f6.

* Fix the JSON.stringify
2020-07-06 12:23:46 -07:00
Amir Omidi
0043a7f93b Change branding of linux version (#11133) 2020-07-06 12:04:11 -07:00
Amir Omidi
6eb88924f6 Prints out the actual error that happened (#11208) 2020-07-06 11:58:14 -07:00
Kim Santiago
ac71c6f06d Add "Open Containing Folder" to project context menu (#11187)
* add command to open the folder the project is in

* move commands to constants
2020-07-06 11:42:25 -07:00
Amir Omidi
2d989e1180 Move the tests out to their own tasks (#11179)
* Move the tests out to their own tasks

* Revert change

* Lets try this

* Actually reference to the tests

* Lets try this

* lets try this too?

* this one?

* Manually define them :(

* Formatting

* Add the node command

* Fix machine learning and address comments
2020-07-02 17:51:21 -07:00
Hale Rankin
ecfac10949 Notebook UI - Markdown toolbar - Headings dropdown (#11049)
* Adds heading dropdown to markdown toolbar.

* Added a method specific to headings that places markdown at beginning of line selected.

* Rewrote comment for my new method.

* Revised code to support multi select for headers, similar to how unordered list is applied. Multi-line headings can be undone if the multi lines are selected.

* Modified transformText to make single-line undo operation possible with just the cursor position.

* Added utility methods to help determine if the selection is a line-only or multi-line.

* Building isReplaceOperation to determine when preceeding characters need to be replaced with a new MarkdownButtonType.

* Updated comments.

* Applied changes written by Chris.

* Reverted changes to earlier stage where heading addition works just like list item additions.

* getExtendedSelectedText now returns an actual value in range for MarkdownLineType.EVERY_LINE.

* Added conditional so that Preview element is updated only when Preview is enabled.

* Updated tests for heading toolbar: heading 1, 2 and 3.

* Removed code that could not be reached.

* Corrected tests for headings.

* wip

(cherry picked from commit 43deb9635cc0eeebaffef22d4373f1f6ad713ace)

* cleanup

* fix error

* Fix tests

* Add more testing

* delete

* re-add

Co-authored-by: chgagnon <chgagnon@microsoft.com>
2020-07-02 17:30:29 -07:00
Jorge Berumen
a06a06bb58 Add Azure DevOps as a resource for authentication (#11146)
* Adding ado as auth resource
* Removing Gov ADO resource
* Correctly handling azureDevOpsResource not being present for usgov
2020-07-02 17:22:31 -07:00
Kim Santiago
3306f386f0 Cleanup publish database dialog and test sqllint errors (#11178)
* cleanup publish database dialog and test

* fix more tests

* fix other tests

* add back skips

* use Promise.resolve()
2020-07-02 17:02:52 -07:00
Kartik Arora
29509ccfbb Onboarding pull request (#11176)
* initial check in for kartik
2020-07-02 11:59:23 -07:00
Sakshi Sharma
fd29e35199 Schema compare test coverage (#11080)
* Schema compare tests for updateSourceAndTarget method

* Merge conflict resolution

* Move resetbutton call before adding them to toolbar

* PR comments- added a buttons interface for readability and created a test class to add test functionality to the orginal class

* Moved interface ButtonState to test code
2020-07-01 18:35:54 -07:00
Karl Burtram
a4539daa62 Move account management icon to action bar (#11173) 2020-07-01 15:55:12 -07:00
Maddy
d51bba8fe9 check for jupyter-book versions and install 6.4 (#11167)
* check for jupyter-book versions and install 6.4

* added a note before installation
2020-07-01 15:27:45 -07:00
Charles Gagnon
bd801ad8da Fix errors throw when doing validity checks (#11171) 2020-07-01 14:37:28 -07:00
Sakshi Sharma
d6768ba12e Add missing await (#11151)
* Add missing await

* Removed async from method publishProject
2020-07-01 13:28:32 -07:00
AzureDataStudio
4c27001de5 Merge remote-tracking branch 'origin/ads-main-vscode-2020-07-01T03-37-25' into main 2020-06-30 22:30:53 -07:00
ADS Merger
f6b44865cc Merge from vscode b16b467d3e03e1a1ae05b5836e4e5a5af504e86d 2020-07-01 03:37:27 +00:00
Kim Santiago
1e805a4156 Change deploy to publish in sql project codebase (#11144)
* change deploy to publish

* rename to IPublishSettings

* change a few more profiles to settings
2020-06-30 19:23:03 -07:00
Chris LaFreniere
2b5ae5e3a8 Update singular vcore string (#11157) 2020-06-30 17:10:46 -07:00
Charles Gagnon
a1f600657a Add more arc tests (#11145)
* Add more arc tests

* Update comment
2020-06-30 14:05:27 -07:00
Kim Santiago
41315c6e0a Show error when trying to add file/folder that already exists to project (#11122)
* show error when trying to create file or folder that already exists

* add test for file that already exists

* add folder tests

* fix error messages

* hide Properties folder

* update comment
2020-06-30 13:42:50 -07:00
Vladimir Chernov
b875d919d2 spell error in Severity column name (#11156) 2020-06-30 23:33:52 +03:00
AzureDataStudio
59b69311d7 fix hygiene, update sqlite
skip failing tests
2020-06-30 11:31:12 -07:00
ADS Merger
1388493cc1 Merge from vscode 2cd495805cf99b31b6926f08ff4348124b2cf73d 2020-06-30 11:31:11 -07:00
Chris LaFreniere
a8a7559229 Add more notebook extension tests (#11143)
* more tests

* More tests

* More tests

* Add prompt tests
2020-06-30 11:01:51 -07:00
Chris LaFreniere
a32f42d475 Update Arc Extension with New Strings and azdata Version (#11148)
* Strings and azdata version changes

* change azdata description
2020-06-30 09:08:01 -07:00
Anthony Dresser
ef8205f918 Remove deleting the old config (unsupported) and add notification (#11142)
* Add CodeQL Analysis workflow (#10195)

* Add CodeQL Analysis workflow

* Fix path

* remove deleting the old config (unsupported) and add notification

* fix tests

Co-authored-by: Justin Hutchings <jhutchings1@users.noreply.github.com>
2020-06-29 21:40:03 -07:00
Charles Gagnon
749c42ce41 Improve handling of connection errors for arc controllers (#11139)
* some fixes for failed connections

* cleanup

* add back in prompt
2020-06-29 19:50:27 -07:00
Anthony Dresser
93a88e38fe Messages panel wordwrap (#10970)
* Add CodeQL Analysis workflow (#10195)

* Add CodeQL Analysis workflow

* Fix path

* fix word wrap support in the message panel

* fix width on message treee

* fix import

* fix settings editor to reflect the changes in the settings ids

* fix tests

* add configuration upgrader

* make sure to maintian execution order

* make the compiler happy

* add tests for upgrader

Co-authored-by: Justin Hutchings <jhutchings1@users.noreply.github.com>
2020-06-29 16:25:11 -07:00
Kim Santiago
6b8eafbf2e Update import project to have friendly names for the extract file organization options (#11123)
* udpate import to have friendly names for the extract file organization options

* update tests

* update message

* remove camelcase stuff

* use localized constants instead of enum
2020-06-29 15:37:28 -07:00
Anthony Dresser
5d3178f649 delete duplicate workflow (#11132) 2020-06-29 13:53:26 -07:00
Alan Ren
476e3f7299 move the macOS ESRP signing steps to a separate job (#11129)
* move ESRP signing to a separate job

* rename job

* depends on

* signing

* rename task
2020-06-29 13:41:02 -07:00
Brian Bergeron
1f558dd2aa Arc - Fix sqlmiaa initial load (#11125) 2020-06-29 13:34:46 -07:00
Charles Gagnon
064ada1d2f Change Azure region dropdown to use azurecore API (#11131)
* Change Azure region dropdown to use azurecore API for getting display name

* Fix compile errors

* Adding a few things to the vscodeignore

* and another
2020-06-29 12:44:04 -07:00
v-bbrady
e540096e07 Bbrady/fixes tour start button (#11092)
* builds getting started tour

* reorganizes ts according to amirs comments

* Fix hygiene issues

* updates class names

* adds description to new configuration value

* uses core components

* PR fixes based on Charles comments

* formats css

* updates guided tour based on charles comments

* updates css formatting

* fixes read more link

* formats gettingStartedTour.ts

* updates copy

* Add CodeQL Analysis workflow (#10195)

* Add CodeQL Analysis workflow

* Fix path

* updates pr based on pr comments

* removes unused decleration

* formatting

* reformats css document

* updates file path

* updates images

* fixes start button issue

* merges master

Co-authored-by: Amir Omidi <amomidi@microsoft.com>
Co-authored-by: Justin Hutchings <jhutchings1@users.noreply.github.com>
2020-06-29 09:55:19 -07:00
Chris LaFreniere
061d3510b9 Run ADS Commands from Notebooks (#11069)
* Run commands

* cleanup

* Plumbed through error and message output

* undo unnecessary changes

* Remove change to fix tests

* pr feedback
2020-06-28 21:17:50 -07:00
Aasim Khan
a9848a7a96 Added check all nulls to modify column Page (#10683) (#10751)
* -Added check all null checkbox

* Modified declarative table to add check all columns  in the column header

* -changed to using existing methods for firing events.

* -changed table height to auto
-center aligned data in table cell
-Check all generates event for only changed values

* -changes column header from text to column header (#10787)

* This fixes the weird angular stuff - we need to do this in every other component

* -added changes made by amir for dom object tracking
-added automatic checkall detection.
-made text-align center in table cells

* -fixed styling issues and issue with checkboxes

* -Removed unsued function

Co-authored-by: Amir Omidi <amomidi@microsoft.com>
2020-06-26 19:02:59 -07:00
Chris LaFreniere
9dc7ca056f Change nb before/after strings (#11121) 2020-06-26 17:36:28 -07:00
Alan Ren
e452cd20d4 format file and add metadata (#11108) 2020-06-26 14:57:06 -07:00
Benjin Dubishar
a3030aaf0d Update package.json (#11113) 2020-06-26 14:56:42 -07:00
Maddy
6870bdaf72 revert back to original code (#11116)
* revert back to original code

* skip failing tests
2020-06-26 14:17:42 -07:00
Hale Rankin
7ef8acf04e Markdown toolbar > Preview toggle feature (#10963)
* Added toggle preview button to Markdown toolbar. Revised components, theme and styles to present the preview as a second column beside the markdown.

* Added showPreview to model and began working on togglePreview.

* Uncommented use of cellModel.showPreview

* add cell model event for onPreviewChange

* Renamed my showPreview boolean to prevent confusion with local boolean used in toogglePreview.

* Added CSS class when preview is enabled. Adjusted styles accordingly.

* Swapped icon show/hide references for correct sequence. Modified updatePreview to include state of doShowPreview.

* Added check for isEditMode so we can run togglePreview and show it once editor closes.

* Added listener to code.component that triggers layoutEmitter on changes to peview.

* Renamed local boolean doShowPreview. Removed unneeded code. Fixed ambiguity in my use of booleans, adding a getter and setter to textCell.

* Cleaned up implementation of new get/set for toggling preview.

Co-authored-by: chlafreniere <hichise@gmail.com>
2020-06-26 13:47:17 -07:00
Hale Rankin
00fe535add 10887 - Fixes icon position beside Cell and Run all in notebook toolbar. (#10897) 2020-06-26 13:46:52 -07:00
Hale Rankin
8f6c5af94f Cleaned up code for Add cell button in both main toolbar and cell toolbar. Corrected toolip to read: Add cell. (#10829) 2020-06-26 13:46:31 -07:00
Hale Rankin
8d7b3ef6ec Cell toolbar More Actions menu -- remove duplicate separators (#10827)
* Added code to remove multiple separators from more actions menu.

* Moved check for separators after list is deduped.

* Logic cleanup

* Added unit test for cell toolbar ellipses menu.

* Fix tests

Co-authored-by: chgagnon <chgagnon@microsoft.com>
2020-06-26 13:45:53 -07:00
Alan Ren
dbf9d3426c icon for ASDE (#11111) 2020-06-26 11:54:29 -07:00
Brian Bergeron
6c86122aae Arc - Fix KeyValueContainer refresh and disposal (#11090) 2020-06-26 09:48:35 -07:00
Aasim Khan
fb52760be1 Additional tests for import extension (#10953)
* Setting up tests on import extension

* -Added API wrappers for all the azdata and vscode APIs to make them easily mockable
-Added some unit tests for the import extension
-Some code logic separations

* -added code report for the import extension in ci

* changes code coverage to 36%

* adding some comments

* Removing unnecessary exports

* -refactored test code to replicate src structure
-some changes mentioned in the pr

* removed unnecessary prefixes from test case name
2020-06-25 19:22:25 -07:00
Arvind Ranasaria
cdd3d1bf2a fix: 'Arc data controller deployment fails' #11086 (#11110) 2020-06-25 19:18:42 -07:00
Kim Santiago
8e0050f2af Don't ask for db twice if connection was to a db (#11099) 2020-06-25 17:18:41 -07:00
Benjin Dubishar
770848850d Import spot-fix (#11102) 2020-06-25 15:37:05 -07:00
Brian Bergeron
dfa87eda86 Arc - Delete registration 2020-06-25 08:50:22 -07:00
Benjin Dubishar
fdef92ad6b Update README.md (#11094)
* Update README.md

* Update README.md
2020-06-25 00:59:26 -07:00
Benjin Dubishar
283c64a29d Update package.json (#11093)
Adding dependency
2020-06-24 23:44:22 -07:00
Alan Ren
710d0462d8 Alanren/notebook password notice (#11089)
* add note about the password

* wording

* more files

* more files
2020-06-24 19:55:44 -07:00
Alan Ren
20c612d9fb add note about the password (#11084)
* add note about the password

* wording
2020-06-24 19:48:41 -07:00
Charles Gagnon
2f90b56877 Add resource type filtering to deployment wizard (#11079) 2020-06-24 18:07:52 -07:00
Benjin Dubishar
8c6d77e04d Updated displayname and description (#11083) 2020-06-24 18:00:55 -07:00
Brian Bergeron
d58c15f98b Arc Postgres - Remove new database and styling 2020-06-24 15:35:21 -07:00
Alan Ren
da9e58485b add to parameter to decide whether to print the command (#11052)
* don't print command

* show password as ******
2020-06-24 15:20:06 -07:00
Charles Gagnon
c3fbce4b83 Add dashboard links to arc controller dashboard (#11076)
* Add dashboard links to arc controller dashboard

* Fix compile error
2020-06-24 15:15:27 -07:00
Brian Bergeron
e1bbbf2c9e Arc - Fix KeyValueContainer refresh (#11077) 2020-06-24 14:19:21 -07:00
Sakshi Sharma
de263eacd1 Schema Compare test coverage (#11042)
* Few tests for Schema Compare

* Addressed comment- removed wait in test

* Split setEndpointInfo for database and dacpac
2020-06-24 14:03:02 -07:00
Maddy
561b881200 Fix/highlight correct item (#11016)
* get children of unexpanded books

* highlight item inside collapsed parent in treeView

* fix path issue on windows

* refactor common code into separate func

* refactor
2020-06-24 13:44:50 -07:00
Arvind Ranasaria
c2ef27cd68 Second batch of tests for notebookEditor class (#10999)
* first few notebookEditor tests

* formating fixes

* unstash previous unfinished work

* saving

* PR feedback

* PR feedback

* copyright fixes

* improve test names and assertion messages

* saving

* PR feedback

* improve test names.

* test name change

* test name change

* remove unneeded cast

* remove spurious comment

* fix misplaced paranthesis - thanks hygiene checker!

* remove unused code

* remove deferredPromise

* createEditor test and dispose fixes

* remove unneeded import

* rempve unnecessary mock usage in dispose test

* use getContainer() for ['parent']

* use getContainer for ['parent']

* remove launch.json edits

* notebookService needs 9th constructor argument

* Add uploading debugging step

* minor changes

* remove changes to ci.yml

* working version

* formatting fixes

* pr fixes

* hygiene and exception path fixes

* remove minor debug changes

* pr feedback

* pr feedback

Co-authored-by: Arvind Ranasaria MacPro <arvranmac@MININT-OE7B592.fareast.corp.microsoft.com>
Co-authored-by: chgagnon <chgagnon@microsoft.com>
2020-06-24 13:19:12 -07:00
Charles Gagnon
c62394262a Some cleanup and fixes for Arc/BDC dashboards (#11075) 2020-06-24 12:41:33 -07:00
Brian Bergeron
6f6bf3f3b3 Fix Arc Postgres refresh (#11074) 2020-06-24 11:14:45 -07:00
Benjin Dubishar
00836e1890 Benjin/delete (#11054)
* Adding delete to package.json

* checkpoint

* Delete file working

* Working for nested folders

* Added file/folder deletion test

* addressing feedback

* Swapping QuickPick for modal

* Adding Exclude functionality

* reverting change to package.json
2020-06-24 10:27:58 -07:00
Charles Gagnon
2ba0de10df Some general cleanup/fixes for Arc dashboards (#11066)
* Some general cleanup/fixes for Arc dashboards

* more disposables

* refresh controller model for miaa dashboard too

* fixes
2020-06-24 09:06:28 -07:00
Charles Gagnon
ca4ab55380 Add more arc tests (#11051)
* Add more arc tests

* fix errors
2020-06-24 08:33:16 -07:00
Chris LaFreniere
7080e3ec4e Notebooks: Add Some Jupyter Controller Tests (#11053)
* First jupyter controller tests

* PR comments

* remove unnecessary checks for throw

* fix comment typo
2020-06-23 23:08:25 -07:00
Benjin Dubishar
cf73cf5003 Focus projects view when New Project is created (#11048)
* Focusing for new project

* Consolidated focus() logic
2020-06-23 21:08:40 -07:00
v-bbrady
17621e4df3 builds getting started tour (#10546)
* builds getting started tour

* reorganizes ts according to amirs comments

* Fix hygiene issues

* updates class names

* adds description to new configuration value

* uses core components

* PR fixes based on Charles comments

* formats css

* updates guided tour based on charles comments

* updates css formatting

* fixes read more link

* formats gettingStartedTour.ts

* updates copy

* Add CodeQL Analysis workflow (#10195)

* Add CodeQL Analysis workflow

* Fix path

* updates pr based on pr comments

* removes unused decleration

* formatting

* reformats css document

* updates file path

* updates images

Co-authored-by: Amir Omidi <amomidi@microsoft.com>
Co-authored-by: Justin Hutchings <jhutchings1@users.noreply.github.com>
2020-06-23 18:59:02 -07:00
Brian Bergeron
c4a85bbd78 Arc Postgres resource health page (#11065) 2020-06-23 17:31:16 -07:00
Charles Gagnon
64dc9b365f Add connection profile persistence to MIAA dashboard (#11061)
* wip

* fixes

* fix pg model

* more updates

* Add resourceType check
2020-06-23 16:36:09 -07:00
Udeesha Gautam
9131653d71 update sql tools service (#11063)
* enable some more tests in canary

* update to latest SqlToolsServiceVersion

* correcting the .NET install message a bit
2020-06-23 15:22:22 -07:00
Kim Santiago
74798f7cda Don't allow adding duplicate database references to sql project (#11010)
* don't allow adding duplicate database references

* add test

* addressing comments

* remove XML checking from databaseReferenceExists()

* change to get
2020-06-23 12:24:49 -07:00
Charles Gagnon
a303144226 getCredentials returns credentials for any saved connection (#11029)
* getCredentials returns credentials for any saved connection

* Update doc comment

* Add tests

* cleanup

* cleanup
2020-06-23 11:04:13 -07:00
Kim Santiago
29bf016fb8 don't show error message if cancelling out of import project connection picker (#11050) 2020-06-23 10:29:55 -07:00
Charles Gagnon
bcbf08122f Fix extension gallery query to use correct version (#11040)
* Fix extension gallery query to use correct version

* Only require one engine of either type
2020-06-23 09:31:51 -07:00
Charles Gagnon
0a61898303 Update button name in deployment notebooks (#11058) 2020-06-23 07:19:26 -07:00
Benjin Dubishar
a4a8beb6b4 copying dacpac to temp folder before deploying (#11036) 2020-06-23 02:18:04 -07:00
Udeesha Gautam
cfbce96fe2 fix for windows path to show in project tree across platforms correctly (#11027)
* fix for windows path to show in project tree across platforms correctly

* allow retrying on project that failed to load

* test for project failed to load case

* Adding platform safe uri for database ref in tree
2020-06-22 22:37:24 -07:00
Benjin Dubishar
d0b71e116b Create project within folder (#11037) 2020-06-22 21:27:16 -07:00
Chris LaFreniere
98ff618efd Add deprecated tag for standardKernels property (#11038)
* Remove unnecessary prop from NotebookProvider API

* Add deprecated tag

* make standardKernels required again

* tweak comment
2020-06-22 21:15:39 -07:00
Alan Ren
c9c4ec2035 Feature/cu5 features (#11046)
* openshift bdc target (#10358)

* openshift bdc target

* openshift bdc target

* comments

* new ad settings (#10390)

* ad settings

* comments

* bump version requirement (#10587)

* fix error

* update the notebook description (#10888)

* update notebooks
2020-06-22 19:04:51 -07:00
Alex Ma
e01723f195 Additional tests for connection (#10944)
* Added providerRegistered test

* test for EditConnectionDialog

* changed wording

* added test for connectionInfo

* utils.ts tests added

* hasRegisteredServers test

* commented out editconnection tests, addl. tests

* added onConnectionChangedNotification test

* added changeGroupId tests

* Added connection  profile changes

* added connectIfNotConnected test

* added delete connection test

* isRecent and disconnect editor tests

* added registerIconProvider test

* Fix for ensureDefaultLanguageFlavor test

* added a few tests

* utils prefix test updated

* added utils tests
2020-06-22 13:51:39 -07:00
Charles Gagnon
681e5f5077 Add arc deployment contributions to arc extension (#11032)
* Add arc deployment contributions to arc extension

* Add logo image

* update images

* Update strings
2020-06-22 12:54:56 -07:00
Udeesha Gautam
637bc8d5ba removing datasource from publish dialog for insiders (#11009) 2020-06-21 21:32:39 -07:00
Brian Bergeron
06058d8925 Fixes for Arc Postgres (#11012) 2020-06-21 16:02:55 -07:00
Charles Gagnon
87a7c659f2 Add BDC/Arc welcome views (#11020)
* add BDC/Arc welcome views

* remove en-us
2020-06-20 17:18:25 -07:00
Laura Jiang
47f91b8efb fix typo (#11021) 2020-06-19 17:04:44 -07:00
Charles Gagnon
99d26fb769 Add BDC create controller action (#11019) 2020-06-19 16:11:54 -07:00
Kim Santiago
74c2853f14 disable target connection input box in publish dialog (#11013) 2020-06-19 15:27:46 -07:00
Charles Gagnon
f278e2a7a2 Add persistence and connect dialog to Arc view (#11014)
* Add controller persistence and info prompting

* more stuff

* clean up

* Add arc tests to scripts
2020-06-19 14:35:11 -07:00
Amir Omidi
c879d77b62 Add USNat cloud settings (#11015)
authored-by: chgagnon <chgagnon@microsoft.com>
2020-06-19 13:40:27 -07:00
AzureDataStudio
333ce37ae5 Merge branch 'ads-master-vscode-2020-06-18T04-32-50' into main 2020-06-19 12:15:53 -07:00
AzureDataStudio
c4c23aa40d remove unused workflows
fix tests

disable vscode integration tests

distro

bump smoke test extension

ensure we register language register

fix compile
2020-06-19 10:59:24 -07:00
ADS Merger
5e7071e466 Merge from vscode 4d91d96e5e121b38d33508cdef17868bab255eae 2020-06-19 10:59:23 -07:00
Anthony Dresser
a971aee5bd Use cp for coverage copy (#11006)
* test cp

* mkdir

* maintain directory

* copy with directories
2020-06-19 10:07:37 -07:00
Anthony Dresser
5168d3d975 Better Smoke test setup (#11005)
* add handling for 404

* make the error message make more sense
2020-06-19 01:02:19 -07:00
Sakshi Sharma
340d8d37c9 Add missing await (#10952) 2020-06-18 19:16:02 -07:00
Kim Santiago
6ad33aa879 Load profile support for sql project deploy (#10948)
* load database name from profile.xml

* load sqlcmd variables from profile

* Add warning text

* add tests

* fix file filter for windows

* add comments

* show SQLCMD variables in a table

* reset dialog before testing readPublishProfile callback
2020-06-18 17:44:28 -07:00
Chris LaFreniere
eaf753f79e Remove unused prompt code (#10996) 2020-06-18 17:23:32 -07:00
Charles Gagnon
88fce764d3 Initial work on Arc tree view (#11008)
* Initial work on Arc tree view

* finish my thoughts
2020-06-18 16:50:31 -07:00
Kim Santiago
935733d23c remove add database reference from command palette (#11003) 2020-06-18 14:09:13 -07:00
Charles Gagnon
dc751dbde6 Hook up deletion for MIAA (#10991)
* Hook up deletion for MIAA

* fix button disabling

* cannot
2020-06-18 07:12:32 -07:00
Alex Ma
95107f1f61 Fix for auto resize column headers, (#10909)
* Fixed scroll to top

* removed brackets

* Don't trigger the cellSelectionModel when className is the resizable handler

* Added message for header listener

Co-authored-by: Amir Omidi <amomidi@microsoft.com>
2020-06-17 15:22:05 -07:00
Chris LaFreniere
77ba5a36aa Add Jupyter Notebook Manager Tests (#10955)
* jupyter notebook manager tests

* cover config duplicate integrationTest
2020-06-17 14:42:35 -07:00
Amir Omidi
8b68d524ee Account value was never set in the this context (#10965) 2020-06-17 13:59:48 -07:00
Amir Omidi
11e462796b Create codeql-analysis.yml (#10285) 2020-06-17 13:41:45 -07:00
Charles Gagnon
487bd2693e MIAA Dashboard Updates (#10960)
* Add database info to MIAA dashboard

* hook up open in azure button

* Only use plural text
2020-06-17 12:35:14 -07:00
Charles Gagnon
4296a05d4f update branch references (#10964) 2020-06-17 12:34:38 -07:00
Alan Ren
2242a80049 trying to trigger the schedule re-evaluation (#10961) 2020-06-17 10:44:25 -07:00
Charles Gagnon
c86f301e0e More arc controller dashboard updates (#10949) 2020-06-17 07:50:10 -07:00
Benjin Dubishar
691985af2d Revert SqlToolsService version until DacFx can also be brought up to MDS 2.0-final (#10950) 2020-06-16 21:34:56 -07:00
Alan Ren
c390d62675 enable Azure SQL DB Edge deployment in ADS (#10927)
* local deployment

* eula update

* remote deployment

* fix wording

* new extension

* script

* spacing

* fix test

* loc strings
2020-06-16 20:00:46 -07:00
Amir Omidi
21fd8b22e7 Fix a memory leak on listener (#10294)
* Fix leak

* We don't need the full connection profiles for drag drop control

* Remove unused code

* Change test definition

* Change test definition

* Change equality check
2020-06-16 19:36:10 -07:00
Charles Gagnon
fb4e400919 Make property container values selectable (#10946) 2020-06-16 15:08:16 -07:00
Aasim Khan
f725ee96b9 Code refactoring for extension testing (#10529)
* Setting up tests on import extension

* -Added API wrappers for all the azdata and vscode APIs to make them easily mockable
-Added some unit tests for the import extension
-Some code logic separations

* -added code report for the import extension in ci

* Did some more code refractoring

* -Added json report generation

* updated vscodetestcoverage to latest version in import extension.

* -remove duplicate codecoverageConfig.json
2020-06-16 13:24:48 -07:00
Charles Gagnon
94bc0d9559 Fix open notebook bug (#10930)
* Fix open notebook bug

* cleanup

* clean up spaces
2020-06-16 13:06:44 -07:00
Anthony Dresser
381a747b62 fix export for remote (#10934) 2020-06-16 12:10:05 -07:00
Charles Gagnon
ad5c697f87 Update to checkout action v2.2.0 (#10939) 2020-06-16 11:31:21 -07:00
dependabot[bot]
bacdaeecb6 Bump mixin-deep from 1.3.1 to 1.3.2 in /build (#10910)
Bumps [mixin-deep](https://github.com/jonschlinkert/mixin-deep) from 1.3.1 to 1.3.2.
- [Release notes](https://github.com/jonschlinkert/mixin-deep/releases)
- [Commits](https://github.com/jonschlinkert/mixin-deep/compare/1.3.1...1.3.2)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-06-16 11:25:41 -07:00
dependabot[bot]
1cf4478fc7 Bump stringstream from 0.0.5 to 0.0.6 in /build (#10911)
Bumps [stringstream](https://github.com/mhart/StringStream) from 0.0.5 to 0.0.6.
- [Release notes](https://github.com/mhart/StringStream/releases)
- [Commits](https://github.com/mhart/StringStream/compare/v0.0.5...v0.0.6)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-06-16 11:25:18 -07:00
Karl Burtram
df1efc9e02 Bump Azure Data Studio version (#10941) 2020-06-16 11:20:30 -07:00
Alex Ma
f13a5954a9 Port of Maddy's Edit Data Line Fix (#10676) 2020-06-16 10:13:17 -07:00
Karl Burtram
b922fc7d7a Update SQL Tools to v3.0.0-release.1 (#10935) 2020-06-15 21:14:35 -07:00
Christopher Suh
0c56e4a603 Column/Table Drag & Drop (#10702)
* able to drag objects from left pane

* changed scheme from file

* base functionality working

* extended functionality to tables

* added string literals and formatting

* cleanup

* cleanup

* added table/column parsing

* removed bad logic

* updated to use metadata

* cleanup and added sql carbon edit tags

* moved changes from vs into sql code base

* refactoring drag and drop

* cleanup

* cleanup

* cleanup

* added unit tests

* pr changes

* moved treeMock file

* fixed small bug
2020-06-15 23:52:46 -04:00
Benjin Dubishar
0f9f9c851e Fixes issue where wrong property was checked for deployment type (#10933)
* Fixes issue where wrong property was checked for deployment type

* improve error message
2020-06-15 19:19:02 -07:00
Arvind Ranasaria
f02e2a4b72 Initial unit tests for class NotebookEditor (#10926)
* first few notebookEditor tests

* formating fixes

* PR feedback

* PR feedback

* copyright fixes

* improve test names and assertion messages

* PR feedback

* improve test names.

* test name change

* test name change

* remove unneeded cast

* remove spurious comment

* fix misplaced paranthesis - thanks hygiene checker!

* remove unused code

* remove deferredPromise

* rempve unnecessary mock usage in dispose test

* use getContainer for ['parent']

* notebookService needs 9th constructor argument

* Add uploading debugging step

* remove changes to ci.yml

Co-authored-by: Arvind Ranasaria MacPro <arvranmac@MININT-OE7B592.fareast.corp.microsoft.com>
Co-authored-by: chgagnon <chgagnon@microsoft.com>
2020-06-15 15:27:42 -07:00
Kim Santiago
4c82cf0ebb Make database references also work in SSDT (#10864)
* add system database reference for VS

* a few fixes

* update tests

* update tests

* fix tests after merge

* addressing comment to make logic a little more clear

* fix replacing SSDT reference name in tree
2020-06-15 14:58:59 -07:00
Anthony Dresser
16c27baf10 maintain scheme in insights (#10904)
* maintain scheme in insights

* fix compiles

* fix tests

* handle undefined

* fix windows tests

* fix imports

* handle remote resources
2020-06-15 14:23:31 -07:00
Amir Omidi
127617402f Enables a disabled test (#10900)
* Enables a disabled test

* Test is irrelevant

* Remove unused import
2020-06-15 13:22:21 -07:00
Amir Omidi
0283d4d5ed Amir/onboarding change (#10908)
* onboarding

* Revert "onboarding"

This reverts commit 0f00737a8782a3cdee367839b944b02b4d87b6ab.

* Onboarding in integration-tests
2020-06-15 13:22:02 -07:00
Charles Gagnon
d9e70731f4 Hook up MIAA dashboard overview (#10890)
* Hook up MIAA dashboard overview

* Fix merge conflicts

* Fix links

* Remove extra &
2020-06-15 11:25:31 -07:00
Anthony Dresser
ff8b03aa5e fix edit data (#10907) 2020-06-15 11:17:42 -07:00
Sakshi Sharma
25c6bc9591 Disable half of the tests for sql database projects (#10903)
* Added some logging and disabled half of the tests for sql database projects

* Comment out data souces tests, a probable test failure

* Used skip instead of actual commenting out of code
2020-06-15 10:58:33 -07:00
Kim Santiago
514b7f7743 Add missing await (#10919) 2020-06-15 10:26:28 -07:00
Brian Bergeron
a5cd755e41 support table with for DeclarativeTableComponent (#10881) 2020-06-15 10:12:49 -07:00
Karl Burtram
2a1c422aef Update readme for 1.19.0 (#10917) 2020-06-15 09:07:15 -07:00
Karl Burtram
434d017a6b Update various branch references to main branch (#10913) 2020-06-13 14:26:18 -07:00
Benjin Dubishar
ddb210e971 Final ADS-side hookup for sqlcmd vars (#10815)
* Adding reading SqlCmdVars from project file

* organized apiWrapper, added calls

* Adding test to confirm deployment/script gen profiles with sqlcmd vars
2020-06-12 19:49:28 -07:00
Maddy
26a00696d4 Fix/prev next links issue (#10523)
* intital test code

* added tests

* remove commented code

* fix for failing tests

* reuse exported enum

* changes to address comments

* add back onVisibility highlight

* port highlight fix from Chris

* fix tests
2020-06-12 18:42:17 -07:00
Kim Santiago
c9569d8573 Update system database references from SSDT (#10891)
* convert system database references from SSDT

* remove empty ItemGroup if no other database references

* fix baseline files

* also update sqlproj if system database references were added in SSDT since the sqlproj got updated with ADS imports

* undo change

* move updating system db references out of updateProjectForRoundTrip()

* update test to have an already updated system db ref

* add clean target after merge from master

* add await

* addressing comments
2020-06-12 17:57:11 -07:00
Charles Gagnon
233646330e Disable VS tests that fail randomly (#10895) 2020-06-12 17:06:45 -07:00
Udeesha Gautam
70f65f45b5 Scoping of project context menu items based on node type (#10902)
* Remove context menu items from files

* More changes for context menu and adding test

* change to initiate build
2020-06-12 17:00:51 -07:00
Chris LaFreniere
960aa14027 stop running magics that dont exist (#10894) 2020-06-12 14:25:01 -07:00
Amir Omidi
3608e132cb Add close button (#10898)
* Add close button

* Change the localize key
2020-06-12 13:03:18 -07:00
Amir Omidi
83a8b13750 If the connectionProfile was undefined, then return undefined (#10899) 2020-06-12 12:46:34 -07:00
Anthony Dresser
535e9d012a add getting started to contribution (#10892) 2020-06-12 12:21:04 -07:00
Udeesha Gautam
60c0ac6bd7 Fix for #10779 to clean build to work in SSDT post ADS build (#10882)
* Add clean target

* include in test baselines

* adding one more test
2020-06-12 12:11:18 -07:00
Benjin Dubishar
a7110d8916 Benjin/line endings (#10874)
* dud space

* removal of dud space

* using OS line separator

Co-authored-by: Benjin Dubishar <Benjin@Benjins-MBP.T-mobile.com>
2020-06-11 17:54:30 -07:00
Anthony Dresser
46f72fef6a change icon locations (#10884)
* change icon locations

* fix icon location
2020-06-11 17:10:29 -07:00
Charles Gagnon
8db272cea4 Fix deployment warnings to only show if no resources found (#10878) 2020-06-11 17:07:19 -07:00
Alan Ren
4322234d0b use default row height and update button column (#10885) 2020-06-11 16:09:25 -07:00
Anthony Dresser
a63bdfedd5 Add web compile (#10880)
* add web compile step

* add missing file

* add to release

* add container
2020-06-11 15:40:11 -07:00
Kim Santiago
7b00e219ef Show database references in project tree (#10837)
* add database references to same itemgroup

* show database references in tree

* update tests

* refresh project tree after a reference is added

* addressing comments

* add validation

* Add test

* sort imports
2020-06-11 15:32:57 -07:00
Brian Bergeron
a099b9e72a Arc Postgres: Fixes for May release (#10877) 2020-06-11 14:55:33 -07:00
Anthony Dresser
6b86cbdd6e rewrite some automation; add notebook tests (#10853) 2020-06-11 13:17:10 -07:00
Sakshi Sharma
f862d77f34 Tests for Schema Compare utils file (#10822)
* Introduced ApiWrapper for testability

* Added tests for coverage of utils.ts

* Addressed comments
2020-06-11 10:16:22 -07:00
Aasim Khan
bb244e4b91 Passing contained component required field to itemConfig (#10858) 2020-06-11 08:42:54 -07:00
Charles Gagnon
17164bdd26 Filter out unneeded files from integration test coverage (#10852) 2020-06-10 22:54:26 -07:00
Chris LaFreniere
168ef80d8f Fix Notebook Viewlet Highlighting (#10868)
* Stop double tree data provider registrations

* revert book finding logic, leverage currentBook
2020-06-10 22:27:16 -07:00
Alan Ren
3f21caddb6 fix declarative table issue (#10833)
* fix declarative table issue

* check data

* comments

* comments and more fixes
2020-06-10 22:21:45 -07:00
Benjin Dubishar
5ab6d3d07e Format sqlproj file XML on serialization (#10818)
* Format XML on serialization

* Updating licences

* Adding missing line in package.json

* tabs to spaces

* Updating yarn.lock file
2020-06-10 19:57:59 -07:00
Alan Ren
5c6516cbb3 enable tests in canary pipeline (#10854)
* enable tests in canary pipeline

* fix bat file
2020-06-10 17:40:42 -07:00
Kim Santiago
2ea85d12bb fix failing tests (#10861) 2020-06-10 16:45:45 -07:00
Charles Gagnon
6f52977788 Update ext telemetry package to npm version (#10859) 2020-06-10 15:50:12 -07:00
Charles Gagnon
fe5b8157e1 Add real MIAA connection string values (#10838)
* Add real MIAA connection string values

* Add MiaaModel and fix some strings

* Remove unused var

* Test to print env vars

* Add tests

* fixes
2020-06-10 15:39:21 -07:00
Charles Gagnon
c6d494e160 Change "configure dashboard" icon (#10856) 2020-06-10 14:52:36 -07:00
Anthony Dresser
a940999c39 add more sourcemaps (#10851) 2020-06-10 14:51:45 -07:00
Charles Gagnon
dff43687e2 Clean up coverage and fix issue with notebook names (#10826)
* Clean up coverage and fix issue with notebook names

* update name
2020-06-10 13:44:38 -07:00
Anthony Dresser
d849ed9357 Add more smoke tests and abstract more code (#10799)
* add more smoke tests and abstract more code

* fix missing imports
2020-06-10 12:12:35 -07:00
Karl Burtram
187667f4f1 Update SQL Tools Service to include "use master" revert (#10834) 2020-06-09 15:52:52 -07:00
Charles Gagnon
6365bf515d Update readme for code coverage for integration tests (#10832) 2020-06-09 15:40:33 -07:00
Benjin Dubishar
24e6ed5075 Adds welcome message for database projects (#10820)
* Removing duplicate Import command piping

* Adding welcome message + buttons

* Adding welcome button to Import

* Correcting typos
2020-06-09 15:29:01 -07:00
Hale Rankin
6c68d742a7 Fixed notebook toolbar icon issue in dark and hc-black themes. (#10802) 2020-06-09 13:52:47 -07:00
Charles Gagnon
6536896c7d Initial work on Arc controller + MIAA dashboards (#10781)
* initial

* postgres overview dashboard

* fewer dependencies

* stricter compile options

* make vsce package work

* Add localizedConstants

* Add localizedConstants

(cherry picked from commit 3ceed3e82b918ac829a7eac01487844e7d2ec02d)

* common WIP

* Initial dashboard work

* separate ui and models

* extend DashboardPage

* remove error handling

* wip

* Add more localized constants

* More updates

* Use api to populate instances

* merge master, strict mode, error handling, propertiesContainer, openInAzure

* use more localizedConstants

* localization

* connection strings and properties pages

* don't include arc extension by default

* don't include arc extension by default

* Address PR feedback

* undo changes to modelview components

* localize copied to clipboard

* localize copied to clipboard with function

* Update gulpfile.hygiene.js

* Move the gulpfile

* More updates

* more updates

* More updates

* re-delete file

* Fix compile error

* PR comments

Co-authored-by: Brian Bergeron <brberger@microsoft.com>
Co-authored-by: Brian Bergeron <brian.e.bergeron@gmail.com>
Co-authored-by: Amir Omidi <amomidi@microsoft.com>
2020-06-09 13:40:15 -07:00
Charles Gagnon
684aedfffa Clean up coverage for admin-tool-ext-win extension (#10806) 2020-06-09 12:56:03 -07:00
Kim Santiago
1aab8aba34 Add option for msdb reference in sql project (#10810)
* add msdb option

* add msdb dacpacs

* add tests

* fix system dacpac path for windows
2020-06-09 10:12:39 -07:00
Benjin Dubishar
02598621c3 Focus database projects view after open/import (#10760) 2020-06-09 09:42:52 -07:00
Cory Rivera
59575aa305 Wait for clientSession to become available before running a cell. (#10796) 2020-06-09 05:30:13 -07:00
Alan Ren
c8a3fbca47 change default version (#10809) 2020-06-08 23:03:35 -07:00
Alan Ren
7687d6e22a reset valid status (#10813) 2020-06-08 22:53:45 -07:00
Maddy
22d7c9083e highlight correct notebook on navigation. (#10807)
* highlight correct notebook on navigation.

* add back behavior of highight on viewlet visible

* optimize bookViewer create

* createTreeView for every book
2020-06-08 19:09:43 -07:00
Kim Santiago
252c31bd5d remove dacpac references baseline (#10803) 2020-06-08 16:32:00 -07:00
Aasim Khan
75e3e4c8c9 Fix for "Run Current Query" keybind no longer behaving as expected (#10538) (#10557)
* -"Run current" command runs the entire selection instead of only first statement in the selection

* -brought some logic back from the  old code to correct the behavior

* -Added unit tests for runCurrent command

* -Fixed a comment

* - Added checks for run input parameters

* -Added some extra checks

* -Fixed some spacing issue

* Changed to using verify instead of a counter variable
2020-06-08 14:42:07 -07:00
Alan Ren
57201fe6c7 Revert "reduce max memory (#10775)" (#10794)
This reverts commit d62bb1e9fc.
2020-06-08 13:35:00 -07:00
Brian Bergeron
5c6f334113 Azure Arc Postgres - Support + Troubleshooting (#10686) 2020-06-08 12:03:51 -07:00
Alan Ren
9ca17dbe7f fix button column click issue (#10788) 2020-06-08 11:48:50 -07:00
Amir Omidi
d08a224550 Fixes #10734, register a container for the view (#10750)
* Fixes #10734, register a container for the view

* Remove unused fields
2020-06-08 11:06:04 -07:00
Sakshi Sharma
06590ad0a2 Schema Compare tests for utils (#10759)
* Added a few tests for utils file under Schema Compare

* Addressed comment- moved mock test data to a common location
2020-06-08 10:44:16 -07:00
Charles Gagnon
3e5421dc43 Add Azure region enum and helper methods to azurecore (#10776)
* Add Azure region enum and helper methods

* change module definition

* Add comments

* fix names

* Optional param
2020-06-08 07:39:45 -07:00
Charles Gagnon
193ecddb98 Fix error when cancelling out of VSIX dialog (#10752) 2020-06-08 07:38:37 -07:00
Kim Santiago
6e3d960d1d Add support for adding dacpac references in sql database projects (#10684)
* add dacpacs

* able to add reference to appropriate master dacpac

* able to add reference to a dacpac

* Add a few tests

* fix tests

* fix wording

* fix adding reference to same database

* add project tests

* fix test for windows

* addressing comments

* Adding another test

* update tests

* fix build error
2020-06-05 17:53:21 -07:00
Hale Rankin
52a12f0d51 Removed style that was interfering with text selection within code cell. (#10769) 2020-06-05 17:51:23 -07:00
Hale Rankin
eafe659ec9 10712, 10677 - Fixed focus indicators for both main toolbar and cell … (#10756)
* 10712, 10677 - Fixed focus indicators for both main toolbar and cell toolbar.

* Removed duplicated line
2020-06-05 17:46:19 -07:00
Hale Rankin
4339b5b7d3 Switched order of the two dropdowns in main toolbar in preview. (#10717)
* Switched order of the two dropdowns in main toolbar in preview.

* Reverting this single line b/c it's out of scope for the PR.
2020-06-05 17:41:14 -07:00
Anthony Dresser
72b2d9ef72 rework some of some, add query to smoke (#10591) 2020-06-05 17:25:24 -07:00
Hale Rankin
cf0f3b0426 Reduced margin between notebook cells. Increased space at top of page. (#10735) 2020-06-05 17:17:19 -07:00
Chris LaFreniere
48ec8e6dd8 Bring back hover state setting on cell model (#10758) 2020-06-05 17:14:36 -07:00
Alan Ren
3500ce08cc fix profiler not launch issue (#10757) 2020-06-05 15:41:29 -07:00
Udeesha Gautam
919275dadc Changing the user visible command name for deploy (#10770)
* Changing the user visible command name for deploy

* Change to restart PR build
2020-06-05 15:31:11 -07:00
Alan Ren
d62bb1e9fc reduce max memory (#10775) 2020-06-05 15:09:43 -07:00
Alex Ma
1f519024db Fix for edit data grid not showing (#10737)
* Added null check in getHorizontalSashWidth

* simplified using tertiary operator

* more simplification
2020-06-05 13:32:16 -07:00
Karl Burtram
acefe7b081 Add Redgate Search to recommendation list (#10749) 2020-06-05 09:02:44 -07:00
Amir Omidi
70af4cbe42 Fixes the azure auth for postgresql (#10662) 2020-06-04 16:01:50 -07:00
Anthony Dresser
6b7c286891 Add upload of sourcemaps (#10714)
* add upload of sourcemaps

* add storage account
2020-06-04 15:40:08 -07:00
Chris LaFreniere
258310ba81 Change markdown cell to text cell (#10715) 2020-06-04 12:38:30 -07:00
Chris LaFreniere
cc3554e987 Only show edit cell action for markdown cells (#10719) 2020-06-04 10:20:47 -07:00
Amir Omidi
ce17a73ede Open connection dialog with URI (#10700)
* Add the openConnectionDialog code

* don't ignore case
2020-06-03 16:53:13 -07:00
Kim Santiago
e80aec586b fix sql project generate script (#10697) 2020-06-03 16:43:02 -07:00
Leila Lali
fbe0f91a9f Updating ML extension version for the latest fixes (#10708) 2020-06-03 15:30:12 -07:00
Brian Bergeron
65a31de166 Add readOnly property to InputBoxComponent (#10687) 2020-06-03 14:59:54 -07:00
Cory Rivera
5d60254bb9 Add custom width to Python wizard to reduce wasted space. (#10705)
* Also use double quotes for localize calls in the wizard.
2020-06-03 14:41:39 -07:00
Anthony Dresser
a68e74527e Merge branch 'ads-master-vscode-2020-05-31T19-47-47' 2020-06-03 14:05:57 -07:00
Anthony Dresser
15d8e09491 Merge remote-tracking branch 'origin/master' into ads-master-vscode-2020-05-31T19-47-47 2020-06-03 12:35:26 -07:00
Anthony Dresser
8b0b0a029e fix compile 2020-06-01 12:36:41 -07:00
Anthony Dresser
874717fee5 fix testing issues 2020-06-01 12:15:14 -07:00
Anthony Dresser
1d9c79aa1b fix mixin 2020-05-31 14:06:59 -07:00
Anthony Dresser
7d53e744f3 fix imports 2020-05-31 13:08:12 -07:00
ADS Merger
28be33cfea Merge from vscode 79a1f5a5ca0c6c53db617aa1fa5a2396d2caebe2 2020-05-31 19:47:51 +00:00
3407 changed files with 179936 additions and 89958 deletions

121
.devcontainer/Dockerfile Normal file
View File

@@ -0,0 +1,121 @@
#-------------------------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See https://go.microsoft.com/fwlink/?linkid=2090316 for license information.
#-------------------------------------------------------------------------------------------------------------
FROM mcr.microsoft.com/vscode/devcontainers/typescript-node:0-12
ARG TARGET_DISPLAY=":1"
# VNC options
ARG MAX_VNC_RESOLUTION=1920x1080x16
ARG TARGET_VNC_RESOLUTION=1920x1080
ARG TARGET_VNC_DPI=72
ARG TARGET_VNC_PORT=5901
ARG VNC_PASSWORD="vscode"
# noVNC (VNC web client) options
ARG INSTALL_NOVNC="true"
ARG NOVNC_VERSION=1.1.0
ARG TARGET_NOVNC_PORT=6080
ARG WEBSOCKETIFY_VERSION=0.9.0
# Firefox is useful for testing things like browser launch events, but optional
ARG INSTALL_FIREFOX="false"
# Expected non-root username from base image
ARG USERNAME=node
# Core environment variables for X11, VNC, and fluxbox
ENV DBUS_SESSION_BUS_ADDRESS="autolaunch:" \
MAX_VNC_RESOLUTION="${MAX_VNC_RESOLUTION}" \
VNC_RESOLUTION="${TARGET_VNC_RESOLUTION}" \
VNC_DPI="${TARGET_VNC_DPI}" \
VNC_PORT="${TARGET_VNC_PORT}" \
NOVNC_PORT="${TARGET_NOVNC_PORT}" \
DISPLAY="${TARGET_DISPLAY}" \
LANG="en_US.UTF-8" \
LANGUAGE="en_US.UTF-8" \
VISUAL="nano" \
EDITOR="nano"
# Configure apt and install packages
RUN apt-get update \
&& export DEBIAN_FRONTEND=noninteractive \
#
# Install the Cascadia Code fonts - https://github.com/microsoft/cascadia-code
&& curl -sSL https://github.com/microsoft/cascadia-code/releases/download/v2004.30/CascadiaCode_2004.30.zip -o /tmp/cascadia-fonts.zip \
&& unzip /tmp/cascadia-fonts.zip -d /tmp/cascadia-fonts \
&& mkdir -p /usr/share/fonts/truetype/cascadia \
&& mv /tmp/cascadia-fonts/ttf/* /usr/share/fonts/truetype/cascadia/ \
&& rm -rf /tmp/cascadia-fonts.zip /tmp/cascadia-fonts \
#
# Install X11, fluxbox and VS Code dependencies
&& apt-get -y install --no-install-recommends \
xvfb \
x11vnc \
fluxbox \
dbus-x11 \
x11-utils \
x11-xserver-utils \
xdg-utils \
fbautostart \
xterm \
eterm \
gnome-terminal \
gnome-keyring \
seahorse \
nautilus \
libx11-dev \
libxkbfile-dev \
libsecret-1-dev \
libnotify4 \
libnss3 \
libxss1 \
libasound2 \
xfonts-base \
xfonts-terminus \
fonts-noto \
fonts-wqy-microhei \
fonts-droid-fallback \
vim-tiny \
nano \
#
# [Optional] Install noVNC
&& if [ "${INSTALL_NOVNC}" = "true" ]; then \
mkdir -p /usr/local/novnc \
&& curl -sSL https://github.com/novnc/noVNC/archive/v${NOVNC_VERSION}.zip -o /tmp/novnc-install.zip \
&& unzip /tmp/novnc-install.zip -d /usr/local/novnc \
&& cp /usr/local/novnc/noVNC-${NOVNC_VERSION}/vnc_lite.html /usr/local/novnc/noVNC-${NOVNC_VERSION}/index.html \
&& rm /tmp/novnc-install.zip \
&& curl -sSL https://github.com/novnc/websockify/archive/v${WEBSOCKETIFY_VERSION}.zip -o /tmp/websockify-install.zip \
&& unzip /tmp/websockify-install.zip -d /usr/local/novnc \
&& apt-get -y install --no-install-recommends python-numpy \
&& ln -s /usr/local/novnc/websockify-${WEBSOCKETIFY_VERSION} /usr/local/novnc/noVNC-${NOVNC_VERSION}/utils/websockify \
&& rm /tmp/websockify-install.zip; \
fi \
#
# [Optional] Install Firefox
&& if [ "${INSTALL_FIREFOX}" = "true" ]; then \
apt-get -y install --no-install-recommends firefox-esr; \
fi \
#
# Clean up
&& apt-get autoremove -y \
&& apt-get clean -y \
&& rm -rf /var/lib/apt/lists/*
COPY bin/init-dev-container.sh /usr/local/share/
COPY bin/set-resolution /usr/local/bin/
COPY fluxbox/* /root/.fluxbox/
COPY fluxbox/* /home/${USERNAME}/.fluxbox/
# Update privs, owners of config files
RUN mkdir -p /var/run/dbus /root/.vnc /home/${USERNAME}/.vnc \
&& touch /root/.Xmodmap /home/${USERNAME}/.Xmodmap \
&& echo "${VNC_PASSWORD}" | tee /root/.vnc/passwd > /home/${USERNAME}/.vnc/passwd \
&& chown -R ${USERNAME}:${USERNAME} /home/${USERNAME}/.Xmodmap /home/${USERNAME}/.fluxbox /home/${USERNAME}/.vnc \
&& chmod +x /usr/local/share/init-dev-container.sh /usr/local/bin/set-resolution
ENTRYPOINT ["/usr/local/share/init-dev-container.sh"]
CMD ["sleep", "infinity"]

82
.devcontainer/README.md Normal file
View File

@@ -0,0 +1,82 @@
# Code - OSS Development Container
This repository includes configuration for a development container for working with Code - OSS in an isolated local container or using [Visual Studio Codespaces](https://aka.ms/vso).
> **Tip:** The default VNC password is `vscode`. The VNC server runs on port `5901` with a web client at `6080`. For better performance, we recommend using a [VNC Viewer](https://www.realvnc.com/en/connect/download/viewer/). Applications like the macOS Screen Sharing app will not perform as well. [Chicken](https://sourceforge.net/projects/chicken/) is a good macOS alternative.
## Quick start - local
1. Install Docker Desktop or Docker for Linux on your local machine. (See [docs](https://aka.ms/vscode-remote/containers/getting-started) for additional details.)
2. **Important**: Docker needs at least **4 Cores and 6 GB of RAM (8 GB recommended)** to run full build. If you on macOS, or using the old Hyper-V engine for Windows, update these values for Docker Desktop by right-clicking on the Docker status bar item, going to **Preferences/Settings > Resources > Advanced**.
> **Note:** The [Resource Monitor](https://marketplace.visualstudio.com/items?itemName=mutantdino.resourcemonitor) extension is included in the container so you can keep an eye on CPU/Memory in the status bar.
3. Install [Visual Studio Code Stable](https://code.visualstudio.com/) or [Insiders](https://code.visualstudio.com/insiders/) and the [Remote - Containers](https://aka.ms/vscode-remote/download/containers) extension.
![Image of Remote - Containers extension](https://microsoft.github.io/vscode-remote-release/images/remote-containers-extn.png)
> Note that the Remote - Containers extension requires the Visual Studio Code distribution of Code - OSS. See the [FAQ](https://aka.ms/vscode-remote/faq/license) for details.
4. Press <kbd>Ctrl/Cmd</kbd> + <kbd>Shift</kbd> + <kbd>P</kbd> and select **Remote - Containers: Open Repository in Container...**.
> **Tip:** While you can use your local source tree instead, operations like `yarn install` can be slow on macOS or using the Hyper-V engine on Windows. We recommend the "open repository" approach instead since it uses "named volume" rather than the local filesystem.
5. Type `https://github.com/microsoft/vscode` (or a branch or PR URL) in the input box and press <kbd>Enter</kbd>.
6. After the container is running, open a web browser and go to [http://localhost:6080](http://localhost:6080) or use a [VNC Viewer](https://www.realvnc.com/en/connect/download/viewer/) to connect to `localhost:5901` and enter `vscode` as the password.
Anything you start in VS Code or the integrated terminal will appear here.
Next: **[Try it out!](#try-it)**
## Quick start - Codespaces
>Note that the Codespaces browser-based editor cannot currently access the desktop environment in this container (due to a [missing feature](https://github.com/MicrosoftDocs/vsonline/issues/117)). We recommend using Visual Studio Code from the desktop to connect instead in the near term.
1. Install [Visual Studio Code Stable](https://code.visualstudio.com/) or [Insiders](https://code.visualstudio.com/insiders/) and the [Visual Studio Codespaces](https://aka.ms/vscs-ext-vscode) extension.
![Image of VS Codespaces extension](https://microsoft.github.io/vscode-remote-release/images/codespaces-extn.png)
> Note that the Visual Studio Codespaces extension requires the Visual Studio Code distribution of Code - OSS.
2. Sign in by pressing <kbd>Ctrl/Cmd</kbd> + <kbd>Shift</kbd> + <kbd>P</kbd> and selecting **Codespaces: Sign In**. You may also need to use the **Codespaces: Create Plan** if you do not have a plan. See the [Codespaces docs](https://aka.ms/vso-docs/vscode) for details.
3. Press <kbd>Ctrl/Cmd</kbd> + <kbd>Shift</kbd> + <kbd>P</kbd> and select **Codespaces: Create New Codespace**.
4. Use default settings (which should include **Standard** 4 core, 8 GB RAM Codespace), select a plan, and then enter the repository URL `https://github.com/microsoft/vscode` (or a branch or PR URL) in the input box when prompted.
5. After the container is running, open a web browser and go to [http://localhost:6080](http://localhost:6080) or use a [VNC Viewer](https://www.realvnc.com/en/connect/download/viewer/) to connect to `localhost:5901` and enter `vscode` as the password.
6. Anything you start in VS Code or the integrated terminal will appear here.
## Try it!
This container uses the [Fluxbox](http://fluxbox.org/) window manager to keep things lean. **Right-click on the desktop** to see menu options. It works with GNOME and GTK applications, so other tools can be installed if needed.
Note you can also set the resolution from the command line by typing `set-resolution`.
To start working with Code - OSS, follow these steps:
1. In your local VS Code, open a terminal (<kbd>Ctrl/Cmd</kbd> + <kbd>Shift</kbd> + <kbd>\`</kbd>) and type the following commands:
```bash
yarn install
bash scripts/code.sh
```
2. After the build is complete, open a web browser and go to [http://localhost:6080](http://localhost:6080) or use a [VNC Viewer](https://www.realvnc.com/en/connect/download/viewer/) to connect to `localhost:5901` and enter `vscode` as the password.
3. You should now see Code - OSS!
Next, let's try debugging.
1. Shut down Code - OSS by clicking the box in the upper right corner of the Code - OSS window through your browser or VNC viewer.
2. Go to your local VS Code client, and use Run / Debug view to launch the **VS Code** configuration. (Typically the default, so you can likely just press <kbd>F5</kbd>).
> **Note:** If launching times out, you can increase the value of `timeout` in the "VS Code", "Attach Main Process", "Attach Extension Host", and "Attach to Shared Process" configurations in [launch.json](../.vscode/launch.json). However, running `scripts/code.sh` first will set up Electron which will usually solve timeout issues.
3. After a bit, Code - OSS will appear with the debugger attached!
Enjoy!

View File

@@ -0,0 +1,91 @@
#!/bin/bash
NONROOT_USER=node
LOG=/tmp/container-init.log
# Execute the command it not already running
startInBackgroundIfNotRunning()
{
log "Starting $1."
echo -e "\n** $(date) **" | sudoIf tee -a /tmp/$1.log > /dev/null
if ! pidof $1 > /dev/null; then
keepRunningInBackground "$@"
while ! pidof $1 > /dev/null; do
sleep 1
done
log "$1 started."
else
echo "$1 is already running." | sudoIf tee -a /tmp/$1.log > /dev/null
log "$1 is already running."
fi
}
# Keep command running in background
keepRunningInBackground()
{
($2 sh -c "while :; do echo [\$(date)] Process started.; $3; echo [\$(date)] Process exited!; sleep 5; done 2>&1" | sudoIf tee -a /tmp/$1.log > /dev/null & echo "$!" | sudoIf tee /tmp/$1.pid > /dev/null)
}
# Use sudo to run as root when required
sudoIf()
{
if [ "$(id -u)" -ne 0 ]; then
sudo "$@"
else
"$@"
fi
}
# Use sudo to run as non-root user if not already running
sudoUserIf()
{
if [ "$(id -u)" -eq 0 ]; then
sudo -u ${NONROOT_USER} "$@"
else
"$@"
fi
}
# Log messages
log()
{
echo -e "[$(date)] $@" | sudoIf tee -a $LOG > /dev/null
}
log "** SCRIPT START **"
# Start dbus.
log 'Running "/etc/init.d/dbus start".'
if [ -f "/var/run/dbus/pid" ] && ! pidof dbus-daemon > /dev/null; then
sudoIf rm -f /var/run/dbus/pid
fi
sudoIf /etc/init.d/dbus start 2>&1 | sudoIf tee -a /tmp/dbus-daemon-system.log > /dev/null
while ! pidof dbus-daemon > /dev/null; do
sleep 1
done
# Set up Xvfb.
startInBackgroundIfNotRunning "Xvfb" sudoIf "Xvfb ${DISPLAY:-:1} +extension RANDR -screen 0 ${MAX_VNC_RESOLUTION:-1920x1080x16}"
# Start fluxbox as a light weight window manager.
startInBackgroundIfNotRunning "fluxbox" sudoUserIf "dbus-launch startfluxbox"
# Start x11vnc
startInBackgroundIfNotRunning "x11vnc" sudoIf "x11vnc -display ${DISPLAY:-:1} -rfbport ${VNC_PORT:-5901} -localhost -no6 -xkb -shared -forever -passwdfile $HOME/.vnc/passwd"
# Set resolution
/usr/local/bin/set-resolution ${VNC_RESOLUTION:-1280x720} ${VNC_DPI:-72}
# Spin up noVNC if installed and not runnning.
if [ -d "/usr/local/novnc" ] && [ "$(ps -ef | grep /usr/local/novnc/noVNC*/utils/launch.sh | grep -v grep)" = "" ]; then
keepRunningInBackground "noVNC" sudoIf "/usr/local/novnc/noVNC*/utils/launch.sh --listen ${NOVNC_PORT:-6080} --vnc localhost:${VNC_PORT:-5901}"
log "noVNC started."
else
log "noVNC is already running or not installed."
fi
# Run whatever was passed in
log "Executing \"$@\"."
"$@"
log "** SCRIPT EXIT **"

View File

@@ -0,0 +1,25 @@
#!/bin/bash
RESOLUTION=${1:-${VNC_RESOLUTION:-1920x1080}}
DPI=${2:-${VNC_DPI:-72}}
if [ -z "$1" ]; then
echo -e "**Current Settings **\n"
xrandr
echo -n -e "\nEnter new resolution (WIDTHxHEIGHT, blank for ${RESOLUTION}, Ctrl+C to abort).\n> "
read NEW_RES
if [ "${NEW_RES}" != "" ]; then
RESOLUTION=${NEW_RES}
fi
if [ -z "$2" ]; then
echo -n -e "\nEnter new DPI (blank for ${DPI}, Ctrl+C to abort).\n> "
read NEW_DPI
if [ "${NEW_DPI}" != "" ]; then
DPI=${NEW_DPI}
fi
fi
fi
xrandr --fb ${RESOLUTION} --dpi ${DPI} > /dev/null 2>&1
echo -e "\n**New Settings **\n"
xrandr
echo

View File

@@ -0,0 +1,45 @@
{
"name": "Code - OSS",
"build": {
"dockerfile": "Dockerfile",
"args": {
"MAX_VNC_RESOLUTION": "1920x1080x16",
"TARGET_VNC_RESOLUTION": "1280x768",
"TARGET_VNC_PORT": "5901",
"TARGET_NOVNC_PORT": "6080",
"VNC_PASSWORD": "vscode",
"INSTALL_FIREFOX": "true"
}
},
"overrideCommand": false,
"runArgs": [
"--init",
// seccomp=unconfined is required for Chrome sandboxing
"--security-opt", "seccomp=unconfined"
],
"settings": {
// zsh is also available
"terminal.integrated.shell.linux": "/bin/bash",
"resmon.show.battery": false,
"resmon.show.cpufreq": false,
"remote.extensionKind": {
"ms-vscode.js-debug-nightly": "workspace",
"msjsdiag.debugger-for-chrome": "workspace"
},
"debug.chrome.useV3": true
},
// noVNC, VNC ports
"forwardPorts": [6080, 5901],
"extensions": [
"dbaeumer.vscode-eslint",
"EditorConfig.EditorConfig",
"msjsdiag.debugger-for-chrome",
"mutantdino.resourcemonitor",
"GitHub.vscode-pull-request-github"
],
"remoteUser": "node"
}

View File

@@ -0,0 +1,9 @@
[app] (name=code-oss-dev)
[Position] (CENTER) {0 0}
[Maximized] {yes}
[Dimensions] {100% 100%}
[end]
[transient] (role=GtkFileChooserDialog)
[Position] (CENTER) {0 0}
[Dimensions] {70% 70%}
[end]

View File

@@ -0,0 +1,9 @@
session.menuFile: ~/.fluxbox/menu
session.keyFile: ~/.fluxbox/keys
session.styleFile: /usr/share/fluxbox/styles//Squared_for_Debian
session.configVersion: 13
session.screen0.workspaces: 1
session.screen0.workspacewarping: false
session.screen0.toolbar.widthPercent: 100
session.screen0.strftimeFormat: %d %b, %a %02k:%M:%S
session.screen0.toolbar.tools: prevworkspace, workspacename, nextworkspace, clock, prevwindow, nextwindow, iconbar, systemtray

View File

@@ -0,0 +1,16 @@
[begin] ( Code - OSS Development Container )
[exec] (File Manager) { nautilus ~ } <>
[exec] (Terminal) {/usr/bin/gnome-terminal --working-directory=~ } <>
[exec] (Start Code - OSS) { x-terminal-emulator -T "Code - OSS Build" -e bash /workspaces/vscode*/scripts/code.sh } <>
[submenu] (System >) {}
[exec] (Set Resolution) { x-terminal-emulator -T "Set Resolution" -e bash /usr/local/bin/set-resolution } <>
[exec] (Passwords and Keys) { seahorse } <>
[exec] (Top) { x-terminal-emulator -T "Top" -e /usr/bin/top } <>
[exec] (Editres) {editres} <>
[exec] (Xfontsel) {xfontsel} <>
[exec] (Xkill) {xkill} <>
[exec] (Xrefresh) {xrefresh} <>
[end]
[config] (Configuration >)
[workspaces] (Workspaces >)
[end]

View File

@@ -5,6 +5,7 @@
**/vs/loader.js
**/insane/**
**/marked/**
**/markjs/**
**/test/**/*.js
**/node_modules/**
**/vscode-api-tests/testWorkspace/**

View File

@@ -42,7 +42,15 @@
"jsdoc/no-types": "warn",
"semi": "off",
"@typescript-eslint/semi": "warn",
"@typescript-eslint/class-name-casing": "warn",
"@typescript-eslint/naming-convention": [
"warn",
{
"selector": "class",
"format": [
"PascalCase"
]
}
],
"code-no-unused-expressions": [
"warn",
{
@@ -63,13 +71,18 @@
"browser": [
"common"
],
"electron-main": [
"electron-sandbox": [
"common",
"node"
"browser"
],
"electron-browser": [
"common",
"browser",
"node",
"electron-sandbox"
],
"electron-main": [
"common",
"node"
]
}
@@ -106,6 +119,14 @@
"rxjs/*"
]
},
{
"target": "**/{vs,sql}/base/electron-sandbox/**",
"restrictions": [
"vs/nls",
"vs/css!./**/*",
"**/{vs,sql}/base/{common,browser,electron-sandbox}/**"
]
},
{
"target": "**/{vs,sql}/base/node/**",
"restrictions": [
@@ -155,13 +176,22 @@
"*" // node modules
]
},
{
"target": "**/{vs,sql}/base/parts/*/electron-sandbox/**",
"restrictions": [
"vs/nls",
"vs/css!./**/*",
"**/{vs,sql}/base/{common,browser,electron-sandbox}/**",
"**/{vs,sql}/base/parts/*/{common,browser,electron-sandbox}/**"
]
},
{
"target": "**/{vs,sql}/base/parts/*/electron-browser/**",
"restrictions": [
"vs/nls",
"vs/css!./**/*",
"**/{vs,sql}/base/{common,browser,node,electron-browser}/**",
"**/{vs,sql}/base/parts/*/{common,browser,node,electron-browser}/**",
"**/{vs,sql}/base/{common,browser,node,electron-sandbox,electron-browser}/**",
"**/{vs,sql}/base/parts/*/{common,browser,node,electron-sandbox,electron-browser}/**",
"*" // node modules
]
},
@@ -191,10 +221,10 @@
"typemoq",
"sinon",
"vs/nls",
"azdata",
"azdata",
"**/{vs,sql}/base/common/**",
"**/{vs,sql}/base/test/common/**",
"**/{vs,sql}/base/parts/*/common/**",
"**/{vs,sql}/base/test/common/**",
"**/{vs,sql}/platform/*/common/**",
"**/{vs,sql}/platform/*/test/common/**"
]
@@ -221,15 +251,25 @@
"*" // node modules
]
},
{
"target": "**/{vs,sql}/platform/*/electron-sandbox/**",
"restrictions": [
"vs/nls",
"vs/css!./**/*",
"**/{vs,sql}/base/{common,browser,electron-sandbox}/**",
"**/{vs,sql}/base/parts/*/{common,browser,electron-sandbox}/**",
"**/{vs,sql}/platform/*/{common,browser,electron-sandbox}/**"
]
},
{
"target": "**/{vs,sql}/platform/*/electron-browser/**",
"restrictions": [
"vs/nls",
"azdata",
"vs/css!./**/*",
"**/{vs,sql}/base/{common,browser,node}/**",
"**/{vs,sql}/base/parts/*/{common,browser,node,electron-browser}/**",
"**/{vs,sql}/platform/*/{common,browser,node,electron-browser}/**",
"**/{vs,sql}/base/{common,browser,node,electron-sandbox,electron-browser}/**",
"**/{vs,sql}/base/parts/*/{common,browser,node,electron-sandbox,electron-browser}/**",
"**/{vs,sql}/platform/*/{common,browser,node,electron-sandbox,electron-browser}/**",
"*" // node modules
]
},
@@ -442,18 +482,34 @@
"**/{vs,sql}/**/{common,worker}/**"
]
},
{
"target": "**/{vs,sql}/workbench/electron-sandbox/**",
"restrictions": [
"vs/nls",
"vs/css!./**/*",
"**/{vs,sql}/base/{common,browser,electron-sandbox}/**",
"**/{vs,sql}/base/parts/*/{common,browser,electron-sandbox}/**",
"**/{vs,sql}/platform/*/{common,browser,electron-sandbox}/**",
"**/{vs,sql}/editor/{common,browser,electron-sandbox}/**",
"**/{vs,sql}/editor/contrib/**", // editor/contrib is equivalent to /browser/ by convention
"**/{vs,sql}/workbench/{common,browser,electron-sandbox}/**",
"**/{vs,sql}/workbench/api/{common,browser,electron-sandbox}/**",
"**/{vs,sql}/workbench/services/*/{common,browser,electron-sandbox}/**"
]
},
{
"target": "**/{vs,sql}/workbench/electron-browser/**",
"restrictions": [
"vs/nls",
"vs/css!./**/*",
"**/{vs,sql}/base/{common,browser,node,electron-browser}/**",
"**/{vs,sql}/base/parts/*/{common,browser,node,electron-browser}/**",
"**/{vs,sql}/platform/*/{common,browser,node,electron-browser}/**",
"**/{vs,sql}/editor/{common,browser,node,electron-browser}/**",
"**/{vs,sql}/base/{common,browser,node,electron-sandbox,electron-browser}/**",
"**/{vs,sql}/base/parts/*/{common,browser,node,electron-sandbox,electron-browser}/**",
"**/{vs,sql}/platform/*/{common,browser,node,electron-sandbox,electron-browser}/**",
"**/{vs,sql}/editor/{common,browser,node,electron-sandbox,electron-browser}/**",
"**/{vs,sql}/editor/contrib/**", // editor/contrib is equivalent to /browser/ by convention
"**/{vs,sql}/workbench/{common,browser,node,electron-browser,api}/**",
"**/{vs,sql}/workbench/services/*/{common,browser,node,electron-browser}/**",
"**/{vs,sql}/workbench/{common,browser,node,electron-sandbox,electron-browser}/**",
"**/{vs,sql}/workbench/api/{common,browser,node,electron-sandbox,electron-browser}/**",
"**/{vs,sql}/workbench/services/*/{common,browser,node,electron-sandbox,electron-browser}/**",
"*" // node modules
]
},
@@ -465,7 +521,7 @@
"**/{vs,sql}/base/**",
"**/{vs,sql}/platform/**",
"**/{vs,sql}/editor/**",
"**/{vs,sql}/workbench/{common,browser,node,electron-browser}/**",
"**/{vs,sql}/workbench/{common,browser,node,electron-sandbox,electron-browser}/**",
"vs/workbench/contrib/files/common/editors/fileEditorInput",
"**/{vs,sql}/workbench/services/**",
"**/{vs,sql}/workbench/test/**",
@@ -486,7 +542,9 @@
"**/{vs,sql}/workbench/api/**/common/**",
"vs/workbench/contrib/files/common/editors/fileEditorInput", // this should be fine, it only accesses constants from contrib
"vscode-textmate",
"vscode-oniguruma"
"vscode-oniguruma",
"iconv-lite-umd",
"semver-umd"
]
},
{
@@ -537,16 +595,30 @@
"*" // node modules
]
},
{
"target": "**/{vs,sql}/workbench/services/**/electron-sandbox/**",
"restrictions": [
"vs/nls",
"vs/css!./**/*",
"**/{vs,sql}/base/**/{common,browser,worker,electron-sandbox}/**",
"**/{vs,sql}/platform/**/{common,browser,electron-sandbox}/**",
"**/{vs,sql}/editor/**",
"**/{vs,sql}/workbench/{common,browser,electron-sandbox}/**",
"**/{vs,sql}/workbench/api/{common,browser,electron-sandbox}/**",
"**/{vs,sql}/workbench/services/**/{common,browser,electron-sandbox}/**"
]
},
{
"target": "**/{vs,sql}/workbench/services/**/electron-browser/**",
"restrictions": [
"vs/nls",
"vs/css!./**/*",
"**/{vs,sql}/base/**/{common,browser,worker,node,electron-browser}/**",
"**/{vs,sql}/platform/**/{common,browser,node,electron-browser}/**",
"**/{vs,sql}/base/**/{common,browser,worker,node,electron-sandbox,electron-browser}/**",
"**/{vs,sql}/platform/**/{common,browser,node,electron-sandbox,electron-browser}/**",
"**/{vs,sql}/editor/**",
"**/{vs,sql}/workbench/{common,browser,node,electron-browser,api}/**",
"**/{vs,sql}/workbench/services/**/{common,browser,node,electron-browser}/**",
"**/{vs,sql}/workbench/{common,browser,node,electron-sandbox,electron-browser}/**",
"**/{vs,sql}/workbench/api/{common,browser,node,electron-sandbox,electron-browser}/**",
"**/{vs,sql}/workbench/services/**/{common,browser,node,electron-sandbox,electron-browser}/**",
"*" // node modules
]
},
@@ -559,7 +631,7 @@
"**/{vs,sql}/base/**",
"**/{vs,sql}/platform/**",
"**/{vs,sql}/editor/**",
"**/{vs,sql}/workbench/{common,browser,node,electron-browser}/**",
"**/{vs,sql}/workbench/{common,browser,node,electron-sandbox,electron-browser}/**",
"**/{vs,sql}/workbench/services/**",
"**/{vs,sql}/workbench/contrib/**",
"**/{vs,sql}/workbench/test/**",
@@ -610,6 +682,20 @@
"**/{vs,sql}/workbench/services/**/{common,browser}/**"
]
},
{
"target": "**/{vs,sql}/workbench/contrib/notebook/common/**",
"restrictions": [
"vs/nls",
"vs/css!./**/*",
"**/{vs,sql}/base/**/{common,worker}/**",
"**/{vs,sql}/platform/**/common/**",
"**/{vs,sql}/editor/**",
"**/{vs,sql}/workbench/common/**",
"**/{vs,sql}/workbench/api/common/**",
"**/{vs,sql}/workbench/services/**/common/**",
"**/{vs,sql}/workbench/contrib/**/common/**"
]
},
{
"target": "**/{vs,sql}/workbench/contrib/**/common/**",
"restrictions": [
@@ -645,7 +731,9 @@
"chart.js",
"plotly.js-dist-min",
"angular2-grid",
"html-query-plan"
"html-query-plan",
"turndown",
"mark.js"
]
},
{
@@ -663,20 +751,47 @@
"*" // node modules
]
},
{
"target": "**/{vs,sql}/workbench/contrib/**/electron-sandbox/**",
"restrictions": [
"vs/nls",
"vs/css!./**/*",
"**/{vs,sql}/base/**/{common,browser,worker,electron-sandbox}/**",
"**/{vs,sql}/platform/**/{common,browser,electron-sandbox}/**",
"**/{vs,sql}/editor/**",
"**/{vs,sql}/workbench/{common,browser,electron-sandbox}/**",
"**/{vs,sql}/workbench/api/{common,browser,electron-sandbox}/**",
"**/{vs,sql}/workbench/services/**/{common,browser,electron-sandbox}/**",
"**/{vs,sql}/workbench/contrib/**/{common,browser,electron-sandbox}/**"
]
},
{
"target": "**/{vs,sql}/workbench/contrib/**/electron-browser/**",
"restrictions": [
"vs/nls",
"vs/css!./**/*",
"**/{vs,sql}/base/**/{common,browser,worker,node,electron-browser}/**",
"**/{vs,sql}/platform/**/{common,browser,node,electron-browser}/**",
"**/{vs,sql}/base/**/{common,browser,worker,node,electron-sandbox,electron-browser}/**",
"**/{vs,sql}/platform/**/{common,browser,node,electron-sandbox,electron-browser}/**",
"**/{vs,sql}/editor/**",
"**/{vs,sql}/workbench/{common,browser,node,electron-browser,api}/**",
"**/{vs,sql}/workbench/services/**/{common,browser,node,electron-browser}/**",
"**/{vs,sql}/workbench/contrib/**/{common,browser,node,electron-browser}/**",
"**/{vs,sql}/workbench/{common,browser,node,electron-sandbox,electron-browser}/**",
"**/{vs,sql}/workbench/api/{common,browser,node,electron-sandbox,electron-browser}/**",
"**/{vs,sql}/workbench/services/**/{common,browser,node,electron-sandbox,electron-browser}/**",
"**/{vs,sql}/workbench/contrib/**/{common,browser,node,electron-sandbox,electron-browser}/**",
"*" // node modules
]
},
{
"target": "**/{vs,sql}/code/browser/**",
"restrictions": [
"vs/nls",
"vs/css!./**/*",
"**/{vs,sql}/base/**/{common,browser}/**",
"**/{vs,sql}/base/parts/**/{common,browser}/**",
"**/{vs,sql}/platform/**/{common,browser}/**",
"**/{vs,sql}/code/**/{common,browser}/**",
"**/{vs,sql}/workbench/workbench.web.api"
]
},
{
"target": "**/{vs,sql}/code/node/**",
"restrictions": [
@@ -693,10 +808,10 @@
"restrictions": [
"vs/nls",
"vs/css!./**/*",
"**/{vs,sql}/base/**/{common,browser,node,electron-browser}/**",
"**/{vs,sql}/base/parts/**/{common,browser,node,electron-browser}/**",
"**/{vs,sql}/platform/**/{common,browser,node,electron-browser}/**",
"**/{vs,sql}/code/**/{common,browser,node,electron-browser}/**",
"**/{vs,sql}/base/**/{common,browser,node,electron-sandbox,electron-browser}/**",
"**/{vs,sql}/base/parts/**/{common,browser,node,electron-sandbox,electron-browser}/**",
"**/{vs,sql}/platform/**/{common,browser,node,electron-sandbox,electron-browser}/**",
"**/{vs,sql}/code/**/{common,browser,node,electron-sandbox,electron-browser}/**",
"*" // node modules
]
},
@@ -724,6 +839,66 @@
"*" // node modules
]
},
{
"target": "**/src/{vs,sql}/workbench/workbench.common.main.ts",
"restrictions": [
"vs/nls",
"**/{vs,sql}/base/**/{common,browser}/**",
"**/{vs,sql}/base/parts/**/{common,browser}/**",
"**/{vs,sql}/platform/**/{common,browser}/**",
"**/{vs,sql}/editor/**",
"**/{vs,sql}/workbench/**/{common,browser}/**"
]
},
{
"target": "**/src/{vs,sql}/workbench/workbench.web.main.ts",
"restrictions": [
"vs/nls",
"**/{vs,sql}/base/**/{common,browser}/**",
"**/{vs,sql}/base/parts/**/{common,browser}/**",
"**/{vs,sql}/platform/**/{common,browser}/**",
"**/{vs,sql}/editor/**",
"**/{vs,sql}/workbench/**/{common,browser}/**",
"**/{vs,sql}/workbench/workbench.common.main"
]
},
{
"target": "**/src/{vs,sql}/workbench/workbench.web.api.ts",
"restrictions": [
"vs/nls",
"**/{vs,sql}/base/**/{common,browser}/**",
"**/{vs,sql}/base/parts/**/{common,browser}/**",
"**/{vs,sql}/platform/**/{common,browser}/**",
"**/{vs,sql}/editor/**",
"**/{vs,sql}/workbench/**/{common,browser}/**",
"**/{vs,sql}/workbench/workbench.web.main"
]
},
{
"target": "**/src/{vs,sql}/workbench/workbench.sandbox.main.ts",
"restrictions": [
"vs/nls",
"**/{vs,sql}/base/**/{common,browser,electron-sandbox}/**",
"**/{vs,sql}/base/parts/**/{common,browser,electron-sandbox}/**",
"**/{vs,sql}/platform/**/{common,browser,electron-sandbox}/**",
"**/{vs,sql}/editor/**",
"**/{vs,sql}/workbench/**/{common,browser,electron-sandbox}/**",
"**/{vs,sql}/workbench/workbench.common.main"
]
},
{
"target": "**/src/{vs,sql}/workbench/workbench.desktop.main.ts",
"restrictions": [
"vs/nls",
"**/{vs,sql}/base/**/{common,browser,node,electron-sandbox,electron-browser}/**",
"**/{vs,sql}/base/parts/**/{common,browser,node,electron-sandbox,electron-browser}/**",
"**/{vs,sql}/platform/**/{common,browser,node,electron-sandbox,electron-browser}/**",
"**/{vs,sql}/editor/**",
"**/{vs,sql}/workbench/**/{common,browser,node,electron-sandbox,electron-browser}/**",
"**/{vs,sql}/workbench/workbench.common.main",
"**/{vs,sql}/workbench/workbench.sandbox.main"
]
},
{
"target": "**/extensions/**",
"restrictions": "**/*"

View File

@@ -2,7 +2,7 @@
* Read our Pull Request guidelines:
https://github.com/Microsoft/azuredatastudio/wiki/How-to-Contribute#pull-requests.
* Associate an issue with the Pull Request.
* Ensure that the code is up-to-date with the `master` branch.
* Ensure that the code is up-to-date with the `main` branch.
* Include a description of the proposed changes and how to test them.
-->

View File

@@ -3,11 +3,11 @@ name: CI
on:
push:
branches:
- master
- main
- release/*
pull_request:
branches:
- master
- main
- release/*
jobs:
@@ -17,7 +17,7 @@ jobs:
CHILD_CONCURRENCY: "1"
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v2.2.0
# TODO: rename azure-pipelines/linux/xvfb.init to github-actions
- run: |
sudo apt-get update
@@ -72,7 +72,7 @@ jobs:
CHILD_CONCURRENCY: "1"
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v2.2.0
- uses: actions/setup-node@v1
with:
node-version: 10
@@ -108,7 +108,7 @@ jobs:
CHILD_CONCURRENCY: "1"
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v2.2.0
- uses: actions/setup-node@v1
with:
node-version: 10
@@ -141,7 +141,7 @@ jobs:
# CHILD_CONCURRENCY: "1"
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# steps:
# - uses: actions/checkout@v1
# - uses: actions/checkout@v2.2.0
# # TODO: rename azure-pipelines/linux/xvfb.init to github-actions
# - run: |
# sudo apt-get update

46
.github/workflows/codeql.yml vendored Normal file
View File

@@ -0,0 +1,46 @@
name: "Code Scanning - Action"
on:
push:
schedule:
- cron: '0 0 * * 0'
jobs:
CodeQL-Build:
strategy:
fail-fast: false
# CodeQL runs on ubuntu-latest, windows-latest, and macos-latest
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
# Override language selection by uncommenting this and choosing your languages
# with:
# languages: go, javascript, csharp, python, cpp, java
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below).
- name: Autobuild
uses: github/codeql-action/autobuild@v1
# Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
#- run: |
# make bootstrap
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1

View File

@@ -8,10 +8,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout Actions
uses: actions/checkout@v2
uses: actions/checkout@v2.2.0
with:
repository: 'microsoft/azuredatastudio'
ref: master
ref: main
path: ./actions
- name: Install Actions
run: npm install --production --prefix ./actions/build/actions

View File

@@ -12,7 +12,7 @@ jobs:
uses: actions/checkout@v2
with:
repository: 'microsoft/azuredatastudio'
ref: master
ref: main
path: ./actions
- name: Install Actions
run: npm install --production --prefix ./actions/build/actions

1
.gitignore vendored
View File

@@ -24,6 +24,7 @@ out-vscode-reh-web-min/
out-vscode-reh-web-pkg/
out-vscode-web/
out-vscode-web-min/
out-vscode-web-pkg/
src/vs/server
resources/server
build/node_modules

70
.vscode/launch.json vendored
View File

@@ -19,16 +19,15 @@
"timeout": 30000,
"port": 5870,
"outFiles": [
"${workspaceFolder}/out/**/*.js"
],
"presentation": {
"hidden": true
}
"${workspaceFolder}/out/**/*.js",
"${workspaceFolder}/extensions/*/out/**/*.js"
]
},
{
"type": "pwa-chrome",
"request": "attach",
"name": "Attach to Shared Process",
"timeout": 30000,
"port": 9222,
"urlFilter": "*sharedProcess.html*",
"presentation": {
@@ -60,6 +59,7 @@
"type": "node",
"request": "attach",
"name": "Attach to Main Process",
"timeout": 30000,
"port": 5875,
"outFiles": [
"${workspaceFolder}/out/**/*.js"
@@ -69,10 +69,9 @@
}
},
{
"type": "pwa-chrome",
"type": "chrome",
"request": "attach",
"name": "Attach to azuredatastudio",
"timeout": 50000,
"port": 9222
},
{
@@ -91,55 +90,32 @@
"port": 9222,
"timeout": 20000,
"env": {
"VSCODE_EXTHOST_WILL_SEND_SOCKET": null
"VSCODE_EXTHOST_WILL_SEND_SOCKET": null,
"VSCODE_SKIP_PRELAUNCH": "1"
},
"breakOnLoad": false,
"cleanUp": "wholeBrowser",
"urlFilter": "*workbench.html*",
"runtimeArgs": [
"--inspect=5875",
"--no-cached-data",
],
"webRoot": "${workspaceFolder}",
// Settings for js-debug:
"cascadeTerminateToConfigurations": [
"Attach to Extension Host"
],
"userDataDir": false,
"pauseForSourceMap": false,
"outFiles": [
"${workspaceFolder}/out/**/*.js"
],
"browserLaunchLocation": "workspace"
"browserLaunchLocation": "workspace",
"preLaunchTask": "Ensure Prelaunch Dependencies",
},
{
"type": "chrome",
"request": "launch",
"name": "Launch azuredatastudio with new notebook command",
"windows": {
"runtimeExecutable": "${workspaceFolder}/scripts/sql.bat"
},
"osx": {
"runtimeExecutable": "${workspaceFolder}/scripts/sql.sh"
},
"linux": {
"runtimeExecutable": "${workspaceFolder}/scripts/sql.sh"
},
"urlFilter": "*index.html*",
"runtimeArgs": [
"--inspect=5875",
"--command=notebook.command.new"
],
"skipFiles": [
"**/winjs*.js"
],
"webRoot": "${workspaceFolder}",
"timeout": 45000
},
{
"type": "chrome",
"type": "node",
"request": "launch",
"name": "Launch ADS (Web) (TBD)",
"runtimeExecutable": "yarn",
"runtimeArgs": [
"web"
],
"program": "${workspaceFolder}/resources/web/code-web.js",
"presentation": {
"group": "0_vscode",
"order": 2
@@ -175,6 +151,18 @@
"order": 3
}
},
{
"type": "pwa-msedge",
"request": "launch",
"name": "VS Code (Web, Edge)",
"url": "http://localhost:8080",
"pauseForSourceMap": false,
"preLaunchTask": "Run web",
"presentation": {
"group": "0_vscode",
"order": 3
}
},
{
"type": "node",
"request": "launch",
@@ -281,12 +269,14 @@
},
{
"name": "Azure Data Studio",
"stopAll": true,
"configurations": [
"Launch azuredatastudio",
"Attach to Main Process",
"Attach to Extension Host",
"Attach to Shared Process",
],
"preLaunchTask": "Ensure Prelaunch Dependencies",
"presentation": {
"group": "0_vscode",
"order": 1

38
.vscode/notebooks/api.github-issues vendored Normal file
View File

@@ -0,0 +1,38 @@
[
{
"kind": 1,
"language": "markdown",
"value": "#### Config",
"editable": true
},
{
"kind": 2,
"language": "github-issues",
"value": "$repo=repo:microsoft/vscode\n$milestone=milestone:\"August 2020\"",
"editable": true
},
{
"kind": 1,
"language": "markdown",
"value": "### Finalization",
"editable": true
},
{
"kind": 2,
"language": "github-issues",
"value": "$repo $milestone label:api-finalization",
"editable": true
},
{
"kind": 1,
"language": "markdown",
"value": "### Proposals",
"editable": true
},
{
"kind": 2,
"language": "github-issues",
"value": "$repo $milestone is:open label:api-proposal ",
"editable": true
}
]

50
.vscode/notebooks/inbox.github-issues vendored Normal file
View File

@@ -0,0 +1,50 @@
[
{
"kind": 1,
"language": "markdown",
"value": "##### `Config`: defines the inbox query",
"editable": true
},
{
"kind": 2,
"language": "github-issues",
"value": "$inbox=repo:microsoft/vscode is:open no:assignee -label:feature-request -label:testplan-item -label:plan-item ",
"editable": true
},
{
"kind": 1,
"language": "markdown",
"value": "## Inbox tracking and Issue triage",
"editable": true
},
{
"kind": 1,
"language": "markdown",
"value": "New issues or pull requests submitted by the community are initially triaged by an [automatic classification bot](https://github.com/microsoft/vscode-github-triage-actions/tree/master/classifier-deep). Issues that the bot does not correctly triage are then triaged by a team member. The team rotates the inbox tracker on a weekly basis.\n\nA [mirror](https://github.com/JacksonKearl/testissues/issues) of the VS Code issue stream is available with details about how the bot classifies issues, including feature-area classifications and confidence ratings. Per-category confidence thresholds and feature-area ownership data is maintained in [.github/classifier.json](https://github.com/microsoft/vscode/blob/master/.github/classifier.json). \n\n💡 The bot is being run through a GitHub action that runs every 30 minutes. Give the bot the opportunity to classify an issue before doing it manually.\n\n### Inbox Tracking\n\nThe inbox tracker is responsible for the [global inbox](https://github.com/Microsoft/vscode/issues?utf8=%E2%9C%93&q=is%3Aopen+no%3Aassignee+-label%3Afeature-request+-label%3Atestplan-item+-label%3Aplan-item) containing all **open issues and pull requests** that\n- are neither **feature requests** nor **test plan items** nor **plan items** and\n- have **no owner assignment**.\n\nThe **inbox tracker** may perform any step described in our [issue triaging documentation](https://github.com/microsoft/vscode/wiki/Issues-Triaging) but its main responsibility is to route issues to the actual feature area owner.\n\nFeature area owners track the **feature area inbox** containing all **open issues and pull requests** that\n- are personally assigned to them and are not assigned to any milestone\n- are labeled with their feature area label and are not assigned to any milestone.\nThis secondary triage may involve any of the steps described in our [issue triaging documentation](https://github.com/microsoft/vscode/wiki/Issues-Triaging) and results in a fully triaged or closed issue.\n\nThe [github triage extension](https://github.com/microsoft/vscode-github-triage-extension) can be used to assist with triaging — it provides a \"Command Palette\"-style list of triaging actions like assignment, labeling, and triggers for various bot actions.",
"editable": true
},
{
"kind": 1,
"language": "markdown",
"value": "## Triage Inbox\n\nAll inbox issues but not those that need more information. These issues need to be triaged, e.g assigned to a user or ask for more information",
"editable": true
},
{
"kind": 2,
"language": "github-issues",
"value": "$inbox -label:\"needs more info\" -label:emmet",
"editable": true
},
{
"kind": 1,
"language": "markdown",
"value": "## Inbox\n\nAll issues that have no assignee and that have neither **feature requests** nor **test plan items** nor **plan items**.",
"editable": true
},
{
"kind": 2,
"language": "github-issues",
"value": "$inbox -label:emmet",
"editable": true
}
]

98
.vscode/notebooks/my-work.github-issues vendored Normal file
View File

@@ -0,0 +1,98 @@
[
{
"kind": 1,
"language": "markdown",
"value": "##### `Config`: This should be changed every month/milestone",
"editable": true
},
{
"kind": 2,
"language": "github-issues",
"value": "// list of repos we work in\n$repos=repo:microsoft/vscode repo:microsoft/vscode-remote-release repo:microsoft/vscode-js-debug repo:microsoft/vscode-pull-request-github repo:microsoft/vscode-github-issue-notebooks\n\n// current milestone name\n$milestone=milestone:\"August 2020\"",
"editable": true
},
{
"kind": 1,
"language": "github-issues",
"value": "## Milestone Work",
"editable": true
},
{
"kind": 2,
"language": "github-issues",
"value": "$repos $milestone assignee:@me is:open",
"editable": false
},
{
"kind": 1,
"language": "github-issues",
"value": "## Bugs, Debt, Features...",
"editable": true
},
{
"kind": 1,
"language": "markdown",
"value": "#### My Bugs",
"editable": true
},
{
"kind": 2,
"language": "github-issues",
"value": "$repos assignee:@me is:open label:bug",
"editable": true
},
{
"kind": 1,
"language": "markdown",
"value": "#### Debt & Engineering",
"editable": true
},
{
"kind": 2,
"language": "github-issues",
"value": "$repos assignee:@me is:open label:debt OR $repos assignee:@me is:open label:engineering",
"editable": true
},
{
"kind": 1,
"language": "markdown",
"value": "#### Performance 🐌 🔜 🏎",
"editable": true
},
{
"kind": 2,
"language": "github-issues",
"value": "$repos assignee:@me is:open label:perf OR $repos assignee:@me is:open label:perf-startup OR $repos assignee:@me is:open label:perf-bloat OR $repos assignee:@me is:open label:freeze-slow-crash-leak",
"editable": true
},
{
"kind": 1,
"language": "markdown",
"value": "#### Feature Requests",
"editable": true
},
{
"kind": 2,
"language": "github-issues",
"value": "$repos assignee:@me is:open label:feature-request milestone:Backlog sort:reactions-+1-desc",
"editable": true
},
{
"kind": 2,
"language": "github-issues",
"value": "$repos assignee:@me is:open milestone:\"Backlog Candidates\"",
"editable": false
},
{
"kind": 1,
"language": "markdown",
"value": "#### Not Actionable",
"editable": true
},
{
"kind": 2,
"language": "github-issues",
"value": "$repos assignee:@me is:open label:\"needs more info\"",
"editable": false
}
]

View File

@@ -0,0 +1,56 @@
[
{
"kind": 1,
"language": "markdown",
"value": "### Bug Verification Queries\n\nBefore shipping we want to verify _all_ bugs. That means when a bug is fixed we check that the fix actually works. It's always best to start with bugs that you have filed and the proceed with bugs that have been filed from users outside the development team. ",
"editable": true
},
{
"kind": 1,
"language": "markdown",
"value": "#### Config: update list of `repos` and the `milestone`",
"editable": true
},
{
"kind": 2,
"language": "github-issues",
"value": "$repos=repo:microsoft/vscode repo:microsoft/vscode-internalbacklog repo:microsoft/vscode-remote-release repo:microsoft/vscode-js-debug repo:microsoft/vscode-pull-request-github repo:microsoft/vscode-github-issue-notebooks \n$milestone=milestone:\"July 2020\"",
"editable": true
},
{
"kind": 1,
"language": "markdown",
"value": "### Bugs You Filed",
"editable": true
},
{
"kind": 2,
"language": "github-issues",
"value": "$repos $milestone is:closed -assignee:@me label:bug -label:verified -label:*duplicate author:@me",
"editable": false
},
{
"kind": 1,
"language": "markdown",
"value": "### Bugs From Outside",
"editable": true
},
{
"kind": 2,
"language": "github-issues",
"value": "$repos $milestone is:closed -assignee:@me label:bug -label:verified -label:*duplicate -author:@me -assignee:@me label:bug -label:verified -author:@me -author:aeschli -author:alexdima -author:alexr00 -author:bpasero -author:chrisdias -author:chrmarti -author:connor4312 -author:dbaeumer -author:deepak1556 -author:eamodio -author:egamma -author:gregvanl -author:isidorn -author:JacksonKearl -author:joaomoreno -author:jrieken -author:lramos15 -author:lszomoru -author:misolori -author:mjbvz -author:rebornix -author:RMacfarlane -author:roblourens -author:sana-ajani -author:sandy081 -author:sbatten -author:Tyriar -author:weinand",
"editable": false
},
{
"kind": 1,
"language": "markdown",
"value": "### All",
"editable": true
},
{
"kind": 2,
"language": "github-issues",
"value": "$repos $milestone is:closed -assignee:@me label:bug -label:verified -label:*duplicate",
"editable": false
}
]

View File

@@ -2,7 +2,7 @@
# Flags: CaseSensitive WordMatch
# ContextLines: 2
16 results - 5 files
14 results - 4 files
src/vs/base/browser/dom.ts:
81 };
@@ -34,24 +34,11 @@ src/vs/base/common/arrays.ts:
420 */
421 export function first<T>(array: ReadonlyArray<T>, fn: (item: T) => boolean, notFoundValue: T): T;
560
561 /**
562: * @deprecated ES6: use `Array.find`
563 */
564 export function find<T>(arr: ArrayLike<T>, predicate: (value: T, index: number, arr: ArrayLike<T>) => any): T | undefined {
src/vs/base/common/map.ts:
11
12 /**
13: * @deprecated ES6: use `[...SetOrMap.values()]`
14 */
15 export function values<V = any>(set: Set<V>): V[];
22
23 /**
24: * @deprecated ES6: use `[...map.keys()]`
25 */
26 export function keys<K, V>(map: Map<K, V>): K[] {
568
569 /**
570: * @deprecated ES6: use `Array.find`
571 */
572 export function find<T>(arr: ArrayLike<T>, predicate: (value: T, index: number, arr: ArrayLike<T>) => any): T | undefined {
src/vs/base/common/objects.ts:
115
@@ -79,8 +66,8 @@ src/vs/base/common/strings.ts:
170 */
171 export function endsWith(haystack: string, needle: string): boolean {
853
854 /**
855: * @deprecated ES6
856 */
857 export function repeat(s: string, count: number): string {
861
862 /**
863: * @deprecated ES6
864 */
865 export function repeat(s: string, count: number): string {

View File

@@ -26,6 +26,7 @@
"test/automation/out/**": true,
"test/integration/browser/out/**": true,
"src/vs/base/test/node/uri.test.data.txt": true,
"src/vs/workbench/test/browser/api/extHostDocumentData.test.perf-data.ts": true,
"src/vs/server": false
},
"lcov.path": [
@@ -72,7 +73,7 @@
},
"gulp.autoDetect": "off",
"files.insertFinalNewline": true,
"[typescript]": {
"[typescript]": {
"editor.defaultFormatter": "vscode.typescript-language-features"
},
"typescript.tsc.autoDetect": "off"

128
.vscode/tasks.json vendored
View File

@@ -3,12 +3,8 @@
"tasks": [
{
"type": "npm",
"script": "watchd",
"label": "Build VS Code",
"group": {
"kind": "build",
"isDefault": true
},
"script": "watch-clientd",
"label": "Build VS Code Core",
"isBackground": true,
"presentation": {
"reveal": "never"
@@ -31,6 +27,71 @@
}
}
},
{
"type": "npm",
"script": "watch-extensionsd",
"label": "Build VS Code Extensions",
"isBackground": true,
"presentation": {
"reveal": "never"
},
"problemMatcher": {
"owner": "typescript",
"applyTo": "closedDocuments",
"fileLocation": [
"absolute"
],
"pattern": {
"regexp": "Error: ([^(]+)\\((\\d+|\\d+,\\d+|\\d+,\\d+,\\d+,\\d+)\\): (.*)$",
"file": 1,
"location": 2,
"message": 3
},
"background": {
"beginsPattern": "Starting compilation",
"endsPattern": "Finished compilation"
}
}
},
{
"label": "Build VS Code",
"dependsOn": [
"Build VS Code Core",
"Build VS Code Extensions"
],
"group": {
"kind": "build",
"isDefault": true
}
},
{
"type": "npm",
"script": "kill-watch-clientd",
"label": "Kill Build VS Code Core",
"group": "build",
"presentation": {
"reveal": "never"
},
"problemMatcher": "$tsc"
},
{
"type": "npm",
"script": "kill-watch-extensionsd",
"label": "Kill Build VS Code Extensions",
"group": "build",
"presentation": {
"reveal": "never"
},
"problemMatcher": "$tsc"
},
{
"label": "Kill Build VS Code",
"dependsOn": [
"Kill Build VS Code Core",
"Kill Build VS Code Extensions"
],
"group": "build"
},
{
"type": "npm",
"script": "strict-vscode-watch",
@@ -47,8 +108,35 @@
},
{
"type": "npm",
"script": "kill-watchd",
"label": "Kill Build VS Code",
"script": "watch-webd",
"label": "Build Web Extensions",
"group": "build",
"isBackground": true,
"presentation": {
"reveal": "never"
},
"problemMatcher": {
"owner": "typescript",
"applyTo": "closedDocuments",
"fileLocation": [
"absolute"
],
"pattern": {
"regexp": "Error: ([^(]+)\\((\\d+|\\d+,\\d+|\\d+,\\d+,\\d+,\\d+)\\): (.*)$",
"file": 1,
"location": 2,
"message": 3
},
"background": {
"beginsPattern": "Starting compilation",
"endsPattern": "Finished compilation"
}
}
},
{
"type": "npm",
"script": "kill-watch-webd",
"label": "Kill Build Web Extensions",
"group": "build",
"presentation": {
"reveal": "never"
@@ -89,7 +177,7 @@
},
{
"type": "shell",
"command": "yarn web -- --no-launch",
"command": "yarn web --no-launch",
"label": "Run web",
"isBackground": true,
"problemMatcher": {
@@ -112,6 +200,28 @@
"source": "eslint",
"base": "$eslint-stylish"
}
},
{
"type": "shell",
"command": "node build/lib/preLaunch.js",
"label": "Ensure Prelaunch Dependencies",
"presentation": {
"reveal": "silent"
}
},
{
"type": "npm",
"script": "tsec-compile-check",
"problemMatcher": [
{
"base": "$tsc",
"applyTo": "allDocuments",
"owner": "tsec"
},
],
"group": "build",
"label": "npm: tsec-compile-check",
"detail": "node_modules/tsec/bin/tsec -p src/tsconfig.json --noEmit"
}
]
}

View File

@@ -1,3 +1,3 @@
disturl "https://atom.io/download/electron"
target "7.2.4"
target "9.2.1"
runtime "electron"

View File

@@ -1,5 +1,41 @@
# Change Log
## Version 1.21.0
* Release date: August 12, 2020
* Release status: General Availability
* New Notebook Features
* Move cell locations changd
* Added action to convert cells to Text Cell or Code cell
* Jupyter Books picker to open Jupyter Books directly from Github
* Search bar added to Notebooks Viewlet for searching through Jupyter Books
* Address issues in [August 2020 Milestone](https://github.com/microsoft/azuredatastudio/milestone/59?closed=1)
## Version 1.20.1
* Release date: July 17, 2020
* Release status: General Availability
* Fix bug #11372 Object Explorer drag-and-drop table incorrectly wraps table names [#11372](https://github.com/microsoft/azuredatastudio/issues/11372)
* Fix bug #11356 Dark theme is now the default theme [#11356](https://github.com/microsoft/azuredatastudio/issues/11356)
* Known Issues:
* Some users have reported connection errors from the new Microsoft.Data.SqlClient v2.0.0 included in this release. Users have found [following these instructions](https://github.com/microsoft/azuredatastudio/issues/11367#issuecomment-659614111) to successfully connect. This issue was caused by a client driver update which fixed an issue where TLS encryption wasn't enforced correctly. See https://github.com/dotnet/SqlClient/blob/master/release-notes/2.0/2.0.0.md#breaking-changes-1 and https://docs.microsoft.com/en-us/sql/relational-databases/native-client/features/using-encryption-without-validation for more information.
## Version 1.20.0
* Release date: July 15, 2020
* Release status: General Availability
* Feature Tour
* New Notebook Features
* Header support in Markdown Toolbar
* Side-by-side Markdown preview in Text Cells
* Drag and drop columns and tables into Query Editor
* Azure Account icon added to Activity Bar
* Address issues in [July 2020 Milestone](https://github.com/microsoft/azuredatastudio/milestone/57?closed=1)
* Bug fixes
## Version 1.19.0
* Release date: June 15, 2020
* Release status: General Availability
* Address issues in https://github.com/microsoft/azuredatastudio/milestone/55?closed=1
* Bug fixes
## Version 1.18.1
* Release date: May 27, 2020
* Release status: General Availability

View File

@@ -1,7 +1,7 @@
# Azure Data Studio
[![Join the chat at https://gitter.im/Microsoft/sqlopsstudio](https://badges.gitter.im/Microsoft/sqlopsstudio.svg)](https://gitter.im/Microsoft/sqlopsstudio?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[![Build Status](https://dev.azure.com/azuredatastudio/azuredatastudio/_apis/build/status/Azure%20Data%20Studio%20CI?branchName=master)](https://dev.azure.com/azuredatastudio/azuredatastudio/_build/latest?definitionId=4&branchName=master)
[![Build Status](https://dev.azure.com/azuredatastudio/azuredatastudio/_apis/build/status/Azure%20Data%20Studio%20CI?branchName=main)](https://dev.azure.com/azuredatastudio/azuredatastudio/_build/latest?definitionId=4&branchName=main)
[![Twitter Follow](https://img.shields.io/twitter/follow/azuredatastudio?style=social)](https://twitter.com/azuredatastudio)
Azure Data Studio is a data management tool that enables you to work with SQL Server, Azure SQL DB and SQL DW from Windows, macOS and Linux.
@@ -21,14 +21,14 @@ Azure Data Studio is a data management tool that enables you to work with SQL Se
Go to our [download page](https://aka.ms/azuredatastudio) for more specific instructions.
## Try out the latest insiders build from `master`:
## Try out the latest insiders build from `main`:
- [Windows User Installer - **Insiders build**](https://azuredatastudio-update.azurewebsites.net/latest/win32-x64-user/insider)
- [Windows System Installer - **Insiders build**](https://azuredatastudio-update.azurewebsites.net/latest/win32-x64/insider)
- [Windows ZIP - **Insiders build**](https://azuredatastudio-update.azurewebsites.net/latest/win32-x64-archive/insider)
- [macOS ZIP - **Insiders build**](https://azuredatastudio-update.azurewebsites.net/latest/darwin/insider)
- [Linux TAR.GZ - **Insiders build**](https://azuredatastudio-update.azurewebsites.net/latest/linux-x64/insider)
See the [change log](https://github.com/Microsoft/azuredatastudio/blob/master/CHANGELOG.md) for additional details of what's in this release.
See the [change log](https://github.com/Microsoft/azuredatastudio/blob/main/CHANGELOG.md) for additional details of what's in this release.
## **Feature Highlights**
@@ -47,7 +47,7 @@ See the [change log](https://github.com/Microsoft/azuredatastudio/blob/master/CH
Here are some of these features in action.
<img src='https://github.com/Microsoft/azuredatastudio/blob/master/docs/overview_screen.jpg' width='800px'>
<img src='https://github.com/Microsoft/azuredatastudio/blob/main/docs/overview_screen.jpg' width='800px'>
## Contributing
If you are interested in fixing issues and contributing directly to the code base,
@@ -121,7 +121,7 @@ We would like to thank all our users who raised issues, and in particular the fo
* olljanat for `Implemented npm version check (#314)`
* Adam Machanic for helping with the `whoisactive` extension
And of course, we'd like to thank the authors of all upstream dependencies. Please see a full list in the [ThirdPartyNotices.txt](https://raw.githubusercontent.com/Microsoft/azuredatastudio/master/ThirdPartyNotices.txt)
And of course, we'd like to thank the authors of all upstream dependencies. Please see a full list in the [ThirdPartyNotices.txt](https://raw.githubusercontent.com/Microsoft/azuredatastudio/main/ThirdPartyNotices.txt)
## License
@@ -129,10 +129,10 @@ Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the [Source EULA](LICENSE.txt).
[win-user]: https://go.microsoft.com/fwlink/?linkid=2127522
[win-system]: https://go.microsoft.com/fwlink/?linkid=2127432
[win-zip]: https://go.microsoft.com/fwlink/?linkid=2127716
[osx-zip]: https://go.microsoft.com/fwlink/?linkid=2127431
[linux-zip]: https://go.microsoft.com/fwlink/?linkid=2127523
[linux-rpm]: https://go.microsoft.com/fwlink/?linkid=2127433
[linux-deb]: https://go.microsoft.com/fwlink/?linkid=2127524
[win-user]: https://go.microsoft.com/fwlink/?linkid=2138608
[win-system]: https://go.microsoft.com/fwlink/?linkid=2138704
[win-zip]: https://go.microsoft.com/fwlink/?linkid=2138705
[osx-zip]: https://go.microsoft.com/fwlink/?linkid=2138609
[linux-zip]: https://go.microsoft.com/fwlink/?linkid=2138706
[linux-rpm]: https://go.microsoft.com/fwlink/?linkid=2138507
[linux-deb]: https://go.microsoft.com/fwlink/?linkid=2138508

View File

@@ -41,6 +41,7 @@ expressly granted herein, whether by implication, estoppel or otherwise.
JupyterLab: https://github.com/jupyterlab/jupyterlab
keytar: https://github.com/atom/node-keytar
make-error: https://github.com/JsCommunity/make-error
mark.js: https://github.com/julmot/mark.js
minimist: https://github.com/substack/minimist
moment: https://github.com/moment/moment
native-keymap: https://github.com/Microsoft/node-native-keymap
@@ -63,6 +64,8 @@ expressly granted herein, whether by implication, estoppel or otherwise.
svg.js: https://github.com/svgdotjs/svg.js
systemjs: https://github.com/systemjs/systemjs
temp-write: https://github.com/sindresorhus/temp-write
turndown: https://github.com/domchristie/turndown
turndown-plugin-gfm: https://github.com/domchristie/turndown-plugin-gfm
underscore: https://github.com/jashkenas/underscore
v8-profiler: https://github.com/node-inspector/v8-profiler
vscode: https://github.com/microsoft/vscode
@@ -72,6 +75,8 @@ expressly granted herein, whether by implication, estoppel or otherwise.
vscode-ripgrep: https://github.com/roblourens/vscode-ripgrep
vscode-textmate: https://github.com/Microsoft/vscode-textmate
winreg: https://github.com/fresc81/node-winreg
xmldom: https://github.com/xmldom/xmldom
xml-formatter: https://github.com/chrisbottin/xml-formatter
xterm: https://github.com/sourcelair/xterm.js
yargs: https://github.com/yargs/yargs
yauzl: https://github.com/thejoshwolfe/yauzl
@@ -1252,6 +1257,32 @@ ISC © Julien Fontanet
=========================================
END OF make-error NOTICES AND INFORMATION
%% mark.js NOTICES AND INFORMATION BEGIN HERE
=========================================
The MIT License (MIT)
Copyright (c) 20142019 Julian Kühnel
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
=========================================
END OF mark.js NOTICES AND INFORMATION
%% minimist NOTICES AND INFORMATION BEGIN HERE
=========================================
This software is released under the MIT license:
@@ -2000,6 +2031,58 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
=========================================
END OF temp-write NOTICES AND INFORMATION
%% turndown NOTICES AND INFORMATION BEGIN HERE
=========================================
MIT License
Copyright (c) 2017 Dom Christie
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
=========================================
END OF turndown NOTICES AND INFORMATION
%% turndown-plugin-gfm NOTICES AND INFORMATION BEGIN HERE
=========================================
MIT License
Copyright (c) 2017 Dom Christie
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
=========================================
END OF turndown-plugin-gfm NOTICES AND INFORMATION
%% underscore NOTICES AND INFORMATION BEGIN HERE
=========================================
Copyright (c) 2009-2017 Jeremy Ashkenas, DocumentCloud and Investigative
@@ -2225,6 +2308,51 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
=========================================
END OF winreg NOTICES AND INFORMATION
%% xmldom NOTICES AND INFORMATION BEGIN HERE
=========================================
The MIT License (MIT)
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in the
Software without restriction, including without limitation the rights to use, copy,
modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
and to permit persons to whom the Software is furnished to do so, subject to the
following conditions:
The above copyright notice and this permission notice shall be included in all copies
or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
=========================================
END OF xmldom NOTICES AND INFORMATION
%% xml-formatter NOTICES AND INFORMATION BEGIN HERE
=========================================
The MIT License (MIT)
Copyright 2019 Chris Bottin (https://github.com/chrisbottin)
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
and associated documentation files (the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
=========================================
END OF xml-formatter NOTICES AND INFORMATION
%% xterm NOTICES AND INFORMATION BEGIN HERE
=========================================
Copyright (c) 2014-2016, SourceLair Private Company (https://www.sourcelair.com)

View File

@@ -1,5 +1,5 @@
trigger:
- master
- main
- release/*
jobs:

27
build/.webignore Normal file
View File

@@ -0,0 +1,27 @@
# cleanup rules for web node modules, .gitignore style
**/*.txt
**/*.json
**/*.md
**/*.d.ts
**/*.js.map
**/LICENSE
**/CONTRIBUTORS
jschardet/index.js
jschardet/src/**
jschardet/dist/jschardet.js
vscode-textmate/webpack.config.js
xterm/src/**
xterm-addon-search/src/**
xterm-addon-search/out/**
xterm-addon-search/fixtures/**
xterm-addon-unicode11/src/**
xterm-addon-unicode11/out/**
xterm-addon-webgl/src/**
xterm-addon-webgl/out/**

View File

@@ -286,9 +286,9 @@ nice-try@^1.0.4:
integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
node-fetch@^2.3.0:
version "2.6.0"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd"
integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==
version "2.6.1"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052"
integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==
npm-run-path@^2.0.0:
version "2.0.2"

View File

@@ -10,10 +10,10 @@ git clone --depth 1 https://github.com/Microsoft/vscode-node-debug2.git
git clone --depth 1 https://github.com/Microsoft/vscode-node-debug.git
git clone --depth 1 https://github.com/Microsoft/vscode-html-languageservice.git
git clone --depth 1 https://github.com/Microsoft/vscode-json-languageservice.git
$BUILD_SOURCESDIRECTORY/build/node_modules/.bin/vscode-telemetry-extractor --sourceDir $BUILD_SOURCESDIRECTORY --excludedDir $BUILD_SOURCESDIRECTORY/extensions --outputDir . --applyEndpoints
$BUILD_SOURCESDIRECTORY/build/node_modules/.bin/vscode-telemetry-extractor --config $BUILD_SOURCESDIRECTORY/build/azure-pipelines/common/telemetry-config.json -o .
node $BUILD_SOURCESDIRECTORY/build/node_modules/.bin/vscode-telemetry-extractor --sourceDir $BUILD_SOURCESDIRECTORY --excludedDir $BUILD_SOURCESDIRECTORY/extensions --outputDir . --applyEndpoints
node $BUILD_SOURCESDIRECTORY/build/node_modules/.bin/vscode-telemetry-extractor --config $BUILD_SOURCESDIRECTORY/build/azure-pipelines/common/telemetry-config.json -o .
mkdir -p $BUILD_SOURCESDIRECTORY/.build/telemetry
mv declarations-resolved.json $BUILD_SOURCESDIRECTORY/.build/telemetry/telemetry-core.json
mv config-resolved.json $BUILD_SOURCESDIRECTORY/.build/telemetry/telemetry-extensions.json
cd ..
rm -rf extraction
rm -rf extraction

View File

@@ -216,10 +216,10 @@ async function publish(commit: string, quality: string, platform: string, type:
console.log('Asset:', JSON.stringify(asset, null, ' '));
// {{SQL CARBON EDIT}}
// Insiders: nightly build from master
// Insiders: nightly build from main
const isReleased = (
(
(quality === 'insider' && /^master$|^refs\/heads\/master$/.test(sourceBranch)) ||
(quality === 'insider' && /^main$|^refs\/heads\/main$/.test(sourceBranch)) ||
(quality === 'rc1' && /^release\/|^refs\/heads\/release\//.test(sourceBranch))
) &&
/Project Collection Service Accounts|Microsoft.VisualStudio.Services.TFS/.test(queuedBy)

View File

@@ -1,228 +0,0 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import * as request from 'request';
import { createReadStream, createWriteStream, unlink, mkdir } from 'fs';
import * as github from 'github-releases';
import { join } from 'path';
import { tmpdir } from 'os';
import { promisify } from 'util';
const BASE_URL = 'https://rink.hockeyapp.net/api/2/';
const HOCKEY_APP_TOKEN_HEADER = 'X-HockeyAppToken';
export interface IVersions {
app_versions: IVersion[];
}
export interface IVersion {
id: number;
version: string;
}
export interface IApplicationAccessor {
accessToken: string;
appId: string;
}
export interface IVersionAccessor extends IApplicationAccessor {
id: string;
}
enum Platform {
WIN_32 = 'win32-ia32',
WIN_64 = 'win32-x64',
LINUX_64 = 'linux-x64',
MAC_OS = 'darwin-x64'
}
function symbolsZipName(platform: Platform, electronVersion: string, insiders: boolean): string {
return `${insiders ? 'insiders' : 'stable'}-symbols-v${electronVersion}-${platform}.zip`;
}
const SEED = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
async function tmpFile(name: string): Promise<string> {
let res = '';
for (let i = 0; i < 8; i++) {
res += SEED.charAt(Math.floor(Math.random() * SEED.length));
}
const tmpParent = join(tmpdir(), res);
await promisify(mkdir)(tmpParent);
return join(tmpParent, name);
}
function getVersions(accessor: IApplicationAccessor): Promise<IVersions> {
return asyncRequest<IVersions>({
url: `${BASE_URL}/apps/${accessor.appId}/app_versions`,
method: 'GET',
headers: {
[HOCKEY_APP_TOKEN_HEADER]: accessor.accessToken
}
});
}
function createVersion(accessor: IApplicationAccessor, version: string): Promise<IVersion> {
return asyncRequest<IVersion>({
url: `${BASE_URL}/apps/${accessor.appId}/app_versions/new`,
method: 'POST',
headers: {
[HOCKEY_APP_TOKEN_HEADER]: accessor.accessToken
},
formData: {
bundle_version: version
}
});
}
function updateVersion(accessor: IVersionAccessor, symbolsPath: string) {
return asyncRequest<IVersions>({
url: `${BASE_URL}/apps/${accessor.appId}/app_versions/${accessor.id}`,
method: 'PUT',
headers: {
[HOCKEY_APP_TOKEN_HEADER]: accessor.accessToken
},
formData: {
dsym: createReadStream(symbolsPath)
}
});
}
function asyncRequest<T>(options: request.UrlOptions & request.CoreOptions): Promise<T> {
return new Promise<T>((resolve, reject) => {
request(options, (error, _response, body) => {
if (error) {
reject(error);
} else {
resolve(JSON.parse(body));
}
});
});
}
function downloadAsset(repository: any, assetName: string, targetPath: string, electronVersion: string) {
return new Promise((resolve, reject) => {
repository.getReleases({ tag_name: `v${electronVersion}` }, (err: any, releases: any) => {
if (err) {
reject(err);
} else {
const asset = releases[0].assets.filter((asset: any) => asset.name === assetName)[0];
if (!asset) {
reject(new Error(`Asset with name ${assetName} not found`));
} else {
repository.downloadAsset(asset, (err: any, reader: any) => {
if (err) {
reject(err);
} else {
const writer = createWriteStream(targetPath);
writer.on('error', reject);
writer.on('close', resolve);
reader.on('error', reject);
reader.pipe(writer);
}
});
}
}
});
});
}
interface IOptions {
repository: string;
platform: Platform;
versions: { code: string; insiders: boolean; electron: string; };
access: { hockeyAppToken: string; hockeyAppId: string; githubToken: string };
}
async function ensureVersionAndSymbols(options: IOptions) {
// Check version does not exist
console.log(`HockeyApp: checking for existing version ${options.versions.code} (${options.platform})`);
const versions = await getVersions({ accessToken: options.access.hockeyAppToken, appId: options.access.hockeyAppId });
if (!Array.isArray(versions.app_versions)) {
throw new Error(`Unexpected response: ${JSON.stringify(versions)}`);
}
if (versions.app_versions.some(v => v.version === options.versions.code)) {
console.log(`HockeyApp: Returning without uploading symbols because version ${options.versions.code} (${options.platform}) was already found`);
return;
}
// Download symbols for platform and electron version
const symbolsName = symbolsZipName(options.platform, options.versions.electron, options.versions.insiders);
const symbolsPath = await tmpFile('symbols.zip');
console.log(`HockeyApp: downloading symbols ${symbolsName} for electron ${options.versions.electron} (${options.platform}) into ${symbolsPath}`);
await downloadAsset(new (github as any)({ repo: options.repository, token: options.access.githubToken }), symbolsName, symbolsPath, options.versions.electron);
// Create version
console.log(`HockeyApp: creating new version ${options.versions.code} (${options.platform})`);
const version = await createVersion({ accessToken: options.access.hockeyAppToken, appId: options.access.hockeyAppId }, options.versions.code);
// Upload symbols
console.log(`HockeyApp: uploading symbols for version ${options.versions.code} (${options.platform})`);
await updateVersion({ id: String(version.id), accessToken: options.access.hockeyAppToken, appId: options.access.hockeyAppId }, symbolsPath);
// Cleanup
await promisify(unlink)(symbolsPath);
}
// Environment
const pakage = require('../../../package.json');
const product = require('../../../product.json');
const repository = product.electronRepository;
const electronVersion = require('../../lib/electron').getElectronVersion();
const insiders = product.quality !== 'stable';
let codeVersion = pakage.version;
if (insiders) {
codeVersion = `${codeVersion}-insider`;
}
const githubToken = process.argv[2];
const hockeyAppToken = process.argv[3];
const is64 = process.argv[4] === 'x64';
const hockeyAppId = process.argv[5];
if (process.argv.length !== 6) {
throw new Error(`HockeyApp: Unexpected number of arguments. Got ${process.argv}`);
}
let platform: Platform;
if (process.platform === 'darwin') {
platform = Platform.MAC_OS;
} else if (process.platform === 'win32') {
platform = is64 ? Platform.WIN_64 : Platform.WIN_32;
} else {
platform = Platform.LINUX_64;
}
// Create version and upload symbols in HockeyApp
if (repository && codeVersion && electronVersion && (product.quality === 'stable' || product.quality === 'insider')) {
ensureVersionAndSymbols({
repository,
platform,
versions: {
code: codeVersion,
insiders,
electron: electronVersion
},
access: {
githubToken,
hockeyAppToken,
hockeyAppId
}
}).then(() => {
console.log('HockeyApp: done');
}).catch(error => {
console.error(`HockeyApp: error ${error} (AppID: ${hockeyAppId})`);
return process.exit(1);
});
} else {
console.log(`HockeyApp: skipping due to unexpected context (repository: ${repository}, codeVersion: ${codeVersion}, electronVersion: ${electronVersion}, quality: ${product.quality})`);
}

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.cs.allow-jit</key>
<true/>
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
<true/>
<key>com.apple.security.cs.allow-dyld-environment-variables</key>
<true/>
</dict>
</plist>

View File

@@ -1,7 +1,7 @@
steps:
- task: NodeTool@0
inputs:
versionSpec: "12.13.0"
versionSpec: "12.14.1"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@3 # {{SQL CARBON EDIT}} update version
inputs:
@@ -29,15 +29,7 @@ steps:
yarn electron x64
displayName: Download Electron
- script: |
yarn gulp hygiene
displayName: Run Hygiene Checks
- script: | # {{SQL CARBON EDIT}} add step
yarn strict-vscode
displayName: Run Strict Null Check.
# - script: | {{SQL CARBON EDIT}} remove step
# - script: | {{SQL CARBON EDIT}} remove editor checks
# yarn monaco-compile-check
# displayName: Run Monaco Editor Checks
@@ -58,19 +50,20 @@ steps:
displayName: Run Unit Tests (Electron)
# - script: | {{SQL CARBON EDIT}} disable
# yarn test-browser --browser chromium --browser webkit --browser firefox
# yarn test-browser --browser chromium --browser webkit --browser firefox --tfs "Browser Unit Tests"
# displayName: Run Unit Tests (Browser)
# - script: | {{SQL CARBON EDIT}} disable
# ./scripts/test-integration.sh --tfs "Integration Tests"
# displayName: Run Integration Tests (Electron)
# - task: PublishPipelineArtifact@0
# inputs:
# artifactName: crash-dump-macos
# targetPath: .build/crashes
# displayName: 'Publish Crash Reports'
# condition: succeededOrFailed()
- task: PublishPipelineArtifact@0
inputs:
artifactName: crash-dump-macos
targetPath: .build/crashes
displayName: 'Publish Crash Reports'
continueOnError: true
condition: failed()
- task: PublishTestResults@2
displayName: Publish Tests Results

View File

@@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
</dict>
</plist>

View File

@@ -21,7 +21,7 @@ steps:
- task: NodeTool@0
inputs:
versionSpec: "12.13.0"
versionSpec: "12.14.1"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
inputs:
@@ -101,7 +101,7 @@ steps:
- script: |
set -e
yarn test-browser --build --browser chromium --browser webkit --browser firefox
yarn test-browser --build --browser chromium --browser webkit --browser firefox --tfs "Browser Unit Tests"
displayName: Run unit tests (Browser)
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
@@ -118,6 +118,13 @@ steps:
displayName: Run integration tests (Electron)
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- script: |
set -e
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-web-darwin" \
./resources/server/test/test-web-integration.sh --browser webkit
displayName: Run integration tests (Browser)
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- script: |
set -e
APP_ROOT=$(agent.builddirectory)/VSCode-darwin
@@ -128,13 +135,6 @@ steps:
displayName: Run remote integration tests (Electron)
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- script: |
set -e
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-web-darwin" \
./resources/server/test/test-web-integration.sh --browser webkit
displayName: Run integration tests (Browser)
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- script: |
set -e
APP_ROOT=$(agent.builddirectory)/VSCode-darwin
@@ -157,24 +157,25 @@ steps:
artifactName: crash-dump-macos
targetPath: .build/crashes
displayName: 'Publish Crash Reports'
continueOnError: true
condition: failed()
- task: PublishTestResults@2
displayName: Publish Tests Results
inputs:
testResultsFiles: '*-results.xml'
searchFolder: '$(Build.ArtifactStagingDirectory)/test-results'
condition: succeededOrFailed()
- script: |
set -e
APP_ROOT=$(agent.builddirectory)/VSCode-darwin
APP_NAME="`ls $APP_ROOT | head -n 1`"
HELPER_APP_NAME="`echo $APP_NAME | sed -e 's/^Visual Studio //;s/\.app$//'`"
APP_FRAMEWORK_PATH="$APP_ROOT/$APP_NAME/Contents/Frameworks"
security create-keychain -p pwd $(agent.tempdirectory)/buildagent.keychain
security default-keychain -s $(agent.tempdirectory)/buildagent.keychain
security unlock-keychain -p pwd $(agent.tempdirectory)/buildagent.keychain
echo "$(macos-developer-certificate)" | base64 -D > $(agent.tempdirectory)/cert.p12
security import $(agent.tempdirectory)/cert.p12 -k $(agent.tempdirectory)/buildagent.keychain -P "$(macos-developer-certificate-key)" -T /usr/bin/codesign
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k pwd $(agent.tempdirectory)/buildagent.keychain
codesign -s 99FM488X57 --deep --force --options runtime --entitlements build/azure-pipelines/darwin/entitlements.plist "$APP_ROOT"/*.app
codesign -s 99FM488X57 --force --options runtime --entitlements build/azure-pipelines/darwin/helper-gpu-entitlements.plist "$APP_FRAMEWORK_PATH/$HELPER_APP_NAME Helper (GPU).app"
codesign -s 99FM488X57 --force --options runtime --entitlements build/azure-pipelines/darwin/helper-plugin-entitlements.plist "$APP_FRAMEWORK_PATH/$HELPER_APP_NAME Helper (Plugin).app"
codesign -s 99FM488X57 --force --options runtime --entitlements build/azure-pipelines/darwin/helper-renderer-entitlements.plist "$APP_FRAMEWORK_PATH/$HELPER_APP_NAME Helper (Renderer).app"
DEBUG=electron-osx-sign* node build/darwin/sign.js
displayName: Set Hardened Entitlements
- script: |
@@ -210,13 +211,6 @@ steps:
zip -d $(agent.builddirectory)/VSCode-darwin.zip "*.pkg"
displayName: Clean Archive
- script: |
set -e
AZURE_DOCUMENTDB_MASTERKEY="$(builds-docdb-key-readwrite)" \
AZURE_STORAGE_ACCESS_KEY_2="$(vscode-storage-key)" \
node build/azure-pipelines/common/createAsset.js darwin-unnotarized archive "VSCode-darwin-$VSCODE_QUALITY.zip" $(agent.builddirectory)/VSCode-darwin.zip
displayName: Publish Unnotarized Build
- script: |
APP_ROOT=$(agent.builddirectory)/VSCode-darwin
APP_NAME="`ls $APP_ROOT | head -n 1`"
@@ -248,16 +242,28 @@ steps:
SessionTimeout: 60
displayName: Notarization
- script: |
set -e
APP_ROOT=$(agent.builddirectory)/VSCode-darwin
APP_NAME="`ls $APP_ROOT | head -n 1`"
"$APP_ROOT/$APP_NAME/Contents/Resources/app/bin/code" --export-default-configuration=.build
displayName: Verify start after signing (export configuration)
- script: |
set -e
VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
AZURE_DOCUMENTDB_MASTERKEY="$(builds-docdb-key-readwrite)" \
AZURE_STORAGE_ACCESS_KEY="$(ticino-storage-key)" \
AZURE_STORAGE_ACCESS_KEY_2="$(vscode-storage-key)" \
VSCODE_HOCKEYAPP_TOKEN="$(vscode-hockeyapp-token)" \
./build/azure-pipelines/darwin/publish.sh
displayName: Publish
- script: |
AZURE_STORAGE_ACCESS_KEY="$(ticino-storage-key)" \
yarn gulp upload-vscode-configuration
displayName: Upload configuration (for Bing settings search)
continueOnError: true
- task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
displayName: 'Component Detection'
continueOnError: true

View File

@@ -17,11 +17,3 @@ node build/azure-pipelines/common/createAsset.js \
archive-unsigned \
"vscode-server-darwin.zip" \
../vscode-server-darwin.zip
# publish hockeyapp symbols
# node build/azure-pipelines/common/symbols.js "$VSCODE_MIXIN_PASSWORD" "$VSCODE_HOCKEYAPP_TOKEN" x64 "$VSCODE_HOCKEYAPP_ID_MACOS"
# Skip hockey app because build failure.
# https://github.com/microsoft/vscode/issues/90491
# upload configuration
yarn gulp upload-vscode-configuration

View File

@@ -0,0 +1,82 @@
steps:
- task: InstallAppleCertificate@2
displayName: 'Install developer certificate'
inputs:
certSecureFile: 'osx_signing_key.p12'
condition: eq(variables['signed'], true)
- task: DownloadBuildArtifacts@0
displayName: 'Download Build Artifacts'
inputs:
downloadType: specific
itemPattern: 'drop/darwin/archive/azuredatastudio-darwin-unsigned.zip'
downloadPath: '$(Build.SourcesDirectory)/.build/'
- script: |
pushd $(Build.SourcesDirectory)/.build/drop/darwin/archive
mv azuredatastudio-darwin-unsigned.zip azuredatastudio-darwin.zip
displayName: 'Rename the file'
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
displayName: 'ESRP CodeSigning'
inputs:
ConnectedServiceName: 'Code Signing'
FolderPath: '$(Build.SourcesDirectory)/.build/drop/darwin/archive'
Pattern: 'azuredatastudio-darwin.zip'
signConfigType: inlineSignParams
inlineOperation: |
[
{
"keyCode": "CP-401337-Apple",
"operationCode": "MacAppDeveloperSign",
"parameters": {
"Hardening": "Enable"
},
"toolName": "sign",
"toolVersion": "1.0"
}
]
SessionTimeout: 90
condition: and(succeeded(), eq(variables['signed'], true))
- script: |
zip -d $(Build.SourcesDirectory)/.build/drop/darwin/archive/azuredatastudio-darwin.zip "*.pkg"
displayName: Clean Archive
condition: and(succeeded(), eq(variables['signed'], true))
- task: EsrpCodeSigning@1
displayName: 'ESRP Notarization'
inputs:
ConnectedServiceName: 'Code Signing'
FolderPath: '$(Build.SourcesDirectory)/.build/drop/darwin/archive'
Pattern: 'azuredatastudio-darwin.zip'
signConfigType: inlineSignParams
inlineOperation: |
[
{
"KeyCode": "CP-401337-Apple",
"OperationCode": "MacAppNotarize",
"Parameters": {
"BundleId": "com.microsoft.azuredatastudio-$(VSCODE_QUALITY)"
},
"ToolName": "sign",
"ToolVersion": "1.0"
}
]
SessionTimeout: 120
condition: and(succeeded(), eq(variables['signed'], true))
- task: CopyFiles@2
displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)/darwin/archive'
inputs:
SourceFolder: '$(Build.SourcesDirectory)/.build/drop/darwin/archive'
TargetFolder: '$(Build.ArtifactStagingDirectory)/darwin/archive'
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: drop'
condition: always()
- task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
displayName: 'Component Detection'
inputs:
failOnAlert: true

View File

@@ -27,11 +27,11 @@ steps:
- task: NodeTool@0
inputs:
versionSpec: '10.15.3'
versionSpec: "12.13.0"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@3
inputs:
versionSpec: '1.x'
versionSpec: "1.x"
- task: AzureKeyVault@1
displayName: 'Azure Key Vault: Get Secrets'
@@ -127,14 +127,17 @@ steps:
APP_NAME="`ls $APP_ROOT | head -n 1`"
yarn smoketest --build "$APP_ROOT/$APP_NAME" --screenshots "$(build.artifactstagingdirectory)/smokeshots"
displayName: Run smoke tests (Electron)
continueOnError: true
condition: and(succeeded(), eq(variables['RUN_TESTS'], 'true'))
# - script: |
# set -e
# VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/azuredatastudio-reh-web-darwin" \
# yarn smoketest --web --headless --screenshots "$(build.artifactstagingdirectory)/smokeshots"
# displayName: Run smoke tests (Browser)
# condition: and(succeeded(), eq(variables['RUN_TESTS'], 'true'))
- script: |
set -e
node ./node_modules/playwright/install.js
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/azuredatastudio-reh-web-darwin" \
yarn smoketest --web --headless --screenshots "$(build.artifactstagingdirectory)/smokeshots"
displayName: Run smoke tests (Browser)
continueOnError: true
condition: and(succeeded(), eq(variables['RUN_TESTS'], 'true'))
- script: |
set -e
@@ -171,55 +174,16 @@ steps:
pushd ../azuredatastudio-darwin
ditto -c -k --keepParent *.app $(Build.SourcesDirectory)/.build/darwin/archive/azuredatastudio-darwin.zip
popd
displayName: 'Archive'
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
displayName: 'ESRP CodeSigning'
inputs:
ConnectedServiceName: 'Code Signing'
FolderPath: '$(Build.SourcesDirectory)/.build/darwin/archive'
Pattern: 'azuredatastudio-darwin.zip'
signConfigType: inlineSignParams
inlineOperation: |
[
{
"keyCode": "CP-401337-Apple",
"operationCode": "MacAppDeveloperSign",
"parameters": {
"Hardening": "Enable"
},
"toolName": "sign",
"toolVersion": "1.0"
}
]
SessionTimeout: 90
condition: and(succeeded(), eq(variables['signed'], true))
displayName: 'Archive (no signing)'
condition: and(succeeded(), eq(variables['signed'], false))
- script: |
zip -d $(Build.SourcesDirectory)/.build/darwin/archive/azuredatastudio-darwin.zip "*.pkg"
displayName: Clean Archive
condition: and(succeeded(), eq(variables['signed'], true))
- task: EsrpCodeSigning@1
displayName: 'ESRP Notarization'
inputs:
ConnectedServiceName: 'Code Signing'
FolderPath: '$(Build.SourcesDirectory)/.build/darwin/archive'
Pattern: 'azuredatastudio-darwin.zip'
signConfigType: inlineSignParams
inlineOperation: |
[
{
"KeyCode": "CP-401337-Apple",
"OperationCode": "MacAppNotarize",
"Parameters": {
"BundleId": "com.microsoft.azuredatastudio-$(VSCODE_QUALITY)"
},
"ToolName": "sign",
"ToolVersion": "1.0"
}
]
SessionTimeout: 120
set -e
mkdir -p .build/darwin/archive
pushd ../azuredatastudio-darwin
ditto -c -k --keepParent *.app $(Build.SourcesDirectory)/.build/darwin/archive/azuredatastudio-darwin-unsigned.zip
popd
displayName: 'Archive'
condition: and(succeeded(), eq(variables['signed'], true))
- script: |

View File

@@ -3,15 +3,15 @@ pool:
trigger:
branches:
include: ['master', 'release/*']
include: ['main', 'release/*']
pr:
branches:
include: ['master', 'release/*']
include: ['main', 'release/*']
steps:
- task: NodeTool@0
inputs:
versionSpec: "12.13.0"
versionSpec: "12.14.1"
- task: AzureKeyVault@1
displayName: 'Azure Key Vault: Get Secrets'
@@ -34,8 +34,8 @@ steps:
git remote add distro "https://github.com/$(VSCODE_MIXIN_REPO).git"
git fetch distro
# Push master branch into oss/master
git push distro origin/master:refs/heads/oss/master
# Push main branch into oss/master
git push distro origin/main:refs/heads/oss/master
# Push every release branch into oss/release
git for-each-ref --format="%(refname:short)" refs/remotes/origin/release/* | sed 's/^origin\/\(.*\)$/\0:refs\/heads\/oss\/\1/' | xargs git push distro

View File

@@ -1,7 +1,7 @@
steps:
- task: NodeTool@0
inputs:
versionSpec: '10.15.1'
versionSpec: "12.13.0"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@3
inputs:

View File

@@ -3,15 +3,15 @@ pool:
trigger:
branches:
include: ['master']
include: ['main']
pr:
branches:
include: ['master']
include: ['main']
steps:
- task: NodeTool@0
inputs:
versionSpec: "12.13.0"
versionSpec: "12.14.1"
- task: AzureKeyVault@1
displayName: 'Azure Key Vault: Get Secrets'
@@ -31,10 +31,10 @@ steps:
git config user.email "vscode@microsoft.com"
git config user.name "VSCode"
git checkout origin/electron-8.0.x
git checkout origin/electron-x.y.z
git merge origin/master
# Push master branch into exploration branch
git push origin HEAD:electron-8.0.x
git push origin HEAD:electron-x.y.z
displayName: Sync & Merge Exploration

View File

@@ -10,7 +10,7 @@ steps:
- task: NodeTool@0
inputs:
versionSpec: "12.13.0"
versionSpec: "12.14.1"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@3
inputs:
@@ -44,8 +44,8 @@ steps:
- script: | # {{SQL CARBON EDIT}} add strict null check
yarn strict-vscode
displayName: Run Strict Null Check
# - script: | {{SQL CARBON EDIT}} remove monaco editor checks
# yarn monaco-compile-check
# displayName: Run Monaco Editor Checks
@@ -67,7 +67,7 @@ steps:
displayName: Run Unit Tests (Electron)
# - script: | {{SQL CARBON EDIT}} disable
# DISPLAY=:10 yarn test-browser --browser chromium
# DISPLAY=:10 yarn test-browser --browser chromium --tfs "Browser Unit Tests"
# displayName: Run Unit Tests (Browser)
# - script: | {{SQL CARBON EDIT}} disable
@@ -81,6 +81,14 @@ steps:
# displayName: 'Publish Crash Reports'
# condition: succeededOrFailed()
- task: PublishPipelineArtifact@0
inputs:
artifactName: crash-dump-linux
targetPath: .build/crashes
displayName: 'Publish Crash Reports'
continueOnError: true
condition: failed()
- task: PublishTestResults@2
displayName: Publish Tests Results
inputs:

View File

@@ -21,7 +21,7 @@ steps:
- task: NodeTool@0
inputs:
versionSpec: "12.13.0"
versionSpec: "12.14.1"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
inputs:
@@ -107,7 +107,6 @@ steps:
AZURE_DOCUMENTDB_MASTERKEY="$(builds-docdb-key-readwrite)" \
AZURE_STORAGE_ACCESS_KEY_2="$(vscode-storage-key)" \
VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
VSCODE_HOCKEYAPP_TOKEN="$(vscode-hockeyapp-token)" \
./build/azure-pipelines/linux/multiarch/$(VSCODE_ARCH)/publish.sh
displayName: Publish

View File

@@ -21,7 +21,7 @@ steps:
- task: NodeTool@0
inputs:
versionSpec: "12.13.0"
versionSpec: "12.14.1"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
inputs:
@@ -106,7 +106,7 @@ steps:
- script: |
set -e
DISPLAY=:10 yarn test-browser --build --browser chromium
DISPLAY=:10 yarn test-browser --build --browser chromium --tfs "Browser Unit Tests"
displayName: Run unit tests (Browser)
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
@@ -123,6 +123,13 @@ steps:
displayName: Run integration tests (Electron)
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- script: |
set -e
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-web-linux-x64" \
DISPLAY=:10 ./resources/server/test/test-web-integration.sh --browser chromium
displayName: Run integration tests (Browser)
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- script: |
set -e
APP_ROOT=$(agent.builddirectory)/VSCode-linux-x64
@@ -133,18 +140,19 @@ steps:
displayName: Run remote integration tests (Electron)
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- script: |
set -e
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-web-linux-x64" \
DISPLAY=:10 ./resources/server/test/test-web-integration.sh --browser chromium
displayName: Run integration tests (Browser)
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- task: PublishPipelineArtifact@0
inputs:
artifactName: crash-dump-linux
targetPath: .build/crashes
displayName: 'Publish Crash Reports'
continueOnError: true
condition: failed()
- task: PublishTestResults@2
displayName: Publish Tests Results
inputs:
testResultsFiles: '*-results.xml'
searchFolder: '$(Build.ArtifactStagingDirectory)/test-results'
condition: succeededOrFailed()
- script: |
@@ -178,7 +186,6 @@ steps:
AZURE_DOCUMENTDB_MASTERKEY="$(builds-docdb-key-readwrite)" \
AZURE_STORAGE_ACCESS_KEY_2="$(vscode-storage-key)" \
VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
VSCODE_HOCKEYAPP_TOKEN="$(vscode-hockeyapp-token)" \
./build/azure-pipelines/linux/publish.sh
displayName: Publish

View File

@@ -27,11 +27,6 @@ rm -rf $ROOT/vscode-server-*.tar.*
node build/azure-pipelines/common/createAsset.js "server-$PLATFORM_LINUX" archive-unsigned "$SERVER_TARBALL_FILENAME" "$SERVER_TARBALL_PATH"
# Publish hockeyapp symbols
# node build/azure-pipelines/common/symbols.js "$VSCODE_MIXIN_PASSWORD" "$VSCODE_HOCKEYAPP_TOKEN" "x64" "$VSCODE_HOCKEYAPP_ID_LINUX64"
# Skip hockey app because build failure.
# https://github.com/microsoft/vscode/issues/90491
# Publish DEB
PLATFORM_DEB="linux-deb-x64"
DEB_ARCH="amd64"

View File

@@ -1,7 +1,7 @@
steps:
- task: NodeTool@0
inputs:
versionSpec: "12.13.0"
versionSpec: "12.14.1"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
inputs:

View File

@@ -1,3 +1,6 @@
parameters:
extensionsToUnitTest: []
steps:
- script: |
mkdir -p .build
@@ -21,7 +24,7 @@ steps:
- task: NodeTool@0
inputs:
versionSpec: '10.15.1'
versionSpec: "12.13.0"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@3
inputs:
@@ -126,14 +129,15 @@ steps:
displayName: Run integration tests (Electron)
condition: and(succeeded(), eq(variables['RUN_TESTS'], 'true'))
- script: |
set -e
APP_ROOT=$(agent.builddirectory)/azuredatastudio-linux-x64
APP_NAME=$(node -p "require(\"$APP_ROOT/resources/app/product.json\").applicationName")
INTEGRATION_TEST_ELECTRON_PATH="$APP_ROOT/$APP_NAME" \
DISPLAY=:10 ./scripts/test-extensions-unit.sh
displayName: 'Run Stable Extension Unit Tests'
condition: and(succeeded(), eq(variables['RUN_TESTS'], 'true'))
- ${{each extension in parameters.extensionsToUnitTest}}:
- script: |
set -e
APP_ROOT=$(agent.builddirectory)/azuredatastudio-linux-x64
APP_NAME=$(node -p "require(\"$APP_ROOT/resources/app/product.json\").applicationName")
INTEGRATION_TEST_ELECTRON_PATH="$APP_ROOT/$APP_NAME" \
DISPLAY=:10 node ./scripts/test-extensions-unit.js ${{ extension }}
displayName: 'Run ${{ extension }} Stable Extension Unit Tests'
condition: and(succeeded(), eq(variables['RUN_TESTS'], 'true'))
- script: |
set -e
@@ -155,17 +159,57 @@ steps:
yarn gulp vscode-linux-x64-build-rpm
displayName: Build Rpm
- task: UseDotNet@2
displayName: 'Install .NET Core sdk for signing'
inputs:
packageType: sdk
version: 2.1.x
installationPath: $(Agent.ToolsDirectory)/dotnet
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
inputs:
ConnectedServiceName: 'Code Signing'
FolderPath: '$(Build.SourcesDirectory)/.build'
Pattern: 'extensions/*.vsix'
signConfigType: inlineSignParams
inlineOperation: |
[
{
"keyCode": "CP-233016",
"operationSetCode": "OpcSign",
"parameters": [
{
"parameterName": "FileDigest",
"parameterValue": "/fd \"SHA256\""
}
],
"toolName": "sign",
"toolVersion": "1.0"
},
{
"keyCode": "CP-233016",
"operationSetCode": "OpcVerify",
"parameters": [],
"toolName": "sign",
"toolVersion": "1.0"
}
]
SessionTimeout: 120
displayName: 'Signing Extensions'
condition: and(succeeded(), eq(variables['signed'], true))
- script: |
set -e
./build/azure-pipelines/linux/createDrop.sh
displayName: Create Drop
- task: CopyFiles@2
displayName: 'Copy Extension Unit Test Coverage Files to: $(Build.ArtifactStagingDirectory)'
inputs:
SourceFolder: '$(Build.SourcesDirectory)/extensions'
Contents: '*/coverage/**'
TargetFolder: '$(Build.ArtifactStagingDirectory)/test-results/coverage'
- script: |
set -e
shopt -s globstar
mkdir -p $(Build.ArtifactStagingDirectory)/test-results/coverage
cp --parents -r $(Build.SourcesDirectory)/extensions/*/coverage/** $(Build.ArtifactStagingDirectory)/test-results/coverage
displayName: Copy Coverage
condition: and(succeeded(), eq(variables['RUN_TESTS'], 'true'))
- task: PublishTestResults@2
displayName: 'Publish Test Results test-results.xml'

View File

@@ -12,6 +12,8 @@ const es = require('event-stream');
const vfs = require('vinyl-fs');
const fancyLog = require('fancy-log');
const ansiColors = require('ansi-colors');
const fs = require('fs');
const path = require('path');
function main() {
const quality = process.env['VSCODE_QUALITY'];
@@ -21,7 +23,7 @@ function main() {
return;
}
const productJsonFilter = filter('**/product.json', { restore: true });
const productJsonFilter = filter(f => f.relative === 'product.json', { restore: true });
fancyLog(ansiColors.blue('[mixin]'), `Mixing in sources:`);
return vfs
@@ -29,7 +31,32 @@ function main() {
.pipe(filter(f => !f.isDirectory()))
.pipe(productJsonFilter)
.pipe(buffer())
.pipe(json(o => Object.assign({}, require('../../product.json'), o)))
.pipe(json(o => {
const ossProduct = JSON.parse(fs.readFileSync(path.join(__dirname, '..', '..', 'product.json'), 'utf8'));
let builtInExtensions = ossProduct.builtInExtensions;
if (Array.isArray(o.builtInExtensions)) {
fancyLog(ansiColors.blue('[mixin]'), 'Overwriting built-in extensions:', o.builtInExtensions.map(e => e.name));
builtInExtensions = o.builtInExtensions;
} else if (o.builtInExtensions) {
const include = o.builtInExtensions['include'] || [];
const exclude = o.builtInExtensions['exclude'] || [];
fancyLog(ansiColors.blue('[mixin]'), 'OSS built-in extensions:', builtInExtensions.map(e => e.name));
fancyLog(ansiColors.blue('[mixin]'), 'Including built-in extensions:', include.map(e => e.name));
fancyLog(ansiColors.blue('[mixin]'), 'Excluding built-in extensions:', exclude);
builtInExtensions = builtInExtensions.filter(ext => !include.find(e => e.name === ext.name) && !exclude.find(name => name === ext.name));
builtInExtensions = [...builtInExtensions, ...include];
fancyLog(ansiColors.blue('[mixin]'), 'Final built-in extensions:', builtInExtensions.map(e => e.name));
} else {
fancyLog(ansiColors.blue('[mixin]'), 'Inheriting OSS built-in extensions', builtInExtensions.map(e => e.name));
}
return { ...ossProduct, ...o, builtInExtensions };
}))
.pipe(productJsonFilter.restore)
.pipe(es.mapSync(function (f) {
fancyLog(ansiColors.blue('[mixin]'), f.relative, ansiColors.green('✔︎'));

View File

@@ -1,146 +1,3 @@
resources:
containers:
- container: vscode-x64
image: vscodehub.azurecr.io/vscode-linux-build-agent:x64
endpoint: VSCodeHub
- container: snapcraft
image: snapcore/snapcraft:stable
jobs:
- job: Compile
pool:
vmImage: 'Ubuntu-16.04'
container: vscode-x64
steps:
- template: product-compile.yml
- job: Windows
condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'), eq(variables['VSCODE_BUILD_WIN32'], 'true'))
pool:
vmImage: VS2017-Win2016
variables:
VSCODE_ARCH: x64
dependsOn:
- Compile
steps:
- template: win32/product-build-win32.yml
- job: Windows32
condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'), eq(variables['VSCODE_BUILD_WIN32_32BIT'], 'true'))
pool:
vmImage: VS2017-Win2016
variables:
VSCODE_ARCH: ia32
dependsOn:
- Compile
steps:
- template: win32/product-build-win32.yml
- job: Linux
condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'), eq(variables['VSCODE_BUILD_LINUX'], 'true'))
pool:
vmImage: 'Ubuntu-16.04'
container: vscode-x64
dependsOn:
- Compile
steps:
- template: linux/product-build-linux.yml
- job: LinuxSnap
condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'), eq(variables['VSCODE_BUILD_LINUX'], 'true'))
pool:
vmImage: 'Ubuntu-16.04'
container: snapcraft
dependsOn: Linux
steps:
- template: linux/snap-build-linux.yml
- job: LinuxArmhf
condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'), eq(variables['VSCODE_BUILD_LINUX_ARMHF'], 'true'))
pool:
vmImage: 'Ubuntu-16.04'
variables:
VSCODE_ARCH: armhf
dependsOn:
- Compile
steps:
- template: linux/product-build-linux-multiarch.yml
- job: LinuxArm64
condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'), eq(variables['VSCODE_BUILD_LINUX_ARM64'], 'true'))
pool:
vmImage: 'Ubuntu-16.04'
variables:
VSCODE_ARCH: arm64
dependsOn:
- Compile
steps:
- template: linux/product-build-linux-multiarch.yml
- job: LinuxAlpine
condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'), eq(variables['VSCODE_BUILD_LINUX_ALPINE'], 'true'))
pool:
vmImage: 'Ubuntu-16.04'
variables:
VSCODE_ARCH: alpine
dependsOn:
- Compile
steps:
- template: linux/product-build-linux-multiarch.yml
- job: LinuxWeb
condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'), eq(variables['VSCODE_BUILD_WEB'], 'true'))
pool:
vmImage: 'Ubuntu-16.04'
variables:
VSCODE_ARCH: x64
dependsOn:
- Compile
steps:
- template: web/product-build-web.yml
- job: macOS
condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'), eq(variables['VSCODE_BUILD_MACOS'], 'true'))
pool:
vmImage: macOS-latest
dependsOn:
- Compile
steps:
- template: darwin/product-build-darwin.yml
- job: Release
condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'), or(eq(variables['VSCODE_RELEASE'], 'true'), and(or(eq(variables['VSCODE_QUALITY'], 'insider'), eq(variables['VSCODE_QUALITY'], 'exploration')), eq(variables['Build.Reason'], 'Schedule'))))
pool:
vmImage: 'Ubuntu-16.04'
dependsOn:
- Windows
- Windows32
- Linux
- LinuxSnap
- LinuxArmhf
- LinuxArm64
- LinuxAlpine
- macOS
steps:
- template: release.yml
- job: Mooncake
pool:
vmImage: 'Ubuntu-16.04'
condition: and(succeededOrFailed(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'))
dependsOn:
- Windows
- Windows32
- Linux
- LinuxSnap
- LinuxArmhf
- LinuxArm64
- LinuxAlpine
- LinuxWeb
- macOS
steps:
- template: sync-mooncake.yml
trigger: none
pr: none
@@ -150,3 +7,138 @@ schedules:
branches:
include:
- master
resources:
containers:
- container: vscode-x64
image: vscodehub.azurecr.io/vscode-linux-build-agent:x64
endpoint: VSCodeHub
- container: snapcraft
image: snapcore/snapcraft:stable
stages:
- stage: Compile
jobs:
- job: Compile
pool:
vmImage: 'Ubuntu-16.04'
container: vscode-x64
steps:
- template: product-compile.yml
- stage: Windows
dependsOn:
- Compile
condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'))
pool:
vmImage: VS2017-Win2016
jobs:
- job: Windows
condition: and(succeeded(), eq(variables['VSCODE_BUILD_WIN32'], 'true'))
variables:
VSCODE_ARCH: x64
steps:
- template: win32/product-build-win32.yml
- job: Windows32
condition: and(succeeded(), eq(variables['VSCODE_BUILD_WIN32_32BIT'], 'true'))
variables:
VSCODE_ARCH: ia32
steps:
- template: win32/product-build-win32.yml
- job: WindowsARM64
condition: and(succeeded(), eq(variables['VSCODE_BUILD_WIN32_ARM64'], 'true'))
variables:
VSCODE_ARCH: arm64
steps:
- template: win32/product-build-win32-arm64.yml
- stage: Linux
dependsOn:
- Compile
condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'))
pool:
vmImage: 'Ubuntu-16.04'
jobs:
- job: Linux
condition: and(succeeded(), eq(variables['VSCODE_BUILD_LINUX'], 'true'))
container: vscode-x64
steps:
- template: linux/product-build-linux.yml
- job: LinuxSnap
dependsOn:
- Linux
condition: and(succeeded(), eq(variables['VSCODE_BUILD_LINUX'], 'true'))
container: snapcraft
steps:
- template: linux/snap-build-linux.yml
- job: LinuxArmhf
condition: and(succeeded(), eq(variables['VSCODE_BUILD_LINUX_ARMHF'], 'true'))
variables:
VSCODE_ARCH: armhf
steps:
- template: linux/product-build-linux-multiarch.yml
- job: LinuxArm64
condition: and(succeeded(), eq(variables['VSCODE_BUILD_LINUX_ARM64'], 'true'))
variables:
VSCODE_ARCH: arm64
steps:
- template: linux/product-build-linux-multiarch.yml
- job: LinuxAlpine
condition: and(succeeded(), eq(variables['VSCODE_BUILD_LINUX_ALPINE'], 'true'))
variables:
VSCODE_ARCH: alpine
steps:
- template: linux/product-build-linux-multiarch.yml
- job: LinuxWeb
condition: and(succeeded(), eq(variables['VSCODE_BUILD_WEB'], 'true'))
variables:
VSCODE_ARCH: x64
steps:
- template: web/product-build-web.yml
- stage: macOS
dependsOn:
- Compile
condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'))
pool:
vmImage: macOS-latest
jobs:
- job: macOS
condition: and(succeeded(), eq(variables['VSCODE_BUILD_MACOS'], 'true'))
steps:
- template: darwin/product-build-darwin.yml
- stage: Mooncake
dependsOn:
- Windows
- Linux
- macOS
condition: and(succeededOrFailed(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'))
pool:
vmImage: 'Ubuntu-16.04'
jobs:
- job: SyncMooncake
displayName: Sync Mooncake
steps:
- template: sync-mooncake.yml
- stage: Publish
dependsOn:
- Windows
- Linux
- macOS
condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'), or(eq(variables['VSCODE_RELEASE'], 'true'), and(or(eq(variables['VSCODE_QUALITY'], 'insider'), eq(variables['VSCODE_QUALITY'], 'exploration')), eq(variables['Build.Reason'], 'Schedule'))))
pool:
vmImage: 'Ubuntu-16.04'
jobs:
- job: BuildService
displayName: Build Service
steps:
- template: release.yml

View File

@@ -16,7 +16,7 @@ steps:
- task: NodeTool@0
inputs:
versionSpec: "12.13.0"
versionSpec: "12.14.1"
condition: and(succeeded(), ne(variables['CacheExists-Compilation'], 'true'))
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
@@ -72,29 +72,6 @@ steps:
vstsFeed: 'npm-vscode'
condition: and(succeeded(), ne(variables['CacheExists-Compilation'], 'true'), ne(variables['CacheRestored'], 'true'))
- script: |
set -e
yarn generate-github-config
displayName: Generate GitHub config
condition: succeeded()
env:
OSS_GITHUB_ID: "a5d3c261b032765a78de"
OSS_GITHUB_SECRET: $(oss-github-client-secret)
INSIDERS_GITHUB_ID: "31f02627809389d9f111"
INSIDERS_GITHUB_SECRET: $(insiders-github-client-secret)
STABLE_GITHUB_ID: "baa8a44b5e861d918709"
STABLE_GITHUB_SECRET: $(stable-github-client-secret)
EXPLORATION_GITHUB_ID: "94e8376d3a90429aeaea"
EXPLORATION_GITHUB_SECRET: $(exploration-github-client-secret)
VSO_GITHUB_ID: "3d4be8f37a0325b5817d"
VSO_GITHUB_SECRET: $(vso-github-client-secret)
VSO_PPE_GITHUB_ID: "eabf35024dc2e891a492"
VSO_PPE_GITHUB_SECRET: $(vso-ppe-github-client-secret)
VSO_DEV_GITHUB_ID: "84383ebd8a7c5f5efc5c"
VSO_DEV_GITHUB_SECRET: $(vso-dev-github-client-secret)
GITHUB_APP_ID: "Iv1.ae51e546bef24ff1"
GITHUB_APP_SECRET: $(github-app-client-secret)
- script: |
set -e
yarn postinstall

View File

@@ -9,7 +9,7 @@ pr: none
steps:
- task: NodeTool@0
inputs:
versionSpec: "12.13.0"
versionSpec: "12.14.1"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
inputs:

View File

@@ -36,6 +36,18 @@ function updateDTSFile(outPath: string, tag: string) {
fs.writeFileSync(outPath, newContent);
}
function repeat(str: string, times: number): string {
const result = new Array(times);
for (let i = 0; i < times; i++) {
result[i] = str;
}
return result.join('');
}
function convertTabsToSpaces(str: string): string {
return str.replace(/\t/gm, value => repeat(' ', value.length));
}
function getNewFileContent(content: string, tag: string) {
const oldheader = [
`/*---------------------------------------------------------------------------------------------`,
@@ -44,7 +56,7 @@ function getNewFileContent(content: string, tag: string) {
` *--------------------------------------------------------------------------------------------*/`
].join('\n');
return getNewFileHeader(tag) + content.slice(oldheader.length);
return convertTabsToSpaces(getNewFileHeader(tag) + content.slice(oldheader.length));
}
function getNewFileHeader(tag: string) {

View File

@@ -1,7 +1,7 @@
resources:
containers:
- container: linux-x64
image: sqltoolscontainers.azurecr.io/linux-build-agent:1
image: sqltoolscontainers.azurecr.io/linux-build-agent:2
endpoint: ContainerRegistry
jobs:
@@ -26,6 +26,16 @@ jobs:
- template: darwin/sql-product-build-darwin.yml
timeoutInMinutes: 180
- job: macOS_Signing
condition: and(succeeded(), eq(variables['VSCODE_BUILD_MACOS'], 'true'), eq(variables['signed'], true))
pool:
vmImage: macOS-latest
dependsOn:
- macOS
steps:
- template: darwin/sql-product-build-darwin-signing.yml
timeoutInMinutes: 60
- job: Linux
condition: and(succeeded(), eq(variables['VSCODE_BUILD_LINUX'], 'true'))
pool:
@@ -35,8 +45,22 @@ jobs:
- Compile
steps:
- template: linux/sql-product-build-linux.yml
parameters:
extensionsToUnitTest: ["admin-tool-ext-win", "agent", "azdata", "azurecore", "cms", "dacpac", "import", "schema-compare", "notebook", "resource-deployment", "machine-learning", "sql-database-projects", "data-workspace"]
timeoutInMinutes: 70
- job: LinuxWeb
condition: and(succeeded(), eq(variables['VSCODE_BUILD_WEB'], 'true'))
pool:
vmImage: 'Ubuntu-16.04'
container: linux-x64
variables:
VSCODE_ARCH: x64
dependsOn:
- Compile
steps:
- template: web/sql-product-build-web.yml
- job: Docker
condition: and(succeeded(), eq(variables['VSCODE_BUILD_DOCKER'], 'true'))
pool:
@@ -77,15 +101,10 @@ jobs:
- Docker
- Windows
- Windows_Test
- LinuxWeb
- macOS_Signing
steps:
- template: sql-release.yml
trigger: none
pr: none
schedules:
- cron: "0 5 * * Mon-Fri"
displayName: Mon-Fri at 7:00
branches:
include:
- master

View File

@@ -15,7 +15,7 @@ steps:
- task: NodeTool@0
inputs:
versionSpec: "10.15.1"
versionSpec: "12.13.0"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@3
inputs:
@@ -101,6 +101,14 @@ steps:
displayName: Compile
condition: and(succeeded(), ne(variables['CacheRestored-Compilation'], 'true'))
- script: |
set -e
AZURE_STORAGE_ACCOUNT="$(sourcemap-storage-account)" \
AZURE_STORAGE_ACCESS_KEY="$(sourcemap-storage-key)" \
node build/azure-pipelines/upload-sourcemaps
displayName: Upload sourcemaps
condition: and(succeeded(), ne(variables['CacheExists-Compilation'], 'true'))
- script: |
set -e

View File

@@ -1,7 +1,7 @@
steps:
- task: NodeTool@0
inputs:
versionSpec: "12.13.0"
versionSpec: "12.14.1"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
inputs:

View File

@@ -21,7 +21,7 @@ steps:
- task: NodeTool@0
inputs:
versionSpec: "12.13.0"
versionSpec: "12.14.1"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
inputs:

View File

@@ -0,0 +1,108 @@
steps:
- script: |
mkdir -p .build
echo -n $BUILD_SOURCEVERSION > .build/commit
echo -n $VSCODE_QUALITY > .build/quality
displayName: Prepare cache flag
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
inputs:
keyfile: 'build/.cachesalt, .build/commit, .build/quality'
targetfolder: '.build, out-build, out-vscode-min, out-vscode-reh-min, out-vscode-reh-web-min'
vstsFeed: 'BuildCache'
platformIndependent: true
alias: 'Compilation'
- script: |
set -e
exit 1
displayName: Check RestoreCache
condition: and(succeeded(), ne(variables['CacheRestored-Compilation'], 'true'))
- task: NodeTool@0
inputs:
versionSpec: "12.13.0"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@3
inputs:
versionSpec: "1.x"
- task: AzureKeyVault@1
displayName: 'Azure Key Vault: Get Secrets'
inputs:
azureSubscription: 'ClientToolsInfra_670062 (88d5392f-a34f-4769-b405-f597fc533613)'
KeyVaultName: ado-secrets
SecretsFilter: 'github-distro-mixin-password'
- script: |
set -e
cat << EOF > ~/.netrc
machine github.com
login azuredatastudio
password $(github-distro-mixin-password)
EOF
git config user.email "andresse@microsoft.com"
git config user.name "AzureDataStudio"
displayName: Prepare tooling
- script: |
set -e
git remote add distro "https://github.com/$(VSCODE_MIXIN_REPO).git"
git fetch distro
git merge $(node -p "require('./package.json').distro")
displayName: Merge distro
# - task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
# inputs:
# keyfile: 'build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock'
# targetfolder: '**/node_modules, !**/node_modules/**/node_modules'
# vstsFeed: 'npm-vscode'
- script: |
set -e
CHILD_CONCURRENCY=1 yarn --frozen-lockfile
displayName: Install dependencies
# condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
# - task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1
# inputs:
# keyfile: 'build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock'
# targetfolder: '**/node_modules, !**/node_modules/**/node_modules'
# vstsFeed: 'npm-vscode'
# condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
# - script: |
# set -e
# yarn postinstall
# displayName: Run postinstall scripts
# condition: and(succeeded(), eq(variables['CacheRestored'], 'true'))
- script: |
set -e
node build/azure-pipelines/mixin
displayName: Mix in quality
- script: |
set -e
VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
yarn gulp vscode-web-min-ci
displayName: Build
# upload only the workbench.web.api.js source maps because
# we just compiled these bits in the previous step and the
# general task to upload source maps has already been run
- script: |
set -e
AZURE_STORAGE_ACCOUNT="$(sourcemap-storage-account)" \
AZURE_STORAGE_ACCESS_KEY="$(sourcemap-storage-key)" \
node build/azure-pipelines/upload-sourcemaps out-vscode-web-min out-vscode-web-min/vs/workbench/workbench.web.api.js.map
displayName: Upload sourcemaps (Web)
# - script: |
# set -e
# AZURE_DOCUMENTDB_MASTERKEY="$(builds-docdb-key-readwrite)" \
# AZURE_STORAGE_ACCESS_KEY_2="$(vscode-storage-key)" \
# VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
# ./build/azure-pipelines/web/publish.sh
# displayName: Publish

View File

@@ -1,7 +1,7 @@
steps:
- task: NodeTool@0
inputs:
versionSpec: "12.13.0"
versionSpec: "12.14.1"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@3 # {{SQL CARBON EDIT}} update version
inputs:
@@ -36,15 +36,7 @@ steps:
yarn electron
displayName: Download Electron
- script: |
yarn gulp hygiene
displayName: Run Hygiene Checks
- script: | # {{SQL CARBON EDIT}} add step
yarn strict-vscode
displayName: Run Strict Null Check
# - powershell: | {{SQL CARBON EDIT}} remove step
# - powershell: | {{SQL CARBON EDIT}} remove editor check
# yarn monaco-compile-check
# displayName: Run Monaco Editor Checks
@@ -65,19 +57,20 @@ steps:
displayName: Run Unit Tests (Electron)
# - powershell: | {{SQL CARBON EDIT}} disable
# yarn test-browser --browser chromium --browser firefox
# yarn test-browser --browser chromium --browser firefox --tfs "Browser Unit Tests"
# displayName: Run Unit Tests (Browser)
# - powershell: | {{SQL CARBON EDIT}} disable
# .\scripts\test-integration.bat --tfs "Integration Tests"
# displayName: Run Integration Tests (Electron)
# - task: PublishPipelineArtifact@0
# displayName: 'Publish Crash Reports'
# inputs:
# artifactName: crash-dump-windows
# targetPath: .build\crashes
# condition: succeededOrFailed()
- task: PublishPipelineArtifact@0
displayName: 'Publish Crash Reports'
inputs:
artifactName: crash-dump-windows
targetPath: .build\crashes
continueOnError: true
condition: failed()
- task: PublishTestResults@2
displayName: Publish Tests Results

View File

@@ -0,0 +1,190 @@
steps:
- powershell: |
mkdir .build -ea 0
"$env:BUILD_SOURCEVERSION" | Out-File -Encoding ascii -NoNewLine .build\commit
"$env:VSCODE_QUALITY" | Out-File -Encoding ascii -NoNewLine .build\quality
displayName: Prepare cache flag
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
inputs:
keyfile: 'build/.cachesalt, .build/commit, .build/quality'
targetfolder: '.build, out-build, out-vscode-min, out-vscode-reh-min, out-vscode-reh-web-min'
vstsFeed: 'npm-vscode'
platformIndependent: true
alias: 'Compilation'
- powershell: |
$ErrorActionPreference = "Stop"
exit 1
displayName: Check RestoreCache
condition: and(succeeded(), ne(variables['CacheRestored-Compilation'], 'true'))
- task: NodeTool@0
inputs:
versionSpec: "12.14.1"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
inputs:
versionSpec: "1.x"
- task: UsePythonVersion@0
inputs:
versionSpec: '2.x'
addToPath: true
- task: AzureKeyVault@1
displayName: 'Azure Key Vault: Get Secrets'
inputs:
azureSubscription: 'vscode-builds-subscription'
KeyVaultName: vscode
- powershell: |
. build/azure-pipelines/win32/exec.ps1
$ErrorActionPreference = "Stop"
"machine github.com`nlogin vscode`npassword $(github-distro-mixin-password)" | Out-File "$env:USERPROFILE\_netrc" -Encoding ASCII
exec { git config user.email "vscode@microsoft.com" }
exec { git config user.name "VSCode" }
mkdir .build -ea 0
"$(VSCODE_ARCH)" | Out-File -Encoding ascii -NoNewLine .build\arch
displayName: Prepare tooling
- powershell: |
. build/azure-pipelines/win32/exec.ps1
$ErrorActionPreference = "Stop"
exec { git remote add distro "https://github.com/$(VSCODE_MIXIN_REPO).git" }
exec { git fetch distro }
exec { git merge $(node -p "require('./package.json').distro") }
displayName: Merge distro
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
inputs:
keyfile: 'build/.cachesalt, .build/arch, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock'
targetfolder: '**/node_modules, !**/node_modules/**/node_modules'
vstsFeed: 'npm-vscode'
- powershell: |
. build/azure-pipelines/win32/exec.ps1
$ErrorActionPreference = "Stop"
$env:npm_config_arch="$(VSCODE_ARCH)"
$env:CHILD_CONCURRENCY="1"
exec { yarn --frozen-lockfile }
displayName: Install dependencies
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
- task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1
inputs:
keyfile: 'build/.cachesalt, .build/arch, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock'
targetfolder: '**/node_modules, !**/node_modules/**/node_modules'
vstsFeed: 'npm-vscode'
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
- powershell: |
. build/azure-pipelines/win32/exec.ps1
$ErrorActionPreference = "Stop"
exec { yarn postinstall }
displayName: Run postinstall scripts
condition: and(succeeded(), eq(variables['CacheRestored'], 'true'))
- powershell: |
. build/azure-pipelines/win32/exec.ps1
$ErrorActionPreference = "Stop"
exec { node build/azure-pipelines/mixin }
displayName: Mix in quality
- powershell: |
. build/azure-pipelines/win32/exec.ps1
$ErrorActionPreference = "Stop"
$env:VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)"
exec { yarn gulp "vscode-win32-$env:VSCODE_ARCH-min-ci" }
exec { yarn gulp "vscode-win32-$env:VSCODE_ARCH-code-helper" }
exec { yarn gulp "vscode-win32-$env:VSCODE_ARCH-inno-updater" }
displayName: Build
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
inputs:
ConnectedServiceName: 'ESRP CodeSign'
FolderPath: '$(agent.builddirectory)/VSCode-win32-$(VSCODE_ARCH)'
Pattern: '*.dll,*.exe,*.node'
signConfigType: inlineSignParams
inlineOperation: |
[
{
"keyCode": "CP-230012",
"operationSetCode": "SigntoolSign",
"parameters": [
{
"parameterName": "OpusName",
"parameterValue": "VS Code"
},
{
"parameterName": "OpusInfo",
"parameterValue": "https://code.visualstudio.com/"
},
{
"parameterName": "Append",
"parameterValue": "/as"
},
{
"parameterName": "FileDigest",
"parameterValue": "/fd \"SHA256\""
},
{
"parameterName": "PageHash",
"parameterValue": "/NPH"
},
{
"parameterName": "TimeStamp",
"parameterValue": "/tr \"http://rfc3161.gtm.corp.microsoft.com/TSS/HttpTspServer\" /td sha256"
}
],
"toolName": "sign",
"toolVersion": "1.0"
},
{
"keyCode": "CP-230012",
"operationSetCode": "SigntoolVerify",
"parameters": [
{
"parameterName": "VerifyAll",
"parameterValue": "/all"
}
],
"toolName": "sign",
"toolVersion": "1.0"
}
]
SessionTimeout: 120
- task: NuGetCommand@2
displayName: Install ESRPClient.exe
inputs:
restoreSolution: 'build\azure-pipelines\win32\ESRPClient\packages.config'
feedsToUse: config
nugetConfigPath: 'build\azure-pipelines\win32\ESRPClient\NuGet.config'
externalFeedCredentials: 3fc0b7f7-da09-4ae7-a9c8-d69824b1819b
restoreDirectory: packages
- task: ESRPImportCertTask@1
displayName: Import ESRP Request Signing Certificate
inputs:
ESRP: 'ESRP CodeSign'
- powershell: |
$ErrorActionPreference = "Stop"
.\build\azure-pipelines\win32\import-esrp-auth-cert.ps1 -AuthCertificateBase64 $(esrp-auth-certificate) -AuthCertificateKey $(esrp-auth-certificate-key)
displayName: Import ESRP Auth Certificate
- powershell: |
. build/azure-pipelines/win32/exec.ps1
$ErrorActionPreference = "Stop"
$env:AZURE_STORAGE_ACCESS_KEY_2 = "$(vscode-storage-key)"
$env:AZURE_DOCUMENTDB_MASTERKEY = "$(builds-docdb-key-readwrite)"
$env:VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)"
.\build\azure-pipelines\win32\publish.ps1
displayName: Publish
- task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
displayName: 'Component Detection'
continueOnError: true

View File

@@ -21,7 +21,7 @@ steps:
- task: NodeTool@0
inputs:
versionSpec: "12.13.0"
versionSpec: "12.14.1"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
inputs:
@@ -115,7 +115,7 @@ steps:
- powershell: |
. build/azure-pipelines/win32/exec.ps1
$ErrorActionPreference = "Stop"
exec { yarn test-browser --build --browser chromium --browser firefox }
exec { yarn test-browser --build --browser chromium --browser firefox --tfs "Browser Unit Tests" }
displayName: Run unit tests (Browser)
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
@@ -132,6 +132,13 @@ steps:
displayName: Run integration tests (Electron)
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- powershell: |
. build/azure-pipelines/win32/exec.ps1
$ErrorActionPreference = "Stop"
exec { $env:VSCODE_REMOTE_SERVER_PATH = "$(agent.builddirectory)\vscode-reh-web-win32-$(VSCODE_ARCH)"; .\resources\server\test\test-web-integration.bat --browser firefox }
displayName: Run integration tests (Browser)
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- powershell: |
. build/azure-pipelines/win32/exec.ps1
$ErrorActionPreference = "Stop"
@@ -142,18 +149,19 @@ steps:
displayName: Run remote integration tests (Electron)
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- powershell: |
. build/azure-pipelines/win32/exec.ps1
$ErrorActionPreference = "Stop"
exec { $env:VSCODE_REMOTE_SERVER_PATH = "$(agent.builddirectory)\vscode-reh-web-win32-$(VSCODE_ARCH)"; .\resources\server\test\test-web-integration.bat --browser firefox }
displayName: Run integration tests (Browser)
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- task: PublishPipelineArtifact@0
inputs:
artifactName: crash-dump-windows-$(VSCODE_ARCH)
targetPath: .build\crashes
displayName: 'Publish Crash Reports'
continueOnError: true
condition: failed()
- task: PublishTestResults@2
displayName: Publish Tests Results
inputs:
testResultsFiles: '*-results.xml'
searchFolder: '$(Build.ArtifactStagingDirectory)/test-results'
condition: succeededOrFailed()
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
@@ -217,7 +225,7 @@ steps:
restoreSolution: 'build\azure-pipelines\win32\ESRPClient\packages.config'
feedsToUse: config
nugetConfigPath: 'build\azure-pipelines\win32\ESRPClient\NuGet.config'
externalFeedCredentials: 3fc0b7f7-da09-4ae7-a9c8-d69824b1819b
externalFeedCredentials: 'ESRP Nuget'
restoreDirectory: packages
- task: ESRPImportCertTask@1
@@ -235,7 +243,6 @@ steps:
$ErrorActionPreference = "Stop"
$env:AZURE_STORAGE_ACCESS_KEY_2 = "$(vscode-storage-key)"
$env:AZURE_DOCUMENTDB_MASTERKEY = "$(builds-docdb-key-readwrite)"
$env:VSCODE_HOCKEYAPP_TOKEN = "$(vscode-hockeyapp-token)"
$env:VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)"
.\build\azure-pipelines\win32\publish.ps1
displayName: Publish

View File

@@ -16,22 +16,21 @@ $ServerZip = "$Repo\.build\vscode-server-win32-$Arch.zip"
$Build = "$Root\VSCode-win32-$Arch"
# Create server archive
exec { xcopy $LegacyServer $Server /H /E /I }
exec { .\node_modules\7zip\7zip-lite\7z.exe a -tzip $ServerZip $Server -r }
if ("$Arch" -ne "arm64") {
exec { xcopy $LegacyServer $Server /H /E /I }
exec { .\node_modules\7zip\7zip-lite\7z.exe a -tzip $ServerZip $Server -r }
}
# get version
$PackageJson = Get-Content -Raw -Path "$Build\resources\app\package.json" | ConvertFrom-Json
$Version = $PackageJson.version
$AssetPlatform = if ("$Arch" -eq "ia32") { "win32" } else { "win32-x64" }
$AssetPlatform = if ("$Arch" -eq "ia32") { "win32" } else { "win32-$Arch" }
exec { node build/azure-pipelines/common/createAsset.js "$AssetPlatform-archive" archive "VSCode-win32-$Arch-$Version.zip" $Zip }
exec { node build/azure-pipelines/common/createAsset.js "$AssetPlatform" setup "VSCodeSetup-$Arch-$Version.exe" $SystemExe }
exec { node build/azure-pipelines/common/createAsset.js "$AssetPlatform-user" setup "VSCodeUserSetup-$Arch-$Version.exe" $UserExe }
exec { node build/azure-pipelines/common/createAsset.js "server-$AssetPlatform" archive "vscode-server-win32-$Arch.zip" $ServerZip }
# Skip hockey app because build failure.
# https://github.com/microsoft/vscode/issues/90491
# publish hockeyapp symbols
# $hockeyAppId = if ("$Arch" -eq "ia32") { "$env:VSCODE_HOCKEYAPP_ID_WIN32" } else { "$env:VSCODE_HOCKEYAPP_ID_WIN64" }
# exec { node build/azure-pipelines/common/symbols.js "$env:VSCODE_MIXIN_PASSWORD" "$env:VSCODE_HOCKEYAPP_TOKEN" "$Arch" $hockeyAppId }
if ("$Arch" -ne "arm64") {
exec { node build/azure-pipelines/common/createAsset.js "server-$AssetPlatform" archive "vscode-server-win32-$Arch.zip" $ServerZip }
}

View File

@@ -21,7 +21,7 @@ steps:
- task: NodeTool@0
inputs:
versionSpec: "10.15.1"
versionSpec: "12.13.0"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@3
inputs:
@@ -103,6 +103,17 @@ steps:
env:
VSCODE_MIXIN_PASSWORD: $(github-distro-mixin-password)
- task: UniversalPackages@0
displayName: Download SAW Python package
inputs:
command: 'download'
downloadDirectory: '$(agent.builddirectory)\azuredatastudio-win32-x64\resources\app\ads-python'
feedsToUse: 'internal'
vstsFeed: '2191dd5f-4aec-491b-ac50-568bbc331c8a'
vstsFeedPackage: '2e355f03-a97e-499a-949b-f02d62b6160c'
vstsPackageVersion: '*'
condition: and(succeeded(), eq(variables['VSCODE_QUALITY'], 'saw'))
# - powershell: | @anthonydresser unit tests timeout never existing the node process
# . build/azure-pipelines/win32/exec.ps1
# $ErrorActionPreference = "Stop"

View File

@@ -1,7 +1,7 @@
steps:
- task: NodeTool@0
inputs:
versionSpec: "10.15.1"
versionSpec: "12.13.0"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@3
inputs:

View File

@@ -10,11 +10,11 @@ const path = require('path');
let window = null;
app.once('ready', () => {
window = new BrowserWindow({ width: 800, height: 600, webPreferences: { nodeIntegration: true, webviewTag: true } });
window = new BrowserWindow({ width: 800, height: 600, webPreferences: { nodeIntegration: true, webviewTag: true, enableWebSQL: false, nativeWindowOpen: true } });
window.setMenuBarVisibility(false);
window.loadURL(url.format({ pathname: path.join(__dirname, 'index.html'), protocol: 'file:', slashes: true }));
// window.webContents.openDevTools();
window.once('closed', () => window = null);
});
app.on('window-all-closed', () => app.quit());
app.on('window-all-closed', () => app.quit());

61
build/darwin/sign.js Normal file
View File

@@ -0,0 +1,61 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
Object.defineProperty(exports, "__esModule", { value: true });
const codesign = require("electron-osx-sign");
const path = require("path");
const util = require("../lib/util");
const product = require("../../product.json");
async function main() {
const buildDir = process.env['AGENT_BUILDDIRECTORY'];
const tempDir = process.env['AGENT_TEMPDIRECTORY'];
if (!buildDir) {
throw new Error('$AGENT_BUILDDIRECTORY not set');
}
if (!tempDir) {
throw new Error('$AGENT_TEMPDIRECTORY not set');
}
const baseDir = path.dirname(__dirname);
const appRoot = path.join(buildDir, 'VSCode-darwin');
const appName = product.nameLong + '.app';
const appFrameworkPath = path.join(appRoot, appName, 'Contents', 'Frameworks');
const helperAppBaseName = product.nameShort;
const gpuHelperAppName = helperAppBaseName + ' Helper (GPU).app';
const pluginHelperAppName = helperAppBaseName + ' Helper (Plugin).app';
const rendererHelperAppName = helperAppBaseName + ' Helper (Renderer).app';
const defaultOpts = {
app: path.join(appRoot, appName),
platform: 'darwin',
entitlements: path.join(baseDir, 'azure-pipelines', 'darwin', 'app-entitlements.plist'),
'entitlements-inherit': path.join(baseDir, 'azure-pipelines', 'darwin', 'app-entitlements.plist'),
hardenedRuntime: true,
'pre-auto-entitlements': false,
'pre-embed-provisioning-profile': false,
keychain: path.join(tempDir, 'buildagent.keychain'),
version: util.getElectronVersion(),
identity: '99FM488X57',
'gatekeeper-assess': false
};
const appOpts = Object.assign(Object.assign({}, defaultOpts), {
// TODO(deepak1556): Incorrectly declared type in electron-osx-sign
ignore: (filePath) => {
return filePath.includes(gpuHelperAppName) ||
filePath.includes(pluginHelperAppName) ||
filePath.includes(rendererHelperAppName);
} });
const gpuHelperOpts = Object.assign(Object.assign({}, defaultOpts), { app: path.join(appFrameworkPath, gpuHelperAppName), entitlements: path.join(baseDir, 'azure-pipelines', 'darwin', 'helper-gpu-entitlements.plist'), 'entitlements-inherit': path.join(baseDir, 'azure-pipelines', 'darwin', 'helper-gpu-entitlements.plist') });
const pluginHelperOpts = Object.assign(Object.assign({}, defaultOpts), { app: path.join(appFrameworkPath, pluginHelperAppName), entitlements: path.join(baseDir, 'azure-pipelines', 'darwin', 'helper-plugin-entitlements.plist'), 'entitlements-inherit': path.join(baseDir, 'azure-pipelines', 'darwin', 'helper-plugin-entitlements.plist') });
const rendererHelperOpts = Object.assign(Object.assign({}, defaultOpts), { app: path.join(appFrameworkPath, rendererHelperAppName), entitlements: path.join(baseDir, 'azure-pipelines', 'darwin', 'helper-renderer-entitlements.plist'), 'entitlements-inherit': path.join(baseDir, 'azure-pipelines', 'darwin', 'helper-renderer-entitlements.plist') });
await codesign.signAsync(gpuHelperOpts);
await codesign.signAsync(pluginHelperOpts);
await codesign.signAsync(rendererHelperOpts);
await codesign.signAsync(appOpts);
}
if (require.main === module) {
main().catch(err => {
console.error(err);
process.exit(1);
});
}

90
build/darwin/sign.ts Normal file
View File

@@ -0,0 +1,90 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import * as codesign from 'electron-osx-sign';
import * as path from 'path';
import * as util from '../lib/util';
import * as product from '../../product.json';
async function main(): Promise<void> {
const buildDir = process.env['AGENT_BUILDDIRECTORY'];
const tempDir = process.env['AGENT_TEMPDIRECTORY'];
if (!buildDir) {
throw new Error('$AGENT_BUILDDIRECTORY not set');
}
if (!tempDir) {
throw new Error('$AGENT_TEMPDIRECTORY not set');
}
const baseDir = path.dirname(__dirname);
const appRoot = path.join(buildDir, 'VSCode-darwin');
const appName = product.nameLong + '.app';
const appFrameworkPath = path.join(appRoot, appName, 'Contents', 'Frameworks');
const helperAppBaseName = product.nameShort;
const gpuHelperAppName = helperAppBaseName + ' Helper (GPU).app';
const pluginHelperAppName = helperAppBaseName + ' Helper (Plugin).app';
const rendererHelperAppName = helperAppBaseName + ' Helper (Renderer).app';
const defaultOpts: codesign.SignOptions = {
app: path.join(appRoot, appName),
platform: 'darwin',
entitlements: path.join(baseDir, 'azure-pipelines', 'darwin', 'app-entitlements.plist'),
'entitlements-inherit': path.join(baseDir, 'azure-pipelines', 'darwin', 'app-entitlements.plist'),
hardenedRuntime: true,
'pre-auto-entitlements': false,
'pre-embed-provisioning-profile': false,
keychain: path.join(tempDir, 'buildagent.keychain'),
version: util.getElectronVersion(),
identity: '99FM488X57',
'gatekeeper-assess': false
};
const appOpts = {
...defaultOpts,
// TODO(deepak1556): Incorrectly declared type in electron-osx-sign
ignore: (filePath: string) => {
return filePath.includes(gpuHelperAppName) ||
filePath.includes(pluginHelperAppName) ||
filePath.includes(rendererHelperAppName);
}
};
const gpuHelperOpts: codesign.SignOptions = {
...defaultOpts,
app: path.join(appFrameworkPath, gpuHelperAppName),
entitlements: path.join(baseDir, 'azure-pipelines', 'darwin', 'helper-gpu-entitlements.plist'),
'entitlements-inherit': path.join(baseDir, 'azure-pipelines', 'darwin', 'helper-gpu-entitlements.plist'),
};
const pluginHelperOpts: codesign.SignOptions = {
...defaultOpts,
app: path.join(appFrameworkPath, pluginHelperAppName),
entitlements: path.join(baseDir, 'azure-pipelines', 'darwin', 'helper-plugin-entitlements.plist'),
'entitlements-inherit': path.join(baseDir, 'azure-pipelines', 'darwin', 'helper-plugin-entitlements.plist'),
};
const rendererHelperOpts: codesign.SignOptions = {
...defaultOpts,
app: path.join(appFrameworkPath, rendererHelperAppName),
entitlements: path.join(baseDir, 'azure-pipelines', 'darwin', 'helper-renderer-entitlements.plist'),
'entitlements-inherit': path.join(baseDir, 'azure-pipelines', 'darwin', 'helper-renderer-entitlements.plist'),
};
await codesign.signAsync(gpuHelperOpts);
await codesign.signAsync(pluginHelperOpts);
await codesign.signAsync(rendererHelperOpts);
await codesign.signAsync(appOpts as any);
}
if (require.main === module) {
main().catch(err => {
console.error(err);
process.exit(1);
});
}

View File

@@ -127,6 +127,7 @@ const createESMSourcesAndResourcesTask = task.define('extract-editor-esm', () =>
const compileEditorESMTask = task.define('compile-editor-esm', () => {
const KEEP_PREV_ANALYSIS = false;
const FAIL_ON_PURPOSE = false;
console.log(`Launching the TS compiler at ${path.join(__dirname, '../out-editor-esm')}...`);
let result;
if (process.platform === 'win32') {
@@ -142,7 +143,7 @@ const compileEditorESMTask = task.define('compile-editor-esm', () => {
console.log(result.stdout.toString());
console.log(result.stderr.toString());
if (result.status !== 0) {
if (FAIL_ON_PURPOSE || result.status !== 0) {
console.log(`The TS Compilation failed, preparing analysis folder...`);
const destPath = path.join(__dirname, '../../vscode-monaco-editor-esm-analysis');
const keepPrevAnalysis = (KEEP_PREV_ANALYSIS && fs.existsSync(destPath));

View File

@@ -8,9 +8,11 @@ require('events').EventEmitter.defaultMaxListeners = 100;
const gulp = require('gulp');
const path = require('path');
const nodeUtil = require('util');
const tsb = require('gulp-tsb');
const es = require('event-stream');
const filter = require('gulp-filter');
const webpack = require('webpack');
const util = require('./lib/util');
const task = require('./lib/task');
const watcher = require('./lib/watch');
@@ -21,6 +23,8 @@ const nlsDev = require('vscode-nls-dev');
const root = path.dirname(__dirname);
const commit = util.getVersion(root);
const plumber = require('gulp-plumber');
const fancyLog = require('fancy-log');
const ansiColors = require('ansi-colors');
const ext = require('./lib/extensions');
const extensionsPath = path.join(path.dirname(__dirname), 'extensions');
@@ -36,7 +40,7 @@ const compilations = glob.sync('**/tsconfig.json', {
ignore: ['**/out/**', '**/node_modules/**']
});
const getBaseUrl = out => `https://ticino.blob.core.windows.net/sourcemaps/${commit}/${out}`;
const getBaseUrl = out => `https://sqlopsbuilds.blob.core.windows.net/sourcemaps/${commit}/${out}`;
const tasks = compilations.map(function (tsconfigFile) {
const absolutePath = path.join(extensionsPath, tsconfigFile);
@@ -167,9 +171,84 @@ gulp.task(compileExtensionsBuildLegacyTask);
const cleanExtensionsBuildTask = task.define('clean-extensions-build', util.rimraf('.build/extensions'));
const compileExtensionsBuildTask = task.define('compile-extensions-build', task.series(
cleanExtensionsBuildTask,
task.define('bundle-extensions-build', () => ext.packageLocalExtensionsStream().pipe(gulp.dest('.build'))),
task.define('bundle-marketplace-extensions-build', () => ext.packageMarketplaceExtensionsStream().pipe(gulp.dest('.build')))
task.define('bundle-extensions-build', () => ext.packageLocalExtensionsStream(false).pipe(gulp.dest('.build'))),
task.define('bundle-marketplace-extensions-build', () => ext.packageMarketplaceExtensionsStream(false).pipe(gulp.dest('.build'))),
));
gulp.task(compileExtensionsBuildTask);
exports.compileExtensionsBuildTask = compileExtensionsBuildTask;
const compileWebExtensionsTask = task.define('compile-web', () => buildWebExtensions(false));
gulp.task(compileWebExtensionsTask);
exports.compileWebExtensionsTask = compileWebExtensionsTask;
const watchWebExtensionsTask = task.define('watch-web', () => buildWebExtensions(true));
gulp.task(watchWebExtensionsTask);
exports.watchWebExtensionsTask = watchWebExtensionsTask;
async function buildWebExtensions(isWatch) {
const webpackConfigLocations = await nodeUtil.promisify(glob)(
path.join(extensionsPath, '**', 'extension-browser.webpack.config.js'),
{ ignore: ['**/node_modules'] }
);
const webpackConfigs = [];
for (const webpackConfigPath of webpackConfigLocations) {
const configOrFnOrArray = require(webpackConfigPath);
function addConfig(configOrFn) {
if (typeof configOrFn === 'function') {
webpackConfigs.push(configOrFn({}, {}));
} else {
webpackConfigs.push(configOrFn);
}
}
addConfig(configOrFnOrArray);
}
function reporter(fullStats) {
if (Array.isArray(fullStats.children)) {
for (const stats of fullStats.children) {
const outputPath = stats.outputPath;
if (outputPath) {
const relativePath = path.relative(extensionsPath, outputPath).replace(/\\/g, '/');
const match = relativePath.match(/[^\/]+(\/server|\/client)?/);
fancyLog(`Finished ${ansiColors.green('packaging web extension')} ${ansiColors.cyan(match[0])} with ${stats.errors.length} errors.`);
}
if (Array.isArray(stats.errors)) {
stats.errors.forEach(error => {
fancyLog.error(error);
});
}
if (Array.isArray(stats.warnings)) {
stats.warnings.forEach(warning => {
fancyLog.warn(warning);
});
}
}
}
}
return new Promise((resolve, reject) => {
if (isWatch) {
webpack(webpackConfigs).watch({}, (err, stats) => {
if (err) {
reject();
} else {
reporter(stats.toJson());
}
});
} else {
webpack(webpackConfigs).run((err, stats) => {
if (err) {
fancyLog.error(err);
reject();
} else {
reporter(stats.toJson());
resolve();
}
});
}
});
}

View File

@@ -42,8 +42,8 @@ const indentationFilter = [
'**',
// except specific files
'!ThirdPartyNotices.txt',
'!LICENSE.{txt,rtf}',
'!**/ThirdPartyNotices.txt',
'!**/LICENSE.{txt,rtf}',
'!LICENSES.chromium.html',
'!**/LICENSE',
'!src/vs/nls.js',
@@ -60,6 +60,7 @@ const indentationFilter = [
// except specific folders
'!test/automation/out/**',
'!test/smoke/out/**',
'!extensions/typescript-language-features/test-workspace/**',
'!extensions/vscode-api-tests/testWorkspace/**',
'!extensions/vscode-api-tests/testWorkspace2/**',
'!build/monaco/**',
@@ -85,7 +86,7 @@ const indentationFilter = [
'!src/typings/**/*.d.ts',
'!extensions/**/*.d.ts',
'!**/*.{svg,exe,png,bmp,scpt,bat,cmd,cur,ttf,woff,eot,md,ps1,template,yaml,yml,d.ts.recipe,ico,icns,plist}',
'!build/{lib,download}/**/*.js',
'!build/{lib,download,darwin}/**/*.js',
'!build/**/*.sh',
'!build/azure-pipelines/**/*.js',
'!build/azure-pipelines/**/*.config',
@@ -95,6 +96,7 @@ const indentationFilter = [
'!**/*.dockerfile',
'!extensions/markdown-language-features/media/*.js',
// {{SQL CARBON EDIT}}
'!**/*.gif',
'!build/actions/**/*.js',
'!**/*.{xlf,docx,sql,vsix,bacpac,ipynb,jpg}',
'!extensions/mssql/sqltoolsservice/**',
@@ -108,6 +110,7 @@ const indentationFilter = [
'!extensions/sql-database-projects/src/test/baselines/*.xml',
'!extensions/sql-database-projects/src/test/baselines/*.json',
'!extensions/sql-database-projects/src/test/baselines/*.sqlproj',
'!extensions/sql-database-projects/BuildDirectory/SystemDacpacs/**',
'!extensions/big-data-cluster/src/bigDataCluster/controller/apiGenerated.ts',
'!extensions/big-data-cluster/src/bigDataCluster/controller/clusterApiGenerated2.ts',
'!resources/linux/snap/electron-launch'
@@ -136,12 +139,15 @@ const copyrightFilter = [
'!resources/linux/snap/snapcraft.yaml',
'!resources/linux/snap/electron-launch',
'!resources/win32/bin/code.js',
'!resources/web/code-web.js',
'!resources/completions/**',
'!extensions/markdown-language-features/media/highlight.css',
'!extensions/html-language-features/server/src/modes/typescript/*',
'!extensions/*/server/bin/*',
'!src/vs/editor/test/node/classification/typescript-test.ts',
'!scripts/code-web.js',
'!resources/serverless/code-web.js',
'!src/vs/editor/test/node/classification/typescript-test.ts',
// {{SQL CARBON EDIT}}
'!extensions/notebook/src/intellisense/text.ts',
'!extensions/mssql/src/hdfs/webhdfs.ts',
@@ -165,16 +171,19 @@ const copyrightFilter = [
'!extensions/markdown-language-features/media/tomorrow.css',
'!src/sql/workbench/browser/modelComponents/media/highlight.css',
'!src/sql/workbench/contrib/notebook/electron-browser/cellViews/media/highlight.css',
'!src/sql/workbench/contrib/notebook/browser/turndownPluginGfm.ts',
'!extensions/mssql/sqltoolsservice/**',
'!extensions/import/flatfileimportservice/**',
'!extensions/notebook/src/prompts/**',
'!extensions/mssql/src/prompts/**',
'!extensions/kusto/src/prompts/**',
'!extensions/notebook/resources/jupyter_config/**',
'!extensions/query-history/images/**',
'!**/*.gif',
'!**/*.xlf',
'!**/*.dacpac',
'!**/*.bacpac'
'!**/*.bacpac',
'!**/*.py'
];
const jsHygieneFilter = [

View File

@@ -36,28 +36,13 @@ const { compileBuildTask } = require('./gulpfile.compile');
const { compileExtensionsBuildTask } = require('./gulpfile.extensions');
const productionDependencies = deps.getProductionDependencies(path.dirname(__dirname));
const baseModules = Object.keys(process.binding('natives')).filter(n => !/^_|\//.test(n));
const nodeModules = [ // {{SQL CARBON EDIT}}
'electron',
'original-fs',
'rxjs/Observable',
'rxjs/add/observable/fromPromise',
'rxjs/Subject',
'rxjs/Observer',
'slickgrid/lib/jquery.event.drag-2.3.0',
'slickgrid/lib/jquery-ui-1.9.2',
'slickgrid/slick.core',
'slickgrid/slick.grid',
'slickgrid/slick.editors',
'slickgrid/slick.dataview']
.concat(Object.keys(product.dependencies || {}))
.concat(_.uniq(productionDependencies.map(d => d.name)))
.concat(baseModules);
// Build
const vscodeEntryPoints = _.flatten([
buildfile.entrypoint('vs/workbench/workbench.desktop.main'),
buildfile.base,
buildfile.workerExtensionHost,
buildfile.workerNotebook,
buildfile.workbenchDesktop,
buildfile.code
]);
@@ -69,28 +54,30 @@ const vscodeResources = [
'out-build/bootstrap.js',
'out-build/bootstrap-fork.js',
'out-build/bootstrap-amd.js',
'out-build/bootstrap-node.js',
'out-build/bootstrap-window.js',
'out-build/paths.js',
'out-build/vs/**/*.{svg,png,html}',
'!out-build/vs/code/browser/**/*.html',
'!out-build/vs/editor/standalone/**/*.svg',
'out-build/vs/base/common/performance.js',
'out-build/vs/base/node/languagePacks.js',
'out-build/vs/base/node/{stdForkStart.js,terminateProcess.sh,cpuUsage.sh,ps.sh}',
'out-build/vs/base/browser/ui/codicons/codicon/**',
'out-build/vs/base/parts/sandbox/electron-browser/preload.js',
'out-build/vs/workbench/browser/media/*-theme.css',
'out-build/vs/workbench/contrib/debug/**/*.json',
'out-build/vs/workbench/contrib/externalTerminal/**/*.scpt',
'out-build/vs/workbench/contrib/webview/browser/pre/*.js',
'out-build/vs/workbench/contrib/webview/electron-browser/pre/*.js',
'out-build/vs/workbench/services/extensions/worker/extensionHostWorkerMain.js',
'out-build/vs/**/markdown.css',
'out-build/vs/workbench/contrib/tasks/**/*.json',
'out-build/vs/platform/files/**/*.exe',
'out-build/vs/platform/files/**/*.md',
'out-build/vs/code/electron-browser/workbench/**',
'out-build/vs/code/electron-browser/sharedProcess/sharedProcess.js',
'out-build/vs/code/electron-browser/issue/issueReporter.js',
'out-build/vs/code/electron-browser/processExplorer/processExplorer.js',
'out-build/sql/workbench/electron-browser/splashscreen/*', // {{SQL CARBON EDIT}} STart
'out-build/vs/code/electron-sandbox/issue/issueReporter.js',
'out-build/sql/**/*.{svg,png,cur,html}',
'out-build/sql/base/browser/ui/table/media/*.{gif,png,svg}',
'out-build/sql/base/browser/ui/checkbox/media/*.{gif,png,svg}',
@@ -109,7 +96,8 @@ const vscodeResources = [
'out-build/sql/media/icons/*.svg',
'out-build/sql/workbench/parts/notebook/media/**/*.svg',
'out-build/sql/setup.js', // {{SQL CARBON EDIT}} end
'out-build/vs/platform/auth/common/auth.css',
'out-build/vs/code/electron-sandbox/processExplorer/processExplorer.js',
'out-build/vs/code/electron-sandbox/proxy/auth.js',
'!**/test/**'
];
@@ -119,23 +107,17 @@ const optimizeVSCodeTask = task.define('optimize-vscode', task.series(
src: 'out-build',
entryPoints: vscodeEntryPoints,
resources: vscodeResources,
loaderConfig: common.loaderConfig(nodeModules),
loaderConfig: common.loaderConfig(),
out: 'out-vscode',
bundleInfo: undefined
})
));
gulp.task(optimizeVSCodeTask);
const sourceMappingURLBase = `https://ticino.blob.core.windows.net/sourcemaps/${commit}`;
const sourceMappingURLBase = `https://sqlopsbuilds.blob.core.windows.net/sourcemaps/${commit}`;
const minifyVSCodeTask = task.define('minify-vscode', task.series(
optimizeVSCodeTask,
util.rimraf('out-vscode-min'),
() => {
const fullpath = path.join(process.cwd(), 'out-vscode/bootstrap-window.js');
const contents = fs.readFileSync(fullpath).toString();
const newContents = contents.replace('[/*BUILD->INSERT_NODE_MODULES*/]', JSON.stringify(nodeModules));
fs.writeFileSync(fullpath, newContents);
},
common.minifyTask('out-vscode', `${sourceMappingURLBase}/core`)
));
gulp.task(minifyVSCodeTask);
@@ -184,6 +166,7 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
const out = sourceFolderName;
const checksums = computeChecksums(out, [
'vs/base/parts/sandbox/electron-browser/preload.js',
'vs/workbench/workbench.desktop.main.js',
'vs/workbench/workbench.desktop.main.css',
'vs/workbench/services/extensions/node/extensionHostProcess.js',

View File

@@ -66,6 +66,7 @@ function buildWin32Setup(arch, target) {
return cb => {
const ia32AppId = target === 'system' ? product.win32AppId : product.win32UserAppId;
const x64AppId = target === 'system' ? product.win32x64AppId : product.win32x64UserAppId;
const arm64AppId = target === 'system' ? product.win32arm64AppId : product.win32arm64UserAppId;
const sourcePath = buildPath(arch);
const outputPath = setupDir(arch, target);
@@ -89,12 +90,12 @@ function buildWin32Setup(arch, target) {
ShellNameShort: product.win32ShellNameShort,
AppMutex: product.win32MutexName,
Arch: arch,
AppId: arch === 'ia32' ? ia32AppId : x64AppId,
IncompatibleTargetAppId: arch === 'ia32' ? product.win32AppId : product.win32x64AppId,
IncompatibleArchAppId: arch === 'ia32' ? x64AppId : ia32AppId,
AppId: { 'ia32': ia32AppId, 'x64': x64AppId, 'arm64': arm64AppId }[arch],
IncompatibleTargetAppId: { 'ia32': product.win32AppId, 'x64': product.win32x64AppId, 'arm64': product.win32arm64AppId }[arch],
IncompatibleArchAppId: { 'ia32': x64AppId, 'x64': ia32AppId, 'arm64': ia32AppId }[arch],
AppUserId: product.win32AppUserModelId,
ArchitecturesAllowed: arch === 'ia32' ? '' : 'x64',
ArchitecturesInstallIn64BitMode: arch === 'ia32' ? '' : 'x64',
ArchitecturesAllowed: { 'ia32': '', 'x64': 'x64', 'arm64': 'arm64' }[arch],
ArchitecturesInstallIn64BitMode: { 'ia32': '', 'x64': 'x64', 'arm64': 'arm64' }[arch],
SourceDir: sourcePath,
RepoDir: repoPath,
OutputDir: outputPath,
@@ -113,8 +114,10 @@ function defineWin32SetupTasks(arch, target) {
defineWin32SetupTasks('ia32', 'system');
defineWin32SetupTasks('x64', 'system');
defineWin32SetupTasks('arm64', 'system');
defineWin32SetupTasks('ia32', 'user');
defineWin32SetupTasks('x64', 'user');
defineWin32SetupTasks('arm64', 'user');
function archiveWin32Setup(arch) {
return cb => {
@@ -146,6 +149,7 @@ function updateIcon(executablePath) {
gulp.task(task.define('vscode-win32-ia32-inno-updater', task.series(copyInnoUpdater('ia32'), updateIcon(path.join(buildPath('ia32'), 'tools', 'inno_updater.exe')))));
gulp.task(task.define('vscode-win32-x64-inno-updater', task.series(copyInnoUpdater('x64'), updateIcon(path.join(buildPath('x64'), 'tools', 'inno_updater.exe')))));
gulp.task(task.define('vscode-win32-arm64-inno-updater', task.series(copyInnoUpdater('arm64'), updateIcon(path.join(buildPath('arm64'), 'tools', 'inno_updater.exe')))));
// CodeHelper.exe icon

View File

@@ -53,7 +53,9 @@ function createAsar(folderPath, unpackGlobs, destFilename) {
const insertFile = (relativePath, stat, shouldUnpack) => {
insertDirectoryForFile(relativePath);
pendingInserts++;
filesystem.insertFile(relativePath, shouldUnpack, { stat: stat }, {}, onFileInserted);
// Do not pass `onFileInserted` directly because it gets overwritten below.
// Create a closure capturing `onFileInserted`.
filesystem.insertFile(relativePath, shouldUnpack, { stat: stat }, {}).then(() => onFileInserted(), () => onFileInserted());
};
return es.through(function (file) {
if (file.stat.isDirectory()) {

View File

@@ -8,10 +8,17 @@
import * as path from 'path';
import * as es from 'event-stream';
const pickle = require('chromium-pickle-js');
const Filesystem = require('asar/lib/filesystem');
const Filesystem = <typeof AsarFilesystem>require('asar/lib/filesystem');
import * as VinylFile from 'vinyl';
import * as minimatch from 'minimatch';
declare class AsarFilesystem {
readonly header: unknown;
constructor(src: string);
insertDirectory(path: string, shouldUnpack?: boolean): unknown;
insertFile(path: string, shouldUnpack: boolean, file: { stat: { size: number; mode: number; }; }, options: {}): Promise<void>;
}
export function createAsar(folderPath: string, unpackGlobs: string[], destFilename: string): NodeJS.ReadWriteStream {
const shouldUnpackFile = (file: VinylFile): boolean => {
@@ -61,7 +68,9 @@ export function createAsar(folderPath: string, unpackGlobs: string[], destFilena
const insertFile = (relativePath: string, stat: { size: number; mode: number; }, shouldUnpack: boolean) => {
insertDirectoryForFile(relativePath);
pendingInserts++;
filesystem.insertFile(relativePath, shouldUnpack, { stat: stat }, {}, onFileInserted);
// Do not pass `onFileInserted` directly because it gets overwritten below.
// Create a closure capturing `onFileInserted`.
filesystem.insertFile(relativePath, shouldUnpack, { stat: stat }, {}).then(() => onFileInserted(), () => onFileInserted());
};
return es.through(function (file) {

View File

@@ -18,7 +18,9 @@ const fancyLog = require('fancy-log');
const ansiColors = require('ansi-colors');
const root = path.dirname(path.dirname(__dirname));
const builtInExtensions = JSON.parse(fs.readFileSync(path.join(__dirname, '../../product.json'), 'utf8')).builtInExtensions;
const productjson = JSON.parse(fs.readFileSync(path.join(__dirname, '../../product.json'), 'utf8'));
const builtInExtensions = productjson.builtInExtensions;
const webBuiltInExtensions = productjson.webBuiltInExtensions;
const controlFilePath = path.join(os.homedir(), '.vscode-oss-dev', 'extensions', 'control.json');
const ENABLE_LOGGING = !process.env['VSCODE_BUILD_BUILTIN_EXTENSIONS_SILENCE_PLEASE'];
@@ -100,14 +102,14 @@ function writeControlFile(control) {
fs.writeFileSync(controlFilePath, JSON.stringify(control, null, 2));
}
function main() {
exports.getBuiltInExtensions = function getBuiltInExtensions() {
log('Syncronizing built-in extensions...');
log(`You can manage built-in extensions with the ${ansiColors.cyan('--builtin')} flag`);
const control = readControlFile();
const streams = [];
for (const extension of builtInExtensions) {
for (const extension of [...builtInExtensions, ...webBuiltInExtensions]) {
let controlState = control[extension.name] || 'marketplace';
control[extension.name] = controlState;
@@ -116,14 +118,16 @@ function main() {
writeControlFile(control);
es.merge(streams)
.on('error', err => {
console.error(err);
process.exit(1);
})
.on('end', () => {
process.exit(0);
});
}
return new Promise((resolve, reject) => {
es.merge(streams)
.on('error', reject)
.on('end', resolve);
});
};
main();
if (require.main === module) {
exports.getBuiltInExtensions().then(() => process.exit(0)).catch(err => {
console.error(err);
process.exit(1);
});
}

View File

@@ -18,6 +18,7 @@ const reporter_1 = require("./reporter");
const util = require("./util");
const fancyLog = require("fancy-log");
const ansiColors = require("ansi-colors");
const os = require("os");
const watch = require('./watch');
const reporter = reporter_1.createReporter();
function getTypeScriptCompilerOptions(src) {
@@ -69,6 +70,9 @@ function createCompile(src, build, emitError) {
}
function compileTask(src, out, build) {
return function () {
if (os.totalmem() < 4000000000) {
throw new Error('compilation requires 4GB of RAM');
}
const compile = createCompile(src, build, true);
const srcPipe = gulp.src(`${src}/**`, { base: `${src}` });
let generator = new MonacoGenerator(false);

View File

@@ -18,6 +18,7 @@ import { createReporter } from './reporter';
import * as util from './util';
import * as fancyLog from 'fancy-log';
import * as ansiColors from 'ansi-colors';
import * as os from 'os';
import ts = require('typescript');
const watch = require('./watch');
@@ -81,6 +82,11 @@ function createCompile(src: string, build: boolean, emitError?: boolean) {
export function compileTask(src: string, out: string, build: boolean): () => NodeJS.ReadWriteStream {
return function () {
if (os.totalmem() < 4_000_000_000) {
throw new Error('compilation requires 4GB of RAM');
}
const compile = createCompile(src, build, true);
const srcPipe = gulp.src(`${src}/**`, { base: `${src}` });
let generator = new MonacoGenerator(false);

View File

@@ -4,7 +4,7 @@
*--------------------------------------------------------------------------------------------*/
'use strict';
Object.defineProperty(exports, "__esModule", { value: true });
exports.config = exports.getElectronVersion = void 0;
exports.config = void 0;
const fs = require("fs");
const path = require("path");
const vfs = require("vinyl-fs");
@@ -16,12 +16,6 @@ const electron = require('gulp-atom-electron');
const root = path.dirname(path.dirname(__dirname));
const product = JSON.parse(fs.readFileSync(path.join(root, 'product.json'), 'utf8'));
const commit = util.getVersion(root);
function getElectronVersion() {
const yarnrc = fs.readFileSync(path.join(root, '.yarnrc'), 'utf8');
const target = /^target "(.*)"$/m.exec(yarnrc)[1];
return target;
}
exports.getElectronVersion = getElectronVersion;
const darwinCreditsTemplate = product.darwinCredits && _.template(fs.readFileSync(path.join(root, product.darwinCredits), 'utf8'));
function darwinBundleDocumentType(extensions, icon) {
return {
@@ -33,7 +27,7 @@ function darwinBundleDocumentType(extensions, icon) {
};
}
exports.config = {
version: getElectronVersion(),
version: util.getElectronVersion(),
productAppName: product.nameLong,
companyName: 'Microsoft Corporation',
copyright: 'Copyright (C) 2019 Microsoft. All rights reserved',
@@ -73,7 +67,7 @@ function getElectron(arch) {
};
}
async function main(arch = process.arch) {
const version = getElectronVersion();
const version = util.getElectronVersion();
const electronPath = path.join(root, '.build', 'electron');
const versionFile = path.join(electronPath, 'version');
const isUpToDate = fs.existsSync(versionFile) && fs.readFileSync(versionFile, 'utf8') === `${version}`;

View File

@@ -19,12 +19,6 @@ const root = path.dirname(path.dirname(__dirname));
const product = JSON.parse(fs.readFileSync(path.join(root, 'product.json'), 'utf8'));
const commit = util.getVersion(root);
export function getElectronVersion(): string {
const yarnrc = fs.readFileSync(path.join(root, '.yarnrc'), 'utf8');
const target = /^target "(.*)"$/m.exec(yarnrc)![1];
return target;
}
const darwinCreditsTemplate = product.darwinCredits && _.template(fs.readFileSync(path.join(root, product.darwinCredits), 'utf8'));
function darwinBundleDocumentType(extensions: string[], icon: string) {
@@ -38,7 +32,7 @@ function darwinBundleDocumentType(extensions: string[], icon: string) {
}
export const config = {
version: getElectronVersion(),
version: util.getElectronVersion(),
productAppName: product.nameLong,
companyName: 'Microsoft Corporation',
copyright: 'Copyright (C) 2019 Microsoft. All rights reserved',
@@ -81,7 +75,7 @@ function getElectron(arch: string): () => NodeJS.ReadWriteStream {
}
async function main(arch = process.arch): Promise<void> {
const version = getElectronVersion();
const version = util.getElectronVersion();
const electronPath = path.join(root, '.build', 'electron');
const versionFile = path.join(electronPath, 'version');
const isUpToDate = fs.existsSync(versionFile) && fs.readFileSync(versionFile, 'utf8') === `${version}`;

View File

@@ -13,6 +13,10 @@ module.exports = new class ApiLiteralOrTypes {
create(context) {
return {
['TSTypeAnnotation TSUnionType TSLiteralType']: (node) => {
var _a;
if (((_a = node.literal) === null || _a === void 0 ? void 0 : _a.type) === 'TSNullKeyword') {
return;
}
context.report({
node: node,
messageId: 'useEnum'

View File

@@ -15,6 +15,9 @@ export = new class ApiLiteralOrTypes implements eslint.Rule.RuleModule {
create(context: eslint.Rule.RuleContext): eslint.Rule.RuleListener {
return {
['TSTypeAnnotation TSUnionType TSLiteralType']: (node: any) => {
if (node.literal?.type === 'TSNullKeyword') {
return;
}
context.report({
node: node,
messageId: 'useEnum'

View File

@@ -4,7 +4,7 @@
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.packageRebuildExtensionsStream = exports.cleanRebuildExtensions = exports.packageExternalExtensionsStream = exports.packageMarketplaceExtensionsStream = exports.packageLocalExtensionsStream = exports.fromMarketplace = void 0;
exports.translatePackageJSON = exports.packageRebuildExtensionsStream = exports.cleanRebuildExtensions = exports.packageExternalExtensionsStream = exports.scanBuiltinExtensions = exports.packageMarketplaceExtensionsStream = exports.packageLocalExtensionsStream = exports.fromMarketplace = void 0;
const es = require("event-stream");
const fs = require("fs");
const glob = require("glob");
@@ -22,33 +22,66 @@ const fancyLog = require("fancy-log");
const ansiColors = require("ansi-colors");
const buffer = require('gulp-buffer');
const json = require("gulp-json-editor");
const jsoncParser = require("jsonc-parser");
const webpack = require('webpack');
const webpackGulp = require('webpack-stream');
const util = require('./util');
const root = path.dirname(path.dirname(__dirname));
const commit = util.getVersion(root);
const sourceMappingURLBase = `https://ticino.blob.core.windows.net/sourcemaps/${commit}`;
function fromLocal(extensionPath) {
const webpackFilename = path.join(extensionPath, 'extension.webpack.config.js');
const input = fs.existsSync(webpackFilename)
? fromLocalWebpack(extensionPath)
: fromLocalNormal(extensionPath);
const tmLanguageJsonFilter = filter('**/*.tmLanguage.json', { restore: true });
const sourceMappingURLBase = `https://sqlopsbuilds.blob.core.windows.net/sourcemaps/${commit}`;
function minifyExtensionResources(input) {
const jsonFilter = filter(['**/*.json', '**/*.code-snippets'], { restore: true });
return input
.pipe(tmLanguageJsonFilter)
.pipe(jsonFilter)
.pipe(buffer())
.pipe(es.mapSync((f) => {
f.contents = Buffer.from(JSON.stringify(JSON.parse(f.contents.toString('utf8'))));
const errors = [];
const value = jsoncParser.parse(f.contents.toString('utf8'), errors);
if (errors.length === 0) {
// file parsed OK => just stringify to drop whitespace and comments
f.contents = Buffer.from(JSON.stringify(value));
}
return f;
}))
.pipe(tmLanguageJsonFilter.restore);
.pipe(jsonFilter.restore);
}
function fromLocalWebpack(extensionPath) {
function updateExtensionPackageJSON(input, update) {
const packageJsonFilter = filter('extensions/*/package.json', { restore: true });
return input
.pipe(packageJsonFilter)
.pipe(buffer())
.pipe(es.mapSync((f) => {
const data = JSON.parse(f.contents.toString('utf8'));
f.contents = Buffer.from(JSON.stringify(update(data)));
return f;
}))
.pipe(packageJsonFilter.restore);
}
function fromLocal(extensionPath, forWeb) {
const webpackConfigFileName = forWeb ? 'extension-browser.webpack.config.js' : 'extension.webpack.config.js';
const isWebPacked = fs.existsSync(path.join(extensionPath, webpackConfigFileName));
let input = isWebPacked
? fromLocalWebpack(extensionPath, webpackConfigFileName)
: fromLocalNormal(extensionPath);
if (isWebPacked) {
input = updateExtensionPackageJSON(input, (data) => {
delete data.scripts;
delete data.dependencies;
delete data.devDependencies;
if (data.main) {
data.main = data.main.replace('/out/', /dist/);
}
return data;
});
}
return input;
}
function fromLocalWebpack(extensionPath, webpackConfigFileName) {
const result = es.through();
const packagedDependencies = [];
const packageJsonConfig = require(path.join(extensionPath, 'package.json'));
if (packageJsonConfig.dependencies) {
const webpackRootConfig = require(path.join(extensionPath, 'extension.webpack.config.js'));
const webpackRootConfig = require(path.join(extensionPath, webpackConfigFileName));
for (const key in webpackRootConfig.externals) {
if (key in packageJsonConfig.dependencies) {
packagedDependencies.push(key);
@@ -64,30 +97,9 @@ function fromLocalWebpack(extensionPath) {
base: extensionPath,
contents: fs.createReadStream(filePath)
}));
const filesStream = es.readArray(files);
// check for a webpack configuration files, then invoke webpack
// and merge its output with the files stream. also rewrite the package.json
// file to a new entry point
const webpackConfigLocations = glob.sync(path.join(extensionPath, '/**/extension.webpack.config.js'), { ignore: ['**/node_modules'] });
const packageJsonFilter = filter(f => {
if (path.basename(f.path) === 'package.json') {
// only modify package.json's next to the webpack file.
// to be safe, use existsSync instead of path comparison.
return fs.existsSync(path.join(path.dirname(f.path), 'extension.webpack.config.js'));
}
return false;
}, { restore: true });
const patchFilesStream = filesStream
.pipe(packageJsonFilter)
.pipe(buffer())
.pipe(json((data) => {
if (data.main) {
// hardcoded entry point directory!
data.main = data.main.replace('/out/', /dist/);
}
return data;
}))
.pipe(packageJsonFilter.restore);
// and merge its output with the files stream.
const webpackConfigLocations = glob.sync(path.join(extensionPath, '**', webpackConfigFileName), { ignore: ['**/node_modules'] });
const webpackStreams = webpackConfigLocations.map(webpackConfigPath => {
const webpackDone = (err, stats) => {
fancyLog(`Bundled extension: ${ansiColors.yellow(path.join(path.basename(extensionPath), path.relative(extensionPath, webpackConfigPath)))}...`);
@@ -121,7 +133,7 @@ function fromLocalWebpack(extensionPath) {
this.emit('data', data);
}));
});
es.merge(...webpackStreams, patchFilesStream)
es.merge(...webpackStreams, es.readArray(files))
// .pipe(es.through(function (data) {
// // debug
// console.log('out', data.path, data.contents.length);
@@ -182,7 +194,6 @@ function fromMarketplace(extensionName, version, metadata) {
exports.fromMarketplace = fromMarketplace;
const excludedExtensions = [
'vscode-api-tests',
'vscode-web-playground',
'vscode-colorize-tests',
'vscode-test-resolver',
'ms-vscode.node-debug',
@@ -199,6 +210,7 @@ const externalExtensions = [
'admin-tool-ext-win',
'agent',
'arc',
'azdata',
'import',
'profiler',
'admin-pack',
@@ -206,45 +218,120 @@ const externalExtensions = [
'schema-compare',
'cms',
'query-history',
'kusto',
'liveshare',
'sql-database-projects',
'machine-learning',
'sql-assessment'
'sql-assessment',
'asde-deployment',
'sql-migration',
'data-workspace'
];
// extensions that require a rebuild since they have native parts
const rebuildExtensions = [
'big-data-cluster',
'mssql'
];
const builtInExtensions = JSON.parse(fs.readFileSync(path.join(__dirname, '../../product.json'), 'utf8')).builtInExtensions;
function packageLocalExtensionsStream() {
const localExtensionDescriptions = glob.sync('extensions/*/package.json')
const marketplaceWebExtensions = [
'ms-vscode.references-view'
];
const productJson = JSON.parse(fs.readFileSync(path.join(__dirname, '../../product.json'), 'utf8'));
const builtInExtensions = productJson.builtInExtensions || [];
const webBuiltInExtensions = productJson.webBuiltInExtensions || [];
/**
* Loosely based on `getExtensionKind` from `src/vs/workbench/services/extensions/common/extensionsUtil.ts`
*/
function isWebExtension(manifest) {
if (typeof manifest.extensionKind !== 'undefined') {
const extensionKind = Array.isArray(manifest.extensionKind) ? manifest.extensionKind : [manifest.extensionKind];
return (extensionKind.indexOf('web') >= 0);
}
return (!Boolean(manifest.main) || Boolean(manifest.browser));
}
function packageLocalExtensionsStream(forWeb) {
const localExtensionsDescriptions = (glob.sync('extensions/*/package.json')
.map(manifestPath => {
const absoluteManifestPath = path.join(root, manifestPath);
const extensionPath = path.dirname(path.join(root, manifestPath));
const extensionName = path.basename(extensionPath);
return { name: extensionName, path: extensionPath };
return { name: extensionName, path: extensionPath, manifestPath: absoluteManifestPath };
})
.filter(({ name }) => excludedExtensions.indexOf(name) === -1)
.filter(({ name }) => builtInExtensions.every(b => b.name !== name))
.filter(({ name }) => externalExtensions.indexOf(name) === -1); // {{SQL CARBON EDIT}} Remove external Extensions with separate package
const nodeModules = gulp.src('extensions/node_modules/**', { base: '.' });
const localExtensions = localExtensionDescriptions.map(extension => {
return fromLocal(extension.path)
.filter(({ name }) => externalExtensions.indexOf(name) === -1) // {{SQL CARBON EDIT}} Remove external Extensions with separate package
);
const localExtensionsStream = minifyExtensionResources(es.merge(...localExtensionsDescriptions.map(extension => {
return fromLocal(extension.path, forWeb)
.pipe(rename(p => p.dirname = `extensions/${extension.name}/${p.dirname}`));
});
return es.merge(nodeModules, ...localExtensions)
.pipe(util2.setExecutableBit(['**/*.sh']));
})));
let result;
if (forWeb) {
result = localExtensionsStream;
}
else {
// also include shared node modules
result = es.merge(localExtensionsStream, gulp.src('extensions/node_modules/**', { base: '.' }));
}
return (result
.pipe(util2.setExecutableBit(['**/*.sh'])));
}
exports.packageLocalExtensionsStream = packageLocalExtensionsStream;
function packageMarketplaceExtensionsStream() {
const extensions = builtInExtensions.map(extension => {
return fromMarketplace(extension.name, extension.version, extension.metadata)
function packageMarketplaceExtensionsStream(forWeb) {
const marketplaceExtensionsDescriptions = [
...builtInExtensions.filter(({ name }) => (forWeb ? marketplaceWebExtensions.indexOf(name) >= 0 : true)),
...(forWeb ? webBuiltInExtensions : [])
];
const marketplaceExtensionsStream = minifyExtensionResources(es.merge(...marketplaceExtensionsDescriptions
.map(extension => {
const input = fromMarketplace(extension.name, extension.version, extension.metadata)
.pipe(rename(p => p.dirname = `extensions/${extension.name}/${p.dirname}`));
});
return es.merge(extensions)
.pipe(util2.setExecutableBit(['**/*.sh']));
return updateExtensionPackageJSON(input, (data) => {
delete data.scripts;
delete data.dependencies;
delete data.devDependencies;
return data;
});
})));
return (marketplaceExtensionsStream
.pipe(util2.setExecutableBit(['**/*.sh'])));
}
exports.packageMarketplaceExtensionsStream = packageMarketplaceExtensionsStream;
function scanBuiltinExtensions(extensionsRoot, exclude = []) {
const scannedExtensions = [];
try {
const extensionsFolders = fs.readdirSync(extensionsRoot);
for (const extensionFolder of extensionsFolders) {
if (exclude.indexOf(extensionFolder) >= 0) {
continue;
}
const packageJSONPath = path.join(extensionsRoot, extensionFolder, 'package.json');
if (!fs.existsSync(packageJSONPath)) {
continue;
}
let packageJSON = JSON.parse(fs.readFileSync(packageJSONPath).toString('utf8'));
if (!isWebExtension(packageJSON)) {
continue;
}
const children = fs.readdirSync(path.join(extensionsRoot, extensionFolder));
const packageNLSPath = children.filter(child => child === 'package.nls.json')[0];
const packageNLS = packageNLSPath ? JSON.parse(fs.readFileSync(path.join(extensionsRoot, extensionFolder, packageNLSPath)).toString()) : undefined;
const readme = children.filter(child => /^readme(\.txt|\.md|)$/i.test(child))[0];
const changelog = children.filter(child => /^changelog(\.txt|\.md|)$/i.test(child))[0];
scannedExtensions.push({
extensionPath: extensionFolder,
packageJSON,
packageNLS,
readmePath: readme ? path.join(extensionFolder, readme) : undefined,
changelogPath: changelog ? path.join(extensionFolder, changelog) : undefined,
});
}
return scannedExtensions;
}
catch (ex) {
return scannedExtensions;
}
}
exports.scanBuiltinExtensions = scanBuiltinExtensions;
function packageExternalExtensionsStream() {
const extenalExtensionDescriptions = glob.sync('extensions/*/package.json')
.map(manifestPath => {
@@ -254,13 +341,13 @@ function packageExternalExtensionsStream() {
})
.filter(({ name }) => externalExtensions.indexOf(name) >= 0);
const builtExtensions = extenalExtensionDescriptions.map(extension => {
return fromLocal(extension.path)
return fromLocal(extension.path, false)
.pipe(rename(p => p.dirname = `extensions/${extension.name}/${p.dirname}`));
});
return es.merge(builtExtensions);
}
exports.packageExternalExtensionsStream = packageExternalExtensionsStream;
// {{SQL CARBON EDIT}} - End
// {{SQL CARBON EDIT}} start
function cleanRebuildExtensions(root) {
return Promise.all(rebuildExtensions.map(async (e) => {
await util2.rimraf(path.join(root, e))();
@@ -276,9 +363,34 @@ function packageRebuildExtensionsStream() {
})
.filter(({ name }) => rebuildExtensions.indexOf(name) >= 0);
const builtExtensions = extenalExtensionDescriptions.map(extension => {
return fromLocal(extension.path)
return fromLocal(extension.path, false)
.pipe(rename(p => p.dirname = `extensions/${extension.name}/${p.dirname}`));
});
return es.merge(builtExtensions);
}
exports.packageRebuildExtensionsStream = packageRebuildExtensionsStream;
// {{SQL CARBON EDIT}} end
function translatePackageJSON(packageJSON, packageNLSPath) {
const CharCode_PC = '%'.charCodeAt(0);
const packageNls = JSON.parse(fs.readFileSync(packageNLSPath).toString());
const translate = (obj) => {
for (let key in obj) {
const val = obj[key];
if (Array.isArray(val)) {
val.forEach(translate);
}
else if (val && typeof val === 'object') {
translate(val);
}
else if (typeof val === 'string' && val.charCodeAt(0) === CharCode_PC && val.charCodeAt(val.length - 1) === CharCode_PC) {
const translated = packageNls[val.substr(1, val.length - 2)];
if (translated) {
obj[key] = translated;
}
}
}
};
translate(packageJSON);
return packageJSON;
}
exports.translatePackageJSON = translatePackageJSON;

View File

@@ -21,38 +21,75 @@ import * as fancyLog from 'fancy-log';
import * as ansiColors from 'ansi-colors';
const buffer = require('gulp-buffer');
import json = require('gulp-json-editor');
import * as jsoncParser from 'jsonc-parser';
const webpack = require('webpack');
const webpackGulp = require('webpack-stream');
const util = require('./util');
const root = path.dirname(path.dirname(__dirname));
const commit = util.getVersion(root);
const sourceMappingURLBase = `https://ticino.blob.core.windows.net/sourcemaps/${commit}`;
function fromLocal(extensionPath: string): Stream {
const webpackFilename = path.join(extensionPath, 'extension.webpack.config.js');
const input = fs.existsSync(webpackFilename)
? fromLocalWebpack(extensionPath)
: fromLocalNormal(extensionPath);
const tmLanguageJsonFilter = filter('**/*.tmLanguage.json', { restore: true });
const sourceMappingURLBase = `https://sqlopsbuilds.blob.core.windows.net/sourcemaps/${commit}`;
function minifyExtensionResources(input: Stream): Stream {
const jsonFilter = filter(['**/*.json', '**/*.code-snippets'], { restore: true });
return input
.pipe(tmLanguageJsonFilter)
.pipe(jsonFilter)
.pipe(buffer())
.pipe(es.mapSync((f: File) => {
f.contents = Buffer.from(JSON.stringify(JSON.parse(f.contents.toString('utf8'))));
const errors: jsoncParser.ParseError[] = [];
const value = jsoncParser.parse(f.contents.toString('utf8'), errors);
if (errors.length === 0) {
// file parsed OK => just stringify to drop whitespace and comments
f.contents = Buffer.from(JSON.stringify(value));
}
return f;
}))
.pipe(tmLanguageJsonFilter.restore);
.pipe(jsonFilter.restore);
}
function fromLocalWebpack(extensionPath: string): Stream {
function updateExtensionPackageJSON(input: Stream, update: (data: any) => any): Stream {
const packageJsonFilter = filter('extensions/*/package.json', { restore: true });
return input
.pipe(packageJsonFilter)
.pipe(buffer())
.pipe(es.mapSync((f: File) => {
const data = JSON.parse(f.contents.toString('utf8'));
f.contents = Buffer.from(JSON.stringify(update(data)));
return f;
}))
.pipe(packageJsonFilter.restore);
}
function fromLocal(extensionPath: string, forWeb: boolean): Stream {
const webpackConfigFileName = forWeb ? 'extension-browser.webpack.config.js' : 'extension.webpack.config.js';
const isWebPacked = fs.existsSync(path.join(extensionPath, webpackConfigFileName));
let input = isWebPacked
? fromLocalWebpack(extensionPath, webpackConfigFileName)
: fromLocalNormal(extensionPath);
if (isWebPacked) {
input = updateExtensionPackageJSON(input, (data: any) => {
delete data.scripts;
delete data.dependencies;
delete data.devDependencies;
if (data.main) {
data.main = data.main.replace('/out/', /dist/);
}
return data;
});
}
return input;
}
function fromLocalWebpack(extensionPath: string, webpackConfigFileName: string): Stream {
const result = es.through();
const packagedDependencies: string[] = [];
const packageJsonConfig = require(path.join(extensionPath, 'package.json'));
if (packageJsonConfig.dependencies) {
const webpackRootConfig = require(path.join(extensionPath, 'extension.webpack.config.js'));
const webpackRootConfig = require(path.join(extensionPath, webpackConfigFileName));
for (const key in webpackRootConfig.externals) {
if (key in packageJsonConfig.dependencies) {
packagedDependencies.push(key);
@@ -70,38 +107,13 @@ function fromLocalWebpack(extensionPath: string): Stream {
contents: fs.createReadStream(filePath) as any
}));
const filesStream = es.readArray(files);
// check for a webpack configuration files, then invoke webpack
// and merge its output with the files stream. also rewrite the package.json
// file to a new entry point
// and merge its output with the files stream.
const webpackConfigLocations = (<string[]>glob.sync(
path.join(extensionPath, '/**/extension.webpack.config.js'),
path.join(extensionPath, '**', webpackConfigFileName),
{ ignore: ['**/node_modules'] }
));
const packageJsonFilter = filter(f => {
if (path.basename(f.path) === 'package.json') {
// only modify package.json's next to the webpack file.
// to be safe, use existsSync instead of path comparison.
return fs.existsSync(path.join(path.dirname(f.path), 'extension.webpack.config.js'));
}
return false;
}, { restore: true });
const patchFilesStream = filesStream
.pipe(packageJsonFilter)
.pipe(buffer())
.pipe(json((data: any) => {
if (data.main) {
// hardcoded entry point directory!
data.main = data.main.replace('/out/', /dist/);
}
return data;
}))
.pipe(packageJsonFilter.restore);
const webpackStreams = webpackConfigLocations.map(webpackConfigPath => {
const webpackDone = (err: any, stats: any) => {
@@ -143,7 +155,7 @@ function fromLocalWebpack(extensionPath: string): Stream {
}));
});
es.merge(...webpackStreams, patchFilesStream)
es.merge(...webpackStreams, es.readArray(files))
// .pipe(es.through(function (data) {
// // debug
// console.log('out', data.path, data.contents.length);
@@ -213,10 +225,8 @@ export function fromMarketplace(extensionName: string, version: string, metadata
.pipe(json({ __metadata: metadata }))
.pipe(packageJsonFilter.restore);
}
const excludedExtensions = [
'vscode-api-tests',
'vscode-web-playground',
'vscode-colorize-tests',
'vscode-test-resolver',
'ms-vscode.node-debug',
@@ -234,6 +244,7 @@ const externalExtensions = [
'admin-tool-ext-win',
'agent',
'arc',
'azdata',
'import',
'profiler',
'admin-pack',
@@ -241,10 +252,14 @@ const externalExtensions = [
'schema-compare',
'cms',
'query-history',
'kusto',
'liveshare',
'sql-database-projects',
'machine-learning',
'sql-assessment'
'sql-assessment',
'asde-deployment',
'sql-migration',
'data-workspace'
];
// extensions that require a rebuild since they have native parts
@@ -253,6 +268,10 @@ const rebuildExtensions = [
'mssql'
];
const marketplaceWebExtensions = [
'ms-vscode.references-view'
];
interface IBuiltInExtension {
name: string;
version: string;
@@ -260,37 +279,133 @@ interface IBuiltInExtension {
metadata: any;
}
const builtInExtensions: IBuiltInExtension[] = JSON.parse(fs.readFileSync(path.join(__dirname, '../../product.json'), 'utf8')).builtInExtensions;
const productJson = JSON.parse(fs.readFileSync(path.join(__dirname, '../../product.json'), 'utf8'));
const builtInExtensions: IBuiltInExtension[] = productJson.builtInExtensions || [];
const webBuiltInExtensions: IBuiltInExtension[] = productJson.webBuiltInExtensions || [];
export function packageLocalExtensionsStream(): NodeJS.ReadWriteStream {
const localExtensionDescriptions = (<string[]>glob.sync('extensions/*/package.json'))
.map(manifestPath => {
const extensionPath = path.dirname(path.join(root, manifestPath));
const extensionName = path.basename(extensionPath);
return { name: extensionName, path: extensionPath };
})
.filter(({ name }) => excludedExtensions.indexOf(name) === -1)
.filter(({ name }) => builtInExtensions.every(b => b.name !== name))
.filter(({ name }) => externalExtensions.indexOf(name) === -1); // {{SQL CARBON EDIT}} Remove external Extensions with separate package
const nodeModules = gulp.src('extensions/node_modules/**', { base: '.' });
const localExtensions = localExtensionDescriptions.map(extension => {
return fromLocal(extension.path)
.pipe(rename(p => p.dirname = `extensions/${extension.name}/${p.dirname}`));
});
return es.merge(nodeModules, ...localExtensions)
.pipe(util2.setExecutableBit(['**/*.sh']));
type ExtensionKind = 'ui' | 'workspace' | 'web';
interface IExtensionManifest {
main: string;
browser: string;
extensionKind?: ExtensionKind | ExtensionKind[];
}
/**
* Loosely based on `getExtensionKind` from `src/vs/workbench/services/extensions/common/extensionsUtil.ts`
*/
function isWebExtension(manifest: IExtensionManifest): boolean {
if (typeof manifest.extensionKind !== 'undefined') {
const extensionKind = Array.isArray(manifest.extensionKind) ? manifest.extensionKind : [manifest.extensionKind];
return (extensionKind.indexOf('web') >= 0);
}
return (!Boolean(manifest.main) || Boolean(manifest.browser));
}
export function packageMarketplaceExtensionsStream(): NodeJS.ReadWriteStream {
const extensions = builtInExtensions.map(extension => {
return fromMarketplace(extension.name, extension.version, extension.metadata)
.pipe(rename(p => p.dirname = `extensions/${extension.name}/${p.dirname}`));
});
export function packageLocalExtensionsStream(forWeb: boolean): Stream {
const localExtensionsDescriptions = (
(<string[]>glob.sync('extensions/*/package.json'))
.map(manifestPath => {
const absoluteManifestPath = path.join(root, manifestPath);
const extensionPath = path.dirname(path.join(root, manifestPath));
const extensionName = path.basename(extensionPath);
return { name: extensionName, path: extensionPath, manifestPath: absoluteManifestPath };
})
.filter(({ name }) => excludedExtensions.indexOf(name) === -1)
.filter(({ name }) => builtInExtensions.every(b => b.name !== name))
.filter(({ name }) => externalExtensions.indexOf(name) === -1) // {{SQL CARBON EDIT}} Remove external Extensions with separate package
);
const localExtensionsStream = minifyExtensionResources(
es.merge(
...localExtensionsDescriptions.map(extension => {
return fromLocal(extension.path, forWeb)
.pipe(rename(p => p.dirname = `extensions/${extension.name}/${p.dirname}`));
})
)
);
return es.merge(extensions)
.pipe(util2.setExecutableBit(['**/*.sh']));
let result: Stream;
if (forWeb) {
result = localExtensionsStream;
} else {
// also include shared node modules
result = es.merge(localExtensionsStream, gulp.src('extensions/node_modules/**', { base: '.' }));
}
return (
result
.pipe(util2.setExecutableBit(['**/*.sh']))
);
}
export function packageMarketplaceExtensionsStream(forWeb: boolean): Stream {
const marketplaceExtensionsDescriptions = [
...builtInExtensions.filter(({ name }) => (forWeb ? marketplaceWebExtensions.indexOf(name) >= 0 : true)),
...(forWeb ? webBuiltInExtensions : [])
];
const marketplaceExtensionsStream = minifyExtensionResources(
es.merge(
...marketplaceExtensionsDescriptions
.map(extension => {
const input = fromMarketplace(extension.name, extension.version, extension.metadata)
.pipe(rename(p => p.dirname = `extensions/${extension.name}/${p.dirname}`));
return updateExtensionPackageJSON(input, (data: any) => {
delete data.scripts;
delete data.dependencies;
delete data.devDependencies;
return data;
});
})
)
);
return (
marketplaceExtensionsStream
.pipe(util2.setExecutableBit(['**/*.sh']))
);
}
export interface IScannedBuiltinExtension {
extensionPath: string;
packageJSON: any;
packageNLS?: any;
readmePath?: string;
changelogPath?: string;
}
export function scanBuiltinExtensions(extensionsRoot: string, exclude: string[] = []): IScannedBuiltinExtension[] {
const scannedExtensions: IScannedBuiltinExtension[] = [];
try {
const extensionsFolders = fs.readdirSync(extensionsRoot);
for (const extensionFolder of extensionsFolders) {
if (exclude.indexOf(extensionFolder) >= 0) {
continue;
}
const packageJSONPath = path.join(extensionsRoot, extensionFolder, 'package.json');
if (!fs.existsSync(packageJSONPath)) {
continue;
}
let packageJSON = JSON.parse(fs.readFileSync(packageJSONPath).toString('utf8'));
if (!isWebExtension(packageJSON)) {
continue;
}
const children = fs.readdirSync(path.join(extensionsRoot, extensionFolder));
const packageNLSPath = children.filter(child => child === 'package.nls.json')[0];
const packageNLS = packageNLSPath ? JSON.parse(fs.readFileSync(path.join(extensionsRoot, extensionFolder, packageNLSPath)).toString()) : undefined;
const readme = children.filter(child => /^readme(\.txt|\.md|)$/i.test(child))[0];
const changelog = children.filter(child => /^changelog(\.txt|\.md|)$/i.test(child))[0];
scannedExtensions.push({
extensionPath: extensionFolder,
packageJSON,
packageNLS,
readmePath: readme ? path.join(extensionFolder, readme) : undefined,
changelogPath: changelog ? path.join(extensionFolder, changelog) : undefined,
});
}
return scannedExtensions;
} catch (ex) {
return scannedExtensions;
}
}
export function packageExternalExtensionsStream(): NodeJS.ReadWriteStream {
@@ -303,14 +418,14 @@ export function packageExternalExtensionsStream(): NodeJS.ReadWriteStream {
.filter(({ name }) => externalExtensions.indexOf(name) >= 0);
const builtExtensions = extenalExtensionDescriptions.map(extension => {
return fromLocal(extension.path)
return fromLocal(extension.path, false)
.pipe(rename(p => p.dirname = `extensions/${extension.name}/${p.dirname}`));
});
return es.merge(builtExtensions);
}
// {{SQL CARBON EDIT}} - End
// {{SQL CARBON EDIT}} start
export function cleanRebuildExtensions(root: string): Promise<void> {
return Promise.all(rebuildExtensions.map(async e => {
await util2.rimraf(path.join(root, e))();
@@ -327,9 +442,32 @@ export function packageRebuildExtensionsStream(): NodeJS.ReadWriteStream {
.filter(({ name }) => rebuildExtensions.indexOf(name) >= 0);
const builtExtensions = extenalExtensionDescriptions.map(extension => {
return fromLocal(extension.path)
return fromLocal(extension.path, false)
.pipe(rename(p => p.dirname = `extensions/${extension.name}/${p.dirname}`));
});
return es.merge(builtExtensions);
}
// {{SQL CARBON EDIT}} end
export function translatePackageJSON(packageJSON: string, packageNLSPath: string) {
const CharCode_PC = '%'.charCodeAt(0);
const packageNls = JSON.parse(fs.readFileSync(packageNLSPath).toString());
const translate = (obj: any) => {
for (let key in obj) {
const val = obj[key];
if (Array.isArray(val)) {
val.forEach(translate);
} else if (val && typeof val === 'object') {
translate(val);
} else if (typeof val === 'string' && val.charCodeAt(0) === CharCode_PC && val.charCodeAt(val.length - 1) === CharCode_PC) {
const translated = packageNls[val.substr(1, val.length - 2)];
if (translated) {
obj[key] = translated;
}
}
}
};
translate(packageJSON);
return packageJSON;
}

View File

@@ -16,7 +16,7 @@ const https = require("https");
const gulp = require("gulp");
const fancyLog = require("fancy-log");
const ansiColors = require("ansi-colors");
const iconv = require("iconv-lite");
const iconv = require("iconv-lite-umd");
const NUMBER_OF_CONCURRENT_DOWNLOADS = 4;
function log(message, ...rest) {
fancyLog(ansiColors.green('[i18n]'), message, ...rest);
@@ -101,161 +101,158 @@ class TextModel {
return this._lines;
}
}
let XLF = /** @class */ (() => {
class XLF {
constructor(project) {
this.project = project;
this.buffer = [];
this.files = Object.create(null);
this.numberOfMessages = 0;
class XLF {
constructor(project) {
this.project = project;
this.buffer = [];
this.files = Object.create(null);
this.numberOfMessages = 0;
}
toString() {
this.appendHeader();
for (let file in this.files) {
this.appendNewLine(`<file original="${file}" source-language="en" datatype="plaintext"><body>`, 2);
for (let item of this.files[file]) {
this.addStringItem(file, item);
}
this.appendNewLine('</body></file>', 2);
}
toString() {
this.appendHeader();
for (let file in this.files) {
this.appendNewLine(`<file original="${file}" source-language="en" datatype="plaintext"><body>`, 2);
for (let item of this.files[file]) {
this.addStringItem(file, item);
this.appendFooter();
return this.buffer.join('\r\n');
}
addFile(original, keys, messages) {
if (keys.length === 0) {
console.log('No keys in ' + original);
return;
}
if (keys.length !== messages.length) {
throw new Error(`Unmatching keys(${keys.length}) and messages(${messages.length}).`);
}
this.numberOfMessages += keys.length;
this.files[original] = [];
let existingKeys = new Set();
for (let i = 0; i < keys.length; i++) {
let key = keys[i];
let realKey;
let comment;
if (Is.string(key)) {
realKey = key;
comment = undefined;
}
else if (LocalizeInfo.is(key)) {
realKey = key.key;
if (key.comment && key.comment.length > 0) {
comment = key.comment.map(comment => encodeEntities(comment)).join('\r\n');
}
this.appendNewLine('</body></file>', 2);
}
this.appendFooter();
return this.buffer.join('\r\n');
}
addFile(original, keys, messages) {
if (keys.length === 0) {
console.log('No keys in ' + original);
return;
if (!realKey || existingKeys.has(realKey)) {
continue;
}
if (keys.length !== messages.length) {
throw new Error(`Unmatching keys(${keys.length}) and messages(${messages.length}).`);
}
this.numberOfMessages += keys.length;
this.files[original] = [];
let existingKeys = new Set();
for (let i = 0; i < keys.length; i++) {
let key = keys[i];
let realKey;
let comment;
if (Is.string(key)) {
realKey = key;
comment = undefined;
}
else if (LocalizeInfo.is(key)) {
realKey = key.key;
if (key.comment && key.comment.length > 0) {
comment = key.comment.map(comment => encodeEntities(comment)).join('\r\n');
}
}
if (!realKey || existingKeys.has(realKey)) {
continue;
}
existingKeys.add(realKey);
let message = encodeEntities(messages[i]);
this.files[original].push({ id: realKey, message: message, comment: comment });
}
}
addStringItem(file, item) {
if (!item.id || item.message === undefined || item.message === null) {
throw new Error(`No item ID or value specified: ${JSON.stringify(item)}. File: ${file}`);
}
if (item.message.length === 0) {
log(`Item with id ${item.id} in file ${file} has an empty message.`);
}
this.appendNewLine(`<trans-unit id="${item.id}">`, 4);
this.appendNewLine(`<source xml:lang="en">${item.message}</source>`, 6);
if (item.comment) {
this.appendNewLine(`<note>${item.comment}</note>`, 6);
}
this.appendNewLine('</trans-unit>', 4);
}
appendHeader() {
this.appendNewLine('<?xml version="1.0" encoding="utf-8"?>', 0);
this.appendNewLine('<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">', 0);
}
appendFooter() {
this.appendNewLine('</xliff>', 0);
}
appendNewLine(content, indent) {
let line = new Line(indent);
line.append(content);
this.buffer.push(line.toString());
existingKeys.add(realKey);
let message = encodeEntities(messages[i]);
this.files[original].push({ id: realKey, message: message, comment: comment });
}
}
XLF.parsePseudo = function (xlfString) {
return new Promise((resolve) => {
let parser = new xml2js.Parser();
let files = [];
parser.parseString(xlfString, function (_err, result) {
const fileNodes = result['xliff']['file'];
fileNodes.forEach(file => {
const originalFilePath = file.$.original;
const messages = {};
const transUnits = file.body[0]['trans-unit'];
if (transUnits) {
transUnits.forEach((unit) => {
const key = unit.$.id;
const val = pseudify(unit.source[0]['_'].toString());
if (key && val) {
messages[key] = decodeEntities(val);
}
});
files.push({ messages: messages, originalFilePath: originalFilePath, language: 'ps' });
}
});
resolve(files);
});
});
};
XLF.parse = function (xlfString) {
return new Promise((resolve, reject) => {
let parser = new xml2js.Parser();
let files = [];
parser.parseString(xlfString, function (err, result) {
if (err) {
reject(new Error(`XLF parsing error: Failed to parse XLIFF string. ${err}`));
}
const fileNodes = result['xliff']['file'];
if (!fileNodes) {
reject(new Error(`XLF parsing error: XLIFF file does not contain "xliff" or "file" node(s) required for parsing.`));
}
fileNodes.forEach((file) => {
const originalFilePath = file.$.original;
if (!originalFilePath) {
reject(new Error(`XLF parsing error: XLIFF file node does not contain original attribute to determine the original location of the resource file.`));
}
let language = file.$['target-language'];
if (!language) {
reject(new Error(`XLF parsing error: XLIFF file node does not contain target-language attribute to determine translated language.`));
}
const messages = {};
const transUnits = file.body[0]['trans-unit'];
if (transUnits) {
transUnits.forEach((unit) => {
const key = unit.$.id;
if (!unit.target) {
return; // No translation available
}
let val = unit.target[0];
if (typeof val !== 'string') {
val = val._;
}
if (key && val) {
messages[key] = decodeEntities(val);
}
else {
reject(new Error(`XLF parsing error: XLIFF file ${originalFilePath} does not contain full localization data. ID or target translation for one of the trans-unit nodes is not present.`));
}
});
files.push({ messages: messages, originalFilePath: originalFilePath, language: language.toLowerCase() });
}
});
resolve(files);
});
});
};
return XLF;
})();
addStringItem(file, item) {
if (!item.id || item.message === undefined || item.message === null) {
throw new Error(`No item ID or value specified: ${JSON.stringify(item)}. File: ${file}`);
}
if (item.message.length === 0) {
log(`Item with id ${item.id} in file ${file} has an empty message.`);
}
this.appendNewLine(`<trans-unit id="${item.id}">`, 4);
this.appendNewLine(`<source xml:lang="en">${item.message}</source>`, 6);
if (item.comment) {
this.appendNewLine(`<note>${item.comment}</note>`, 6);
}
this.appendNewLine('</trans-unit>', 4);
}
appendHeader() {
this.appendNewLine('<?xml version="1.0" encoding="utf-8"?>', 0);
this.appendNewLine('<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">', 0);
}
appendFooter() {
this.appendNewLine('</xliff>', 0);
}
appendNewLine(content, indent) {
let line = new Line(indent);
line.append(content);
this.buffer.push(line.toString());
}
}
exports.XLF = XLF;
XLF.parsePseudo = function (xlfString) {
return new Promise((resolve) => {
let parser = new xml2js.Parser();
let files = [];
parser.parseString(xlfString, function (_err, result) {
const fileNodes = result['xliff']['file'];
fileNodes.forEach(file => {
const originalFilePath = file.$.original;
const messages = {};
const transUnits = file.body[0]['trans-unit'];
if (transUnits) {
transUnits.forEach((unit) => {
const key = unit.$.id;
const val = pseudify(unit.source[0]['_'].toString());
if (key && val) {
messages[key] = decodeEntities(val);
}
});
files.push({ messages: messages, originalFilePath: originalFilePath, language: 'ps' });
}
});
resolve(files);
});
});
};
XLF.parse = function (xlfString) {
return new Promise((resolve, reject) => {
let parser = new xml2js.Parser();
let files = [];
parser.parseString(xlfString, function (err, result) {
if (err) {
reject(new Error(`XLF parsing error: Failed to parse XLIFF string. ${err}`));
}
const fileNodes = result['xliff']['file'];
if (!fileNodes) {
reject(new Error(`XLF parsing error: XLIFF file does not contain "xliff" or "file" node(s) required for parsing.`));
}
fileNodes.forEach((file) => {
const originalFilePath = file.$.original;
if (!originalFilePath) {
reject(new Error(`XLF parsing error: XLIFF file node does not contain original attribute to determine the original location of the resource file.`));
}
let language = file.$['target-language'];
if (!language) {
reject(new Error(`XLF parsing error: XLIFF file node does not contain target-language attribute to determine translated language.`));
}
const messages = {};
const transUnits = file.body[0]['trans-unit'];
if (transUnits) {
transUnits.forEach((unit) => {
const key = unit.$.id;
if (!unit.target) {
return; // No translation available
}
let val = unit.target[0];
if (typeof val !== 'string') {
val = val._;
}
if (key && val) {
messages[key] = decodeEntities(val);
}
else {
reject(new Error(`XLF parsing error: XLIFF file ${originalFilePath} does not contain full localization data. ID or target translation for one of the trans-unit nodes is not present.`));
}
});
files.push({ messages: messages, originalFilePath: originalFilePath, language: language.toLowerCase() });
}
});
resolve(files);
});
});
};
class Limiter {
constructor(maxDegreeOfParalellism) {
this.maxDegreeOfParalellism = maxDegreeOfParalellism;
@@ -1150,12 +1147,7 @@ function createIslFile(originalFilePath, messages, language, innoSetup) {
if (line.length > 0) {
let firstChar = line.charAt(0);
if (firstChar === '[' || firstChar === ';') {
if (line === '; *** Inno Setup version 5.5.3+ English messages ***') {
content.push(`; *** Inno Setup version 5.5.3+ ${innoSetup.defaultInfo.name} messages ***`);
}
else {
content.push(line);
}
content.push(line);
}
else {
let sections = line.split('=');
@@ -1184,9 +1176,10 @@ function createIslFile(originalFilePath, messages, language, innoSetup) {
});
const basename = path.basename(originalFilePath);
const filePath = `${basename}.${language.id}.isl`;
const encoded = iconv.encode(Buffer.from(content.join('\r\n'), 'utf8').toString(), innoSetup.codePage);
return new File({
path: filePath,
contents: iconv.encode(Buffer.from(content.join('\r\n'), 'utf8').toString(), innoSetup.codePage)
contents: Buffer.from(encoded),
});
}
function encodeEntities(value) {

View File

@@ -94,6 +94,10 @@
"name": "vs/workbench/contrib/issue",
"project": "vscode-workbench"
},
{
"name": "vs/workbench/contrib/keybindings",
"project": "vscode-workbench"
},
{
"name": "vs/workbench/contrib/markers",
"project": "vscode-workbench"
@@ -138,6 +142,10 @@
"name": "vs/workbench/contrib/relauncher",
"project": "vscode-workbench"
},
{
"name": "vs/workbench/contrib/sash",
"project": "vscode-workbench"
},
{
"name": "vs/workbench/contrib/scm",
"project": "vscode-workbench"
@@ -214,6 +222,10 @@
"name": "vs/workbench/contrib/userDataSync",
"project": "vscode-workbench"
},
{
"name": "vs/workbench/contrib/views",
"project": "vscode-workbench"
},
{
"name": "vs/workbench/services/actions",
"project": "vscode-workbench"
@@ -238,10 +250,6 @@
"name": "vs/workbench/services/configurationResolver",
"project": "vscode-workbench"
},
{
"name": "vs/workbench/services/crashReporter",
"project": "vscode-workbench"
},
{
"name": "vs/workbench/services/dialogs",
"project": "vscode-workbench"
@@ -338,6 +346,10 @@
"name": "vs/workbench/services/userDataSync",
"project": "vscode-workbench"
},
{
"name": "vs/workbench/services/views",
"project": "vscode-workbench"
},
{
"name": "vs/workbench/contrib/timeline",
"project": "vscode-workbench"

View File

@@ -15,7 +15,7 @@ import * as https from 'https';
import * as gulp from 'gulp';
import * as fancyLog from 'fancy-log';
import * as ansiColors from 'ansi-colors';
import * as iconv from 'iconv-lite';
import * as iconv from 'iconv-lite-umd';
const NUMBER_OF_CONCURRENT_DOWNLOADS = 4;
@@ -1316,11 +1316,7 @@ function createIslFile(originalFilePath: string, messages: Map<string>, language
if (line.length > 0) {
let firstChar = line.charAt(0);
if (firstChar === '[' || firstChar === ';') {
if (line === '; *** Inno Setup version 5.5.3+ English messages ***') {
content.push(`; *** Inno Setup version 5.5.3+ ${innoSetup.defaultInfo!.name} messages ***`);
} else {
content.push(line);
}
content.push(line);
} else {
let sections: string[] = line.split('=');
let key = sections[0];
@@ -1347,10 +1343,11 @@ function createIslFile(originalFilePath: string, messages: Map<string>, language
const basename = path.basename(originalFilePath);
const filePath = `${basename}.${language.id}.isl`;
const encoded = iconv.encode(Buffer.from(content.join('\r\n'), 'utf8').toString(), innoSetup.codePage);
return new File({
path: filePath,
contents: iconv.encode(Buffer.from(content.join('\r\n'), 'utf8').toString(), innoSetup.codePage)
contents: Buffer.from(encoded),
});
}

View File

@@ -130,6 +130,14 @@ const RULES = [
'lib.dom.d.ts' // no DOM
]
},
// Electron (sandbox)
{
target: '**/vs/**/electron-sandbox/**',
allowedTypes: CORE_TYPES,
disallowedDefinitions: [
'@types/node' // no node.js
]
},
// Electron (renderer): skip
{
target: '**/{vs,sql}/**/electron-browser/**',

View File

@@ -143,6 +143,15 @@ const RULES = [
]
},
// Electron (sandbox)
{
target: '**/vs/**/electron-sandbox/**',
allowedTypes: CORE_TYPES,
disallowedDefinitions: [
'@types/node' // no node.js
]
},
// Electron (renderer): skip
{
target: '**/{vs,sql}/**/electron-browser/**',

View File

@@ -28,14 +28,15 @@ const REPO_ROOT_PATH = path.join(__dirname, '../..');
function log(prefix, message) {
fancyLog(ansiColors.cyan('[' + prefix + ']'), message);
}
function loaderConfig(emptyPaths) {
function loaderConfig() {
const result = {
paths: {
'vs': 'out-build/vs',
'sql': 'out-build/sql',
'vscode': 'empty:'
'vscode': 'empty:',
'azdata': 'empty:' // {{SQL CARBON EDIT}}
},
nodeModules: emptyPaths || []
amdModulesPattern: /^(vs|sql)\// // {{SQL CARBON EDIT}} include sql in regex
};
result['vs/css'] = { inlineResources: true };
return result;
@@ -71,7 +72,7 @@ function loader(src, bundledFileHeader, bundleLoader) {
}))
.pipe(concat('vs/loader.js')));
}
function toConcatStream(src, bundledFileHeader, sources, dest) {
function toConcatStream(src, bundledFileHeader, sources, dest, fileContentMapper) {
const useSourcemaps = /\.js$/.test(dest) && !/\.nls\.js$/.test(dest);
// If a bundle ends up including in any of the sources our copyright, then
// insert a fake source at the beginning of each bundle with our copyright
@@ -92,10 +93,12 @@ function toConcatStream(src, bundledFileHeader, sources, dest) {
const treatedSources = sources.map(function (source) {
const root = source.path ? REPO_ROOT_PATH.replace(/\\/g, '/') : '';
const base = source.path ? root + `/${src}` : '';
const path = source.path ? root + '/' + source.path.replace(/\\/g, '/') : 'fake';
const contents = source.path ? fileContentMapper(source.contents, path) : source.contents;
return new VinylFile({
path: source.path ? root + '/' + source.path.replace(/\\/g, '/') : 'fake',
path: path,
base: base,
contents: Buffer.from(source.contents)
contents: Buffer.from(contents)
});
});
return es.readArray(treatedSources)
@@ -103,9 +106,9 @@ function toConcatStream(src, bundledFileHeader, sources, dest) {
.pipe(concat(dest))
.pipe(stats_1.createStatsStream(dest));
}
function toBundleStream(src, bundledFileHeader, bundles) {
function toBundleStream(src, bundledFileHeader, bundles, fileContentMapper) {
return es.merge(bundles.map(function (bundle) {
return toConcatStream(src, bundledFileHeader, bundle.sources, bundle.dest);
return toConcatStream(src, bundledFileHeader, bundle.sources, bundle.dest, fileContentMapper);
}));
}
const DEFAULT_FILE_HEADER = [
@@ -121,6 +124,7 @@ function optimizeTask(opts) {
const bundledFileHeader = opts.header || DEFAULT_FILE_HEADER;
const bundleLoader = (typeof opts.bundleLoader === 'undefined' ? true : opts.bundleLoader);
const out = opts.out;
const fileContentMapper = opts.fileContentMapper || ((contents, _path) => contents);
return function () {
const bundlesStream = es.through(); // this stream will contain the bundled files
const resourcesStream = es.through(); // this stream will contain the resources
@@ -129,7 +133,7 @@ function optimizeTask(opts) {
if (err || !result) {
return bundlesStream.emit('error', JSON.stringify(err));
}
toBundleStream(src, bundledFileHeader, result.files).pipe(bundlesStream);
toBundleStream(src, bundledFileHeader, result.files, fileContentMapper).pipe(bundlesStream);
// Remove css inlined resources
const filteredResources = resources.slice();
result.cssInlinedResources.forEach(function (resource) {

View File

@@ -18,7 +18,6 @@ import * as fancyLog from 'fancy-log';
import * as ansiColors from 'ansi-colors';
import * as path from 'path';
import * as pump from 'pump';
import * as sm from 'source-map';
import * as terser from 'terser';
import * as VinylFile from 'vinyl';
import * as bundle from './bundle';
@@ -32,14 +31,15 @@ function log(prefix: string, message: string): void {
fancyLog(ansiColors.cyan('[' + prefix + ']'), message);
}
export function loaderConfig(emptyPaths?: string[]) {
export function loaderConfig() {
const result: any = {
paths: {
'vs': 'out-build/vs',
'sql': 'out-build/sql', // {{SQL CARBON EDIT}}
'vscode': 'empty:'
'vscode': 'empty:',
'azdata': 'empty:' // {{SQL CARBON EDIT}}
},
nodeModules: emptyPaths || []
amdModulesPattern: /^(vs|sql)\// // {{SQL CARBON EDIT}} include sql in regex
};
result['vs/css'] = { inlineResources: true };
@@ -49,10 +49,6 @@ export function loaderConfig(emptyPaths?: string[]) {
const IS_OUR_COPYRIGHT_REGEXP = /Copyright \(C\) Microsoft Corporation/i;
declare class FileSourceMap extends VinylFile {
public sourceMap: sm.RawSourceMap;
}
function loader(src: string, bundledFileHeader: string, bundleLoader: boolean): NodeJS.ReadWriteStream {
let sources = [
`${src}/vs/loader.js`
@@ -85,7 +81,7 @@ function loader(src: string, bundledFileHeader: string, bundleLoader: boolean):
);
}
function toConcatStream(src: string, bundledFileHeader: string, sources: bundle.IFile[], dest: string): NodeJS.ReadWriteStream {
function toConcatStream(src: string, bundledFileHeader: string, sources: bundle.IFile[], dest: string, fileContentMapper: (contents: string, path: string) => string): NodeJS.ReadWriteStream {
const useSourcemaps = /\.js$/.test(dest) && !/\.nls\.js$/.test(dest);
// If a bundle ends up including in any of the sources our copyright, then
@@ -109,11 +105,13 @@ function toConcatStream(src: string, bundledFileHeader: string, sources: bundle.
const treatedSources = sources.map(function (source) {
const root = source.path ? REPO_ROOT_PATH.replace(/\\/g, '/') : '';
const base = source.path ? root + `/${src}` : '';
const path = source.path ? root + '/' + source.path.replace(/\\/g, '/') : 'fake';
const contents = source.path ? fileContentMapper(source.contents, path) : source.contents;
return new VinylFile({
path: source.path ? root + '/' + source.path.replace(/\\/g, '/') : 'fake',
path: path,
base: base,
contents: Buffer.from(source.contents)
contents: Buffer.from(contents)
});
});
@@ -123,9 +121,9 @@ function toConcatStream(src: string, bundledFileHeader: string, sources: bundle.
.pipe(createStatsStream(dest));
}
function toBundleStream(src: string, bundledFileHeader: string, bundles: bundle.IConcatFile[]): NodeJS.ReadWriteStream {
function toBundleStream(src: string, bundledFileHeader: string, bundles: bundle.IConcatFile[], fileContentMapper: (contents: string, path: string) => string): NodeJS.ReadWriteStream {
return es.merge(bundles.map(function (bundle) {
return toConcatStream(src, bundledFileHeader, bundle.sources, bundle.dest);
return toConcatStream(src, bundledFileHeader, bundle.sources, bundle.dest, fileContentMapper);
}));
}
@@ -163,6 +161,12 @@ export interface IOptimizeTaskOpts {
* (out folder name)
*/
languages?: Language[];
/**
* File contents interceptor
* @param contents The contens of the file
* @param path The absolute file path, always using `/`, even on Windows
*/
fileContentMapper?: (contents: string, path: string) => string;
}
const DEFAULT_FILE_HEADER = [
@@ -179,6 +183,7 @@ export function optimizeTask(opts: IOptimizeTaskOpts): () => NodeJS.ReadWriteStr
const bundledFileHeader = opts.header || DEFAULT_FILE_HEADER;
const bundleLoader = (typeof opts.bundleLoader === 'undefined' ? true : opts.bundleLoader);
const out = opts.out;
const fileContentMapper = opts.fileContentMapper || ((contents: string, _path: string) => contents);
return function () {
const bundlesStream = es.through(); // this stream will contain the bundled files
@@ -188,7 +193,7 @@ export function optimizeTask(opts: IOptimizeTaskOpts): () => NodeJS.ReadWriteStr
bundle.bundle(entryPoints, loaderConfig, function (err, result) {
if (err || !result) { return bundlesStream.emit('error', JSON.stringify(err)); }
toBundleStream(src, bundledFileHeader, result.files).pipe(bundlesStream);
toBundleStream(src, bundledFileHeader, result.files, fileContentMapper).pipe(bundlesStream);
// Remove css inlined resources
const filteredResources = resources.slice();

55
build/lib/preLaunch.js Normal file
View File

@@ -0,0 +1,55 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
Object.defineProperty(exports, "__esModule", { value: true });
// @ts-check
const path = require("path");
const child_process_1 = require("child_process");
const fs_1 = require("fs");
const yarn = process.platform === 'win32' ? 'yarn.cmd' : 'yarn';
const rootDir = path.resolve(__dirname, '..', '..');
function runProcess(command, args = []) {
return new Promise((resolve, reject) => {
const child = child_process_1.spawn(command, args, { cwd: rootDir, stdio: 'inherit', env: process.env });
child.on('exit', err => !err ? resolve() : process.exit(err !== null && err !== void 0 ? err : 1));
child.on('error', reject);
});
}
async function exists(subdir) {
try {
await fs_1.promises.stat(path.join(rootDir, subdir));
return true;
}
catch (_a) {
return false;
}
}
async function ensureNodeModules() {
if (!(await exists('node_modules'))) {
await runProcess(yarn);
}
}
async function getElectron() {
await runProcess(yarn, ['electron']);
}
async function ensureCompiled() {
if (!(await exists('out'))) {
await runProcess(yarn, ['compile']);
}
}
async function main() {
await ensureNodeModules();
await getElectron();
await ensureCompiled();
// Can't require this until after dependencies are installed
const { getBuiltInExtensions } = require('./builtInExtensions');
await getBuiltInExtensions();
}
if (require.main === module) {
main().catch(err => {
console.error(err);
process.exit(1);
});
}

65
build/lib/preLaunch.ts Normal file
View File

@@ -0,0 +1,65 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
// @ts-check
import * as path from 'path';
import { spawn } from 'child_process';
import { promises as fs } from 'fs';
const yarn = process.platform === 'win32' ? 'yarn.cmd' : 'yarn';
const rootDir = path.resolve(__dirname, '..', '..');
function runProcess(command: string, args: ReadonlyArray<string> = []) {
return new Promise((resolve, reject) => {
const child = spawn(command, args, { cwd: rootDir, stdio: 'inherit', env: process.env });
child.on('exit', err => !err ? resolve() : process.exit(err ?? 1));
child.on('error', reject);
});
}
async function exists(subdir: string) {
try {
await fs.stat(path.join(rootDir, subdir));
return true;
} catch {
return false;
}
}
async function ensureNodeModules() {
if (!(await exists('node_modules'))) {
await runProcess(yarn);
}
}
async function getElectron() {
await runProcess(yarn, ['electron']);
}
async function ensureCompiled() {
if (!(await exists('out'))) {
await runProcess(yarn, ['compile']);
}
}
async function main() {
await ensureNodeModules();
await getElectron();
await ensureCompiled();
// Can't require this until after dependencies are installed
const { getBuiltInExtensions } = require('./builtInExtensions');
await getBuiltInExtensions();
}
if (require.main === module) {
main().catch(err => {
console.error(err);
process.exit(1);
});
}

View File

@@ -420,7 +420,7 @@ function markNodes(languageService, options) {
// (they can be the declaration of a module import)
continue;
}
if (options.shakeLevel === 2 /* ClassMembers */ && (ts.isClassDeclaration(declaration) || ts.isInterfaceDeclaration(declaration))) {
if (options.shakeLevel === 2 /* ClassMembers */ && (ts.isClassDeclaration(declaration) || ts.isInterfaceDeclaration(declaration)) && !isLocalCodeExtendingOrInheritingFromDefaultLibSymbol(program, checker, declaration)) {
enqueue_black(declaration.name);
for (let j = 0; j < declaration.members.length; j++) {
const member = declaration.members[j];
@@ -614,6 +614,34 @@ function generateResult(languageService, shakeLevel) {
}
//#endregion
//#region Utils
function isLocalCodeExtendingOrInheritingFromDefaultLibSymbol(program, checker, declaration) {
if (!program.isSourceFileDefaultLibrary(declaration.getSourceFile()) && declaration.heritageClauses) {
for (const heritageClause of declaration.heritageClauses) {
for (const type of heritageClause.types) {
const symbol = findSymbolFromHeritageType(checker, type);
if (symbol) {
const decl = symbol.valueDeclaration || (symbol.declarations && symbol.declarations[0]);
if (decl && program.isSourceFileDefaultLibrary(decl.getSourceFile())) {
return true;
}
}
}
}
}
return false;
}
function findSymbolFromHeritageType(checker, type) {
if (ts.isExpressionWithTypeArguments(type)) {
return findSymbolFromHeritageType(checker, type.expression);
}
if (ts.isIdentifier(type)) {
return getRealNodeSymbol(checker, type)[0];
}
if (ts.isPropertyAccessExpression(type)) {
return findSymbolFromHeritageType(checker, type.name);
}
return null;
}
/**
* Returns the node's symbol and the `import` node (if the symbol resolved from a different module)
*/

View File

@@ -536,7 +536,7 @@ function markNodes(languageService: ts.LanguageService, options: ITreeShakingOpt
continue;
}
if (options.shakeLevel === ShakeLevel.ClassMembers && (ts.isClassDeclaration(declaration) || ts.isInterfaceDeclaration(declaration))) {
if (options.shakeLevel === ShakeLevel.ClassMembers && (ts.isClassDeclaration(declaration) || ts.isInterfaceDeclaration(declaration)) && !isLocalCodeExtendingOrInheritingFromDefaultLibSymbol(program, checker, declaration)) {
enqueue_black(declaration.name!);
for (let j = 0; j < declaration.members.length; j++) {
@@ -752,6 +752,36 @@ function generateResult(languageService: ts.LanguageService, shakeLevel: ShakeLe
//#region Utils
function isLocalCodeExtendingOrInheritingFromDefaultLibSymbol(program: ts.Program, checker: ts.TypeChecker, declaration: ts.ClassDeclaration | ts.InterfaceDeclaration): boolean {
if (!program.isSourceFileDefaultLibrary(declaration.getSourceFile()) && declaration.heritageClauses) {
for (const heritageClause of declaration.heritageClauses) {
for (const type of heritageClause.types) {
const symbol = findSymbolFromHeritageType(checker, type);
if (symbol) {
const decl = symbol.valueDeclaration || (symbol.declarations && symbol.declarations[0]);
if (decl && program.isSourceFileDefaultLibrary(decl.getSourceFile())) {
return true;
}
}
}
}
}
return false;
}
function findSymbolFromHeritageType(checker: ts.TypeChecker, type: ts.ExpressionWithTypeArguments | ts.Expression | ts.PrivateIdentifier): ts.Symbol | null {
if (ts.isExpressionWithTypeArguments(type)) {
return findSymbolFromHeritageType(checker, type.expression);
}
if (ts.isIdentifier(type)) {
return getRealNodeSymbol(checker, type)[0];
}
if (ts.isPropertyAccessExpression(type)) {
return findSymbolFromHeritageType(checker, type.name);
}
return null;
}
/**
* Returns the node's symbol and the `import` node (if the symbol resolved from a different module)
*/

View File

@@ -4,7 +4,7 @@
*--------------------------------------------------------------------------------------------*/
'use strict';
Object.defineProperty(exports, "__esModule", { value: true });
exports.streamToPromise = exports.versionStringToNumber = exports.filter = exports.rebase = exports.getVersion = exports.ensureDir = exports.rreddir = exports.rimraf = exports.stripSourceMappingURL = exports.loadSourcemaps = exports.cleanNodeModules = exports.skipDirectories = exports.toFileUri = exports.setExecutableBit = exports.fixWin32DirectoryPermissions = exports.incremental = void 0;
exports.getElectronVersion = exports.streamToPromise = exports.versionStringToNumber = exports.filter = exports.rebase = exports.getVersion = exports.ensureDir = exports.rreddir = exports.rimraf = exports.stripSourceMappingURL = exports.loadSourcemaps = exports.cleanNodeModules = exports.skipDirectories = exports.toFileUri = exports.setExecutableBit = exports.fixWin32DirectoryPermissions = exports.incremental = void 0;
const es = require("event-stream");
const debounce = require("debounce");
const _filter = require("gulp-filter");
@@ -14,6 +14,7 @@ const fs = require("fs");
const _rimraf = require("rimraf");
const git = require("./git");
const VinylFile = require("vinyl");
const root = path.dirname(path.dirname(__dirname));
const NoCancellationToken = { isCancellationRequested: () => false };
function incremental(streamProvider, initial, supportsCancellation) {
const input = es.through();
@@ -137,7 +138,7 @@ function loadSourcemaps() {
version: '3',
names: [],
mappings: '',
sources: [f.relative.replace(/\//g, '/')],
sources: [f.relative],
sourcesContent: [contents]
};
cb(undefined, f);
@@ -255,3 +256,9 @@ function streamToPromise(stream) {
});
}
exports.streamToPromise = streamToPromise;
function getElectronVersion() {
const yarnrc = fs.readFileSync(path.join(root, '.yarnrc'), 'utf8');
const target = /^target "(.*)"$/m.exec(yarnrc)[1];
return target;
}
exports.getElectronVersion = getElectronVersion;

View File

@@ -18,6 +18,8 @@ import * as VinylFile from 'vinyl';
import { ThroughStream } from 'through';
import * as sm from 'source-map';
const root = path.dirname(path.dirname(__dirname));
export interface ICancellationToken {
isCancellationRequested(): boolean;
}
@@ -184,7 +186,7 @@ export function loadSourcemaps(): NodeJS.ReadWriteStream {
version: '3',
names: [],
mappings: '',
sources: [f.relative.replace(/\//g, '/')],
sources: [f.relative],
sourcesContent: [contents]
};
@@ -318,3 +320,9 @@ export function streamToPromise(stream: NodeJS.ReadWriteStream): Promise<void> {
stream.on('end', () => c());
});
}
export function getElectronVersion(): string {
const yarnrc = fs.readFileSync(path.join(root, '.yarnrc'), 'utf8');
const target = /^target "(.*)"$/m.exec(yarnrc)![1];
return target;
}

View File

@@ -33,9 +33,10 @@ function yarnInstall(location, opts) {
yarnInstall('extensions'); // node modules shared by all extensions
yarnInstall('remote'); // node modules used by vscode server
yarnInstall('remote/web'); // node modules used by vscode web
if (!(process.platform === 'win32' && (process.arch === 'arm64' || process.env['npm_config_arch'] === 'arm64'))) {
yarnInstall('remote'); // node modules used by vscode server
yarnInstall('remote/web'); // node modules used by vscode web
}
const allExtensionFolders = fs.readdirSync('extensions');
const extensions = allExtensionFolders.filter(e => {
@@ -72,3 +73,5 @@ yarnInstall('test/automation'); // node modules required for smoketest
yarnInstall('test/smoke'); // node modules required for smoketest
yarnInstall('test/integration/browser'); // node modules required for integration
yarnInstallBuildDependencies(); // node modules for watching, specific to host node version, not electron
cp.execSync('git config pull.rebase true');

View File

@@ -35,11 +35,13 @@
"applicationinsights": "1.0.8",
"azure-storage": "^2.1.0",
"documentdb": "1.13.0",
"electron-osx-sign": "^0.4.16",
"github-releases": "^0.4.1",
"gulp-bom": "^1.0.0",
"gulp-sourcemaps": "^1.11.0",
"gulp-uglify": "^3.0.0",
"iconv-lite": "0.4.23",
"iconv-lite-umd": "0.6.8",
"jsonc-parser": "^2.3.0",
"mime": "^1.3.4",
"minimatch": "3.0.4",
"minimist": "^1.2.3",
@@ -48,9 +50,9 @@
"rollup-plugin-commonjs": "^10.1.0",
"rollup-plugin-node-resolve": "^5.2.0",
"terser": "4.3.8",
"typescript": "^3.9.1-rc",
"typescript": "^4.1.0-dev.20200824",
"vsce": "1.48.0",
"vscode-telemetry-extractor": "^1.5.4",
"vscode-telemetry-extractor": "^1.6.0",
"xml2js": "^0.4.17"
},
"scripts": {

Some files were not shown because too many files have changed in this diff Show More