Compare commits

..

693 Commits

Author SHA1 Message Date
Chris LaFreniere
4095037f25 Fix Notebook Viewlet Highlighting (#10868) (#10870)
* Stop double tree data provider registrations

* revert book finding logic, leverage currentBook
2020-06-10 22:56:57 -07:00
Karl Burtram
7091480c55 Update SQL Tools Service to include "use master" revert (#10834) (#10835) 2020-06-09 17:37:20 -07:00
Hale Rankin
b6b360de10 Fixed notebook toolbar icon issue in dark and hc-black themes. (#10802) (#10830) 2020-06-09 15:41:41 -07:00
Maddy
d6ba3c5d48 highlight correct notebook on navigation. (#10807) (#10812)
* highlight correct notebook on navigation.

* add back behavior of highight on viewlet visible

* optimize bookViewer create

* createTreeView for every book
2020-06-08 20:02:25 -07:00
Aasim Khan
5de8b066e7 Fix for "Run Current Query" keybind no longer behaving as expected (#10538) (#10557) (#10804)
* -"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 18:34:42 -07:00
Amir Omidi
9962363f4c Fixes the azure auth for postgresql (#10662) (#10753) 2020-06-08 13:55:52 -07:00
Hale Rankin
1c0a9a1849 10712, 10677 - Fixed focus indicators for both main toolbar and cell … (#10756) (#10785)
* 10712, 10677 - Fixed focus indicators for both main toolbar and cell toolbar.

* Removed duplicated line
2020-06-08 09:51:35 -07:00
Hale Rankin
a871b03550 Reduced margin between notebook cells. Increased space at top of page. (#10735) (#10783) 2020-06-08 09:20:53 -07:00
Hale Rankin
5e6e9fcc2f Removed style that was interfering with text selection within code cell. (#10769) (#10786) 2020-06-05 18:32:10 -07:00
Hale Rankin
f130ced71c Switched order of the two dropdowns in main toolbar in preview. (#10717) (#10784)
* 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 18:16:06 -07:00
Chris LaFreniere
d7d4c26780 Bring back hover state setting on cell model (#10758) (#10782) 2020-06-05 17:43:05 -07:00
Alan Ren
7b382794e2 reduce max memory (#10775) (#10778) 2020-06-05 15:32:28 -07:00
Cory Rivera
b6be7f1218 Add custom width to Python wizard to reduce wasted space. (#10705) (#10755)
* Also use double quotes for localize calls in the wizard.
2020-06-05 12:17:00 -07:00
Karl Burtram
ca7ee35993 Add Redgate Search to recommendation list (#10749) (#10764) 2020-06-05 09:05:21 -07:00
Chris LaFreniere
46192ae754 Change markdown cell to text cell (#10715) (#10744) 2020-06-04 15:00:12 -07:00
Chris LaFreniere
f5b0141763 Only show edit cell action for markdown cells (#10719) (#10743) 2020-06-04 14:36:52 -07:00
Sakshi Sharma
c903112451 Tests for round tripping with SSDT projects (#10646)
* Test code for round tripping feature

* Fixed tests. Edited updateImportedTargetsToProjFile method to push newly added import target to the list.

* Added couple more tests

* Addressed comment
2020-06-03 14:02:50 -07:00
Amir Omidi
3860f07cab Make azure portal work from server area (#10699) 2020-06-03 14:02:23 -07:00
Alan Ren
61dce39f5a disable the sql proj tests (#10704) 2020-06-03 13:44:51 -07:00
Alan Ren
c4be667567 add custom width support for dialogs (#10641)
* add custom width support for dialogs

* comments

* fix test
2020-06-03 13:08:48 -07:00
Cory Rivera
2e4aee944c Disable some unreliable notebook integration tests. (#10701) 2020-06-03 12:30:36 -07:00
Leila Lali
fb9ca4c021 fixed the issue with opening none SQL editor for predict script (#10693) 2020-06-03 10:56:30 -07:00
Arvind Ranasaria
f7c3484438 Unique title for opened notebooks (#10673)
* removing debug log

* Ensure unique title for Nb launch

* pr feedback

* pr feedback

* pr fedback

* pr feedback
2020-06-02 15:21:34 -07:00
Charles Gagnon
da41fda4bb Update to latest vscodetestcover (#10680)
* Update to latest vscodetestcover

* Remove unused config
2020-06-02 13:33:30 -07:00
Charles Gagnon
4d6ec69eba Fetch password from credential store before connecting to knox endpoint (#10666)
* Fetch password from credential store before connecting to knox endpoint

* Add combined code coverage script

* Revert "Add combined code coverage script"

This reverts commit e538f2fb2a79993a77f749f384fbc306b18b9f64.
2020-06-02 13:27:37 -07:00
Hale Rankin
d247af6619 Adjusted + Cell element height to fix layout on Mac and Windows. (#10681) 2020-06-02 13:11:37 -07:00
Charles Gagnon
2879da5ca5 Add script to combine coverage files (#10674)
* Add script to combine coverage files

* add script

* Add core coverage file as well

* Add json reporting

* Update README

* more
2020-06-02 12:53:58 -07:00
Alan Ren
c057dddb25 show username for azure sql db (#10679) 2020-06-02 12:49:24 -07:00
Charles Gagnon
453f7fa5a4 Disable sql-database-projects tests (#10675) 2020-06-02 10:03:38 -07:00
Benjin Dubishar
0ac6a07c5f Fix for Sqlproj tree bug (#10605)
Fixes bug where files located in a subfolder defined before the folders themselves in .sqlproj would result in those files not appearing in the ADS treeview
2020-06-01 22:41:00 -07:00
Arvind Ranasaria
8fc8a79e26 removing debug log (#10671) 2020-06-01 18:24:44 -07:00
Maddy
3088c73e2b Feat/notebooks viewlet (#10170)
* 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

* 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
2020-06-01 15:47:56 -07:00
Charles Gagnon
7305bdaec4 Add integration-test code coverage (#10632)
* wip

* Update to latest vscodetestcover and add tests back in

* Update to latest version of vscodetestcover

* updates

* another yarn.lock

* update version

* Revert import path change
2020-06-01 14:54:07 -07:00
Aditya Bist
f2c3320f0e use inbuilt codicon instead of image (#10664) 2020-06-01 14:37:11 -07:00
Aditya Bist
6816d2bd78 add icon for disabled triggers (#10663) 2020-06-01 14:10:06 -07:00
Leila Lali
269318f7ef ML - Modified sqmlutils version to fix Windows auth issue (#10639)
* Modified sqmlutils version
2020-06-01 13:06:34 -07:00
Amir Omidi
534eb3a6f8 Add unused contribution point to workbench file (#10594)
* Remove unused file

* Revert "Remove unused file"

This reverts commit 788538aa01f4a146a08340a9890e0e2e6bd98d0d.

* Add to workbench
2020-06-01 11:25:57 -07:00
Arvind Ranasaria
678bbe3142 Custom Summary Page for NotebookWizard and notebook Cell with wizard variables (#10297)
* save not yet tested work

* Merge from master.

* Screeens Shared for Feeedback

* Code complete

* remove unneeded changes

* remove unnecessary comma

* remov wss

* remove dead code

* PR feedback

* checkpoint fixes

* PR & minor fixes

* minor fix for feature of  resourceType options being optional.

* reverting experimental change

* separating out changes for future featurework.

* revert unneeded change

* review feedback fixes

* review feedback

* rename InputFieldComponent to InputComponent

* working version of custom summary page

* add option to align items in a flex- container.

* changes to support labelColor

* save work , still pending issue with labelCSSStyles

* Summary page and setting variabless in notebook.

* minor fixes.

* pr feedbck

* fix formatting issues

* pr feedback

* pr feedback

* pr feedback

* fixing docs

* summary page value setting fix

* rename children of RowInfo to items

* rename a method

* rename summary_text to evaluated_text

* rename properties of fieldInfo

* revert inadvertent change

* rename linked_texttext to hyperlinked_text and removing linking facility from readonly_text

* pr feedback

* fix setting tools variables in env and notebook

* removing saving of originalValues for EvaluatedText

* await on launchNotebookWithEdits

* await on launchNotebookWithContent

* merge RadioOptions & Options into 1

* merge ReadOnlyText, links  & evaluatedText

* Samples for new generic wizard features

* fix comment

* fix assertions

* return type and comment for getClusterContext

* fix inadvertent change

* increase minimum required azdata version

* remove unneeded environment variable settings

* not leaking passwords in notebooks
2020-06-01 11:14:59 -07:00
Sakshi Sharma
84492049e8 Enable sql-database-projects tests with few fixes (#10610)
* Added 2tests related to import. Fixed a few issues. Enable sql-database-projects

* Addressed comment
2020-05-30 09:05:55 -07:00
Amir Omidi
7d31239e64 Open in azure portal (#10535)
* initial commit to get it working

* Change configuration to use package.nls.json

* Make the necessary plumbing

* Support multi cloud

* Move the menu item to the bottom

* Fix failing tests

* Fix the tests
2020-05-29 19:59:29 -07:00
Hale Rankin
b2e0291a95 10551 - Notebook UI: Added cell toolbar component (#10558)
* 10551 - Notebook UI: Added cell toolbar component, actions scaffolding, styles and theme colors. Removed markup for legacy, hidden hover buttons. Updated instaces of icon class: mask to masked-icon.

* Uncommented lines for CellToggleMoreActions so we can see how the ellipses currently work.

* Added EditCellAction which toggles between two icons.

* Cleaned up comments and removed some unused code.

* Copied DeleteCellAction into celltoolbarActions

* Connecting model and cell model to toolbar component for necessary context.

* Pass in cell + nb model from notebook component

* Adding context for EditCellAction so we can activate a cell via icon.

* Removed my copy of AddCellAction and simply referred to the existing one.

* Fixes to propogate cell model edit mode changes

* Added onCellModeChanged event registration to code.component.

* Moved cellToggleMoreActions into cellToolbarActions. Suppressing ellipses in code and textCell components.

* Fix adding cells

* Copied and modified ToggleMoreWidgetAction for use in cellToolbarActions. Instantiating cellToggleMoreActions and adding to toolbar.

* Removed unused markup, code and styles. Moved cell toolbar template into compoent.

* Removed double-click from textCell. Changed message to indicate where content goes - without it the cell does not have dimension and cannot be found by the user.

* Removed unused code file.

* Fixing my boo boo

* Updated AddCellAction with null coalescer. Set Promise to type: void.

Co-authored-by: chlafreniere <hichise@gmail.com>
2020-05-29 18:27:36 -07:00
Cory Rivera
98ce3c74e6 Hide installation options in Configure Python wizard if python is already setup. (#10635) 2020-05-29 17:28:02 -07:00
Leila Lali
d1b1550ce5 Added documents for MI (#10634) 2020-05-29 14:27:48 -07:00
Charles Gagnon
4f603888b9 Adds README to sql assessment and bump min ADS version (#10628)
* Adds README to sql assessment and bump min ADS version

* Bump version
2020-05-29 14:08:28 -07:00
Leila Lali
5955953b4a ML - displaying all Python and R packages (including system ones) (#10603)
* displaying all packages including readonly
2020-05-29 13:52:37 -07:00
Kim Santiago
0e0eb7f237 bump SqlToolsService to 2.0.0-release.68 (#10631) 2020-05-29 12:46:14 -07:00
Brian Bergeron
e9e2a0b8b4 Add refresh support to Arc Postgres pages (#10607) 2020-05-29 10:24:24 -07:00
Alan Ren
1305743479 fix object filtering regression (#10609)
* fix object filtering regression

* add comments
2020-05-29 10:19:44 -07:00
Alan Ren
7e49eb85fb table style clean up (#10608) 2020-05-29 10:19:09 -07:00
Charles Gagnon
107b3171f2 Add isBigDataCluster property to connection event (#10606) 2020-05-29 06:47:03 -07:00
Vladimir Chernov
8288360cc4 Assessment core extension (#10154) 2020-05-29 01:17:41 +03:00
Leila Lali
0d544660e0 MI now supports ONNX runtime so the extension should support is as well (#10604) 2020-05-28 13:36:16 -07:00
Alan Ren
6cf8f9ff35 format and add metadata (#10598) 2020-05-28 10:23:56 -07:00
Alan Ren
3bcc2ce334 update bdc tab category (#10592) 2020-05-28 10:22:30 -07:00
Charles Gagnon
9db16c1f26 Disable sql-database-projects tests (#10602) 2020-05-28 09:42:24 -07:00
Charles Gagnon
968f2d11f1 Switch to DownloadBuildArtifacts task (#10597)
* Switch to download build artifact task

* Update download location

* Fix path
2020-05-28 07:56:09 -07:00
Kim Santiago
d59411c191 a few fixes for dacpac extension (#10595) 2020-05-27 18:14:29 -07:00
Alan Ren
032b625ed1 check undefined (#10596) 2020-05-27 16:51:52 -07:00
Charles Gagnon
e7f65f45f2 Don't run platform builds if compile fails (#10564)
* Don't run platform builds if compile fails

* Switch to use suceeded

* Fix condition

* Undo compilie changes
2020-05-27 14:07:09 -07:00
khoiph1
d49c1c9c2b updated the localization section (#10527) 2020-05-27 10:18:40 -07:00
Charles Gagnon
f568ff82d8 Fix HDFS support for CU5+ BDC instances (#10577)
* Fix HDFS node auth for non-root username

* more changes
2020-05-27 10:17:28 -07:00
Aditya Bist
e8dc0d15b7 hotfix change log (#10580) 2020-05-27 09:06:48 -07:00
Amir Omidi
fbb701d49c Fixes integration tests (#10582) 2020-05-27 08:49:16 -07:00
Sakshi Sharma
f49bfbc91b Round trip with SSDT (#10563)
* Initial changes

* Round trip feature implementation

* Addressed PR comments

* Addressed comments
2020-05-27 07:23:47 -07:00
Charles Gagnon
7496d09eb9 Add and fix Notebook tests (#10488)
* Add and fix Notebook tests

* Fix name

* Fix compile

* Acutally fix error

* Add Notebook title test and fix command

* Add extra check and add comments

* Remove extra show error message
2020-05-26 17:27:43 -07:00
Amir Omidi
8f33e1c4c0 Introduces decorators to handle multiple authorities for URIs (#10507)
* Introduces decorators to handle multiple authorities for URIs

* Check for undefined first

* Add result type checking
2020-05-26 16:32:25 -07:00
Sakshi Sharma
9a55b0275d Import project from database (#10326)
* Initial changes for Import database as new project

* Functionally complete code

* Initial changes for Import database as new project

* Functionally complete code

* Resolved conflicts with latest changes. Also did some code refactoring.

* Addressed comments. Added unit tests.

* Addressed comments

* Moved ExtractTarget enum from azdata to mssql

* Addressed comments

* Fixed indentation in project templates
2020-05-26 16:08:24 -07:00
Benjin Dubishar
f0d86f8acb Database projects deploy (#10417)
* Hooking up deployment of SQL projects to the project build functionality and database selection UI
* Adding ADS-side plumbing for sqlcmdvars
2020-05-26 14:28:09 -07:00
Aditya Bist
690e3c582c fix horizontal scroll bug (#10554) 2020-05-26 12:51:18 -07:00
Charles Gagnon
62a0cb4dc9 Update test readme (#10552) 2020-05-26 10:47:45 -07:00
Amir Omidi
65a4a56fd7 Prompt for consent when interaction is required (#10373)
* Reprompt for consent

* Remove unused imports

* Fix typos

* Change the tenant we re-auth too

* Handle the prompt properly

* prompt for consent dialog

* Information message modal

* product name

* Change message per PM feedback
2020-05-21 00:03:21 -07:00
Benjin Dubishar
efb890697c Adding sqlproj extension to coveralls workflow (#10468) 2020-05-20 18:26:33 -07:00
Udeesha Gautam
ea80202cf7 Bug/fix for mssql path (#10522)
* Correcting to right path and making file exist calls async
2020-05-20 17:35:24 -07:00
Charles Gagnon
14554f0d11 Fix some issues with book tree view (#10521) 2020-05-20 11:54:25 -07:00
Aditya Bist
5f003d996f Update agent screenshot (#10524) 2020-05-20 11:30:58 -07:00
Aditya Bist
3dfc9ddf92 Release updates (#10510)
* update ads version

* update readme
2020-05-20 10:54:54 -07:00
Chris LaFreniere
6d710c7144 Add plumbing and simple notebookService tests (#10349) 2020-05-19 21:36:59 -07:00
Anthony Dresser
5136a8b54c distro (#10509) 2020-05-19 16:04:17 -07:00
Anthony Dresser
0ad7810ba0 fix styles to apply to error message correctly (#10505) 2020-05-19 15:42:34 -07:00
Maddy
76c80943ba set ignoreOverrides false for ipynb and sql files (#10499)
* set ignoreOverrides false for ipynb and sql files

* toLowerCase

* null checks added
2020-05-19 13:25:24 -07:00
Amir Omidi
b02b41815d Don't do any extra parsing, put the responsibility on the caller (#10489)
* Don't do any extra parsing, put the responsibility on the caller

* make integrated default

* Fix the tests

* Fix test
2020-05-19 12:18:18 -07:00
Charles Gagnon
d6b5489f93 Update arc extension icon (#10494) 2020-05-19 09:57:11 -07:00
Charles Gagnon
d733cba35a Update area assignees (#10493) 2020-05-19 06:55:39 -07:00
Leila Lali
f73d81bc13 ML- Fixed the issue with wrong title in predict page (#10467)
* Fixed the issue with wrong title in predict page

* Fixed the type of ml settings

* Increased timeout

* Fixed the bug with R package management and Windows auth

* fixed the tests

* fixed a typo
2020-05-18 17:12:02 -07:00
Kim Santiago
c98eaaf5a1 Fix sql project build on mac (#10485)
* update sqlproj template

* add condition for netcorebuild=true
2020-05-18 17:08:50 -07:00
Brian Bergeron
283ffd7af6 Azure Arc extension (#10400)
Adds an extension for Azure Arc with some initial Postgres pages
2020-05-18 14:32:48 -07:00
Amir Omidi
21b650ba49 Fixes the DE icons (#10478)
* Fixes the DE icons

* Fixes the commands
2020-05-18 14:04:37 -07:00
Anthony Dresser
4763685237 Add more testing in the pipelines (#10455)
* run tests in every pipeline and include integration tests

* fix test env

* fix integration test scripts

* remove windows unit tests

* remove unused tests in integrations

* add comments
2020-05-18 13:54:19 -07:00
Maddy
e46521cafc open viewlet on showPreview (#10474)
* open viewlet on shoePreview

* on showPreview reveal explorer
2020-05-18 13:46:55 -07:00
Karl Burtram
d60b094e9b Fix extension manager single-click (#10473)
* Fix extension manager single-click

* Port over additional change to fix same issue in git viewlet

* Remove unneeded param to match vscode source
2020-05-18 10:35:28 -07:00
Maddy
12ee13240a vbump (#10423) 2020-05-18 09:14:07 -07:00
Charles Gagnon
c70d68f889 Fix text component link to use link component directly (#10457)
* Fix text component link to use link component directly

* Attach styler
2020-05-18 08:25:39 -07:00
Hale Rankin
47687ff6b2 Notebook main toolbar additions (#10271)
* Reworking notebook action bar functionality and appearance.

* added separator

* Revised notebookActions for collapse, clear and trusted such that they can be implemented with a boolean set to T of F and show labels or shift them into tooltip for accessibility. Updated styles for select boxes. Added toolbar icons to common icon location. Split icon definition for use as masked or background-image.

* Completed styles for action icons: collapse, clear and trusted. Added theme colors. Simplified icon behavior styles.

* Made maskedIconClass optional. Added theme colors for toolbar icons, select box border and dropdown arrow. Experimenting with adding masked icon to pseudo element so I can pull out label text from icons.

* Added icons styles to handle masked SVG elements as pseudo element beside button text. Added icons using this method to respect the color theming system.

* Adjusted styles for the cell and run all icons in notebook toolbar.

* Prepped notebook toolbar with placeholder icon for Underline action. Implemented Underline action. Added custom --wip-- ButtonMenu control, a modified copy of DropDown.

* Revised colorRegistry and corresponding notebook styles. Removed unused code from new custom control: buttonMneu. Revised icon styles to create a dropdown arrow for buttonMenu.

* Added new icon for Underline action.

* Removed comment from needed markup.

* Replaced actionItemProvider with optional undefined per DropdownMenuActionViewItem constructor.

* Cleaned up new control, removing unneeded code and referencing what the class needs. Corrected style declaration for overriding input box padding. Removed unused notebook color styles. Scoped element styles to the toolbar so others outside the toolbar are not affected.

* Removed unnecessary !important from style override.

* Removed reference to unused color entry.

* Syntax cleanup.

* Put notebook toolbar improvements behind the preview flag. This involves some conditionals and CSS classes.

* Updated icon used for Manage Packages. Created and updated styles for notebook toolbar icon spacing. Modified notebook.component contributed actions so that the label text is shifted into the title attribute. Added new icon for Not Trusted toggle.

* Replaced SVG code for not-trusted icon.

* Addressed PR feedback: changed masked classname. Revised component and CSS accordingly. Removed unnecessary instance of in-preview class. Fixed code logic that assigns label text to tooltip on incoming contributed action
2020-05-15 19:13:31 -07:00
Charles Gagnon
0f10f44755 Fix link styling for text components (#10449) 2020-05-15 15:20:19 -07:00
Anthony Dresser
e0bdfc8b21 modify git edits to make webpack not be stupid (#10442) 2020-05-15 15:00:22 -07:00
Kim Santiago
b83279c24c Add sql proj schema compare for dacpac (#10388)
* add support for schema compare to specify source dacpac

* add build and dacpac produced from build

* check if dacpac exists

* add tests

* move exists check code to utils

* fix test run failing
2020-05-15 13:03:08 -07:00
Charles Gagnon
ef4ab4a59f remove config update (#10440) 2020-05-15 12:59:21 -07:00
Chris LaFreniere
452bd6a0cb Notebook model ready sooner (#10420) 2020-05-15 11:48:11 -07:00
Karl Burtram
ebf47224b7 Properly initialize scenario recommendations (#10434) 2020-05-15 11:38:15 -07:00
Anthony Dresser
dd697b337d clear buffer when a batch is completed (#10382) 2020-05-15 11:34:48 -07:00
Leila Lali
1bcda64a1b Fixed ML urls in dashboard (#10411)
* Fixed ML urls in dashboard
2020-05-15 11:07:31 -07:00
Karl Burtram
1d1e21b579 Turn-off file extension recommendations (#10431) 2020-05-15 11:05:24 -07:00
Amir Omidi
b519d51052 Replace the ID of the generated connection profile with the one through edit data (#10413) 2020-05-15 10:48:56 -07:00
Arvind Ranasaria
19fab3fc9c fix azure account corenes case handling (#10428) 2020-05-15 08:47:09 -07:00
Alan Ren
9680b1e2cf create a new connection (#10412) 2020-05-14 16:07:51 -07:00
Amir Omidi
aea772d631 Add pwa-chrome for attach to azuredatastudio (#10414)
* Add pwa-chrome for attach to azuredatastudio

* Why did you get in here
2020-05-14 15:51:50 -07:00
Kim Santiago
abdd9af931 update deploy dialog to not show dropdown when there aren't any data sources (#10404) 2020-05-14 14:31:47 -07:00
Charles Gagnon
e95650da89 Fix message branding VS Code -> ADS (#10407)
* Fix message branding VS Code -> ADS

* Add edit comment
2020-05-14 14:26:45 -07:00
Alan Ren
f934dea6ea use listdatabases for sqlondemand (#10398)
* use listdatabases for sqlondemand

* comments

* use enum
2020-05-14 14:25:29 -07:00
Alex Ma
8f7861deac Keybinding for Show SQL Pane (#9750)
* WIP registerKeybind

* testing command

* Moved command to query.contribution

* Moved command to editData.contribution

* simplified command

* more simplification

* Working keybind for toggle query pane added.

* removed space

* added option to always show sql pane

* removed keybind default and changed option
2020-05-14 14:06:58 -07:00
Alex Ma
e3218ade02 Alex/fixforqueryrefresh (#9032)
* added some checks

* Added return undefined

* added handling for multiple loads

* added more error handling

* minor space change

* added explanation message

* simplification

* added changes from create new row

* added some checks

* Added return undefined

* added handling for multiple loads

* added more error handling

* minor space change

* added explanation message

* simplification

* editDataGridPanel corrected

* updated to most recent master version

* removed space at end

* added newline

* added another try catch

* changed message

* added check and message

* added clarifying message

* removed redundant try catch loop

* grid data is now backed up

* wording change
2020-05-14 14:06:26 -07:00
David Peter Hansen
8eb67d58b3 Update readme for ML extension in Azure Data Studio (#10355)
* Update readme for ML extension in Azure Data Studio
2020-05-14 13:54:05 -07:00
Leila Lali
0258b1727a Machine Learning - Bug fixes (#10377)
* Fixing ML extension bugs
2020-05-14 12:46:47 -07:00
Cory Rivera
d3e1675fc5 Only check if python is running before trying to overwrite an existing installation. (#10383) 2020-05-14 11:37:06 -07:00
Alan Ren
3212b06d49 set context (#10391) 2020-05-14 10:56:58 -07:00
Anthony Dresser
35236a6107 distro (#10376) 2020-05-13 23:40:56 -07:00
Udeesha Gautam
18128d700d Updating the new Proj template such that it builds correctly in ADS and SSDT (#10387)
* Updating the new Proj template such that it works in ADS and SSDT

* Fixing test for baseline compare

* Space fix for xml

* Trying again to fix space
2020-05-13 20:47:08 -07:00
Anthony Dresser
f550002d33 Remove web smoke tests (#10380)
* remove smoke tests

* use run_tests
2020-05-13 16:29:15 -07:00
Alan Ren
0ad2a351f8 move icon to where it is being used (#10375) 2020-05-13 13:40:31 -07:00
Anthony Dresser
dee02796c9 ensure we can still write version infomation if we don't recompile (#10365) 2020-05-13 10:21:21 -07:00
Udeesha Gautam
ddb9a806cc Feature/project build (#10332)
* initial build command execution

* adding tests

* Clean up test names

* update SqltoolsService release in ADS for Build

* Updating as per PR comments

* updating yarn lock

* Adding one more test for command run

* Test fixes
2020-05-12 20:17:37 -07:00
alljamziMicrosoft
ab374e362a Enabling Script as Create for SqlOnDemand (#10362)
* Update scriptingUtils.ts

* Update scripting.contribution.ts
2020-05-12 14:53:45 -07:00
Cory Rivera
fc548be2c1 Uncheck unselected radio buttons in Configure Python wizard. (#10344) 2020-05-12 13:02:35 -07:00
Charles Gagnon
3fa0deed71 Add doAction API call for ModelView (#10345)
* Add doAction API call for ModelView

* cleanup
2020-05-12 10:47:20 -07:00
Anthony Dresser
ff848b5903 Remove request promise for request-light (#10346)
* remove request promise for request-light

* make sure data is a string not a json

* add configure call

* remove unused reference

* more fixes

* Move configure calls

* clean up

* fix name

* move test deps as dev

Co-authored-by: chgagnon <chgagnon@microsoft.com>
2020-05-12 10:27:11 -07:00
Charles Gagnon
eda25f72c1 Improve logging for MSSQL errors to handle HTTP request errors (#10348)
* Improve logging for MSSQL errors to handle HTTP request errors

* stringify
2020-05-12 09:03:39 -07:00
Kim Santiago
f3d36c1b86 Initial project deploy dialog (#10288)
* connection picking dialog for deploy

* add data source option

* fix errors

* merge fix

* show connection name instead of connection string if there is one

* remove unnecessary async

* async (#10292)

* Revert "async (#10292)"

This reverts commit c94139aa45d8f1d868ebd251f3016315718b56ae.

* add a few tests

* addressing comments

* remove cancel click handler

* remove text box for generate script file path because it will just open up a new editor with the script

* fix test

Co-authored-by: Amir Omidi <amomidi@microsoft.com>
2020-05-11 18:12:29 -07:00
Leila Lali
301ce1cf87 ML- Added a radio button to enter new model table name (#10343) 2020-05-11 17:29:28 -07:00
Christopher Suh
21e6ba92c2 fixed icon spacing in query editor toolbar (#10329) 2020-05-11 18:23:47 -04:00
Charles Gagnon
264c34af97 Add more debug logging to fillInOrClearAzureToken (#10336)
* Add more debug logging to fillInOrClearAzureToken

* Use toErrorMessage
2020-05-11 15:09:34 -07:00
Amir Omidi
923272f989 Let's log every potential failure (#10342)
* Let's log every potential failure

* Add more context to the error
2020-05-11 13:02:28 -07:00
Charles Gagnon
567c1be9fb Refactor BDC dashboard to use ModelView Dashboard (#10327)
* WIP refactor

* More changes

* More changes

* Remove unused styles

* Uncomment code
2020-05-11 09:21:03 -07:00
Leila Lali
3d2d791f18 ML extension - Improving predict parameter mapping experience (#10264) 2020-05-10 18:10:17 -07:00
Maddy
f6e7b56946 opening as text document launches json (#10323) 2020-05-08 23:28:28 -07:00
Charles Gagnon
2893659983 Hyperlink Component improvements (#10330)
* Hyperlink Component improvements

* Remove hyperlink CSS styles
2020-05-08 16:49:07 -07:00
Amir Omidi
f220f6486a Stops caching the AAD token (#10251) 2020-05-08 16:46:18 -07:00
Cory Rivera
f94a9d0d58 Update Configure Python dialog to allow packages to be installed for specific kernels. (#10286) 2020-05-08 16:02:59 -07:00
Charles Gagnon
9bcd7cdd80 Fix tabbed panel not updating correctly when layout updated (#10328)
* Fix tabbed panel not updating correctly when layout updated

* Add comment
2020-05-08 15:56:59 -07:00
Chris LaFreniere
5e1978e29f Ensure ipynb is associated with editor (#10055) 2020-05-08 14:50:48 -07:00
Chris LaFreniere
e4614582cd Cleanup nbformat, more common tests (#10311) 2020-05-08 14:50:24 -07:00
Chris LaFreniere
0fbc3d1cb6 Get rid of red herrings (#10309) 2020-05-08 14:49:49 -07:00
Alan Ren
3a70bea70d fix button column accessibility issue (#10307)
* fix accessibility issue

* comment
2020-05-08 14:24:03 -07:00
Kim Santiago
ea84e60fa0 Add a few dacpac extension tests (#10322)
* add controller test

* Add a few wizard tests

* Addressing comment

* fix compile error
2020-05-08 14:04:11 -07:00
Kim Santiago
10ac5fdfab Revert "Dacpac extension tests (#10305)" (#10321)
This reverts commit 1c621da4c7.
2020-05-08 10:32:22 -07:00
Kim Santiago
1c621da4c7 Dacpac extension tests (#10305)
* add controller test

* Add a few wizard tests

* Addressing comment
2020-05-08 10:11:51 -07:00
Charles Gagnon
6e5fc9c495 Add ModelView method SetItemLayout (#10306)
* Add ModelView method SetItemLayout

* Remove extra line break
2020-05-08 08:38:36 -07:00
Anthony Dresser
e3daec38c6 Merge branch 'ads-master-vscode-2020-05-08T03-58-31' 2020-05-08 00:58:57 -07:00
Anthony Dresser
11636f8fc3 remove crash reporting 2020-05-07 22:34:46 -07:00
Anthony Dresser
8c08d5117b revert workflow changes 2020-05-07 21:02:48 -07:00
ADS Merger
fa62ec1f34 Merge from vscode 7653d836944892f83ce9e1f95c1204bafa1aec31 2020-05-08 03:58:34 +00:00
Chris LaFreniere
dac1970c43 Notebooks: Refactor Empty Session Classes (#10265)
* Cleanup empty sessionmanager

* Cleanup

* PR Feedback import noKernel from notebookActions
2020-05-07 16:20:14 -07:00
Alan Ren
e27a57715c set provider (#10302) 2020-05-07 13:46:04 -07:00
Amir Omidi
e6ca724571 Add new error message to console (#10303) 2020-05-07 13:28:45 -07:00
Vladimir Chernov
57d2ceec9d mssql sqlAssessmentService (#10299)
mssql sqlAssessmentService
2020-05-07 21:35:44 +03:00
Alan Ren
d87855cf1f force the isDirty flag to always be false (#10295) 2020-05-07 10:08:22 -07:00
Jeff Trimmer
1656a9c285 upgrade the STS version (#10289) 2020-05-07 07:12:07 -07:00
Aasim Khan
89a845d994 -Changed from AutoFit to DataFit for better visibility of cell content (#10278) 2020-05-06 20:41:50 -07:00
Benjin Dubishar
80901c9a7b Swapping vscode calls for ApiWrapper for testability (#10267)
* swapping vscode calls for apiwrapper for testability

* Adding mainController tests

* Adding unit tests for input validation

* Adding project controller tests, reorganizing error handling

* Removing commented-out code
2020-05-06 14:16:27 -07:00
Alan Ren
0ace033a6f table based explorer widget (#10279)
* bump sts

* extend widget container

* remove title

* wip

* refactoring

* Revert "extend widget container"

* showTitle option

* fix properties widget error

* icon column

* icon and button columns

* use textwithicon column

* icon

* refactor and filter

* context menu

* refactor

* tests

* fix hygiene

* tests

* comments
2020-05-06 13:52:20 -07:00
Anthony Dresser
df5df38a55 Query Runner Tests (#10252)
* rework some code and write an inital test

* fix strict

* add more to standard test

* add to existing workflow test

* fix tests

* simplify the code

* add more tests

* remove bad import

* fix compile

* fix timestampiong
2020-05-06 13:38:12 -07:00
rajeshka
4199cec393 Add Cell after current active cell (#10203)
* Add Cell after current active cell

* fixed error

* more fixes

* Addressed PR

* merged with master

* Fixed the tests and code

* removed try catch and modified the test to check the method does not throw.

Co-authored-by: Rajesh Kamath <rajkashop@hotmail.com>
2020-05-06 11:42:01 -07:00
Benjin Dubishar
9b296c9f42 Organizes context menus for database projects tree (#10266)
* reoranizing existing context menu commands

* adding build/deploy/import stubs

* Update error message

* adding for schemaCompare
2020-05-06 11:31:17 -07:00
Anthony Dresser
dbb40d820c Merge branch 'ads-master-vscode-2020-05-06T02-35-47' 2020-05-05 23:21:01 -07:00
Aasim Khan
2ca6e7ae64 Removed PG connections and the refresh button from the import wizard. (#10248)
* - Removed PG connections in the new connection wizard
- If a PG database is active sending an error
- Removed refresh button #6611

* Added back the refresh

* -Using getConnection only once.

* -Fixed the error message
-Fixed the bugs mentioned in the PR

Co-authored-by: Aasim Khan <aaskhan@microsoft.com>
2020-05-05 20:13:16 -07:00
Anthony Dresser
d7d13c7218 update sqlite in smoke tests 2020-05-05 19:41:28 -07:00
Anthony Dresser
485e185270 remove workflows 2020-05-05 19:38:07 -07:00
ADS Merger
8420d9f04e Merge from vscode bd0efff9e3f36d6b3e1045cee9887003af8034d7 2020-05-06 02:35:49 +00:00
Alex Ma
9a7810cbee removal of unnecessary spaces. (#10275) 2020-05-05 14:58:13 -07:00
Alan Ren
0fd3b25ccd remove table setActive (#10256)
* remove setActive method

* another place
2020-05-05 13:21:26 -07:00
Alex Ma
921e546fd7 Edit Connection Feature added, edit existing connection in connection tree. (#10214)
* Added Edit Connection Command

* Wip changes for new connection dialog

* Testing

* WIP commit

* added ID check to ensure connection

* wip commit

* model id check implemented

* addfooterbutton now accepts events

* wip commit

* message explaining check

* temporary change

* connectionManagementService restored

* Revert "connectionManagementService restored"

This reverts commit 9704a63184a06a33bee2648ef0a899229d117cc0.

* formatting test

* editConnection promise testing

* edit existing connection command added

* WIP Connection Edit

* disconnect added to editConnection promise

* WIP on editExistingConnection

* changed isEdit to true

* Amir/edit connection (#10112)

* Get edit connection working

* Delete unused code

* check for isEdit as well

* connection tree test added

* WIP connection management tests

* comment out test to find out what's wrong

* fix for one error

* added note about test skipped

* changed signature of saveprofile

* saveprofile fixed

* wrote working test

* added additional test

* changed message

* Fixes made

* fix for matcher

Co-authored-by: Amir Omidi <amomidi@microsoft.com>
2020-05-05 13:21:05 -07:00
Kim Santiago
5fe72d318b Fix toolbar overflow focus not always going to first element in overflow (#10246)
* fix overflow focus not always going to first element in overflow

* adding tests
2020-05-05 13:02:06 -07:00
Amir Omidi
5105694fb3 Render before adding to the splitView (#10261) 2020-05-05 12:05:12 -07:00
Jeff Trimmer
53cb97af9b Add Always Encrypted Parameterization Option (#10182) 2020-05-05 12:01:01 -07:00
Leila Lali
a7c4a259ad Fixed an issue with setting the default location in package management (#10263) 2020-05-04 17:00:51 -07:00
Benjin Dubishar
5498c1c3a9 Knobs for unit-testing extensions (#10178)
Converted `test-extensions-unit.bat` to javascript to add a small QoL improvement that I think people will find useful: specifying which extension(s) you want to run tests for instead of commenting out lines of a script.

In addition to existing behavior being mostly preserved (node test-extensions-unit.js defaults to running all unit tests), you can specify one or more:

```
node test-extensions-unit.js sql-database-projects
node test-extensions-unit.js sql-database-projects schema-compare
```
2020-05-04 13:07:52 -07:00
Anthony Dresser
3e5b7fd3e6 Fix errors in message panel (#10257)
* fix errors in message panel

* fix compile
2020-05-02 19:37:42 -07:00
Udeesha Gautam
e3873828e0 Feature/dotnet popup (#10231)
* Add a pop up for dotnet install if not present

* Second option of default location for mac/linux

* correcting the pop up message

* remove extra dependency

* updating as per PR comments
2020-05-02 16:29:36 -07:00
Karl Burtram
db57eb9581 Fix hygine error (#10255) 2020-05-02 12:04:08 -07:00
Karl Burtram
8d46aef40c Port/welcomeflag (#10254)
* Put new welcome page behind preview features flag (#10099)

* import correct welcome page (#10117)

Co-authored-by: Anthony Dresser <andresse@microsoft.com>
2020-05-02 10:27:47 -07:00
Alan Ren
cb2a02d82c add option to hide the widget title (#10222)
* extend widget container

* remove title

* Revert "extend widget container"

* showTitle option

* rename to showHeader

* comments and refactoring
2020-05-01 16:58:30 -07:00
Chris LaFreniere
52abcd68af Tweak cell margin (#10247) 2020-05-01 14:12:41 -07:00
Anthony Dresser
5cb9b36329 Add tests for statusmodeselect (#10235)
* add tests for statusmodeselect

* add another test
2020-05-01 13:52:20 -07:00
Charles Gagnon
13d2ce7d5d Update coveralls task (#10241)
* Update coveralls task

* Undo sql change
2020-05-01 11:37:37 -07:00
Aasim Khan
64c375a12d Import Flat File Wizard - hangs at table schema (#10216)
* Using azure sql compatible query

* Included changes requested in PR for azure specific DBs and then fixed issue #9361 for contained databases.

* Made some changes mentioned in the PR
- Converted let to const
- Logging the error
2020-05-01 10:53:02 -07:00
Kim Santiago
8449888db8 fix overflow menu disappearing (#10236) 2020-05-01 10:19:33 -07:00
Anthony Dresser
cebbd04d10 Merge from vscode 2a36b7d0d527bf408bae4f96b8386db9d9455113 (#10237) 2020-04-30 23:41:35 -07:00
Cory Rivera
d7a425239b Only reveal items in the books viewlet if the viewlet is visible. (#10234) 2020-04-30 20:10:27 -07:00
Anthony Dresser
b4deca3b4b update token for copycat (#10232) 2020-04-30 14:25:11 -07:00
Anthony Dresser
92e0b2e130 Rework message panel (#10177)
* wip

* fix compile

* fix look

* fix hygiene errors

* add back functionality

* fix some issues with accessibility

* proper dispose template

* handle state properly in message panel
2020-04-30 13:49:18 -07:00
dependabot[bot]
28230b67d4 Bump jquery from 3.4.0 to 3.5.0 (#10227)
* Bump jquery from 3.4.0 to 3.5.0

Bumps [jquery](https://github.com/jquery/jquery) from 3.4.0 to 3.5.0.
- [Release notes](https://github.com/jquery/jquery/releases)
- [Commits](https://github.com/jquery/jquery/compare/3.4.0...3.5.0)

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

* Update remote

* Update remote web

* Update jquery again

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: chgagnon <chgagnon@microsoft.com>
2020-04-30 13:17:52 -07:00
Leila Lali
af36d79c53 MLS - Setting the right url to install sqlmlutils from for MAC and Linux (#9962)
* Setting the right url to install sqlmlutils from for MAC and Linux
2020-04-30 12:09:05 -07:00
Alan Ren
0999060827 bump sts (#10225) 2020-04-30 10:51:46 -07:00
Charles Gagnon
0e6117f044 Only filter preview extensions when preview feat disabled (#10212)
* Filter database preview tabs

* Update comment

* Revert changes - just update comment
2020-04-30 10:46:16 -07:00
Karl Burtram
fdc21bfb9e Changelog for 1.17.1 (#10224) 2020-04-30 10:18:29 -07:00
AzureDataStudio
d07455d2ea Merge branch 'ads-master-vscode-2020-04-30T00-53-40' 2020-04-30 01:33:00 -07:00
AzureDataStudio
f8232be553 fix compile 2020-04-29 21:40:29 -07:00
AzureDataStudio
2a71032284 wrong eslint command 2020-04-29 19:45:35 -07:00
Anthony Dresser
7ef753449f fix paths (#10226) 2020-04-29 19:37:06 -07:00
Anthony Dresser
9ac9872533 Refactor github actions and add copycat (#10215)
* add actions

* disable copycat, fix action location

* dont look for env for token
2020-04-29 19:34:02 -07:00
AzureDataStudio
0cae38f8ae ignore errors 2020-04-29 19:32:06 -07:00
ADS Merger
93f35ca321 Merge from vscode 27ada910e121e23a6d95ecca9cae595fb98ab568 2020-04-30 00:53:43 +00:00
Amir Omidi
87e5239713 Add a trailing slash (#10218)
* Add a trailing slash

* Do the same for US govt cloud
2020-04-29 14:16:27 -07:00
Arvind Ranasaria
353115668c Features to resource deployment to add arc control create in ARC extension (#10088)
* save not yet tested work

* Merge from master.

* Screeens Shared for Feeedback

* Code complete

* remove unneeded changes

* remove unnecessary comma

* remov wss

* remove dead code

* PR feedback

* checkpoint fixes

* PR & minor fixes

* minor fix for feature of  resourceType options being optional.

* reverting experimental change

* separating out changes for future featurework.

* revert unneeded change

* review feedback fixes

* review feedback

* rename InputFieldComponent to InputComponent
2020-04-29 12:11:48 -07:00
Chris LaFreniere
a9bfdf0fc9 Updating Arc Names (#10201) 2020-04-29 10:34:47 -07:00
Chris LaFreniere
0a3a0ec80f Notebooks: Support User-Installed Kernels (#10194)
* Fixes for attach to. Still need to update cache

* Don't have jupyter hardcoded

* Handle DOTNET_ROOT env var

* Fix on load

* Put behind feature flag

* Cleanup

* Error check

* PR feedback
2020-04-29 10:34:27 -07:00
Chris LaFreniere
5b57b13005 Update python Mac install url (#10200) 2020-04-29 10:29:52 -07:00
Alan Ren
7275641849 use latest DMP (#10206) 2020-04-29 10:08:19 -07:00
Alan Ren
85b2e2ce6a extra space (#10205) 2020-04-29 10:07:03 -07:00
Leila Lali
04af41c424 ML - dashboard icons and links (#10153)
* ML - dashboard icons and links
2020-04-28 21:21:30 -07:00
Aasim Khan
046995f2a5 Flat File Import says command not found on first run (#10081) (#10184)
* Changed the activation event from onCommand to startup "*"

* Refractored some code to fix the issue

* Made some PR related changes and fixed a condition where the same error was occurring when the flatFileImport has to download binaries from the internet.

* Reverted activation event back to previous state as it had no effect.

* Made changes mentioned in the PR

Co-authored-by: Aasim Shahnawaz Khan <aaskhan@microsoft.com>
2020-04-28 18:15:20 -07:00
Charles Gagnon
793f189a83 Add CSSStyles to containers (#10199) 2020-04-28 16:57:03 -07:00
Leila Lali
0bf569b2df Adding the cachesalt Azure pipelines to force the cache to recreate (#10196)
* Adding the cachesalt Azure pipelines to force the cache to recreate
2020-04-28 16:52:08 -07:00
Charles Gagnon
750f6e6559 Fix properties container and overflow actionbar styles (#10180)
* Fix styles

* Undo bold
2020-04-28 16:27:07 -07:00
Chris LaFreniere
98f3f57f77 Improve code selection and undo, add tests (#10160) 2020-04-28 16:26:23 -07:00
Chris LaFreniere
fb1fbb214d Notebook Cell Magic Mapper Tests (#10172)
* cell magic mapper tests

* Add space in description for test
2020-04-28 16:18:55 -07:00
Kim Santiago
11f6790630 Add support for target location in tasks (#10179)
* Add support for target location in tasks

* bump sqltoolsservice to get addition of targetLocation to TaskNode
2020-04-28 15:35:40 -07:00
Alan Ren
4ec281313f extend the ListDatabasesRequest to allow more information to be returned (#10186)
* database detail

* revert sts change

* reuse databaseInfo interface
2020-04-28 13:32:19 -07:00
Charles Gagnon
7b6d24c3c6 Fix tasks pane styling (#10188) 2020-04-28 09:44:43 -07:00
Charles Gagnon
9d2f772380 Change use of ctrl + alt default keybinding (#10144) 2020-04-27 16:41:23 -07:00
Anthony Dresser
8a6e918fff Update versions for 1.18 (#10127)
* update versions for 1.18

* update install links

* update changelog
2020-04-27 14:40:12 -07:00
Alan Ren
c818e7c391 update the tslint rule to use tabs (#10174) 2020-04-27 14:20:44 -07:00
Alan Ren
335f6de8ac update extension versions (#10176) 2020-04-27 13:58:57 -07:00
Alan Ren
5aa8894686 server dashboard databases tab update (#10159)
* databases tab

* move icon to common-icons
2020-04-27 12:37:04 -07:00
Chris LaFreniere
e9339bb0d5 Cleanup and clientSession uncomment (#10162) 2020-04-27 11:07:35 -07:00
Barbara Valdez
8370a24f8c Test content manager (#9942)
* Add tests

* Address comments, will add more tests on next PR
2020-04-27 10:59:52 -07:00
Alan Ren
53c726459e update whoisactive extension (#10164)
* update whoisactive extension

* update readme
2020-04-27 10:51:54 -07:00
Alan Ren
1d3568a2aa update server reports extension (#10165)
* update server reports extension

* add description
2020-04-27 10:51:01 -07:00
Alan Ren
b202647090 update agent icon (#10163) 2020-04-27 10:50:00 -07:00
Maddy
4a87a12ac2 added more tests (#10161)
* added more tests

* typo fixes

* removed unused func

* added an extra assert

* fix typo
2020-04-26 23:34:53 -07:00
Charles Gagnon
586c28bf79 Add and fix notebook extension unit tests (#10156) 2020-04-24 22:05:36 -07:00
Anthony Dresser
c26bd3f8f7 Merge branch 'ads-master-vscode-2020-04-23T02-50-32' 2020-04-24 22:33:51 +00:00
chgagnon
e8959214fb Fix query history styles 2020-04-24 14:04:18 -07:00
Anthony Dresser
c6f87ff088 update sqlite extension for smoke 2020-04-24 14:04:06 -07:00
Anthony Dresser
89cf3ff515 fix panel issues 2020-04-24 14:03:48 -07:00
Anthony Dresser
6cd2d213ca fix eslint issue 2020-04-24 14:03:38 -07:00
Anthony Dresser
98f2d5510f remove irellivent tests 2020-04-24 14:03:38 -07:00
Anthony Dresser
a1930bdc59 fix formatting 2020-04-24 14:03:37 -07:00
Anthony Dresser
ce81a0a81c remove workflows 2020-04-24 14:03:37 -07:00
ADS Merger
7f1d8fc32f Merge from vscode 2e5312cd61ff99c570299ecc122c52584265eda2 2020-04-24 14:03:37 -07:00
Kim Santiago
3603f55d97 Fix overflow toolbar for split views (#10155)
* fix overflow toolbar not resizing correctly when split editor is opened

* add comment
2020-04-24 13:14:08 -07:00
Charles Gagnon
a018058169 Remove properties widget height calculations (#10152)
* Remove height calculations

* Remove custom height setting

* Fix compile errors
2020-04-24 11:36:45 -07:00
Leila Lali
1e8a9c47cb ML - Added model management dialog to edit and delete models (#10125)
* ML - Added model management dialog to edit and delete models
2020-04-24 08:33:35 -07:00
Chris LaFreniere
7633c810aa First tests for notebook markdown transformer (#10072)
* First tests for markdown toolbar

* Fix loader issues

* PR Feedback
2020-04-23 21:24:15 -07:00
Alan Ren
6a02287dc6 fix server/database dashboard content scroll (#10138)
* implementation-1

* updates
2020-04-23 21:21:23 -07:00
Amir Omidi
cde836641a Set the username (#10149) 2020-04-23 15:42:11 -07:00
Anthony Dresser
fb67f9f860 also publish drop on darwin to catch screenshots from smoketests (#10148) 2020-04-23 14:13:30 -07:00
Anthony Dresser
ab97e38f91 add searches for edits and strictnulls (#10133) 2020-04-23 13:11:29 -07:00
Amir Omidi
eeb3cc5d8a Change the authenticationType (#10139) 2020-04-23 09:53:01 -07:00
Charles Gagnon
b1081bb610 Fix some missed property name updates (#10135)
* Fix some missed property name updates

* Undo css addition

* Remove css
2020-04-23 07:44:16 -07:00
Charles Gagnon
7bd1dfdf0f Move loading component out of common properties component (#10134) 2020-04-22 17:36:21 -07:00
Benjin Dubishar
52f33cc587 Fixing bug where templates may get mapped before loaded from their files (#10111)
* Fixing potential bad order of template loading and map construction

* Fixing bug where templates get mapped before loaded from file

* Parallelizing loading templates from file
2020-04-22 17:01:19 -07:00
Charles Gagnon
8311c3985d Add PropertiesContainer ModelView component (#10115)
* Add PropertiesContainer ModelView component

* Switch to component

* Remove unneeded interface

* Update names

* Fix names
2020-04-22 16:29:46 -07:00
Anthony Dresser
9d1b99f1d3 add condition to version writing (#10128) 2020-04-22 15:29:33 -07:00
Amir Omidi
f50ab4c6cd Delete deprecated accounts (#10131)
* Delete deprecated accounts

* Add one more assert statement

* Feedback
2020-04-22 14:57:33 -07:00
Anthony Dresser
d88918ab40 dont append quality to version info (#10118) 2020-04-22 12:47:19 -07:00
Charles Gagnon
883dcc9789 Fix view destroyed errors (#10119) 2020-04-22 09:50:37 -07:00
Kim Santiago
cd34236f30 Fix Taskbar separator sometimes disappearing (#10113)
* fix separator sometimes disappearing

* change to min-width
2020-04-21 18:12:00 -07:00
Anthony Dresser
92ea0c3f5a Removing quality addition in naming and move to compile step (#10114)
* removing quality addition in naming and move to compile step

* fix yml
2020-04-21 17:09:19 -07:00
Anthony Dresser
94da31569e modify upload names (#10084) 2020-04-21 12:43:50 -07:00
Charles Gagnon
a4ae2ca65f Move properties container and loading spinner to common components (#10058)
* Move properties container and loading spinner to common components

* Fix compile error

* Fix tests
2020-04-21 09:36:47 -07:00
Leila Lali
a34feb4448 ML - Target import table selectable by user (#10071)
ML - Target import table selectable by user
2020-04-21 08:02:48 -07:00
Chris LaFreniere
4f1d4276a0 Check for file scheme in linkhandler (#10090) 2020-04-20 17:18:38 -07:00
Anthony Dresser
33e7641400 remove intermediate uploads for mac (#10085) 2020-04-20 16:16:27 -07:00
Cory Rivera
097289d94c Check treeItem first when building search path in searchJupyterBooks. (#10083) 2020-04-20 15:30:52 -07:00
Amir Omidi
15e592647e Revert "Create new row upon focus on last row (#9046)" (#10039)
This reverts commit 6b9184aa15.
2020-04-20 14:26:17 -07:00
Anthony Dresser
c11cb420cd check for succeed before building docker (#10086) 2020-04-20 14:17:21 -07:00
Amir Omidi
25d72f8d5d Enable file based storage by default (#10061) 2020-04-19 21:47:08 -07:00
Anthony Dresser
4e1e116c83 check in generated files (#10075) 2020-04-19 14:12:55 -07:00
Anthony Dresser
dd6b958898 Removing some unnecessary differences (#9495)
* work on removing some unncessary differences

* fix compile

* skip another test
2020-04-17 23:53:33 -07:00
Hale Rankin
6f066e90ef Notebook UI - Fixes navigation offset (#10067)
* Addresses bug: 10062. Replaced scrollTop with getBoundingClientRect.top minus the combined height of the top tabs and action bar.

* Setting initial value of chrome offset, and checking for existence of both tool bars before getting their heights.
2020-04-17 22:20:27 -07:00
Charles Gagnon
cb26c1c409 Fix arrow alignment for connection dialogs (#10064) 2020-04-17 19:11:41 -07:00
Cory Rivera
67b6f6ffcd Add tests for Open Notebook Folder functionality. (#10056) 2020-04-17 16:27:00 -07:00
Barbara Valdez
6200075624 Fix relative paths on anchor links (#9958)
* Fix relative links in notebooks
2020-04-17 16:12:07 -07:00
Anthony Dresser
08bb6414b1 Use custom kerberos to reduce size (#9910)
* add custom kerberos

* fix kerberos and consolidate ignores
2020-04-17 15:15:06 -07:00
Charles Gagnon
0735f82548 Update vscodeVersion (#10052) 2020-04-17 15:13:39 -07:00
Charles Gagnon
5304d65586 Fix logging for angular bootstrapping errors (#10059) 2020-04-17 14:51:44 -07:00
Benjin Dubishar
b3492e3f57 Creating a new database project, project items
* can create, open, and close sqlproj files
* can add sql objects to projects
2020-04-17 14:09:59 -07:00
Charles Gagnon
05526bbaca Revert SqlToolsService update (#10057)
I'm seeing some issues from this - reverting until I get a chance to investigate a fix.
2020-04-17 13:29:50 -07:00
Charles Gagnon
ea310ff15d Move helper functions into DOM (#10051)
* Move helper functions into DOM

* Add tests and comments
2020-04-17 13:21:35 -07:00
v-bbrady
b02a5f9e49 Fixes video and admin pack images (#10038)
* fixes the video images not showing when a 2nd welcome page is opened, and replace the admin pack image

* deletes unused image

* hardcodes video image src into html

* removes dead code

* embeds require.toUrl in markup
2020-04-17 09:45:10 -07:00
Maddy
9a5f5d224f added proper check (#10032) 2020-04-17 09:18:40 -07:00
Hale Rankin
b568b8509d UI - Markdown toolbar now behind preview flag (#10024)
* Adding enablePreviewFeatures check before showing the new toolbar.

* Removed unused code.

* Added hook to trigger onDidChangeConfiguration -- this makes the UI change after user has checked or unchecked, without having to restart the app.

* Initializing the component with the current config value of enablePreviewFeatures.
2020-04-16 20:55:58 -07:00
Kim Santiago
530ec8c19d Update dashboard properties widget style for Reflow (#9976)
* layout properties in 2 columns

* fix height after collapsing

* update with reflow values

* set height better

* cleanup

* fix crashing when resizing while properties widget is loading

* Switch to grid layout

* Only two columns max

* Update comment

* Undo color change

* Cleanup

* Fix test

Co-authored-by: chgagnon <chgagnon@microsoft.com>
2020-04-16 20:23:35 -07:00
Maddy
02ae1ecff8 Rename/books viewlet sections (#10044)
* renamed viewlet sections

* template to provided
2020-04-16 17:23:54 -07:00
Cory Rivera
2817316cf4 Check conda-forge channel first when installing conda packages. (#10035) 2020-04-16 16:58:32 -07:00
Alan Ren
04ec347eeb fix clipping issue (#10020)
* fix clipping issue

* remove hardcoded height
2020-04-16 15:59:26 -07:00
Charles Gagnon
07a65dd64f Enable CI pipeline again (#9982) 2020-04-16 15:34:28 -07:00
Anthony Dresser
5b19fe7c67 Revert "Stop executing the same code three times (#9835)" (#10026)
This reverts commit 97108bdeea.
2020-04-16 14:54:25 -07:00
v-bbrady
e8bc6f8f6b Welcome responsive container (#9946) (#9870)
* adds responsiveness to the left navigation pane

* fixes style

* removes color from css

* updates style
2020-04-16 12:49:38 -07:00
Anthony Dresser
8435dc468e add innoupdater for fast update (#10015) 2020-04-16 12:25:17 -07:00
Chris LaFreniere
51f47fbdee Bring back hover buttons for adding cells (#10012) 2020-04-16 11:22:29 -07:00
Alan Ren
be8acb058a update the cursor of toggle state button (#10005) 2020-04-16 10:21:02 -07:00
Charles Gagnon
f44e78aef4 Add typing for TabbedPanelLayout and set defaults (#9955)
* Add typing for TabbedPanelLayout on withLayout and set appropriate defaults

* Move enum def
2020-04-15 16:42:42 -07:00
v-bbrady
3566da328a Fix duplicating list on extension pack (#9992) (#10003)
* makes the preview button hover state stay active when hovering over tooltip

* fixes the duplicating list on the extension pack when a 2nd welcome page tab is opened
2020-04-15 16:36:48 -07:00
Amir Omidi
5089b5c8bd Replace with the minified version of plotly (#9840) 2020-04-15 16:24:16 -07:00
Amir Omidi
9d9788d16f Listen on localhost only (#9997) 2020-04-15 14:06:36 -07:00
Amir Omidi
c649890398 Put cloud shell behind preview flag (#9995) 2020-04-15 14:04:43 -07:00
Amir Omidi
97108bdeea Stop executing the same code three times (#9835)
* Stop executing the same code three times

* Remove one more extra call
2020-04-15 13:56:12 -07:00
Vladimir Chernov
e6d882c9b5 #9984: Fixed issue with header filter (#9985) 2020-04-15 22:57:32 +03:00
Chris LaFreniere
4e92c27189 Notebooks: Fix Issue Around Load Error when Tables Have No Rows (#9980)
* Table element children length check

* Add another check
2020-04-15 12:10:40 -07:00
Charles Gagnon
916ac7c7d1 Remove adstest package (#9956) 2020-04-15 10:38:20 -07:00
Charles Gagnon
251fa220d5 Update SqlToolsService (#9986) 2020-04-15 10:36:47 -07:00
Maddy
a58d4d7d05 replaced watch with watchFile (#9873)
* replaced watch with watchFile

* testing debounce

* changed the beounce delay to 1500
2020-04-15 10:03:48 -07:00
Alex Ma
3cb49686a5 Fix for edit data sizing of table (#9972)
* Fix for style

* removed inline-block as its unnecessary
2020-04-15 09:12:53 -07:00
Maddy
c728f23893 some more tests (#9933)
* some more tests

* changes to address comments
2020-04-14 22:33:23 -07:00
Charles Gagnon
30607ec61b Update to latest vscodetestcover (#9909)
* Update to latest vscodetestcover

* Undo ci disable

* Add mssql to coverage upload

* Also update sh script

* Add mocha reporters

* Update yarn.lock

* Fix merge conflict

* Update

* Update yarn.lock again

* Fix compile errors

* Try disabling test

* Disable another test

* Try disabling all tests

* Leave one test...

* Skip msssql tests again

* Remove mssql coverage merge

* re-disable CI
2020-04-14 21:32:17 -07:00
Anthony Dresser
b6b72de706 distro (#9977) 2020-04-14 17:03:34 -07:00
Cory Rivera
e1f2f7479f Only show Create Insight button in Query Editor charts. (#9973) 2020-04-14 15:35:44 -07:00
Amir Omidi
3f77832e4b Don't enforce the password limit for file keytar (#9974)
* Allow users to use file based keychain if they have to

* Don't enforce this limit for FS keytar

* Spacing
2020-04-14 14:48:38 -07:00
Amir Omidi
fac2982d7a Allow users to use file based keychain if they have to (#9952) 2020-04-14 14:33:24 -07:00
Hale Rankin
4e69eabf52 UI feature - Notebook markdown toolbar (#9853)
* Markdown editor toolbar - initial commit

* Moved icons. Refactored new toolbar component to include markup.

* Edited markdown toolbar component and referencing in textCell component markup.

* Completed UI updates for selected cell toolbar and markdown toolbar. 

* Modified import path to Event class. Changed EventEmitter to Emitter.

* Cleaned up newly added toolbar components

* Works sometimes sometimes editor is null

* Removed commented out code and styles. CellToolbar and MarkdownToolbar: moved component markup into html file.

* Added icon for highlight. Removed more commented code. Re-scoped two styles to their parent components. Corrected templateUrl reference for the new toolbars.

* Adjusted paths to SVG icons from toolbar stylesheet.

* Add lists and links

* Refactor out of component, add actionbar

* Support for nothing selected, quick bug fix

* Updated split view icons. Added markdown tool backgrounds and cell border colors to color registry and parent components. Updated toolbar icons to use mask as this allows the SVG icon colors to be adjusted on theme change.

* Added colorRegistry entries for code cell. Removed colors from styles. Running registerThemingParticipant from code.component.

* Revised code component style rules and corrected syntax.

* Merged in Chris' working branch and removed unused markup.

* Corrected styles and moved another color into colorRegistry for use in new markdown toolbar.

* Corrected style error. Overrode left position of content inside textCell and codeCell. Added more entries to colorRegistry.

* Moved toolbar and editor icons to common-icons location. Updated related stylesheet. Revised color theming rules for markdown and code cells.

* Added themed border between markdown and preview. Moved all notebook themes into notebookStyles.ts

* Merged in latest from origin/master and included a small but significant style tweak to light theme code cell toolbar.

* Add Undo Support for Markdown Toolbar (#9915)

* Remove comment

* Renamed registered notebook colors and prefixed with notebook. Moved markdown component theme colors into notebookStyles.ts. Removed colors from cellToolbar styles. Revised icon class names to generic names for better re-use. Removed commented markup.

Co-authored-by: chlafreniere <hichise@gmail.com>
Co-authored-by: Chris LaFreniere <40371649+chlafreniere@users.noreply.github.com>
2020-04-14 14:13:00 -07:00
Anthony Dresser
37b14d83a6 Release rc (#9971)
* release rc builds

* allow ref heads
2020-04-14 13:14:55 -07:00
Anthony Dresser
bb7255b87e enable cross partition queryies (#9961) 2020-04-14 12:30:58 -07:00
Maddy
0cdda5ed1b Fix/find context correction (#9949)
* trigger input change on new notebooks

* return to avoid further executions

* remove unnecessary check
2020-04-14 12:24:44 -07:00
Kim Santiago
fb1292426b center collapse icon (#9966) 2020-04-14 11:16:30 -07:00
rajeshka
b9b3c1071e Added Notebook telemetry for livesite notebooks (#9948)
* Added Notebook telemetry for livesite

* added back the metadata retension code

* Unified Telemetry services

* fixed names

* Fixed texts to use new NullAdsTelemetryService

* Validate GUID before sending it

* made GUID check a bit more robust

Co-authored-by: Rajesh Kamath <rajkashop@hotmail.com>
2020-04-14 10:27:28 -07:00
Alan Ren
fb524af850 default deployment type for windows (#9959)
* change default deployment type for win32

* handling the initial deployment type
2020-04-14 10:08:35 -07:00
Cory Rivera
2b2a275fb0 Add Open Notebook Folder functionality to Books viewlet. (#9939) 2020-04-13 23:42:02 -07:00
Shafiq Ur Rahman
a8cf029633 Fixes #9397 Launch onenote links (#9931)
* Fixes #9397 Launch onenote links

* Limit the change to linkhandler directive
2020-04-13 19:32:42 -07:00
Alan Ren
fc70ddd104 show databases for azure server (#9951) 2020-04-13 16:30:55 -07:00
Charles Gagnon
84205831a8 Move drop files instead of copying (#9936)
* Move files instead of copying

* Just grab folders

* Preserve directories

* mkdir

* recursive

* Specify extensions
2020-04-13 15:28:41 -07:00
Kim Santiago
d9b7711a2c fix opacity for light theme (#9944) 2020-04-13 15:02:45 -07:00
Leila Lali
3f08d5d714 MLS - Changed the dashboard to match the design (#9905)
* Machine Learning Extension - Changed the dashboard to match the design
2020-04-13 14:06:29 -07:00
Alan Ren
8c491d36f4 more dashboard fixes (#9937)
* unify the panel styles

* min-width

* min-width

* fix issues

* fix css selector
2020-04-13 13:20:32 -07:00
Leila Lali
3aa357629d Machine Learning - Supporting multiple model import (#9869)
* Machine Learning Extension - Changed the deploy wizard to deploy multiple files
2020-04-13 10:26:10 -07:00
AzureDataStudio
15fc4517ee distro 2020-04-12 19:44:02 -07:00
Anthony Dresser
0382c561f3 add docker build 2020-04-12 18:55:57 -07:00
Alan Ren
e450369d5e unify the panel styles (#9934) 2020-04-10 23:05:21 -07:00
Kim Santiago
b1a9c8418b center properties title when collapsed (#9932) 2020-04-10 15:47:53 -07:00
Amir Omidi
ba41e926c4 Handle first time use when user doesn't have a cloud shell (#9890)
* Handle first time use when user doesn't have a cloud shell

* Catch errors

* Update code

* Update string per PM feedback

* Update the internal URI
2020-04-10 15:12:57 -07:00
Kim Santiago
3eab267da6 fix bottom of widgets being cutoff (#9930) 2020-04-10 13:39:27 -07:00
Alex Ma
4856e0a978 Sash bar for Edit Data SQL pane (#9818)
* WIP sash fix

* stuff to fix

* working mostly

* added tabbedPanel fix

* added null checks

* removed additional space in editdata.css

* wip change for border-top

* Fix for query editor and editdata colors in modes

* removed junk additions for panel.css

* fixed div and classes for editDataGridPanel,

* small optimizations

* Small tweaks

* simplified color checks

* test commit

* Test changes

* no need for important

* updates made

* removed small space
2020-04-10 10:56:47 -07:00
Charles Gagnon
8fd20c2069 Ignore jpgs for whitespace check (#9925) 2020-04-09 17:51:31 -07:00
Kim Santiago
e5cf13726e bump sqltoolsservice to 2.0.0-release.56 (#9922) 2020-04-09 16:53:40 -07:00
Kim Santiago
8ff53281f9 Dashboard toolbar overflow (#9796)
* initial changes for actionbar collapsing

* fix more not always all showing after resizing

* collapse toolbar if window size is already small when dashboard is opened

* make wrapping default behavior and collapse opt in

* fix so keyboard navigation works in overflow

* more keyboard fixing so that the actions in overflow get triggered

* change overflow background with theme

* change margin

* udpate more button

* use icon for ...

* addressing comments

* overflow css changes to match portal

* arrow navigation working

* handle tab and shift tab in overflow

* keep arrow navigation within overflow

* move reused code to helper methods

* set roles for overflow

* use actionsList instead of document.getElementById all the time

* move collapsible action bar to its own class

* renamve to overflowActionBar

* fix focus rectangle around more element

* hide overflow after an action is executed

* hide overflow when clicking an action

* hide overflow when focus leaves and loop focus within overflow when using arrow keys

* fix double down arrow to move focus in overflow

* update comment

* fix clicking more not hiding overflow

* add box-shadow for themes

* fix hygiene error

* fix hygiene error

* widen focused outline for overflow actions
2020-04-09 16:31:52 -07:00
Alan Ren
433049d1b2 pre-defined dashboard tab groups (#9916)
* pre-defined dashboard tab groups

* add back the tab group contribution

* comments
2020-04-09 14:57:46 -07:00
Alan Ren
06abda74a6 use the new icons from UX team (#9920) 2020-04-09 13:42:57 -07:00
Amir Omidi
510c12677e Remove unusable tenants (#9921) 2020-04-09 13:01:24 -07:00
Alan Ren
23f1a08aa0 add ability to dynamically update tabs (#9911)
* add dashboard and tabbedPanel samples

* add updateTabs to tabbedPanel component

* add updateTabs to tabbedPanel component
2020-04-09 12:02:00 -07:00
Alan Ren
82f21faf79 fix dashboard style (#9917) 2020-04-09 11:51:49 -07:00
Karl Burtram
59f440dfb4 Revert "remove the docs folder (#9868)" (#9919)
This reverts commit 2247682863.
2020-04-09 11:32:19 -07:00
Maddy
c2e7324381 vbump (#9908)
* vbump

* vbump in right place
2020-04-08 20:59:51 -07:00
Anthony Dresser
0de774eb75 Move service installs to their extensions (#9778)
* move service installs to their extensions

* more clean up

* fix clearline

* remove some stuff
2020-04-08 18:34:13 -07:00
Kim Santiago
238acb1468 Dashboard style updates to match mockups (#9857)
* widget formatting

* tab panel style

* breadcrumb padding

* dark theme colors

* Addressing comments

* move colors to theme.ts

* update properties widget colors

* update color names
2020-04-08 18:15:23 -07:00
Alan Ren
db49a146b0 add dashboard and tabbedPanel samples (#9894)
* add dashboard and tabbedPanel samples

* comments
2020-04-08 15:35:29 -07:00
Kim Santiago
b93f43d1c2 Properties widget updates (#9893)
* move properties widget collapse to bottom

* fix double bottom border for high contrast

* show title when collapsed

* move css to classes

* vertical center collapse icon
2020-04-08 14:41:31 -07:00
Anthony Dresser
ffdde0209b Merge branch 'ads-master-vscode-2020-04-08T06-33-35' 2020-04-08 13:34:54 -07:00
Amir Omidi
21964e15b0 Add more debug console logs so we can assist users better (#9907) 2020-04-08 13:12:26 -07:00
Amir Omidi
8e164973ee Login spinner (#9892)
* Add a notification for handling logins

* No need to catch and rethrow

* Make it optional

* use testNotificationService
2020-04-08 12:53:48 -07:00
Anthony Dresser
c428a3aebf distro 2020-04-08 03:05:09 -07:00
Anthony Dresser
06c1db5417 distro 2020-04-08 02:19:57 -07:00
ADS Merger
1868a7d370 Merge from vscode 10492ba146318412cbee8b76a8c630f226914734 2020-04-08 06:33:38 +00:00
Chris LaFreniere
fca2344c2e Remove old CTP code, add test (#9877) 2020-04-07 20:09:52 -07:00
Kim Santiago
ddaf9a7eb6 Change active tab to have full outline for high contrast (#9889)
* change active tab to have full outline for high contrast

* remove unused imports
2020-04-07 17:10:16 -07:00
Alan Ren
fd314ec030 convert the sql services extension to use yarn (#9891)
* convert the sql services extensions to use yarn

* update
2020-04-07 15:59:31 -07:00
Maddy
6bc123d76b Fix/open book spcl characters (#9888)
* upgrade fast-glob that escapes them.

* added tests

* added test with brackets in bookPath
2020-04-07 15:55:53 -07:00
Anthony Dresser
f056086662 Remove checks for integration testing (#9856)
* remove checks for testing

* fix schema compare tests

* move some files

* fix file location

* fixc another file path
2020-04-07 14:50:20 -07:00
Amir Omidi
d580c13be1 Labelz (#9887)
* Labelz

* Use params
2020-04-07 13:09:15 -07:00
Amir Omidi
592801d74c Create a progress notification for saving files (#9875)
* Create a progress notification for saving files

* Remove unused import
2020-04-07 11:12:51 -07:00
Monica Gupta
63006e6e63 Undo default kqlmagic install (#9871)
Co-authored-by: Monica Gupta <mogupt@microsoft.com>
2020-04-07 10:20:37 -07:00
Kim Santiago
6d9f235704 High contrast theme dashboard fixes (#9874)
* a couple style fixes for high contrast theme

* fix for when switching themes
2020-04-07 10:13:11 -07:00
Alan Ren
c2b8fcde45 add options to customize the model view dashboard (#9872)
* add options to customize the mv dashboard

* rename the property
2020-04-06 20:04:38 -07:00
Anthony Dresser
9819e97f7b fix accessibility issues (#9824)
* fix accessibility issues

* fix no active cell

* more fixes
2020-04-06 19:38:40 -07:00
dependabot[bot]
9c876f869a Bump acorn from 5.7.3 to 5.7.4 in /samples/sqlservices (#9865)
Bumps [acorn](https://github.com/acornjs/acorn) from 5.7.3 to 5.7.4.
- [Release notes](https://github.com/acornjs/acorn/releases)
- [Commits](https://github.com/acornjs/acorn/compare/5.7.3...5.7.4)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-04-06 19:38:19 -07:00
Anthony Dresser
51da14ddda distro (#9876) 2020-04-06 19:34:59 -07:00
Chris LaFreniere
1d22e23c2d Add a few more notebook model unit tests (#9859)
* Add a few more notebook model tests

* Add tests for nb managers, active cell

* Add assert messages
2020-04-06 16:39:02 -07:00
Maddy
4c01482a8f fixes to the toc formatting (#9825)
* fixes to the toc formatting

* addressed comments
2020-04-06 15:30:08 -07:00
Alan Ren
2247682863 remove the docs folder (#9868) 2020-04-06 12:26:31 -07:00
Alan Ren
19a11ba94b tasks widget updates (#9860)
* fix toolbar and remove tasks widget

* update refresh action

* remove contribution

* fix missing learn more menu item

* Alanren/refresh widgets new (#9863)

* refresh widgets

* dashboard refresh

* update
2020-04-06 12:25:09 -07:00
Karl Burtram
f95864ff82 Turn-off connection dialog on 1st-launch (#9858) 2020-04-06 11:53:24 -07:00
Monica Gupta
11c34f36d7 set ads context for kqlmagic (#9849)
Co-authored-by: Monica Gupta <mogupt@microsoft.com>
2020-04-06 09:48:16 -07:00
Charles Gagnon
39fdfa5cba Add close windows step (#9867) 2020-04-06 08:24:59 -07:00
Anthony Dresser
a0eac49ae6 delete workflows 2020-04-04 02:12:41 -07:00
ADS Merger
35f1a014d5 Merge from vscode 6fded8a497cd0142de3a1c607649a5423a091a25 2020-04-04 04:30:52 +00:00
Barbara Valdez
00cc0074f7 Fix anchor links in notebooks (#9848)
* Fix links using anchors issue #8428

* Address PR comments
2020-04-03 16:02:55 -07:00
Anthony Dresser
d5da2f921b distro (#9854) 2020-04-03 15:04:17 -07:00
Kim Santiago
a8c48fab78 Update dashboard breadcrumb style to match mockups (#9850)
* update breadcrumb style to match mockups

* remove unnecessary fontsize
2020-04-03 14:42:35 -07:00
Anthony Dresser
d707b92fdc distro (#9852) 2020-04-03 14:38:27 -07:00
Barbara Valdez
548c69e074 Fix offset when scrolling to section (#9847) 2020-04-03 14:25:51 -07:00
v-bbrady
177a58c81d Welcome page reskin (#9491)
* adds icons for welcome page

* updates markup and styles for welcome page

* updates color registry with welcome page colors

* updates styles for welcome page

* updates markup for welcome page

* updates theming styles for welcome page and adds date since last opened functionality on history items

* adds all icons and images for welcome page

* updates markup for welcome page

* updates styles for welcome page

* updates color registry with welcome page styles

* updates welcome page icons with microsoft flag and dark theme home banner

* updates welcome page markup

* updates dynamically generated extension list

* updates styles for welcome page

* updates markup for welcome page

* adds dynamic lists for extension pack individual extensions

* updates icons for welcome page

* updates styles for welcome page

* updates welcome page styles

* updates theme colors

* updates markup for welcome page

* updates color registry with welcomepage colors

* updates sql.de.xlf with copy for welcome page

* reverts generated file

* updates welcome page styles

* updates extension pack copy casing

* updates color registry with welcome page styles

* updates welcome page markup

* adds welcome page icons

* updates welcome page markup

* updates welcome page icons

* updates welcome page styles

* reverts color registry in vs folder to original state

* moves color registry to sql folder

* removes dead code, localizes dates

* updates welcome page styles

* moves all colors from css to color registry

* updates styles by removing all colors

* removes stat import because of laying issue, adds color registry colors to welcomePage

* updates welcome page font sizes to ems

* updates localized strings

* removes unnecessary comment

* removes double quotes around string key for single quotes

* updates welcome page styles

* updates color registry

* updates welcome page markup

* adds dropdown button functionality

* adds centering classes for installed button text

* updates welcome page styles

* updates markup and styles for welcome page

* removes icon attempt from color registry

* removes theme specific icon svgs for theme specific icon css

* removes unused import

* removes console.log

* adds back mac new file button

* removes unused rules

* updates markup

* updates markup

* updates extension links to link to extensions in ADS

* pulls in changes from welcome-page-reskin-anthonydresser

* adds back code-icon to vs folder

* reverts welcomePage.css

* removes duplicate color registry variables

* fixes icon overlap on text for mac

* removes null import

* updates welcome page styles for mac

* updates welcome page images to use sql folder

* updates welcome page markup

* updates welcome page styles

* updates styles

* updates files paths

* delete images from sql folder

* updates icons

* updates welcome page styles

* updates preview popup

* updates markup for accessibility

* adds hover state to tiles

* updates dropdown

* fixes line-height issue

* updates class names

* updates keyboard accessibility for tooltip

* format document

* updates accessibility for preview tooltip

* removes whitespace

* updates preview modal accessibility

* adds aria labels to popup and tooltip

* removes max-width for zoom

* removes escaped strings, adds keycodes to promises, marks function as async and has the return as the signature of the function

* moves keycoes to class, removes comment

* fixes promise

* testing promise

* testing promise

* promise test

* localizes copy

* uses keycode import

* removes unnecessary arguments

* formating

* refactor constructor into async function called by constructor

* attempts to fix floating promise

* removes floating promise

* moves icons and images to sql folder, removes unused icons

* uses icons already existing in ads

* updates styles

* updates color registry

* updates keycode events

* fixes issues per charles comments

* moves icons to media folder

* updates image file paths

* updates file path

* adds href to extension pack extensions

* fixes links

* fixes issues per alan's comments

* uses exisiting colors from color registry

* updates welcome page to use existing colors from color registry

* updates dark theme

* updates color registry

* updates dark theme

* formats css

* fixes dropdown arrow icon on mac

Co-authored-by: Anthony Dresser <andresse@microsoft.com>
2020-04-03 09:24:20 -07:00
Charles Gagnon
87b892d13f Update step when page is navigated to (#9839) 2020-04-03 08:57:57 -07:00
Chris LaFreniere
c102322594 Revert "Merge branch 'master' of https://github.com/microsoft/azuredatastudio" (#9844)
This reverts commit ec46783e47, reversing
changes made to 6e6649d006.
2020-04-03 02:09:47 -07:00
chlafreniere
ec46783e47 Merge branch 'master' of https://github.com/microsoft/azuredatastudio 2020-04-03 00:14:28 -07:00
Anthony Dresser
6e6649d006 Smoke tests (#9814)
* move

* add inital test; need basic sqllite connection

* before sqlite

* sqlite

* add smoke tests

* working tests

* fix app names

* fix quick open

* fix smoke tests

* add win32 smoke tests

* fix smoke test

* fix win32 smoke

* no continue

* continue on error

* add vscode smokes

* remove vscode tests

* continue on error

* allow sqlite to use relative paths

* add linux smoke tests

* fix build files

* use dispatch instead of select

* fix linux build again

* fix darwin

* get select working

* try and use screen shots

* screen shots

* remove smoke tests linux

* try vscodes sqlite

* fix compile

* fix webpack

* fix deps

* try this again

* try force a rebuild

* try npm rebuild

* add sqlite to be rebuilt

* distro

* try vscode sqlite again

* revert changes to driver and simplify edits

* fix compile

* fix imports

* move sqlite out

* remove unneeded change

* add extensions path

* fix web tests

* no continue on error
2020-04-03 00:01:32 -07:00
Alan Ren
589de854d5 revert the changes impacting query editor and profiler editor (#9842)
* add the panel top border back

* more changes

* min-width and line height
2020-04-02 21:35:18 -07:00
Amir Omidi
ce12bae00f Remove unused dependencies (#9833)
* Remove the adal dependency

* Delete unused files

* Remove request as well
2020-04-02 17:16:54 -07:00
Amir Omidi
77db2d3ac0 connection widget wasn't getting the correct account for the dialog (#9834) 2020-04-02 17:05:51 -07:00
Charles Gagnon
a39792af17 Add some more event properties (#9793) 2020-04-02 11:56:42 -07:00
Alan Ren
fae73fe6ff update style of toggle tab header button (#9827) 2020-04-02 10:30:08 -07:00
Amir Omidi
223aa3fe0e We can't authenticate to every subscription (#9826)
* We can't authenticate to every subscription

* Refresh tenants and subs when the application starts
2020-04-02 09:02:04 -07:00
Alan Ren
41d21d799c modelview dashboard (#9784)
* modelview dashboard

* styles

* toolbar support

* spaces

* add tab icon support
2020-04-01 17:30:33 -07:00
Leila Lali
dd56908a06 Added multiple location option to package management dialog (#9790)
* Added multiple location option to package management dialog
2020-04-01 13:33:45 -07:00
Anthony Dresser
0bfbdc62ed Merge from vscode 2f984aad710215f4e4684a035bb02f55d1a9e2cc (#9819) 2020-04-01 00:44:39 -07:00
Alan Ren
0e27aaa61f new icon from UX team (#9816) 2020-03-31 21:50:50 -07:00
chlafreniere
f99f41b712 Check for configuration service 2020-03-31 20:28:09 -07:00
chlafreniere
ee8f53fbbc quick fix 2020-03-31 20:00:40 -07:00
chlafreniere
5abfd80a64 Add ability to run ADS commands 2020-03-31 19:52:07 -07:00
Amir Omidi
fc726c1477 Enable azure cloud console in ADS (#8546)
* initial changes

* Enable cloud console

* Delete unnecessary code

* error handling

* error handling

* Deal with promises

* Fix externals

* Fix externals for ws

* Cleanup name of terminal

* Update yarn.lock

* Fix yarn.lock

* Fix externals

* Cleanup parts of the code

* Fix more issues

* Fix cloud terminal

* Go back to our client ID

* Fix message

* Respect preferred location

* Fix govt cloud

* Some more messaging

* Enable items on right click

* Some feedback

* Change to status message
2020-03-31 18:39:58 -07:00
Kim Santiago
2b111c6bfd fix schema compare database dropdown when the user doesn't have access to master (#9813) 2020-03-31 16:32:30 -07:00
Amir Omidi
7ed66d0ae1 Fix #9810 (#9811) 2020-03-31 14:11:45 -07:00
Alan Ren
4500e887bb databases tab (#9798)
* databases tab

* correct typo
2020-03-31 13:19:05 -07:00
Alex Ma
6b9184aa15 Create new row upon focus on last row (#9046)
* enableaddrow now set to true

* restore false

* null row test

* temporary revert

* removed unnecessary refresh submitCurrentCellChange
2020-03-31 12:00:21 -07:00
Amir Omidi
1203c3b211 Fixes select box issue (#9808)
* Fixes select box issue

* Flip the if statement

* length check and error

* Theres apparently 0 length arrays using this

* Remove length check
2020-03-31 11:13:15 -07:00
Charles Gagnon
d832839b23 Fix extension gallery (#9805) 2020-03-31 11:06:39 -07:00
Jeff Trimmer
e149c0580c Add Simple Account Picker for use with Always Encrypted (#9707)
Adds the ability for the user to select from two or more linked azure accounts, using an integrated UI dialog, when executing a query that requires a Always Encrypted column master key located in Azure Key Vault.
2020-03-31 09:46:08 -07:00
Alan Ren
b23413d944 add padding for toolbar container (#9795) 2020-03-30 17:33:47 -07:00
Cory Rivera
d363ea33b5 Save charting state in SQL notebooks. (#9789) 2020-03-30 16:48:28 -07:00
Chris LaFreniere
bb135d6c67 Ensure kqlmagic is only offered for pip (#9776) 2020-03-30 16:33:49 -07:00
Charles Gagnon
cbc7d6fcac Fix declarative table missing right border (#9794) 2020-03-30 16:13:20 -07:00
Charles Gagnon
9b641490ea Add required value validations for checkbox and dropdown (#9770) 2020-03-30 12:44:56 -07:00
Charles Gagnon
90277d627c Filter some more commands (#9788) 2020-03-30 10:55:58 -07:00
Monica Gupta
9c842e7548 Kql magic updates (#9753)
* Inludes package upgrade and silent env

* Make user param changes

* Address comments

Co-authored-by: Monica Gupta <mogupt@microsoft.com>
2020-03-30 10:43:26 -07:00
Anthony Dresser
e1490b3536 remove github changes 2020-03-28 22:07:27 -07:00
ADS Merger
a64304602e Merge from vscode 1ec43773e37997841c5af42b33ddb180e9735bf2 2020-03-29 01:29:32 +00:00
Anthony Dresser
586ec50916 fix code to properly handle relative paths (#9777) 2020-03-28 14:59:19 -07:00
Amir Omidi
a8fd578d42 Fix the select box issue (#9508)
* Fix the select box issue

* map => forEach

* Fix tests and a product issue

* Maybe another potential fix

* Fix a few more issues

* Change backendValue to value

* localization

* Use Array.isArray
2020-03-27 16:59:29 -07:00
Charles Gagnon
626fc7894b Remove most CMS commands from palette (#9767)
* Remove most CMS commands from palette

* Update when
2020-03-27 14:36:22 -07:00
Charles Gagnon
068e1488cf Fix tabbing through Notebook cells (#9758)
* Fix tabbing through Notebook cells

* Fix toggle tab command and re-order DOM
2020-03-27 13:23:25 -07:00
Amir Omidi
a9240f38f7 Fix a few problems with new Azure auth (#9760)
* Fix a few problems

* Fix bug

* One resource per line

* Dispose before cleaning

* Dispose the event handler

* Dispose webserver
2020-03-27 13:18:27 -07:00
Charles Gagnon
52f7ab121d Fix command palette error (#9766) 2020-03-27 12:45:12 -07:00
Alan Ren
be83b31e37 dashboard improvement (#9730)
* dashboard improvement - WIP (#8836)

* wip

* wip

* tabgroup

* tab group

* agent views

* clean up

* formats

* feedback

* fix error

* contribute top level server/db dashboard tab (#8868)

* tabbedPanel component (#8861)

* tabbed panel

* tabbed panel

* fix errors

* revert main.ts changes

* use margin

* address comments

* remove orientation property

* content tab group (#8878)

* add databases tab

* use more extensible approach

* remove unnecessary code

* add when expression

* objects tab for database dashboard (#8892)

* fix build errors

* fix build error

* Dashboard toolbar (#9118)

* remove old toolbar with only edit and refresh

* remove tasks widgets from server and databases dashboards

* adding toolbar to dashboardpage and clicking new query works

* restore and new notebook now do something

* add backup to toolbar for database dashboards

* new notebook connects to db

* only show backup and restore for non-azure

* new backup and restore svgs

* clean up

* got toolbar actions to show up from contribution

* some cleanup and add database dashboard toolbar contributions

* don't show all tasks when there should be no tasks

* fix toolbar showing multiple times when switching opening another dashboard from OE

* only show toolbar for home page

* update to new icons - same icons for light and dark theme

* don't show separator if there aren't any actions

* read toolbar actions from tasks-widget

* remove tasks widget from home dashboard page

* show extension's actions in toolbar

* clean up

* more cleaning up

* fix extension actions not always loading the first time

* add configure dashboard

* remove old edit icon css

* change tasks back to original order

* make sure tasks widget is the one being removed

* collapsible tab panel (#9221)

* collapsible vertical tab panel

* fix lint error

* comments batch 1

* pr comments

* update new query icon (#9351)

* Update toolbar actions (#9313)

* remove edit and configure dashboard and add refresh to toolbar for other dashboard pages too

* Add refresh for tabs that have container type with refresh implemented

* change refresh to only refresh the current tab

* remove map for tab to actions

* add back configure dashboard to home toolbar

* check if index is -1 before trying to remove tasks widget from widgets

* Move objects widget back to database home tab (#9432)

* move objects widget back to database home tab and reorder toolbar

* change order of actions back to previous order

* Allow extensions to add actions to home toolbar (#9269)

* add support for extensions to add actions to home toolbar

* fix spacing

* use menu contribution point

* undo previous changes that added dashboardToolbarHomeAction contribution

* remove home from name

* add context key for tab name

* allow actions to also be added to the toolbar of other tabs

* add extension contributed actions even if no tasks-widget

* fix refresh being added twice after merging

* hide the tab list when collapsed (#9529)

* update the order of css selectors (#9606)

* Update dashboard style to be closer to mockups (#9570)

* update style to be closer to mockups

* tab panel styling

* change back tab styling for tabs in a tab contributed by an extension

* change color of borders when theme changes

* set dark theme active tab background to same as OE for now

* update border colors

* move colors to theme file

* fix a few issues (#9690)

* couple fixes

* comments

* small dashboard toolbar fixes  (#9695)

* fix backup icon in toolbar

* fix database page toolbar border color

* add back center center in common-icons.css (#9703)

* change padding so bottom border shows again (#9710)

* tab panel fixes (#9724)

* tab panel fixes

* fix package.nls.json

* feedbacks (#9761)

* feedbacks

* remove comments

Co-authored-by: Kim Santiago <31145923+kisantia@users.noreply.github.com>
2020-03-26 20:41:09 -07:00
Amir Omidi
fa43e26650 Fix a11y issue (#9733) 2020-03-26 17:52:13 -07:00
Amir Omidi
bb6e4e5ff1 Forces device code auth on SAW and fixes a small axios issue (#9756)
* Force device code and fix a device code issue

* Trailing comma
2020-03-26 17:51:51 -07:00
Anthony Dresser
dfeaaf384f fix ctrlp (#9751) 2020-03-26 16:58:03 -07:00
Charles Gagnon
68510d54cb Clean up modal/options dialog disposable use (#9739)
* Fix duplicate options and clean up disposable use

* Remove unneeded import

* Undo options fix - separating out in different PR
2020-03-26 14:46:22 -07:00
Charles Gagnon
fd950391e4 Fix notebook command palette clauses (#9752) 2020-03-26 14:43:03 -07:00
Anthony Dresser
f5d640e7d0 Merge remote-tracking branch 'origin/ads-master-vscode-2020-03-26T07-08-21' 2020-03-26 13:52:35 -07:00
Amir Omidi
5c63419d0d Keytar and UIKind Azure Authentication (#9743)
* Handle webmode

* Fix keytar

* Specify that it can be null too.

* Configuraiton option

* Fix callback URL

* Update message, only show if the user is on Linux

* Change message
2020-03-26 13:40:44 -07:00
Chris LaFreniere
2c05b07ee4 Fix Notebook Tokenization Warnings (#9725)
* Change html table serialization to array

* PR feedback

* rename variable
2020-03-26 13:03:51 -07:00
Thom
dd132a25e7 Remove unused issue template (#9747)
The new variant is stored here: https://github.com/microsoft/azuredatastudio/blob/master/.github/ISSUE_TEMPLATE/bug_report.md
so the old one can be removed.
2020-03-26 09:26:16 -07:00
ADS Merger
f5134198e2 Merge from vscode 93309f060778f6480a7d2a13913e6e7c624e9bc7 2020-03-26 07:08:23 +00:00
Maddy
685e0ccf7e Fix/search text cell on edit (#9685)
* find in text cell changes

* remove prev decorations

* update find index on cell edit

* added test

* addressed comments

* emit error
2020-03-25 22:47:06 -07:00
Charles Gagnon
4241ca523e Fix duplicate options (#9740) 2020-03-25 19:39:26 -07:00
Charles Gagnon
7778721ac9 Increase constrast ratio of input boxes in default light theme (#9737)
* Increase constrat ratio of input boxes in default light theme

* Update panel border
2020-03-25 16:05:57 -07:00
Udeesha Gautam
d4434016d0 Remove -1 from table tab index to allow tabbing into the table (#9681)
* Remove -1 from table tab index to allow tabbing into the table
2020-03-25 15:29:13 -07:00
Leila Lali
ab82c04766 Machine Learning Services - Model detection in predict wizard (#9609)
* Machine Learning Services - Model detection in predict wizard
2020-03-25 13:18:19 -07:00
Amir Omidi
176edde2aa Connection management service updates to support multiple providers (#9698)
* Connection management service work

* Fix tests

* Change how accounts are deleted

* Be consistent with names

* feedback

* Fix based on feedback

* Change sqltoolsservice version
2020-03-25 12:48:01 -07:00
Anthony Dresser
74b0dc28c4 Query editor tests (#9689)
* tests

* add tests for query editor input creation
2020-03-25 12:38:25 -07:00
Anthony Dresser
c2228b9fe8 Add check for the expected files when install service (#9722)
* async-await install service; add check for the files after downloading

* remove del

* use the same function for installing service

* fix for unix

* fix ssmin on linux

* fix syntax

* fix script

* fix issue
2020-03-25 12:38:07 -07:00
ADS Merger
d810da9d87 Merge from vscode 8df646d3c5477b02737fc10343fa7cf0cc3f606b 2020-03-25 06:20:54 +00:00
Anthony Dresser
6e5fbc9012 Remove keytar from azurecore (#9720)
* remove keytar from azurezore

* revert webpack
2020-03-24 18:04:08 -07:00
Alan Ren
c0962d804b fix sub leak (#9709) 2020-03-24 11:26:41 -07:00
Anthony Dresser
89ef1b0c2e Merge from vscode 073a24de05773f2261f89172987002dc0ae2f1cd (#9711) 2020-03-24 00:24:15 -07:00
Amir Omidi
29741d684e Move to new format (#9663) 2020-03-23 14:24:24 -07:00
Amir Omidi
c15ac474d7 New Azure Auth Provider (#9664)
* Fixes how azure auth is handled on the azure pane

* New auth provider

* Add externals

* Feedback

* Change azdata

* Fix other issues

* Review feedback

* Feedback

* Feedback updates

* Move AKV to azdata.d.ts

* Fix yarn.lock

* Update third party notices
2020-03-23 12:39:25 -07:00
Alan Ren
c35221c076 fix properties widget (#9693)
* fix properties widget

* handle error scenario
2020-03-23 12:10:24 -07:00
Alan Ren
5a0dd18cba restore focus (#9668)
* restore focus

* update default config

* update
2020-03-23 12:09:13 -07:00
Amir Omidi
aff5f2786d Post release version bump (#9656)
* Update change logs

* Formatting

* update changelog

* Base version bump

* extension version bump

* Update CHANGELOG.md

* Agent was updated as well
2020-03-23 12:04:49 -07:00
Charles Gagnon
df1b0c908e Refactor options dialog to not use splitview (#9684)
* Refactor options dialog to not use splitview

* Fix test
2020-03-23 08:15:54 -07:00
Anthony Dresser
a7dbb68f7d Fix handling of connections in editors (#9682)
* fix handling of connections in editors

* initial tests

* remove test
2020-03-21 14:13:32 -07:00
Amir Omidi
a649461409 Downgrade package (#9686) 2020-03-20 20:29:56 -07:00
Anthony Dresser
dd8fb9433b Merge from vscode 5d18ad4c5902e3bddbc9f78da82dfc2ac349e908 (#9683) 2020-03-20 01:17:27 -07:00
Leila Lali
1520441b84 Machine Learning Services - Enabling external script for package management only (#9519)
* Machine learning services extension - removed config table and added config update to package manager
2020-03-19 16:48:33 -07:00
Jeff Trimmer
35b27f1304 Add akv token request logic (#9556)
Add support for running queries that require a decryption key from Azure Key Vault when using Always Encrypted.
2020-03-19 12:49:05 -07:00
Charles Gagnon
5557929b08 Add quality build tag to build (#9674) 2020-03-19 12:38:41 -07:00
Anthony Dresser
4cb9009606 use our issue bot for duplicate detection (#9667) 2020-03-19 12:27:31 -07:00
ADS Merger
84f67f61c4 Merge from vscode 61d5f2b82f17bf9f99f56405204caab88a7e8747 2020-03-19 06:57:07 +00:00
Alan Ren
03ce5d1ba7 redesign of deployment profile page (#9659) 2020-03-18 14:40:43 -07:00
Alan Ren
2cb77441ad remove the message on page enter (#9661) 2020-03-18 13:39:13 -07:00
Amir Omidi
166f0d164e Change to the old format (#9662) 2020-03-18 12:57:49 -07:00
Amir Omidi
e100b8f88e A simple file and memory based database (#9649)
* File and memory database

* Add read and write hook tests
2020-03-18 12:20:25 -07:00
Aditya Bist
a884f6a39d Add ability to scroll horizontally in the server table (#9308)
* add to scroll horizontally in the server table

* respect workbench tree settings for connections
2020-03-18 12:20:07 -07:00
Amir Omidi
ae1f3df490 Fixes how azure auth is handled on the azure pane (#9654) 2020-03-18 11:50:25 -07:00
Amir Omidi
502621e2e1 Update change logs for March 2020 Release (#9652)
* Update change logs

* Formatting

* update changelog

* Explain that the link will change
2020-03-18 10:07:36 -07:00
Anthony Dresser
61831d8642 Merge from vscode 708b019bb4e20f07cf89df9f1d943af3d38d7a70 (#9657) 2020-03-17 22:35:18 -07:00
Amir Omidi
5ee7454793 Fixes error introduced in #9653 (#9655) 2020-03-17 17:50:36 -07:00
Alan Ren
1e1cd2f797 remove the alert role from the wizard page title (#9653)
* announce page change

* Use status() and update message

* localize the page number text

* comments
2020-03-17 16:43:59 -07:00
Amir Omidi
cc6cc2889a Simple web server component (#9648)
* Simple web server component

* More testing
2020-03-17 16:32:06 -07:00
Anthony Dresser
bd8c4a44c8 change to freeze configuration models (#9644) 2020-03-17 15:45:29 -07:00
Alan Ren
19dec78349 fix accessibility issue caused by not using table (#9645)
* fix accessibility issue caused by not using table

* remove fixed background color
2020-03-17 12:01:55 -07:00
Alan Ren
6c8a7dc97f setting aria-label for table (#9647)
* setting aria-label for table

* use variable
2020-03-17 11:41:34 -07:00
Monica Gupta
fa6898ded7 Pre-installs and registers kqlmagic (#9558)
Co-authored-by: Monica Gupta <mogupt@microsoft.com>
2020-03-17 09:02:58 -07:00
Anthony Dresser
a53b78c0c8 Merge from vscode 099a7622e6e90dbcc226e428d4e35a72cb19ecbc (#9646)
* Merge from vscode 099a7622e6e90dbcc226e428d4e35a72cb19ecbc

* fix strict
2020-03-16 23:16:40 -07:00
dependabot[bot]
81e1b9a434 Bump minimist from 1.2.0 to 1.2.2 in /build (#9640)
Bumps [minimist](https://github.com/substack/minimist) from 1.2.0 to 1.2.2.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](https://github.com/substack/minimist/compare/1.2.0...1.2.2)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-03-16 17:22:13 -07:00
Elliot Boschwitz
1affd5f728 Timeout extention for Linux and Windows pipelines (#9643) 2020-03-16 16:34:15 -07:00
Aditya Bist
5429850a98 Add dotted lines for selected colors (#9641)
* add dotted lines for selected colors

* use default selection styling
2020-03-16 15:38:37 -07:00
Charles Gagnon
0ad40c1baa Work around coveralls parallel upload issue (#9635)
* Work around coveralls parallel upload issue

* Make dir

* Fix extension paths

* Revert "Fix extension paths" (#9639)

This reverts commit 4598561f858a62b49de5f951de95c099889a85b2.

Co-authored-by: Amir Omidi <amomidi@microsoft.com>
2020-03-16 12:44:25 -07:00
Kim Santiago
b9ce15158d remove role=alert (#9621) 2020-03-16 12:11:59 -07:00
Alan Ren
7ed072c44d do nothing if the focus is already in dialog (#9629)
* do nothing if the focus is already in dialog

* use document.activeElement instead
2020-03-16 11:51:57 -07:00
Anthony Dresser
0405658be7 fix issue with setting false (#9611) 2020-03-16 11:12:57 -07:00
Amir Omidi
11cf5654bf New shared config for our extensions (#9624)
* New shared config for our extensions

* Path
2020-03-16 10:25:27 -07:00
Alan Ren
919b058175 fix the focus outline color (#9632) 2020-03-16 10:20:55 -07:00
Alan Ren
13d2f39004 fix the contrast ratio (#9631) 2020-03-16 10:20:20 -07:00
Alan Ren
1e6f102352 set the role to img (#9630) 2020-03-16 10:19:55 -07:00
Charles Gagnon
64eb406fdc Add connecting title to spinner for Connection dialog (#9623) 2020-03-16 08:26:35 -07:00
Maddy
d6d33165f1 fixed opening book on win (#9622) 2020-03-13 19:20:51 -07:00
Jorge Berumen
6a1037ab2d Fix trusting opened notebooks (#9615)
* Fix trusting opened notebooks

* Addressing comments
2020-03-13 18:10:55 -07:00
Charles Gagnon
4a54f53ae3 Increase test coverage of admin-tool-ext-win (#9619) 2020-03-13 17:05:05 -07:00
Charles Gagnon
71e72de792 Add coveralls support for extension tests (#9603)
* Test uploading multiple reports in parallel

* Fix filename

* Add rest of extensions

* Try removing parallel task running

* Add parallel back in
2020-03-13 15:33:16 -07:00
Kim Santiago
dbd9e5be2d fix nvda announcing wrong radio button grouping (#9613) 2020-03-13 14:36:12 -07:00
Alan Ren
56851dedd2 remove tabindex attribute (#9616) 2020-03-13 14:10:26 -07:00
Alan Ren
8a548c2b56 update elements order (#9614) 2020-03-13 13:52:57 -07:00
Charles Gagnon
1699dd0729 Check for valid uri/resource (#9593)
* Check for valid uri/resource

* Add a few other cases
2020-03-13 11:19:25 -07:00
Jorge Berumen
d5fdec5699 Introduce Trust Book in Book Viewlet (#9414) 2020-03-13 09:11:38 -07:00
Anthony Dresser
744e655dd3 revert changes we dont want 2020-03-12 22:39:24 -07:00
ADS Merger
a7e56d334f Merge from vscode fb5dc0083bfa9a0e3da7ed1f86e1ecb9836fcc8b 2020-03-13 05:35:18 +00:00
Chris LaFreniere
7658a5df28 Fix search icon only working when section expanded (#9596) 2020-03-12 21:35:38 -07:00
Anthony Dresser
6652801861 Move underscore to dev only (#9566)
* moev underscore to dev only

* distro

* build files

* distro
2020-03-12 19:34:27 -07:00
Maddy
1a831f94ed check for len > 1 (#9586) 2020-03-12 18:01:44 -07:00
Anthony Dresser
f7360771f0 change usage of view container (#9591) 2020-03-12 15:04:52 -07:00
Amir Omidi
c9170aaf0e Hook up the command again (#9587) 2020-03-12 12:26:28 -07:00
Alan Ren
8196f86386 add azdata open extension command (#9573) 2020-03-12 10:14:51 -07:00
ADS Merger
b5592959c7 Merge from vscode 1df23554b2e3d5f1efc6fbc76ee61d3f7f186c6d 2020-03-12 06:51:03 +00:00
Alan Ren
a68a6b9e44 update extension icon (#9542) 2020-03-11 19:25:32 -07:00
Maddy
8745714c86 vbump (#9567) 2020-03-11 18:36:03 -07:00
Amir Omidi
06cbde054d Fix Azure account picker (#9569)
* Fix orientation issue

* remove sql carbon to reduce conflict
2020-03-11 16:54:06 -07:00
Charles Gagnon
0226ad69da Add dashboard refresh icon back in (#9564) 2020-03-11 16:11:27 -07:00
Anthony Dresser
ba0d5feca3 fix master compile (#9557)
* fix master compile

* fix tests
2020-03-11 13:31:49 -07:00
Anthony Dresser
c9a68ddc1e fix issue label (#9555) 2020-03-11 12:53:03 -07:00
Anthony Dresser
a27e60b6ad Add automated comment for needs logs. (#9428)
* add auto logging comment for needs more info

* change label to Needs Logs

* update comment
2020-03-11 12:45:28 -07:00
Anthony Dresser
dbc20c1f67 Query editor input titles (#9512)
* address untitled editor file name differences; remove feature for updating title for untitled to content

* add tests for new methods

* fix tests

* fix up tests

* remove unncessary await

* revert changes to title for content
2020-03-11 12:42:13 -07:00
Anthony Dresser
edd396f0fe Fix text content in title (#9534)
* fix text content in title

* revert changes and change default setting instead
2020-03-11 12:38:26 -07:00
Anthony Dresser
37042a24bc Merge branch 'ads-master-vscode-2020-03-11T04-19-20' 2020-03-11 12:24:48 -07:00
Alan Ren
a2935fca3a remove the unused widgets (#9483) 2020-03-11 11:56:36 -07:00
Charles Gagnon
96f0ae79ca Fix account label being cut off (#9547) 2020-03-11 09:47:49 -07:00
Charles Gagnon
7caeba8549 Make form item labels normal text components instead of headers (#9540) 2020-03-11 08:41:37 -07:00
Anthony Dresser
2c34e07064 fix tests 2020-03-11 01:50:01 -07:00
Anthony Dresser
4a3fdd1ad5 distro 2020-03-11 01:34:55 -07:00
Anthony Dresser
75cdc19715 fix tests 2020-03-11 01:13:03 -07:00
Anthony Dresser
ad472c80be fix strict null 2020-03-11 00:35:08 -07:00
Anthony Dresser
324451ea22 fix hygiene 2020-03-10 22:02:15 -07:00
ADS Merger
4c3e48773d Merge from vscode cfc1ab4c5f816765b91fb7ead3c3427a7c8581a3 2020-03-11 04:19:23 +00:00
Chris LaFreniere
16fab722d5 Remove Decompress + Replace with Other Package (#9532)
* add windows support

* works on windows

* Still testing, works on Windows

* Reject on error

* Fix adm-zip external
2020-03-10 19:55:25 -07:00
Alan Ren
de65cd84a9 fix collapse widget action icon (#9537) 2020-03-10 19:14:47 -07:00
Kim Santiago
a013f7d6ff Accessibility fixes (#9516)
* add aria label for deploy plan table

* shift focus to options dialog when opened

* add check for when table is empty
2020-03-10 14:59:06 -07:00
Cory Rivera
0a117fbd00 Add separate dialog to notebook charts for specifying chart options. (#9454) 2020-03-10 14:10:34 -07:00
Chris LaFreniere
268463b5c7 Remove decompress (#9530) 2020-03-10 13:21:51 -07:00
Charles Gagnon
b02273de48 Fix long account dialog text hiding actions (#9449) 2020-03-10 13:09:37 -07:00
Charles Gagnon
efc8294f70 Add suppression for AutoMerge (#9524) 2020-03-10 12:50:18 -07:00
Chris LaFreniere
3a1cd98856 Add Internal Command for New Resource Deployment (#9122)
* Prevent check in openerService for cmdregistry

* Revert "Prevent check in openerService for cmdregistry"

This reverts commit c40079e6f38dcd379941474accc1a1e3b42f6103.

* Add internal command that calls extension command

* Add comment
2020-03-10 12:46:55 -07:00
Chris LaFreniere
80ed6131ce Fix find highlight for multiple find occurrences (#9518) 2020-03-10 10:23:16 -07:00
Alan Ren
96935f2f87 always show the header (#9521) 2020-03-10 10:06:55 -07:00
Chris LaFreniere
1fb3faeda1 Notebooks: Fix Internal Links on Windows (#9513)
* Improve workbench file path detection

* Use fspath instead
2020-03-09 18:10:24 -07:00
Anthony Dresser
6e14f13753 fix sml formatting (#9510) 2020-03-09 15:49:47 -07:00
Leila Lali
3be3563b0d Machine Learning Services Extension - Predict wizard (#9450)
*MLS extension - Added predict wizard
2020-03-09 15:40:05 -07:00
Amir Omidi
b017634431 add coverage reports for base product (#9499) 2020-03-09 11:01:39 -07:00
Charles Gagnon
964ff0119e Update aria label for modal dialog when title is updated (#9492) 2020-03-09 08:25:04 -07:00
Charles Gagnon
86b92b9a87 Suppress another file for CredScan (#9478) 2020-03-09 08:24:26 -07:00
Amir Omidi
9f9c65591d Update all test packages (#9490)
* Update all packages

* Potential fix for normal tests

* Revert a change and try something else

* Try this as well
2020-03-07 07:23:00 -08:00
Aditya Bist
a93f5883b9 Fix updating step icon (#9488)
* fix updating data

* bump toolsservice and agent versions

* unbumo the version
2020-03-06 16:51:32 -08:00
Amir Omidi
5578693635 Fix the svg issue (#9487) 2020-03-06 15:10:46 -08:00
Maddy
9cc31bee62 Feat/close book (#9453)
* initial commit

* Add Reveal in Books editor tab context option

* Select item in books viewlet automatically

* changes

* easier than i thought it'd be

* added file watcher on toc file v1

* Merge from Feat/create book

* Undo Merge from Feat/create book

* Use fsPath instead of path

* repen book on toc update

* update book in-place

* fix close book

* error handling for closeBook

* PR comments

* addressed comments

* moved the watch block to try ,watch vs watchFile

Co-authored-by: chlafreniere <hichise@gmail.com>
Co-authored-by: Chris LaFreniere <40371649+chlafreniere@users.noreply.github.com>
2020-03-06 14:55:22 -08:00
Kim Santiago
6f17f0de58 Add schema compare to database connection context menu (#9382)
* add schema compare to database connection context menu

* don't show dacfx and schema compare in context menus for system dbs

* Remove checks for system db

* undo whitespace change
2020-03-06 13:35:47 -08:00
Amir Omidi
20f7670b32 Stricter tslint rules (#9352) 2020-03-06 13:06:44 -08:00
Amir Omidi
f3a255a7f7 Revert "Revert "Revert "Temporarily add aaomidi (#9467)" (#9468)" (#9479)" (#9484)
This reverts commit cfcee3287a.
2020-03-06 11:57:59 -08:00
Amir Omidi
e1a0835140 Change to PAT (#9481) 2020-03-06 11:52:17 -08:00
Amir Omidi
cfcee3287a Revert "Revert "Temporarily add aaomidi (#9467)" (#9468)" (#9479)
This reverts commit 34a7340a18.
2020-03-06 11:38:33 -08:00
Chris LaFreniere
0a9a0d3f46 Ensure Active File is Highlighted in Books Viewlet (#9338)
* Add Reveal in Books editor tab context option

* Select item in books viewlet automatically

* changes

* easier than i thought it'd be

* Merge from Feat/create book

* Undo Merge from Feat/create book

* Use fsPath instead of path

* PR comments

* Fix tests

Co-authored-by: Maddy <12754347+MaddyDev@users.noreply.github.com>
2020-03-05 23:43:22 -08:00
Amir Omidi
34a7340a18 Revert "Temporarily add aaomidi (#9467)" (#9468)
This reverts commit 95f0ae32db.
2020-03-05 17:47:29 -08:00
Amir Omidi
95f0ae32db Temporarily add aaomidi (#9467) 2020-03-05 17:43:07 -08:00
Amir Omidi
2b427d8a62 Fix file format (#9466) 2020-03-05 17:18:01 -08:00
Amir Omidi
c6447d3280 Fixes the labeler (#9464) 2020-03-05 17:13:11 -08:00
Amir Omidi
d363bfb0da Fix the path to actions (#9461) 2020-03-05 17:06:42 -08:00
Amir Omidi
2ac6852cf1 Revert "Change path (#9456)" (#9459)
This reverts commit 8f15c05d8a.
2020-03-05 16:58:52 -08:00
Amir Omidi
8f15c05d8a Change path (#9456) 2020-03-05 16:52:38 -08:00
Amir Omidi
76cf10d23c Automatically label PRs (#9418)
* Automatically label and merge PRs
2020-03-05 16:46:06 -08:00
Amir Omidi
673e5a85cb Update the page based on feedback from PM/UX (#9452)
* Update the page based on feedback from PM/UX
2020-03-05 14:38:57 -08:00
Aditya Bist
997e91f19c Fix agent steps refresh when changing history (#9446)
* layering

* switch to events and emitters

* changed to self
2020-03-05 12:33:47 -08:00
Amir Omidi
a93cc68e24 Fail on error (#9429)
* Fail on error
2020-03-04 17:31:09 -08:00
Kim Santiago
eb1218b651 bump sqltoolsservice to 2.0.0-release.50 (#9444) 2020-03-04 16:45:09 -08:00
Charles Gagnon
df5a8dcb6a Revert "Hale test (#9442)" (#9443)
This reverts commit 837404b2d6.
2020-03-04 16:11:15 -08:00
Hale Rankin
837404b2d6 Hale test (#9442)
* Test commit

* Test commit. Added new line to comment.

Co-authored-by: Hale Rankin <61754801+harankin@users.noreply.github.com>
2020-03-04 15:42:17 -08:00
Charles Gagnon
9f62e2bf22 Bump Service Downloader (#9254)
* bump service-downloader

* handle new event

* Add output logging for servicedownloading events (#9277)

* bump service-downloader to 0.2.0

* bump service-downloader 0.2.1

* Retry github checks

Co-authored-by: Charles Gagnon <chgagnon@microsoft.com>
2020-03-04 15:24:46 -08:00
Charles Gagnon
299568a506 Remove some azure commands from palette (#9436) 2020-03-04 11:57:34 -08:00
Charles Gagnon
47c77cc2a7 Add CredScanSuppressions file (#9438)
* Add cred scan suppressions file

* Fix path
2020-03-04 11:55:19 -08:00
Chris LaFreniere
0f9d98730e Improve find by tracking actual rendered text (#9419)
* Improve find by tracking actual rendered text

* Fix tests, add notebook md render
2020-03-03 16:56:11 -08:00
Alan Ren
ff0992510b mark as test as unstable (#9426) 2020-03-03 10:47:47 -08:00
Charles Gagnon
9293d3654c Update postgres extension for integration tests (#9421) 2020-03-03 09:39:03 -08:00
Anthony Dresser
886329cd67 Merge from vscode 17c6d123d212f90300429ecad3fc96fcec6e338f (#9423) 2020-03-03 02:19:34 -08:00
Alan Ren
00d0e4778b upload the extension unit test coverage files to pipeline (#9398)
* copy coverage results

* tweek the parameters

* fix error
2020-03-02 17:48:58 -08:00
Anthony Dresser
89786bea04 remove special casing of untitled (#9379) 2020-03-02 17:24:34 -08:00
Charles Gagnon
efab499f1f Fix TSA scan issue (#9417) 2020-03-02 16:08:51 -08:00
Leila Lali
b5b65117a7 Machine Learning Extension - Model details (#9377)
* Machine Learning Services Extension - adding model details
2020-03-02 12:47:09 -08:00
Maddy
c1f6a67829 Feat/create book (#9159)
* added secondary action

* create book command

* open as untitled

* create toc.yml and update title

* added comments

* throw error if filenames have unsupported chars

* update prompt message

* remove the toLocaleLower

* added await

* moced createbookpath out of the command handler

* removed tolocalelower and added comments

* moved the formatting and file handling code from core to notebook

* fixes for contents with folders

* collapse the code cell

* remove output

* reused existing command to open book

* comment typu and added await
2020-03-02 12:45:53 -08:00
Charles Gagnon
01db78f743 Add required property to checkbox and set it for deployment dialog (#9392) 2020-03-02 07:54:13 -08:00
Charles Gagnon
6383bc7ebd Fix checks for checkbox height/width (#9393) 2020-03-02 07:53:59 -08:00
Anthony Dresser
4c3d51aa52 distro (#9390) 2020-02-28 13:06:30 -08:00
Anthony Dresser
5d13ebf0d2 Merge from vscode e5834d3280fcd04898efeac32b9cf1b893f9b127 (#9385)
* Merge from vscode e5834d3280fcd04898efeac32b9cf1b893f9b127

* distro
2020-02-28 00:37:06 -08:00
Aditya Bist
70851716f7 add back sql icons for ads installation (#9376) 2020-02-27 16:12:56 -08:00
Kim Santiago
c8bcd25832 Fix for dacfx wizard if user doesn't have access to master db (#9362)
* fix for if user doesn't have access to master db

* add console.warn with error
2020-02-27 15:37:04 -08:00
Alan Ren
2de3bd3209 only download the required files (#9374) 2020-02-27 15:00:06 -08:00
Amir Omidi
1c9841c8e6 Add ossRdmbs to getAccessTokens (#9364) 2020-02-27 14:09:58 -08:00
Alex Ma
2448a109fc Fix for table resizing (#9117)
* some optimization

* check for table

* fix table resizing

* Fix for sash crash

* Removed space

* small optimization

* small change in message

* small change

* changed wording

* removed timeout for onResize

* Removed onGridRendered

* fix isCellOnScreen

* small spacing fixes

* removed timeout in gridParentComponent

* fix for indexing

* reduced instances of "self"

* minor fixes for self and this
2020-02-27 12:52:35 -08:00
Charles Gagnon
c05ff67622 Update pgsql extension and readme (#9371) 2020-02-27 11:09:00 -08:00
Anthony Dresser
d6b5d3c6b1 implement editor move and fix disposal error in query editor (#9281) 2020-02-26 21:11:48 -08:00
Alan Ren
80baa4a732 only show the tabs for server context (#9344) 2020-02-26 16:11:43 -08:00
Amir Omidi
2ae3810dac Only install the cert on signed builds (#9357) 2020-02-26 14:55:44 -08:00
Alan Ren
7d7a7e2e37 pick up the latest sql tools service (#9354) 2020-02-26 14:42:19 -08:00
Chris LaFreniere
29cf1f898e Search sections in Jupyter Viewlet (#9346) 2020-02-26 13:59:38 -08:00
Amir Omidi
924815353d Fix a few notebook promises (#9315)
* Fix a few notebook promises

* Add a _ before sessionDetails

* Change to onUnexpectedError
2020-02-26 11:58:56 -08:00
Amir Omidi
6cf82d2611 Start on new eslint file (#9314) 2020-02-26 11:39:00 -08:00
Cory Rivera
73d9b7f22a Check if notebook model is undefined in setTrustForNewEditor. (#9312) 2020-02-26 11:17:56 -08:00
Cory Rivera
412214e193 Add charting functionality to SQL notebooks. (#9306) 2020-02-26 10:52:19 -08:00
Leila Lali
ff207859d6 Machine Learning Model Registry - Iteration1 (#9105)
* Machine learning services extension - model registration wizard
2020-02-26 09:19:48 -08:00
Anthony Dresser
067fcc8dfb Merge from vscode dbe62be3266ffb6772a7f3db0bf61d63f4aa7f65 (#9337) 2020-02-26 00:23:48 -08:00
Amir Omidi
d2892ff78b Runtime hardening and notarization for OSX (#8663) 2020-02-25 15:24:31 -08:00
Charles Gagnon
a9056bbba5 Fix server group dialog open (#9330) 2020-02-25 15:14:32 -08:00
Karl Burtram
70352f94ea Fix ADS branding in Git viewlet (#9332) 2020-02-25 12:47:41 -08:00
Charles Gagnon
b1d58767c4 Add livy_session_startup_timeout_seconds config back in (#9212) 2020-02-25 11:31:10 -08:00
Anthony Dresser
4a9c47d3d6 Merge from vscode 5e80bf449c995aa32a59254c0ff845d37da11b70 (#9317) 2020-02-24 21:15:52 -08:00
Amir Omidi
628fd8d74d Separator component (#9310)
* Separator component
2020-02-24 16:53:42 -08:00
Aditya Bist
d7ea1123ef fix azdata connection API for dashboard connections (#9311) 2020-02-24 16:32:38 -08:00
Aditya Bist
eeae87ea32 remove icon files and use codicons for extensions (#9305) 2020-02-24 13:19:24 -08:00
Benjin Dubishar
1a639f83c4 .sqlproj and datasources.json file parsing (#8921)
* Checkpoint

* Adding mock contents for tree

* added open sqlproj dialog

* reading files from directory

* Added directory traversal

* Adding tree sorting by folder vs file and label

* Improved auto-unfolding of tree based on node type

* replacing fs with fs.promise alias

* PR feedback

* added activation event for when workspace contains sqlproj files

* Returning after displaying error

* Fixing linter errors

* Reworked tree

* Fixing missing grandchildren

* Correcting tree URI construction

* Refactoring to isolate tree item responsibilities from data model responsibilities

* project file parsing

* constructing tree from project files rather than filesystem

* Fixing double-initialization

* Changing projectEntry to take enum for file type

* Correct node type for project item

* Parsing datasources.json

* Child nodes for sql data source

* Localizing strings

* Checkpoint

* Adding mock contents for tree

* added open sqlproj dialog

* reading files from directory

* Added directory traversal

* Adding tree sorting by folder vs file and label

* Improved auto-unfolding of tree based on node type

* replacing fs with fs.promise alias

* PR feedback

* added activation event for when workspace contains sqlproj files

* Returning after displaying error

* Fixing linter errors

* Reworked tree

* Fixing missing grandchildren

* Correcting tree URI construction

* Refactoring to isolate tree item responsibilities from data model responsibilities

* project file parsing

* constructing tree from project files rather than filesystem

* Fixing double-initialization

* Changing projectEntry to take enum for file type

* Correct node type for project item

* Parsing datasources.json

* Child nodes for sql data source

* Localizing strings

* missed file in merge

* changed extension method to helper

* cleanup

* Adding docstrings
2020-02-24 12:11:41 -08:00
Aditya Bist
933cfb21ef formatted file (#9303) 2020-02-24 11:20:36 -08:00
Alan Ren
5982925ed7 keep up with latest azdata (#9276) 2020-02-24 10:54:54 -08:00
Kim Santiago
9090143f9d Add a few unit tests for dacpac extension (#9194)
* add a few unit tests

* fix tests for linux
2020-02-24 10:01:30 -08:00
Charles Gagnon
10b681b3c8 Add Arc Resources to Azure view (#9271)
* Initial work

* Add setting change handler

* Fix tests

* Update loc names and add preview tag

* Remove TODOs
2020-02-24 08:15:27 -08:00
Anthony Dresser
de5f1eb780 Merge from vscode 33a65245075e4d18908652865a79cf5489c30f40 (#9279)
* Merge from vscode 33a65245075e4d18908652865a79cf5489c30f40

* remove github
2020-02-21 23:42:19 -08:00
Alan Ren
c446cea3a0 fix the input width height issue (#9273)
* fix the input width height issue

* updates
2020-02-21 16:12:56 -08:00
Chris LaFreniere
41a90c01c3 Listen to escape key to close nb find widget (#9247) 2020-02-21 15:54:21 -08:00
Anthony Dresser
1b78a9b1e0 Merge from vscode e6a45f4242ebddb7aa9a229f85555e8a3bd987e2 (#9253)
* Merge from vscode e6a45f4242ebddb7aa9a229f85555e8a3bd987e2

* skip failing tests

* remove github-authentication extensions

* ignore github compile steps

* ignore github compile steps

* check in compiled files
2020-02-21 12:11:51 -08:00
Anthony Dresser
c74bac3746 Add missing resources (#9246)
* add missing resources

* don't bump versions

* fix workbench file

* distro
2020-02-20 22:58:52 -08:00
Anthony Dresser
4c54b5dbac Batch messages on the exthost to not freeze ads (#8949)
* batch messages on the exthost to not freeze ads

* clear out messages on query complete
2020-02-20 14:50:13 -08:00
Charles Gagnon
8fe0a13b61 Update release notes link (#9191) 2020-02-20 14:29:02 -08:00
Kim Santiago
2fc0e28e57 Remove required from dacpac wizard dropdowns (#9200)
* remove required from dropdowns

* set required for dropdown

* also set required for editable dropdown

* add back required for db and server dropdowns

* add back to required to databaseLoader
2020-02-20 11:49:26 -08:00
Charles Gagnon
c6bc68f399 Fix UI not selecting false options initially (#9213) 2020-02-20 07:36:56 -08:00
Anthony Dresser
0cec223301 Merge from vscode 777931080477e28b7c27e8f7d4b0d69897945946 (#9220) 2020-02-19 22:27:53 -08:00
Anthony Dresser
ab6fb810f8 move update model for notebook save to the input (#8995) 2020-02-19 22:01:07 -08:00
Charles Gagnon
7eef23f232 Fix refreshing nodes in Azure view (#9215)
* Fix refreshing nodes in Azure view

* refactor

* Remove refreshNode from shim

* Add missing await
2020-02-19 16:55:17 -08:00
Anthony Dresser
1d0f76d26a Setup files for workbench/services to be strict compiled (#9168)
* setup services to be strict compiled. fix some of the issues

* fix compile

* fix compile

* revert some undefined changes
2020-02-19 16:07:57 -08:00
Anthony Dresser
cec7753e3d Final layering (#9164)
* move handling generated files to the serilization classes

* remove unneeded methods

* add more folders to strictire compile, add more strict compile options

* update ci

* wip

* add more layering and fix issues

* add more strictness

* remove unnecessary assertion

* add missing checks

* fix indentation

* wip

* remove jsdoc

* fix layering

* fix compile

* fix compile errors

* wip

* wip

* finish layering

* fix css

* more layering

* rip

* reworking results serializer

* move some files around

* move capabilities to platform wip

* implement capabilities register provider

* fix capabilities service

* fix usage of the regist4ry

* add contribution

* wip

* wip

* wip

* remove no longer good parts

* fix strict-nulls

* fix issues with startup

* another try

* fix startup

* fix imports

* fix tests

* fix tests

* fix more tests

* fix tests

* fix more tests

* fix broken test

* fix tabbing

* fix naming

* wip

* finished layering

* fix imports

* fix valid layers

* fix layers

* wip

* finish layering

* final layering

* finish layering

* fix spacing
2020-02-19 14:43:16 -08:00
Karl Burtram
161ea001c0 Update changelog for Feb Hotfix 1 release (#9195) 2020-02-19 13:16:53 -08:00
Charles Gagnon
f2ffa6c7e5 Initial post-release extension vBump (#9144) 2020-02-19 07:56:15 -08:00
Anthony Dresser
5194ee2f9b distro 2020-02-19 03:55:41 +00:00
ADS Merger
1e308639e5 Merge from vscode 9bc92b48d945144abb405b9e8df05e18accb9148 2020-02-19 03:11:35 +00:00
Anthony Dresser
98584d32a7 distro (#9198) 2020-02-18 17:16:58 -08:00
Jeff Trimmer
5672500af2 Add Always Encrypted enclave connection parameters to the ADS UI (#9062)
* Add Always Encrypted enclave connection parameters to Advanced Connections Options dialog.

* Update always encrypted advanced connection options strings.

* Change enclave protocol category name properties to the Enum constants.
2020-02-18 15:32:49 -08:00
Arvind Ranasaria
d69cda80c3 wipe status message only when not installing (#9192) 2020-02-18 15:16:54 -08:00
Anthony Dresser
47e716d3b2 warn instead of error on disabled apis (#9193) 2020-02-18 14:09:16 -08:00
Charles Gagnon
6bd3ed72dd Display azure resource fetch errors as warnings (#9158) 2020-02-18 10:48:39 -08:00
Charles Gagnon
48c3702c7a Add null ref check for click handler (#9190) 2020-02-18 10:18:02 -08:00
Anthony Dresser
506c6a5e5f More Layering (#9139)
* move handling generated files to the serilization classes

* remove unneeded methods

* add more folders to strictire compile, add more strict compile options

* update ci

* wip

* add more layering and fix issues

* add more strictness

* remove unnecessary assertion

* add missing checks

* fix indentation

* wip

* remove jsdoc

* fix layering

* fix compile

* fix compile errors

* wip

* wip

* finish layering

* fix css

* more layering

* rip

* reworking results serializer

* move some files around

* move capabilities to platform wip

* implement capabilities register provider

* fix capabilities service

* fix usage of the regist4ry

* add contribution

* wip

* wip

* wip

* remove no longer good parts

* fix strict-nulls

* fix issues with startup

* another try

* fix startup

* fix imports

* fix tests

* fix tests

* fix more tests

* fix tests

* fix more tests

* fix broken test

* fix tabbing

* fix naming

* wip

* finished layering

* fix imports

* fix valid layers

* fix layers
2020-02-15 01:54:23 -06:00
Anthony Dresser
873c6a39fe Merge from vscode 1a81711a85e38ccf784110568ebf3784ab9094a5 (#9161)
* Merge from vscode 1a81711a85e38ccf784110568ebf3784ab9094a5

* small spacing fix
2020-02-15 00:43:09 -06:00
Anthony Dresser
74b89a0a85 No console linting (#9156)
* add no-console linting and change to just using overrides for sql files

* whitespace

* fix tests
2020-02-14 21:13:16 -06:00
Alex Ma
6b0332b2d1 call refreshDatasets upon loading new dataset (#9160)
* call refreshDatasets upon loading new dataset

* readded space
2020-02-14 18:25:52 -08:00
Charles Gagnon
2d70ff7f4e Improve azure resource API error handling (#9151)
* Improve azure resource API error handling

* Add ref path

* Add missed typings file and remove module references
2020-02-14 14:22:05 -08:00
Cory Rivera
dd5c0ce08f Maintain notebook trust status after saving. (#9127) 2020-02-14 10:07:02 -08:00
Anthony Dresser
71375808b9 Merge from vscode 4c9161a3f125f5a788aafa73a4ecfcb27dcfc319 (#9143)
* Merge from vscode 4c9161a3f125f5a788aafa73a4ecfcb27dcfc319

* minor spacing fix
2020-02-13 21:20:36 -06:00
Arvind Ranasaria
0c56d44e4f Add support for 4 part version numbers (#8925)
* first crack at fix

* after test complete

* pr feedback + tests

* fix whitespace

* PR fedback
2020-02-13 16:59:22 -08:00
Charles Gagnon
321b41b7e1 Bump version to 1.16.0 (#9135)
* Bump version to 1.16.0

* Update version
2020-02-13 16:53:20 -08:00
Chris LaFreniere
2503b18d4b Fix for manage access dialog focus (#9114)
* Fix for manage access dialog focus

* Leverage eventuallyRunOnInitialized
2020-02-13 16:40:23 -08:00
Charles Gagnon
bbf6fcb0fc Fix min/max ignoring 0 value (#9137) 2020-02-13 11:53:06 -08:00
Maddy
6e5b13ac8f Tests/book tests (#9075)
* Conditionally add associatedResource t untitled nb

* Fix Jupyter Book notebook titles (#9039)

* Fix notebook titles

* Fix navigation links for books

* Added comments

Co-authored-by: Chris LaFreniere <40371649+chlafreniere@users.noreply.github.com>

* PR comment nit

* fix book tests

* tslint formatting fixes

* merged master and undid formatting

* added book path to error message

Co-authored-by: Chris LaFreniere <40371649+chlafreniere@users.noreply.github.com>
Co-authored-by: Charles Gagnon <chgagnon@microsoft.com>
2020-02-13 11:35:04 -08:00
Cory Rivera
30c8182f16 Print jupyter URL without encoded characters in notebook start message. (#9131) 2020-02-13 11:19:34 -08:00
Chris LaFreniere
f10a504f45 Notebooks: Listen for Enter on Add Package Tab (#9124)
* Pressing enter searches for package

* cleanup
2020-02-13 11:14:51 -08:00
Charles Gagnon
844bf04c42 Update CHANGELOG and README for 1.15 release (#9133)
* Update CHANGELOG and README for 1.15 release

* Correct link
2020-02-13 09:07:47 -08:00
Anthony Dresser
17bb895f7c fix tests 2020-02-13 03:15:18 +00:00
Anthony Dresser
e257612e82 fix tests 2020-02-13 03:15:08 +00:00
Anthony Dresser
3d8ed48bee distro 2020-02-13 03:14:18 +00:00
ADS Merger
73ea8b79b2 Merge from vscode 1fbacccbc900bb59ba8a8f26a4128d48a1c97842 2020-02-13 02:56:02 +00:00
Anthony Dresser
9af1f3b0eb More layering (#9111)
* move handling generated files to the serilization classes

* remove unneeded methods

* add more folders to strictire compile, add more strict compile options

* update ci

* wip

* add more layering and fix issues

* add more strictness

* remove unnecessary assertion

* add missing checks

* fix indentation

* wip

* remove jsdoc

* fix layering

* fix compile

* fix compile errors

* wip

* wip

* finish layering

* fix css

* more layering

* rip

* reworking results serializer

* move some files around

* move capabilities to platform wip

* implement capabilities register provider

* fix capabilities service

* fix usage of the regist4ry

* add contribution

* remove no longer good parts

* fix issues with startup

* another try

* fix startup

* fix imports

* fix tests

* fix tests

* fix more tests

* fix tests

* fix more tests

* fix broken test

* fix tabbing

* fix naming
2020-02-12 18:24:08 -06:00
Anthony Dresser
fa3eaa59f5 disable ci browser tests 2020-02-11 09:12:15 +00:00
Anthony Dresser
fcec5f2b59 disable browser tests for now 2020-02-11 08:32:36 +00:00
Anthony Dresser
92fa296533 distro 2020-02-11 07:19:25 +00:00
ADS Merger
085752f111 Merge from vscode 8a997f7321ae6612fc0e6eb3eac4f358a6233bfb 2020-02-11 07:08:19 +00:00
Anthony Dresser
0f934081e1 More layering and strictness (#9004)
* move handling generated files to the serilization classes

* remove unneeded methods

* add more folders to strictire compile, add more strict compile options

* update ci

* wip

* add more layering and fix issues

* add more strictness

* remove unnecessary assertion

* add missing checks

* fix indentation

* wip

* remove jsdoc

* fix layering

* fix compile

* fix compile errors

* wip

* wip

* finish layering

* fix css

* more layering

* remove no longer good parts

* fix issues with startup

* another try

* fix startup
2020-02-11 00:47:17 -06:00
Cory Rivera
3a8b74a311 Set notebook as trusted after executing a cell. (#9108)
* Also set trusted by default when opening a notebook without any code cells.
2020-02-10 17:03:57 -08:00
Kim Santiago
45341d786b Move dacpac and schema compare localized strings (#9107)
* move localized strings

* move schema compare localized strings
2020-02-10 13:30:52 -08:00
Charles Gagnon
eac05c85f1 Make connectionProfileGroup support undefined values (#9102)
* Make connectionProfileGroup able to support undefined values being passed

* Fix strict null checks

* More strict null check fixes
2020-02-10 13:03:57 -08:00
Anthony Dresser
c11c7d2f0e Merge branch 'ads-master-vscode-2020-02-08T04-50-56' 2020-02-10 20:41:19 +00:00
Leila Lali
ac6a27b9c2 Machine Learning Services Extension - External Languages (#9043)
* Added external language list, edit and delete UIs to Machine Learning extension
2020-02-10 08:58:46 -08:00
Anthony Dresser
5d81d70a9a distro 2020-02-08 06:24:28 +00:00
Anthony Dresser
68061de010 distro 2020-02-08 05:01:14 +00:00
ADS Merger
2af13c18d2 Merge from vscode 718331d6f3ebd1b571530ab499edb266ddd493d5 2020-02-08 04:50:58 +00:00
Alan Ren
8c61538a27 fix charting issue (#9094)
* fix charting issue

* fix charting issue 2

* revert version bump
2020-02-07 17:42:58 -08:00
Anthony Dresser
1a2381cc7c Disable unnecessary parts in testing (#8996)
* disable unnecessary parts in testing

* fix options for extension unit tests
2020-02-07 18:59:04 -06:00
Amir Omidi
5283a7c874 Remove unused nls line (#9098) 2020-02-07 16:53:28 -08:00
Charles Gagnon
ec0a7a29d3 Remove quality checks for events (#8934)
* Remove quality checks for events

* Update iKey

* Add missed quality check
2020-02-07 14:43:03 -08:00
Alex Ma
aa22466c0f Fix for revert on pressing escape. (#9090)
* added working revert

* set currentEditCellValue to undefined

* Some consolidation
2020-02-07 14:24:29 -08:00
Charles Gagnon
fe9ffddd3b Fix loading and clickable div screen reader issues (#9088)
* Fix loading and clickable div screen reader issues

* Change back to default clickable to false
2020-02-07 13:27:29 -08:00
Charles Gagnon
39ac8498dc Fix feature request links (#9089)
* Fix feature request links

* fwlink for send a smile link too
2020-02-07 13:03:49 -08:00
Chris LaFreniere
b4e30e17af Remove unnecessary code to sql-vnext extension (#9027) 2020-02-06 17:37:46 -08:00
Maddy
32ac169906 Task/check file length (#9047)
* add filelength task to vscodeTasks

* added to package task instead of build

* testing for failures with reduced limits

* reverted to actual lengths
2020-02-06 16:45:10 -08:00
Amir Omidi
df3f1768f7 Show error to user (#9014)
* Show error to user

* Update the errors

* change message
2020-02-06 13:42:01 -08:00
Chris LaFreniere
343daf58fe Notebooks: Fix Padding on Mac SelectContainers in Toolbar (#9021)
* fix css on mac

* change to monaco workbench mac
2020-02-05 16:06:55 -08:00
Chris LaFreniere
8e67b104c3 BDC: Add another command for bdc extension activation events (#9050)
* Add another command for bdc extension activation

* spaces

* Add other activation events

* spacing
2020-02-04 20:09:39 -08:00
Alex Ma
4b2121e3f8 removed unnecessary formatting in formatter (#9041) 2020-02-04 11:59:58 -08:00
Chris LaFreniere
10d817b6b4 Change ps kernel version to latest 4 updated flow (#9023) 2020-02-04 11:52:28 -08:00
Chris LaFreniere
2208666eef Books: Ensure associatedResource is Present for Untitled Notebooks that have a File Associated with them (#9037)
* Conditionally add associatedResource t untitled nb

* Fix Jupyter Book notebook titles (#9039)

* Fix notebook titles

* Fix navigation links for books

* Added comments

Co-authored-by: Chris LaFreniere <40371649+chlafreniere@users.noreply.github.com>

* PR comment nit

Co-authored-by: Charles Gagnon <chgagnon@microsoft.com>
2020-02-04 11:42:24 -08:00
Karl Burtram
9c7f844d59 Import "fromPromise" so Observables work correctly (#9034)
* Import "fromPromise" so Observables work correctly

* Bump distro guid

* Fix unit test missing file error

* Bump distro to pick up latest changes
2020-02-04 11:15:31 -08:00
Charles Gagnon
86ad477c77 Add enabled property and make default account option empty (#9036)
* Add enabled property and make default account option empty

* Rmove unused loc string

* Add descriptive comment and support required azure dropdowns.
2020-02-04 08:06:14 -08:00
Charles Gagnon
62df5359e2 Even more robust handling of extension tree loading (#9007)
* Even more robust handling of extension tree loading

* Fix initial loading and add new test for CMS

* Fix compile errors

* Fix logic

* Remove debug log statements
2020-02-04 08:03:34 -08:00
Charles Gagnon
5a2bbc0375 Add location to azure-account deploy field (#9019) 2020-02-03 18:25:54 -08:00
khoiph1
2cce8b21c8 Loc Update (#9031) 2020-02-03 14:07:26 -08:00
Leila Lali
56a6f70c0d Machine Learning Services Settings (#8968)
* Added two config to Machine Learning Services extension to enable and disable python and r
2020-02-03 09:25:36 -08:00
Amir Omidi
c6689700f6 Move files locations (#9015)
* Move files locations

* Extension path
2020-01-31 14:54:32 -08:00
Alex Ma
5b2c14f11a Fix for table name not showing up on the header. (#9016)
* fix for edit data table header

* Fix for name, and SQL load
2020-01-31 14:06:56 -08:00
Charles Gagnon
402d693885 Fix action id for OpenFileInFolderAction (#9005)
* Fix action id for OpenFileInFolderAction

* Undo unrelated change
2020-01-31 13:15:23 -08:00
Anthony Dresser
7d751a20ab Move handling generated files to the serialization classes (#8952)
* move handling generated files to the serilization classes

* remove unneeded methods

* fix compile
2020-01-30 21:27:21 -08:00
Charles Gagnon
261e6fa89e Fix error when using azure-account deployment field (#8992)
* Fix error when using azure-account deployment field

* Make param optional

* Remove extra comment
2020-01-30 16:51:10 -08:00
Charles Gagnon
637a33c7a7 Support for removing hardcoded deployment options (#8986)
* Support for removing hardcode deployment options

* Add missing file

* Generalize errors and make name and id required. Sort dropdowns.

* Fix test

* Capitalize text
2020-01-30 10:35:37 -08:00
Anthony Dresser
56695be14a More layering and compile strictness (#8973)
* add more folders to strictire compile, add more strict compile options

* update ci

* wip

* add more layering and fix issues

* add more strictness

* remove unnecessary assertion

* add missing checks

* fix indentation

* remove jsdoc
2020-01-29 20:35:11 -08:00
3851 changed files with 218370 additions and 132750 deletions

View File

@@ -0,0 +1,17 @@
{
"tool": "Credential Scanner",
"suppressions": [
{
"file": "src\\vs\\base\\test\\common\\uri.test.ts",
"_justification": "External code"
},
{
"file": "build\\actions\\AutoLabel\\dist\\index.js",
"_justification": "False positive from webpacked code"
},
{
"file": "build\\actions\\AutoMerge\\dist\\index.js",
"_justification": "False positive from webpacked code"
}
]
}

View File

@@ -3,7 +3,6 @@
**/vs/css.build.js
**/vs/css.js
**/vs/loader.js
**/promise-polyfill/**
**/insane/**
**/marked/**
**/test/**/*.js

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +0,0 @@
{
"extends": ".eslintrc.json",
"rules": {
"no-sync": "warn",
"strict": ["warn", "never"]
}
}

20
.eslintrc.sql.ts.json Normal file
View File

@@ -0,0 +1,20 @@
{
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaVersion": 6,
"sourceType": "module",
"project": "./tsconfig.sql.json"
},
"plugins": [
"@typescript-eslint",
"jsdoc"
],
"rules": {
"@typescript-eslint/no-floating-promises": [
"error",
{
"ignoreVoid": true
}
]
}
}

View File

@@ -6,6 +6,7 @@ labels: ''
assignees: ''
---
<!-- ⚠️⚠️ Do Not Delete This! bug_report_template ⚠️⚠️ -->
<!-- Please read our Rules of Conduct: https://opensource.microsoft.com/codeofconduct/ -->
<!-- Please search existing issues to avoid creating duplicates. -->
<!-- Also please test using the latest insiders build to make sure your issue has not already been fixed. -->

View File

@@ -8,11 +8,13 @@
Area - Acquisition: [],
Area - Azure: [],
Area - Backup\Restore: [],
Area - Big Data Cluster: [ charles-gagnon ],
Area - Charting\Insights: [],
Area - Connection: [ charles-gagnon ],
Area - Connection: [ ],
Area - DacFX: [],
Area - Dashboard: [],
Area - Data Explorer: [],
Area - Data Virtualization: [ charles-gagnon ],
Area - Edit Data: [],
Area - Extensibility: [],
Area - External Table: [],
@@ -22,6 +24,7 @@
Area - Notebooks: [ chlafreniere ],
Area - Performance: [],
Area - Query Editor: [ anthonydresser ],
Area - Query History: [ charles-gagnon ],
Area - Query Plan: [],
Area - Reliability: [],
Area - Resource Deployment: [],

View File

@@ -1,12 +1,11 @@
{
perform: false,
perform: true,
commands: [
{
type: 'label',
name: 'duplicate',
allowTriggerByBot: true,
action: 'close',
comment: "Thanks for creating this issue! We figured it's covering the same as another one we already have. Thus, we closed this one as a duplicate. You can search for existing issues [here](https://aka.ms/vscodeissuesearch). See also our [issue reporting](https://aka.ms/vscodeissuereporting) guidelines.\n\nHappy Coding!"
name: 'Needs Logs',
action: 'comment',
comment: "We need more info to debug your particular issue. If you could attach your logs to the issue (ensure no private data is in them), it would help us fix the issue much faster.\n\nTo find your logs:\n\n- Open command palette (Click **View** -> **Command Palette**)\n- Run the command: **`Developer: Open Logs Folder`**\n\nThis will open the log file locally. Please include renderer.log"
}
]
}

2
.github/copycat.yml vendored
View File

@@ -1,5 +1,5 @@
{
perform: true,
perform: false,
target_owner: 'anthonydresser',
target_repo: 'testissues'
}

View File

@@ -1,34 +0,0 @@
{
typeLabel: {
name: 'feature-request'
},
candidateMilestone: {
number: 107,
name: 'Backlog Candidates'
},
approvedMilestone: {
number: 8,
name: 'Backlog'
},
onLabeled: {
delay: 60,
perform: true
},
onCandidateMilestoned: {
candidatesComment: "This feature request is now a candidate for our backlog. The community has 60 days to upvote the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our [documentation](https://aka.ms/vscode-issue-lifecycle).\n\nHappy Coding!",
perform: true
},
onMonitorUpvotes: {
upvoteThreshold: 20,
acceptanceComment: ":slightly_smiling_face: This feature request received a sufficient number of community upvotes and we moved it to our backlog. To learn more about how we handle feature requests, please see our [documentation](https://aka.ms/vscode-issue-lifecycle).\n\nHappy Coding!",
perform: true
},
onMonitorDaysOnCandidateMilestone: {
daysOnMilestone: 60,
warningPeriod: 10,
numberOfCommentsToPreventAutomaticRejection: 20,
rejectionComment: ":slightly_frowning_face: In the last 60 days, this feature request has received less than 20 community upvotes and we closed it. Still a big Thank You to you for taking the time to create this issue! To learn more about how we handle feature requests, please see our [documentation](https://aka.ms/vscode-issue-lifecycle).\n\nHappy Coding!",
warningComment: "This feature request has not yet received the 20 community upvotes it takes to make to our backlog. 10 days to go. To learn more about how we handle feature requests, please see our [documentation](https://aka.ms/vscode-issue-lifecycle).\n\nHappy Coding",
perform: true
}
}

7
.github/mergers.json vendored Normal file
View File

@@ -0,0 +1,7 @@
[
"kenvanhyning",
"kburtram",
"udeeshagautam",
"qifahs",
"chlafreniere"
]

View File

@@ -1,6 +0,0 @@
{
newReleaseLabel: 'new-release',
newReleaseColor: '006b75',
daysAfterRelease: 5,
perform: true
}

View File

@@ -11,46 +11,60 @@ on:
- release/*
jobs:
# linux:
# runs-on: ubuntu-latest
# env:
# CHILD_CONCURRENCY: "1"
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# steps:
# - uses: actions/checkout@v1
# # TODO: rename azure-pipelines/linux/xvfb.init to github-actions
# - run: |
# sudo apt-get update
# sudo apt-get install -y libxkbfile-dev pkg-config libsecret-1-dev libxss1 dbus xvfb libgtk-3-0 libkrb5-dev # {{SQL CARBON EDIT}} add kerberos dep
# sudo cp build/azure-pipelines/linux/xvfb.init /etc/init.d/xvfb
# sudo chmod +x /etc/init.d/xvfb
# sudo update-rc.d xvfb defaults
# sudo service xvfb start
# name: Setup Build Environment
# - uses: actions/setup-node@v1
# with:
# node-version: 10
# # TODO: cache node modules
# - run: yarn --frozen-lockfile
# name: Install Dependencies
# - run: yarn electron x64
# name: Download Electron
# - run: yarn gulp hygiene
# name: Run Hygiene Checks
# - run: yarn strict-vscode # {{SQL CARBON EDIT}} add step
# name: Run Strict Compile Options
# # - run: yarn monaco-compile-check {{SQL CARBON EDIT}} remove step
# # name: Run Monaco Editor Checks
# - run: yarn valid-layers-check
# name: Run Valid Layers Checks
# - run: yarn compile
# name: Compile Sources
# # - run: yarn download-builtin-extensions {{SQL CARBON EDIT}} remove step
# # name: Download Built-in Extensions
# - run: DISPLAY=:10 ./scripts/test.sh --tfs "Unit Tests"
# name: Run Unit Tests
# # - run: DISPLAY=:10 ./scripts/test-integration.sh --tfs "Integration Tests" {{SQL CARBON EDIT}} remove step
# # name: Run Integration Tests
linux:
runs-on: ubuntu-latest
env:
CHILD_CONCURRENCY: "1"
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- uses: actions/checkout@v1
# TODO: rename azure-pipelines/linux/xvfb.init to github-actions
- run: |
sudo apt-get update
sudo apt-get install -y libxkbfile-dev pkg-config libsecret-1-dev libxss1 dbus xvfb libgtk-3-0 libkrb5-dev # {{SQL CARBON EDIT}} add kerberos dep
sudo cp build/azure-pipelines/linux/xvfb.init /etc/init.d/xvfb
sudo chmod +x /etc/init.d/xvfb
sudo update-rc.d xvfb defaults
sudo service xvfb start
name: Setup Build Environment
- uses: actions/setup-node@v1
with:
node-version: 10
# TODO: cache node modules
- run: yarn --frozen-lockfile
name: Install Dependencies
- run: yarn electron x64
name: Download Electron
- run: yarn gulp hygiene
name: Run Hygiene Checks
- run: yarn strict-vscode # {{SQL CARBON EDIT}} add step
name: Run Strict Compile Options
# - run: yarn monaco-compile-check {{SQL CARBON EDIT}} remove step
# name: Run Monaco Editor Checks
- run: yarn valid-layers-check
name: Run Valid Layers Checks
- run: yarn compile
name: Compile Sources
# - run: yarn download-builtin-extensions {{SQL CARBON EDIT}} remove step
# name: Download Built-in Extensions
- run: DISPLAY=:10 ./scripts/test.sh --tfs "Unit Tests" --coverage --runGlob "**/sql/**/*.test.js"
name: Run Unit Tests (Electron)
- run: DISPLAY=:10 ./scripts/test-extensions-unit.sh
name: Run Extension Unit Tests (Electron)
# {{SQL CARBON EDIT}} Add coveralls. We merge first to get around issue where parallel builds weren't being combined correctly
- run: node test/combineCoverage
name: Combine code coverage files
- name: Upload Code Coverage
uses: coverallsapp/github-action@v1.1.1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
path-to-lcov: 'test/coverage/lcov.info'
# Fails with cryptic error (e.g. https://github.com/microsoft/vscode/pull/90292/checks?check_run_id=433681926#step:13:9)
# - run: DISPLAY=:10 yarn test-browser --browser chromium
# name: Run Unit Tests (Browser)
# - run: DISPLAY=:10 ./scripts/test-integration.sh --tfs "Integration Tests" {{SQL CARBON EDIT}} remove step
# name: Run Integration Tests (Electron)
windows:
runs-on: windows-2016
@@ -82,9 +96,11 @@ jobs:
# - run: yarn download-builtin-extensions {{SQL CARBON EDIT}} remove step
# name: Download Built-in Extensions
- run: .\scripts\test.bat --tfs "Unit Tests"
name: Run Unit Tests
name: Run Unit Tests (Electron)
# - run: yarn test-browser --browser chromium {{SQL CARBON EDIT}} disable for now @TODO @anthonydresser
# name: Run Unit Tests (Browser)
# - run: .\scripts\test-integration.bat --tfs "Integration Tests" {{SQL CARBON EDIT}} remove step
# name: Run Integration Tests
# name: Run Integration Tests (Electron)
darwin:
runs-on: macos-latest
@@ -113,6 +129,34 @@ jobs:
# - run: yarn download-builtin-extensions {{SQL CARBON EDIT}} remove step
# name: Download Built-in Extensions
- run: ./scripts/test.sh --tfs "Unit Tests"
name: Run Unit Tests
# - run: ./scripts/test-integration.sh --tfs "Integration Tests" {{SQL CARBON EDIT}} remove step
# name: Run Integration Tests
name: Run Unit Tests (Electron)
# - run: yarn test-browser --browser chromium --browser webkit
# name: Run Unit Tests (Browser)
# - run: ./scripts/test-integration.sh --tfs "Integration Tests"
# name: Run Integration Tests (Electron)
# monaco:
# runs-on: ubuntu-latest
# env:
# CHILD_CONCURRENCY: "1"
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# steps:
# - uses: actions/checkout@v1
# # TODO: rename azure-pipelines/linux/xvfb.init to github-actions
# - run: |
# sudo apt-get update
# sudo apt-get install -y libxkbfile-dev pkg-config libsecret-1-dev libxss1 dbus xvfb libgtk-3-0 libgbm1
# sudo cp build/azure-pipelines/linux/xvfb.init /etc/init.d/xvfb
# sudo chmod +x /etc/init.d/xvfb
# sudo update-rc.d xvfb defaults
# sudo service xvfb start
# name: Setup Build Environment
# - uses: actions/setup-node@v1
# with:
# node-version: 10
# - run: yarn --frozen-lockfile
# name: Install Dependencies
# - run: yarn monaco-compile-check
# name: Run Monaco Editor Checks
# - run: yarn gulp editor-esm-bundle
# name: Editor Distro & ESM Bundle

24
.github/workflows/on-issue-open.yml vendored Normal file
View File

@@ -0,0 +1,24 @@
name: On Issue Open
on:
issues:
types: [opened]
jobs:
main:
runs-on: ubuntu-latest
steps:
- name: Checkout Actions
uses: actions/checkout@v2
with:
repository: 'microsoft/azuredatastudio'
ref: master
path: ./actions
- name: Install Actions
run: npm install --production --prefix ./actions/build/actions
- name: Run CopyCat
uses: ./actions/build/actions/copycat
with:
token: ${{secrets.TRIAGE_PAT}}
owner: anthonydresser
repo: testissues

23
.github/workflows/on-pr-open.yml vendored Normal file
View File

@@ -0,0 +1,23 @@
name: On PR Open
on:
pull_request:
branches:
- release/**
jobs:
main:
runs-on: ubuntu-latest
steps:
- name: Checkout Actions
uses: actions/checkout@v2
with:
repository: 'microsoft/azuredatastudio'
ref: master
path: ./actions
- name: Install Actions
run: npm install --production --prefix ./actions/build/actions
- name: Run Port Labeler
uses: ./actions/build/actions/auto-labeler
with:
label: "Port Request"

1
.gitignore vendored
View File

@@ -11,6 +11,7 @@ out-editor/
out-editor-src/
out-editor-build/
out-editor-esm/
out-editor-esm-bundle/
out-editor-min/
out-monaco-editor-core/
out-vscode/

View File

@@ -1,6 +0,0 @@
{
"useTabs": true,
"printWidth": 120,
"semi": true,
"singleQuote": true
}

75
.vscode/launch.json vendored
View File

@@ -14,20 +14,26 @@
{
"type": "node",
"request": "attach",
"name": "Attach to Extension Host",
"port": 5870,
"timeout": 30000,
"restart": true,
"name": "Attach to Extension Host",
"timeout": 30000,
"port": 5870,
"outFiles": [
"${workspaceFolder}/out/**/*.js"
]
],
"presentation": {
"hidden": true
}
},
{
"type": "chrome",
"type": "pwa-chrome",
"request": "attach",
"name": "Attach to Shared Process",
"port": 9222,
"urlFilter": "*"
"urlFilter": "*sharedProcess.html*",
"presentation": {
"hidden": true
}
},
{
"type": "node",
@@ -63,13 +69,14 @@
}
},
{
"type": "chrome",
"type": "pwa-chrome",
"request": "attach",
"name": "Attach to azuredatastudio",
"timeout": 50000,
"port": 9222
},
{
"type": "chrome",
"type": "pwa-chrome",
"request": "launch",
"name": "Launch azuredatastudio",
"windows": {
@@ -94,27 +101,12 @@
],
"webRoot": "${workspaceFolder}",
// Settings for js-debug:
"userDataDir": false,
"pauseForSourceMap": false,
"outFiles": ["${workspaceFolder}/out/**/*.js"],
},
{
"type": "node",
"request": "launch",
"name": "Launch ADS (Main Process)",
"runtimeExecutable": "${workspaceFolder}/scripts/sql.sh",
"windows": {
"runtimeExecutable": "${workspaceFolder}/scripts/sql.bat",
},
"runtimeArgs": [
"--no-cached-data"
],
"outFiles": [
"${workspaceFolder}/out/**/*.js"
],
"presentation": {
"group": "2_launch",
"order": 1
}
"browserLaunchLocation": "workspace"
},
{
"type": "chrome",
@@ -149,10 +141,29 @@
"web"
],
"presentation": {
"group": "2_launch",
"group": "0_vscode",
"order": 2
}
},
{
"type": "node",
"request": "launch",
"name": "Main Process",
"runtimeExecutable": "${workspaceFolder}/scripts/code.sh",
"windows": {
"runtimeExecutable": "${workspaceFolder}/scripts/code.bat",
},
"runtimeArgs": [
"--no-cached-data"
],
"outFiles": [
"${workspaceFolder}/out/**/*.js"
],
"presentation": {
"group": "1_vscode",
"order": 1
}
},
{
"type": "chrome",
"request": "launch",
@@ -160,7 +171,7 @@
"url": "http://localhost:8080",
"preLaunchTask": "Run web",
"presentation": {
"group": "2_launch",
"group": "0_vscode",
"order": 3
}
},
@@ -197,7 +208,7 @@
"type": "node",
"request": "launch",
"name": "Run Unit Tests",
"program": "${workspaceFolder}/test/electron/index.js",
"program": "${workspaceFolder}/test/unit/electron/index.js",
"runtimeExecutable": "${workspaceFolder}/.build/electron/Azure Data Studio.app/Contents/MacOS/Electron",
"windows": {
"runtimeExecutable": "${workspaceFolder}/.build/electron/azuredatastudio.exe"
@@ -269,13 +280,15 @@
]
},
{
"name": "Debug azuredatastudio Main and Renderer",
"name": "Azure Data Studio",
"configurations": [
"Launch azuredatastudio",
"Attach to Main Process"
"Attach to Main Process",
"Attach to Extension Host",
"Attach to Shared Process",
],
"presentation": {
"group": "1_vscode",
"group": "0_vscode",
"order": 1
}
},

86
.vscode/searches/es6.code-search vendored Normal file
View File

@@ -0,0 +1,86 @@
# Query: @deprecated ES6
# Flags: CaseSensitive WordMatch
# ContextLines: 2
16 results - 5 files
src/vs/base/browser/dom.ts:
81 };
82
83: /** @deprecated ES6 - use classList*/
84 export const hasClass: (node: HTMLElement | SVGElement, className: string) => boolean = _classList.hasClass.bind(_classList);
85: /** @deprecated ES6 - use classList*/
86 export const addClass: (node: HTMLElement | SVGElement, className: string) => void = _classList.addClass.bind(_classList);
87: /** @deprecated ES6 - use classList*/
88 export const addClasses: (node: HTMLElement | SVGElement, ...classNames: string[]) => void = _classList.addClasses.bind(_classList);
89: /** @deprecated ES6 - use classList*/
90 export const removeClass: (node: HTMLElement | SVGElement, className: string) => void = _classList.removeClass.bind(_classList);
91: /** @deprecated ES6 - use classList*/
92 export const removeClasses: (node: HTMLElement | SVGElement, ...classNames: string[]) => void = _classList.removeClasses.bind(_classList);
93: /** @deprecated ES6 - use classList*/
94 export const toggleClass: (node: HTMLElement | SVGElement, className: string, shouldHaveIt?: boolean) => void = _classList.toggleClass.bind(_classList);
95
src/vs/base/common/arrays.ts:
401
402 /**
403: * @deprecated ES6: use `Array.findIndex`
404 */
405 export function firstIndex<T>(array: ReadonlyArray<T>, fn: (item: T) => boolean): number {
417
418 /**
419: * @deprecated ES6: use `Array.find`
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[] {
src/vs/base/common/objects.ts:
115
116 /**
117: * @deprecated ES6
118 */
119 export function assign<T>(destination: T): T;
src/vs/base/common/strings.ts:
15
16 /**
17: * @deprecated ES6: use `String.padStart`
18 */
19 export function pad(n: number, l: number, char: string = '0'): string {
146
147 /**
148: * @deprecated ES6: use `String.startsWith`
149 */
150 export function startsWith(haystack: string, needle: string): boolean {
167
168 /**
169: * @deprecated ES6: use `String.endsWith`
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 {

167
.vscode/searches/strict-null.code-search vendored Normal file
View File

@@ -0,0 +1,167 @@
# Query: strict-null
76 results - 44 files
src\vs\base\browser\ui\tree\compressedObjectTreeModel.ts:
455: return null; // {{SQL CARBON EDIT}} strict-null-check
465: return null; // {{SQL CARBON EDIT}} strict-null-check
src\vs\platform\actions\common\menuService.ts:
97: const toggledExpression: ContextKeyExpression = (item.command.toggled as { condition: ContextKeyExpression }).condition || item.command.toggled as ContextKeyExpression; // {{SQL CARBON EDIT}} strict-null-checks
src\vs\platform\clipboard\browser\clipboardService.ts:
57: return undefined; // {{SQL CARBON EDIT}} strict-null-checks
src\vs\platform\dialogs\electron-main\dialogs.ts:
123: return undefined; // {{SQL CARBON EDIT}} strict-null-check
src\vs\platform\driver\electron-main\driver.ts:
214: const driver = instantiationService.createInstance(Driver as any, windowServer, { verbose }) as Driver; // {{SQL CARBON EDIT}} strict-null-check...i guess?
src\vs\platform\extensionManagement\node\extensionManagementService.ts:
558: return undefined; // {{SQL CARBON EDIT}} strict-null-checks
src\vs\platform\quickinput\browser\pickerQuickAccess.ts:
216: active: activePick as T || additionalActivePick as T // {{SQL CARBON EDIT}} strict-null-checks
src\vs\workbench\api\browser\mainThreadLanguageFeatures.ts:
90: return undefined; // {{SQL CARBON EDIT}} strict-null-checks
600: return undefined; // {{SQL CARBON EDIT}} strict-null-check
610: return undefined; // {{SQL CARBON EDIT}} strict-null-check
src\vs\workbench\api\common\extHost.api.impl.ts:
538: alignment = alignmentOrOptions as number; // {{SQL CARBON EDIT}} strict-null-check
src\vs\workbench\api\common\extHostComments.ts:
410: return undefined; // {{SQL CARBON EDIT}} @anthonydresser strict-null-check
src\vs\workbench\api\common\extHostTask.ts:
583: return undefined; // {{SQL CARBON EDIT}} strict-null-check
src\vs\workbench\api\common\extHostTerminalService.ts:
279: this._onProcessExit.fire(e === void 0 ? undefined : e as number); // {{SQL CARBON EDIT}} strict-null-checks
283: this._pty.onDidOverrideDimensions(e => this._onProcessOverrideDimensions.fire(e ? { cols: e.columns, rows: e.rows } : undefined)); // {{SQL CARBONEDIT}} strict-null-checks
src\vs\workbench\browser\actions\workspaceCommands.ts:
87: return undefined; // {{SQL CARBON EDIT}} @anthonydresser strict-null-check
120: return undefined; // {{SQL CARBON EDIT}} @anthonydresser strict-null-check
src\vs\workbench\browser\parts\editor\editorGroupView.ts:
827: return undefined; // {{SQL CARBON EDIT}} strict-null-checks
src\vs\workbench\browser\parts\panel\panelPart.ts:
151: (id: string, focus?: boolean) => <unknown>this.openPanel(id, focus) as Promise<IPaneComposite | undefined>, // {{SQL CARBON EDIT}} strict-null-checks
src\vs\workbench\browser\parts\sidebar\sidebarPart.ts:
59: return undefined; // {{SQL CARBON EDIT}} strict-null-check
64: return undefined; // {{SQL CARBON EDIT}} strict-null-check
src\vs\workbench\common\editor\editorGroup.ts:
388: return undefined; // {{SQL CARBON EDIT}} strict-null-check
406: return undefined; // not found {{SQL CARBON EDIT}} strict-null-check
433: return undefined; // not found {{SQL CARBON EDIT}} strict-null-check
456: return undefined; // not found {{SQL CARBON EDIT}} strict-null-check
src\vs\workbench\contrib\callHierarchy\browser\callHierarchyPeek.ts:
377: const root = <ITreeNode<callHTree.Call, FuzzyScore>>this._tree.getNode(model).children[0]; // {{SQL CARBON EDIT}} strict-null-checks
src\vs\workbench\contrib\customEditor\browser\customEditorInput.ts:
230: return undefined; // {{SQL CARBON EDIT}} strict-null-checks
src\vs\workbench\contrib\customEditor\browser\customEditors.ts:
169: return undefined; // {{SQL CARBON EDIT}} strict-nulls
468: return undefined; // {{SQL CARBON EDIT}} Strict-null-checks
493: return undefined; // {{SQL CARBON EDIT}} Strict-null-checks
505: return undefined; // {{SQL CARBON EDIT}} strict-null-check
src\vs\workbench\contrib\extensions\browser\extensionsActions.ts:
2203: return (<IExtensionsConfigContent>json.parse(content.value.toString()) || {}) as IExtensionsConfigContent; // {{SQL CARBON EDIT}} strict-null-check
src\vs\workbench\contrib\extensions\test\electron-browser\extensionRecommendationsService.test.ts:
508: instantiationService.stub(IStorageService, <any>{ // {{SQL CARBON EDIT}} strict-null-checks?
src\vs\workbench\contrib\files\common\explorerService.ts:
393: const configSortOrder = configuration?.explorer?.sortOrder || SortOrder.Default; // {{SQL CARBON EDIT}} strict-null-checks?
src\vs\workbench\contrib\notebook\browser\notebookEditor.ts:
475: return undefined; // {{SQL CARBON EDIT}} strict-null-check
src\vs\workbench\contrib\notebook\browser\notebookService.ts:
204: return undefined; // {{SQL CARBON EDIT}} strict-null-check
src\vs\workbench\contrib\notebook\browser\contrib\notebookActions.ts:
412: return undefined; // {{SQL CARBON EDIT}} strict-null-check
417: return undefined; // {{SQL CARBON EDIT}} strict-null-check
479: return undefined; // {{SQL CARBON EDIT}} strict-null-check
484: return undefined; // {{SQL CARBON EDIT}} strict-null-check
src\vs\workbench\contrib\notebook\test\testNotebookEditor.ts:
186: return undefined; // {{SQL CARBON EDIT}} strict-null-check
src\vs\workbench\contrib\remote\browser\remote.ts:
544: return undefined; // {{SQL CARBON EDIT}} strict-null-check
563: return undefined; // {{SQL CARBON EDIT}} strict-null-check;
src\vs\workbench\contrib\remote\browser\tunnelView.ts:
589: const node: ITunnelItem | null = treeEvent.element as ITunnelItem | null; // {{SQL CARBON EDIT}} strict-null-check
src\vs\workbench\contrib\search\browser\anythingQuickAccess.ts:
631: return undefined; // {{SQL CARBON EDIT}} strict-null
636: return undefined; // {{SQL CARBON EDIT}} strict-null
641: return undefined; // {{SQL CARBON EDIT}} strict-null
651: return undefined; // {{SQL CARBON EDIT}} strict-null
663: return undefined; // {{SQL CARBON EDIT}} strict-null
668: return undefined; // {{SQL CARBON EDIT}} strict-null
698: return undefined; // {{SQL CARBON EDIT}} strict-null
src\vs\workbench\contrib\searchEditor\browser\searchEditor.ts:
335: return undefined; // {{SQL CARBON EDIT}} strict-null-checks
src\vs\workbench\contrib\searchEditor\browser\searchEditorInput.ts:
121: if ((await this.headerModel).isDisposed() || (await this.contentsModel).isDisposed()) { return undefined; } // {{SQL CARBON EDIT}} strict-null-check
src\vs\workbench\contrib\tasks\browser\abstractTaskService.ts:
565: return undefined; // {{SQL CARBON EDIT}} strict-null-checks
586: return undefined; // {{SQL CARBON EDIT}} strict-null-checks
src\vs\workbench\contrib\tasks\browser\taskQuickPick.ts:
204: return undefined; // {{SQL CARBON EDIT}} strict-null-checks
207: return undefined; // {{SQL CARBON EDIT}} strict-null-checks
src\vs\workbench\contrib\webview\browser\webviewWorkbenchService.ts:
148: return undefined; // {{SQL CARBON EDIT}} strict-null-checks
src\vs\workbench\electron-browser\desktop.main.ts:
283: return undefined; // {{SQL CARBON EDIT}} @anthonydresser strict-null-check
src\vs\workbench\services\dialogs\browser\simpleFileDialog.ts:
496: return undefined; // {{SQL CARBON EDIT}} @anthonydresser strict-null-check
502: return undefined; // {{SQL CARBON EDIT}} @anthonydresser strict-null-check
src\vs\workbench\services\dialogs\electron-browser\fileDialogService.ts:
127: return undefined; // {{SQL CARBON EDIT}} strict-null-check
151: return undefined; // {{SQL CARBON EDIT}} strict-null-check
src\vs\workbench\services\extensions\common\abstractExtensionService.ts:
235: result.push(new ExtensionPointContribution<T>(desc, desc.contributes[extPoint.name])); // {{SQL CARBON EDIT}} strict-null-checks
376: value: desc.contributes[extensionPoint.name], // {{SQL CARBON EDIT}} strict-null-checks
src\vs\workbench\services\textfile\browser\textFileService.ts:
221: return undefined; // user canceled // {{SQL CARBON EDIT}} strict-null-check
src\vs\workbench\services\textfile\common\textFileEditorModel.ts:
611: if ((this.saveSequentializer as TaskSequentializer).hasPending()) { // {{SQL CARBON EDIT}} strict-null-check
619: (this.saveSequentializer as TaskSequentializer).cancelPending(); // {{SQL CARBON EDIT}} strict-null-check
622: return (this.saveSequentializer as TaskSequentializer).setNext(() => this.doSave(options)); // {{SQL CARBON EDIT}} strict-null-check
633: return (this.saveSequentializer as TaskSequentializer).setPending(versionId, (async () => { // {{SQL CARBON EDIT}} strict-null-checks
667: return undefined; // {{SQL CARBON EDIT}} @anthonydresser strict-null-check
672: return undefined; // {{SQL CARBON EDIT}} @anthonydresser strict-null-check
src\vs\workbench\services\textfile\common\textfiles.ts:
421: isDirty(): boolean; // {{SQL CARBON EDIT}} strict-null-check
src\vs\workbench\services\themes\browser\workbenchThemeService.ts:
248: Theme(), initializeFileIconTheme(), initializeProductIconTheme()]) as Promise<[IWorkbenchColorTheme | null, IWorkbenchFileIconTheme | null, IWorkbenchProductIconTheme | null]>; // {{SQL CARBON EDIT}} strict-null-checks maybe?
src\vs\workbench\services\workspaces\browser\abstractWorkspaceEditingService.ts:
56: return undefined; // canceled {{SQL CARBON EDIT}} strict-null-checks

View File

@@ -1,10 +1,19 @@
# Query: \\w+\\?\\..+![(.[]
# Query: \\w+\\?\\.\\w+![(.[]
# Flags: RegExp
# ContextLines: 2
2 results - 2 files
src/vs/base/browser/ui/tree/asyncDataTree.ts:
270 } : undefined,
271 isChecked: options.ariaProvider!.isChecked ? (e) => {
272: return options.ariaProvider?.isChecked!(e.element as T);
273 } : undefined
274 },
243 } : () => 'treeitem',
244 isChecked: options.accessibilityProvider!.isChecked ? (e) => {
245: return !!(options.accessibilityProvider?.isChecked!(e.element as T));
246 } : undefined,
247 getAriaLabel(e) {
src/vs/workbench/contrib/debug/browser/debugConfigurationManager.ts:
254
255 return debugDynamicExtensions.map(e => {
256: const type = e.contributes?.debuggers![0].type!;
257 return {
258 label: this.getDebuggerLabel(type)!,

1160
.vscode/searches/vscodeedits.code-search vendored Normal file

File diff suppressed because it is too large Load Diff

14
.vscode/settings.json vendored
View File

@@ -7,7 +7,8 @@
"**/.DS_Store": true,
"build/**/*.js": {
"when": "$(basename).ts"
}
},
"src/vs/server": false
},
"files.associations": {
"cglicenses.json": "jsonc"
@@ -22,7 +23,10 @@
"i18n/**": true,
"extensions/**/out/**": true,
"test/smoke/out/**": true,
"src/vs/base/test/node/uri.test.data.txt": true
"test/automation/out/**": true,
"test/integration/browser/out/**": true,
"src/vs/base/test/node/uri.test.data.txt": true,
"src/vs/server": false
},
"lcov.path": [
"./.build/coverage/lcov.info",
@@ -67,5 +71,9 @@
"msjsdiag.debugger-for-chrome": "workspace"
},
"gulp.autoDetect": "off",
"files.insertFinalNewline": true
"files.insertFinalNewline": true,
"[typescript]": {
"editor.defaultFormatter": "vscode.typescript-language-features"
},
"typescript.tsc.autoDetect": "off"
}

26
.vscode/tasks.json vendored
View File

@@ -3,7 +3,7 @@
"tasks": [
{
"type": "npm",
"script": "watch",
"script": "watchd",
"label": "Build VS Code",
"group": {
"kind": "build",
@@ -31,20 +31,6 @@
}
}
},
{
"type": "npm",
"script": "strict-function-types-watch",
"label": "TS - Strict Function Types",
"isBackground": true,
"presentation": {
"reveal": "never"
},
"problemMatcher": {
"base": "$tsc-watch",
"owner": "typescript-function-types",
"applyTo": "allDocuments"
}
},
{
"type": "npm",
"script": "strict-vscode-watch",
@@ -59,6 +45,16 @@
"applyTo": "allDocuments"
}
},
{
"type": "npm",
"script": "kill-watchd",
"label": "Kill Build VS Code",
"group": "build",
"presentation": {
"reveal": "never"
},
"problemMatcher": "$tsc"
},
{
"label": "Run tests",
"type": "shell",

View File

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

View File

@@ -1,5 +1,70 @@
# Change Log
## Version 1.18.1
* Release date: May 27, 2020
* Release status: General Availability
* Hotfix for https://github.com/microsoft/azuredatastudio/issues/10538
* Hotfix for https://github.com/microsoft/azuredatastudio/issues/10537
## Version 1.18.0
* Release date: May 20, 2020
* Release status: General Availability
* Announcing Redgate SQL Prompt extension - This extension lets you manage formatting styles directly within Azure Data Studio, so you can create and edit your styles without leaving the IDE.
* Announcing the new machine learning extension. This extension enables you to:
* Manage Python and R packages with SQL Server machine learning services with Azure Data Studio.
* Use ONNX model to make predictions in Azure SQL Edge.
* View ONNX models in an Azure SQL Edge database.
* Import ONNX models from a file or Azure Machine Learning into Azure SQL Edge database.
* Create a notebook to run experiments.
* New notebook features:
* Added new Python dependencies wizard
* Improvements to the notebook markdown toolbar
* Added support for parameterization for Always Encrypted - Allows you to run queries that insert, update or filter by encrypted database columns.
* Bug fixes
## Version 1.17.1
* Release date: April 29, 2020
* Release status: General Availability
* Hotfix for https://github.com/microsoft/azuredatastudio/milestone/54?closed=1
## Version 1.17.0
* Release date: April 27, 2020
* Release status: General Availability
* New Welcome Page
* New Notebook features
* New Markdown editor toolbar
* Books viewlet now works with notebooks
* Improved dashboard
* Always encrypted support
* Accessibility bugs
* VS Code merge
## Version 1.16.0
* Release date: March 18, 2020
* Release status: General Availability
* Notebooks:
* Charting
* Creating Jupyter books
* Postgres extension update - Users can now authenticate to Azure Postgres servers with their linked Azure account
* Accessibility bugs
* VS Code merge
* In the next release, GitHub releases will no longer contain the binary files to the latest version. Rather, they will contain links to the latest release. This will have no impact on users using the in-app update functionality.
## Version 1.15.1
* Release date: February 19, 2020
* Release status: General Availability
* Resolved [#9145 Edit Data render the result grid incorrectly when using custom query](https://github.com/microsoft/azuredatastudio/issues/9145).
* Resolved [#9149 Show Active Connections](https://github.com/microsoft/azuredatastudio/issues/9149).
## Version 1.15.0
* Release date: February 13, 2020
* Release status: General Availability
* New Azure Sign-in improvement - Added improved Azure Sign-in experience, including removal of copy/paste of device code to make a more seamless connected experience.
* Find in Notebook support - Users can now use Ctrl+F inside of a notebook. Find in Notebook support searches line by line through both code and text cells.
* VS Code merge from 1.38 to 1.42 - This release includes updates to VS Code from the 3 previous VS Code releases. Read their [release notes](https://code.visualstudio.com/updates/v1_42) to learn more.
* Fix for the ["white/blank screen"](https://github.com/microsoft/azuredatastudio/issues/8775) issue reported by many users.
* Resolved [bugs and issues](https://github.com/microsoft/azuredatastudio/issues?q=is%3Aissue+label%3ABug+milestone%3A%22February+2020%22+is%3Aclosed).
## Version 1.14.1
* Release date: December 26, 2019
* Release status: General Availability

View File

@@ -8,15 +8,16 @@ Azure Data Studio is a data management tool that enables you to work with SQL Se
## **Download the latest Azure Data Studio release**
Platform | Link
-- | --
Windows User Installer | https://go.microsoft.com/fwlink/?linkid=2113530
Windows System Installer | https://go.microsoft.com/fwlink/?linkid=2113628
Windows ZIP | https://go.microsoft.com/fwlink/?linkid=2113529
macOS ZIP | https://go.microsoft.com/fwlink/?linkid=2113528
Linux TAR.GZ | https://go.microsoft.com/fwlink/?linkid=2113627
Linux RPM | https://go.microsoft.com/fwlink/?linkid=2113718
Linux DEB | https://go.microsoft.com/fwlink/?linkid=2113344
| Platform |
| --------------------------------------- |
| [Windows User Installer][win-user] |
| [Windows System Installer][win-system] |
| [Windows ZIP][win-zip] |
| [macOS ZIP][osx-zip] |
| [Linux TAR.GZ][linux-zip] |
| [Linux RPM][linux-rpm] |
| [Linux DEB][linux-deb] |
Go to our [download page](https://aka.ms/azuredatastudio) for more specific instructions.
@@ -59,9 +60,7 @@ please see the document [How to Contribute](https://github.com/Microsoft/azureda
This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
## Localization
Azure Data Studio localization is now open for community contributions. You can contribute to localization for both software and docs. https://aka.ms/SQLOpsStudioLoc
Localization is now opened for 10 languages: French, Italian, German, Spanish, Simplified Chinese, Traditional Chinese, Japanese, Korean, Russian, and Portuguese (Brazil). Help us make Azure Data Studio available in your language!
Azure Data Studio is localized into 10 languages: French, Italian, German, Spanish, Simplified Chinese, Traditional Chinese, Japanese, Korean, Russian, and Portuguese (Brazil). The language packs are available in the Extension Manager marketplace. Simply, search for the specific language using the extension marketplace and install. Once you install the selected language, Azure Data Studio will prompt you to restart with the new language.
## Privacy Statement
The [Microsoft Enterprise and Developer Privacy Statement](https://privacy.microsoft.com/en-us/privacystatement) describes the privacy statement of this software.
@@ -121,17 +120,6 @@ We would like to thank all our users who raised issues, and in particular the fo
* SebastianPfliegel `Remove sqlExtensionHelp (#312)`
* olljanat for `Implemented npm version check (#314)`
* Adam Machanic for helping with the `whoisactive` extension
* All community localization contributors:
* French: Adrien Clerbois, ANAS BELABBES, Antoine Griffard, Arian Papillon, Eric Macarez, Eric Van Thorre, Jérémy LANDON, Matthias GROSPERRIN, Maxime COQUEREL, Olivier Guinart, thierry DEMAN-BARCELÒ, Thomas Potier
* Italian: Aldo Donetti, Alessandro Alpi, Andrea Dottor, Bruni Luca, Gianluca Hotz, Luca Nardi, Luigi Bruno, Marco Dal Pino, Mirco Vanini, Pasquale Ceglie, Riccardo Cappello, Sergio Govoni, Stefano Demiliani
* German: Anna Henke-Gunvaldson, Ben Weissman, David Ullmer, J.M. ., Kai Modo, Konstantin Staschill, Kostja Klein, Lennart Trunk, Markus Ehrenmüller-Jensen, Mascha Kroenlein, Matthias Knoll, Mourad Louha, Thomas Hütter, Wolfgang Straßer
* Spanish: Alberto Poblacion, Andy Gonzalez, Carlos Mendible, Christian Araujo, Daniel D, Eickhel Mendoza, Ernesto Cardenas, Ivan Toledo Ivanovic, Fran Diaz, JESUS GIL, Jorge Serrano Pérez, José Saturnino Pimentel Juárez, Mauricio Hidalgo, Pablo Iglesias, Rikhardo Estrada Rdez, Thierry DEMAN, YOLANDA CUESTA ALTIERI
* Japanese: Fujio Kojima, Kazushi KAMEGAWA, Masayoshi Yamada, Masayuki Ozawa, Seiji Momoto, Takashi Kanai, Takayoshi Tanaka, Yoshihisa Ozaki, 庄垣内治
* Chinese (simplified): DAN YE, Joel Yang, Lynne Dong, RyanYu Zhang, Sheng Jiang, Wei Zhang, Zhiliang Xu
* Chinese (Traditional): Bruce Chen, Chiayi Yen, Kevin Yang, Winnie Lin, 保哥 Will, 謝政廷
* Korean: Do-Kyun Kim, Evelyn Kim, Helen Jung, Hong Jmee, jeongwoo choi, Jun Hyoung Lee, Jungsun Kim정선, Justin Yoo, Kavrith mucha, Kiwoong Youm, MinGyu Ju, MVP_JUNO BEA, Sejun Kim, SOONMAN KWON, sung man ko, Yeongrak Choi, younggun kim, Youngjae Kim, 소영 이
* Russian: Andrey Veselov, Anton Fontanov, Anton Savin, Elena Ostrovskaia, Igor Babichev, Maxim Zelensky, Rodion Fedechkin, Tasha T, Vladimir Zyryanov
* Portuguese Brazil: Daniel de Sousa, Diogo Duarte, Douglas Correa, Douglas Eccker, José Emanuel Mendes, Marcelo Fernandes, Marcondes Alexandre, Roberto Fonseca, Rodrigo Crespi
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)
@@ -140,3 +128,11 @@ And of course, we'd like to thank the authors of all upstream dependencies. Ple
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

View File

@@ -12,6 +12,7 @@ expressly granted herein, whether by implication, estoppel or otherwise.
angular2-grid: https://github.com/BTMorton/angular2-grid
angular2-slickgrid: https://github.com/Microsoft/angular2-slickgrid
applicationinsights: https://github.com/Microsoft/ApplicationInsights-node.js
axios: https://github.com/axios/axios
bootstrap: https://github.com/twbs/bootstrap
chart.js: https://github.com/Timer/chartjs
chokidar: https://github.com/paulmillr/chokidar
@@ -38,6 +39,7 @@ expressly granted herein, whether by implication, estoppel or otherwise.
jschardet: https://github.com/aadsm/jschardet
jupyter-powershell: https://github.com/vors/jupyter-powershell
JupyterLab: https://github.com/jupyterlab/jupyterlab
keytar: https://github.com/atom/node-keytar
make-error: https://github.com/JsCommunity/make-error
minimist: https://github.com/substack/minimist
moment: https://github.com/moment/moment
@@ -47,9 +49,11 @@ expressly granted herein, whether by implication, estoppel or otherwise.
node-fetch: https://github.com/bitinn/node-fetch
node-pty: https://github.com/Tyriar/node-pty
nsfw: https://github.com/Axosoft/nsfw
optimist: https://github.com/substack/node-optimist
primeng: https://github.com/primefaces/primeng
process-nextick-args: https://github.com/calvinmetcalf/process-nextick-args
pty.js: https://github.com/chjj/pty.js
qs: https://github.com/ljharb/qs
reflect-metadata: https://github.com/rbuckton/reflect-metadata
request: https://github.com/request/request
rxjs: https://github.com/ReactiveX/RxJS
@@ -69,6 +73,7 @@ expressly granted herein, whether by implication, estoppel or otherwise.
vscode-textmate: https://github.com/Microsoft/vscode-textmate
winreg: https://github.com/fresc81/node-winreg
xterm: https://github.com/sourcelair/xterm.js
yargs: https://github.com/yargs/yargs
yauzl: https://github.com/thejoshwolfe/yauzl
zone.js: https://www.npmjs.com/package/zone
@@ -1448,6 +1453,32 @@ SOFTWARE.
=========================================
END OF nsfw NOTICES AND INFORMATION
%% optimist NOTICES AND INFORMATION BEGIN HERE
=========================================
Copyright 2010 James Halliday (mail@substack.net)
This project is free software released under the MIT/X11 license:
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 optimist NOTICES AND INFORMATION
%% primeng NOTICES AND INFORMATION BEGIN HERE
=========================================
The MIT License (MIT)
@@ -2219,6 +2250,32 @@ THE SOFTWARE.
=========================================
END OF xterm NOTICES AND INFORMATION
%% yargs NOTICES AND INFORMATION BEGIN HERE
=========================================
MIT License
Copyright 2010 James Halliday (mail@substack.net); Modified work Copyright 2014 Contributors (ben@npmjs.com)
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 yargs NOTICES AND INFORMATION
%% yauzl NOTICES AND INFORMATION BEGIN HERE
=========================================
The MIT License (MIT)

View File

@@ -1 +1 @@
2019-12-01T02:20:58.491Z
2020-04-29T05:20:58.491Z

View File

@@ -19,13 +19,6 @@ vscode-sqlite3/build/**
vscode-sqlite3/src/**
!vscode-sqlite3/build/Release/*.node
oniguruma/binding.gyp
oniguruma/build/**
oniguruma/src/**
oniguruma/deps/**
!oniguruma/build/Release/*.node
!oniguruma/src/*.js
windows-mutex/binding.gyp
windows-mutex/build/**
windows-mutex/src/**
@@ -83,11 +76,6 @@ node-pty/deps/**
!node-pty/build/Release/*.dll
!node-pty/build/Release/*.node
emmet/node_modules/**
pty.js/build/**
!pty.js/build/Release/**
# START SQL Modules
@angular/**/src/**
@@ -108,15 +96,17 @@ jquery-ui/demos/**
slickgrid/node_modules/**
slickgrid/examples/**
kerberos/build/**
# END SQL Modules
nsfw/binding.gyp
nsfw/build/**
nsfw/src/**
nsfw/openpa/**
nsfw/includes/**
!nsfw/build/Release/*.node
!nsfw/**/*.a
vscode-nsfw/binding.gyp
vscode-nsfw/build/**
vscode-nsfw/src/**
vscode-nsfw/openpa/**
vscode-nsfw/includes/**
!vscode-nsfw/build/Release/*.node
!vscode-nsfw/**/*.a
vsda/build/**
vsda/ci/**

View File

@@ -0,0 +1,17 @@
{
"env": {
"commonjs": true,
"es6": true,
"node": true
},
"extends": "eslint:recommended",
"globals": {
"Atomics": "readonly",
"SharedArrayBuffer": "readonly"
},
"parserOptions": {
"ecmaVersion": 2018
},
"rules": {
}
}

2
build/actions/.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
node_modules
*.js.map

View File

@@ -1,12 +1,6 @@
"use strict";
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
export class MessagePanelState {
public scrollPosition: number;
dispose() {
}
}
Object.defineProperty(exports, "__esModule", { value: true });

96
build/actions/api/api.ts Normal file
View File

@@ -0,0 +1,96 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
export interface GitHub {
query(query: Query): AsyncIterableIterator<GitHubIssue[]>
hasWriteAccess(user: User): Promise<boolean>
repoHasLabel(label: string): Promise<boolean>
createLabel(label: string, color: string, description: string): Promise<void>
deleteLabel(label: string): Promise<void>
readConfig(path: string): Promise<any>
createIssue(owner: string, repo: string, title: string, body: string): Promise<void>
releaseContainsCommit(release: string, commit: string): Promise<boolean>
}
export interface GitHubIssue extends GitHub {
getIssue(): Promise<Issue>
postComment(body: string): Promise<void>
deleteComment(id: number): Promise<void>
getComments(last?: boolean): AsyncIterableIterator<Comment[]>
closeIssue(): Promise<void>
lockIssue(): Promise<void>
setMilestone(milestoneId: number): Promise<void>
addLabel(label: string): Promise<void>
removeLabel(label: string): Promise<void>
addAssignee(assignee: string): Promise<void>
getClosingInfo(): Promise<{ hash: string | undefined; timestamp: number } | undefined>
}
type SortVar =
| 'comments'
| 'reactions'
| 'reactions-+1'
| 'reactions--1'
| 'reactions-smile'
| 'reactions-thinking_face'
| 'reactions-heart'
| 'reactions-tada'
| 'interactions'
| 'created'
| 'updated'
type SortOrder = 'asc' | 'desc'
export type Reactions = {
'+1': number
'-1': number
laugh: number
hooray: number
confused: number
heart: number
rocket: number
eyes: number
}
export interface User {
name: string
isGitHubApp?: boolean
}
export interface Comment {
author: User
body: string
id: number
timestamp: number
}
export interface Issue {
author: User
body: string
title: string
labels: string[]
open: boolean
locked: boolean
number: number
numComments: number
reactions: Reactions
milestoneId: number | null
assignee?: string
createdAt: number
updatedAt: number
closedAt?: number
}
export interface Query {
q: string
sort?: SortVar
order?: SortOrder
}

View File

@@ -0,0 +1,293 @@
"use strict";
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
Object.defineProperty(exports, "__esModule", { value: true });
const core_1 = require("@actions/core");
const github_1 = require("@actions/github");
const child_process_1 = require("child_process");
const utils_1 = require("../utils/utils");
class OctoKit {
constructor(token, params, options = { readonly: false }) {
this.token = token;
this.params = params;
this.options = options;
// when in readonly mode, record labels just-created so at to not throw unneccesary errors
this.mockLabels = new Set();
this.writeAccessCache = {};
this.octokit = new github_1.GitHub(token);
}
async *query(query) {
const q = query.q + ` repo:${this.params.owner}/${this.params.repo}`;
console.log(`Querying for ${q}:`);
const options = this.octokit.search.issuesAndPullRequests.endpoint.merge({
...query,
q,
per_page: 100,
headers: { Accept: 'application/vnd.github.squirrel-girl-preview+json' },
});
let pageNum = 0;
const timeout = async () => {
if (pageNum < 2) {
/* pass */
}
else if (pageNum < 4) {
await new Promise((resolve) => setTimeout(resolve, 3000));
}
else {
await new Promise((resolve) => setTimeout(resolve, 30000));
}
};
for await (const pageResponse of this.octokit.paginate.iterator(options)) {
await timeout();
await utils_1.logRateLimit(this.token);
const page = pageResponse.data;
console.log(`Page ${++pageNum}: ${page.map(({ number }) => number).join(' ')}`);
yield page.map((issue) => new OctoKitIssue(this.token, this.params, this.octokitIssueToIssue(issue)));
}
}
async createIssue(owner, repo, title, body) {
core_1.debug(`Creating issue \`${title}\` on ${owner}/${repo}`);
if (!this.options.readonly)
await this.octokit.issues.create({ owner, repo, title, body });
}
octokitIssueToIssue(issue) {
var _a, _b, _c, _d, _e, _f;
return {
author: { name: issue.user.login, isGitHubApp: issue.user.type === 'Bot' },
body: issue.body,
number: issue.number,
title: issue.title,
labels: issue.labels.map((label) => label.name),
open: issue.state === 'open',
locked: issue.locked,
numComments: issue.comments,
reactions: issue.reactions,
assignee: (_b = (_a = issue.assignee) === null || _a === void 0 ? void 0 : _a.login) !== null && _b !== void 0 ? _b : (_d = (_c = issue.assignees) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.login,
milestoneId: (_f = (_e = issue.milestone) === null || _e === void 0 ? void 0 : _e.number) !== null && _f !== void 0 ? _f : null,
createdAt: +new Date(issue.created_at),
updatedAt: +new Date(issue.updated_at),
closedAt: issue.closed_at ? +new Date(issue.closed_at) : undefined,
};
}
async hasWriteAccess(user) {
if (user.name in this.writeAccessCache) {
core_1.debug('Got permissions from cache for ' + user);
return this.writeAccessCache[user.name];
}
core_1.debug('Fetching permissions for ' + user);
const permissions = (await this.octokit.repos.getCollaboratorPermissionLevel({
...this.params,
username: user.name,
})).data.permission;
return (this.writeAccessCache[user.name] = permissions === 'admin' || permissions === 'write');
}
async repoHasLabel(name) {
try {
await this.octokit.issues.getLabel({ ...this.params, name });
return true;
}
catch (err) {
if (err.status === 404) {
return this.options.readonly && this.mockLabels.has(name);
}
throw err;
}
}
async createLabel(name, color, description) {
core_1.debug('Creating label ' + name);
if (!this.options.readonly)
await this.octokit.issues.createLabel({ ...this.params, color, description, name });
else
this.mockLabels.add(name);
}
async deleteLabel(name) {
core_1.debug('Deleting label ' + name);
try {
if (!this.options.readonly)
await this.octokit.issues.deleteLabel({ ...this.params, name });
}
catch (err) {
if (err.status === 404) {
return;
}
throw err;
}
}
async readConfig(path) {
core_1.debug('Reading config at ' + path);
const repoPath = `.github/${path}.json`;
const data = (await this.octokit.repos.getContents({ ...this.params, path: repoPath })).data;
if ('type' in data && data.type === 'file') {
if (data.encoding === 'base64' && data.content) {
return JSON.parse(Buffer.from(data.content, 'base64').toString('utf-8'));
}
throw Error(`Could not read contents "${data.content}" in encoding "${data.encoding}"`);
}
throw Error('Found directory at config path when expecting file' + JSON.stringify(data));
}
async releaseContainsCommit(release, commit) {
if (utils_1.getInput('commitReleasedDebuggingOverride')) {
return true;
}
return new Promise((resolve, reject) => child_process_1.exec(`git -C ./repo merge-base --is-ancestor ${commit} ${release}`, (err) => !err || err.code === 1 ? resolve(!err) : reject(err)));
}
}
exports.OctoKit = OctoKit;
class OctoKitIssue extends OctoKit {
constructor(token, params, issueData, options = { readonly: false }) {
super(token, params, options);
this.params = params;
this.issueData = issueData;
}
async addAssignee(assignee) {
core_1.debug('Adding assignee ' + assignee + ' to ' + this.issueData.number);
if (!this.options.readonly) {
await this.octokit.issues.addAssignees({
...this.params,
issue_number: this.issueData.number,
assignees: [assignee],
});
}
}
async closeIssue() {
core_1.debug('Closing issue ' + this.issueData.number);
if (!this.options.readonly)
await this.octokit.issues.update({
...this.params,
issue_number: this.issueData.number,
state: 'closed',
});
}
async lockIssue() {
core_1.debug('Locking issue ' + this.issueData.number);
if (!this.options.readonly)
await this.octokit.issues.lock({ ...this.params, issue_number: this.issueData.number });
}
async getIssue() {
if (isIssue(this.issueData)) {
core_1.debug('Got issue data from query result ' + this.issueData.number);
return this.issueData;
}
console.log('Fetching issue ' + this.issueData.number);
const issue = (await this.octokit.issues.get({
...this.params,
issue_number: this.issueData.number,
mediaType: { previews: ['squirrel-girl'] },
})).data;
return (this.issueData = this.octokitIssueToIssue(issue));
}
async postComment(body) {
core_1.debug(`Posting comment ${body} on ${this.issueData.number}`);
if (!this.options.readonly)
await this.octokit.issues.createComment({
...this.params,
issue_number: this.issueData.number,
body,
});
}
async deleteComment(id) {
core_1.debug(`Deleting comment ${id} on ${this.issueData.number}`);
if (!this.options.readonly)
await this.octokit.issues.deleteComment({
owner: this.params.owner,
repo: this.params.repo,
comment_id: id,
});
}
async setMilestone(milestoneId) {
core_1.debug(`Setting milestone for ${this.issueData.number} to ${milestoneId}`);
if (!this.options.readonly)
await this.octokit.issues.update({
...this.params,
issue_number: this.issueData.number,
milestone: milestoneId,
});
}
async *getComments(last) {
core_1.debug('Fetching comments for ' + this.issueData.number);
const response = this.octokit.paginate.iterator(this.octokit.issues.listComments.endpoint.merge({
...this.params,
issue_number: this.issueData.number,
per_page: 100,
...(last ? { per_page: 1, page: (await this.getIssue()).numComments } : {}),
}));
for await (const page of response) {
yield page.data.map((comment) => ({
author: { name: comment.user.login, isGitHubApp: comment.user.type === 'Bot' },
body: comment.body,
id: comment.id,
timestamp: +new Date(comment.created_at),
}));
}
}
async addLabel(name) {
core_1.debug(`Adding label ${name} to ${this.issueData.number}`);
if (!(await this.repoHasLabel(name))) {
throw Error(`Action could not execute becuase label ${name} is not defined.`);
}
if (!this.options.readonly)
await this.octokit.issues.addLabels({
...this.params,
issue_number: this.issueData.number,
labels: [name],
});
}
async removeLabel(name) {
core_1.debug(`Removing label ${name} from ${this.issueData.number}`);
try {
if (!this.options.readonly)
await this.octokit.issues.removeLabel({
...this.params,
issue_number: this.issueData.number,
name,
});
}
catch (err) {
if (err.status === 404) {
console.log(`Label ${name} not found on issue`);
return;
}
throw err;
}
}
async getClosingInfo() {
var _a;
if ((await this.getIssue()).open) {
return;
}
const options = this.octokit.issues.listEventsForTimeline.endpoint.merge({
...this.params,
issue_number: this.issueData.number,
});
let closingCommit;
for await (const event of this.octokit.paginate.iterator(options)) {
const timelineEvents = event.data;
for (const timelineEvent of timelineEvents) {
if (timelineEvent.event === 'closed') {
closingCommit = {
hash: (_a = timelineEvent.commit_id) !== null && _a !== void 0 ? _a : undefined,
timestamp: +new Date(timelineEvent.created_at),
};
}
}
}
console.log(`Got ${closingCommit} as closing commit of ${this.issueData.number}`);
return closingCommit;
}
}
exports.OctoKitIssue = OctoKitIssue;
function isIssue(object) {
const isIssue = 'author' in object &&
'body' in object &&
'title' in object &&
'labels' in object &&
'open' in object &&
'locked' in object &&
'number' in object &&
'numComments' in object &&
'reactions' in object &&
'milestoneId' in object;
return isIssue;
}

View File

@@ -0,0 +1,336 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { debug } from '@actions/core'
import { GitHub as GitHubAPI } from '@actions/github'
import { Octokit } from '@octokit/rest'
import { exec } from 'child_process'
import { getInput, logRateLimit } from '../utils/utils'
import { Comment, GitHub, GitHubIssue, Issue, Query, User } from './api'
export class OctoKit implements GitHub {
protected octokit: GitHubAPI
// when in readonly mode, record labels just-created so at to not throw unneccesary errors
protected mockLabels: Set<string> = new Set()
constructor(
private token: string,
protected params: { repo: string; owner: string },
protected options: { readonly: boolean } = { readonly: false },
) {
this.octokit = new GitHubAPI(token)
}
async *query(query: Query): AsyncIterableIterator<GitHubIssue[]> {
const q = query.q + ` repo:${this.params.owner}/${this.params.repo}`
console.log(`Querying for ${q}:`)
const options = this.octokit.search.issuesAndPullRequests.endpoint.merge({
...query,
q,
per_page: 100,
headers: { Accept: 'application/vnd.github.squirrel-girl-preview+json' },
})
let pageNum = 0
const timeout = async () => {
if (pageNum < 2) {
/* pass */
} else if (pageNum < 4) {
await new Promise((resolve) => setTimeout(resolve, 3000))
} else {
await new Promise((resolve) => setTimeout(resolve, 30000))
}
}
for await (const pageResponse of this.octokit.paginate.iterator(options)) {
await timeout()
await logRateLimit(this.token)
const page: Array<Octokit.SearchIssuesAndPullRequestsResponseItemsItem> = pageResponse.data
console.log(`Page ${++pageNum}: ${page.map(({ number }) => number).join(' ')}`)
yield page.map(
(issue) => new OctoKitIssue(this.token, this.params, this.octokitIssueToIssue(issue)),
)
}
}
async createIssue(owner: string, repo: string, title: string, body: string): Promise<void> {
debug(`Creating issue \`${title}\` on ${owner}/${repo}`)
if (!this.options.readonly) await this.octokit.issues.create({ owner, repo, title, body })
}
protected octokitIssueToIssue(
issue: Octokit.IssuesGetResponse | Octokit.SearchIssuesAndPullRequestsResponseItemsItem,
): Issue {
return {
author: { name: issue.user.login, isGitHubApp: issue.user.type === 'Bot' },
body: issue.body,
number: issue.number,
title: issue.title,
labels: (issue.labels as Octokit.IssuesGetLabelResponse[]).map((label) => label.name),
open: issue.state === 'open',
locked: (issue as any).locked,
numComments: issue.comments,
reactions: (issue as any).reactions,
assignee: issue.assignee?.login ?? (issue as any).assignees?.[0]?.login,
milestoneId: issue.milestone?.number ?? null,
createdAt: +new Date(issue.created_at),
updatedAt: +new Date(issue.updated_at),
closedAt: issue.closed_at ? +new Date((issue.closed_at as unknown) as string) : undefined,
}
}
private writeAccessCache: Record<string, boolean> = {}
async hasWriteAccess(user: User): Promise<boolean> {
if (user.name in this.writeAccessCache) {
debug('Got permissions from cache for ' + user)
return this.writeAccessCache[user.name]
}
debug('Fetching permissions for ' + user)
const permissions = (
await this.octokit.repos.getCollaboratorPermissionLevel({
...this.params,
username: user.name,
})
).data.permission
return (this.writeAccessCache[user.name] = permissions === 'admin' || permissions === 'write')
}
async repoHasLabel(name: string): Promise<boolean> {
try {
await this.octokit.issues.getLabel({ ...this.params, name })
return true
} catch (err) {
if (err.status === 404) {
return this.options.readonly && this.mockLabels.has(name)
}
throw err
}
}
async createLabel(name: string, color: string, description: string): Promise<void> {
debug('Creating label ' + name)
if (!this.options.readonly)
await this.octokit.issues.createLabel({ ...this.params, color, description, name })
else this.mockLabels.add(name)
}
async deleteLabel(name: string): Promise<void> {
debug('Deleting label ' + name)
try {
if (!this.options.readonly) await this.octokit.issues.deleteLabel({ ...this.params, name })
} catch (err) {
if (err.status === 404) {
return
}
throw err
}
}
async readConfig(path: string): Promise<any> {
debug('Reading config at ' + path)
const repoPath = `.github/${path}.json`
const data = (await this.octokit.repos.getContents({ ...this.params, path: repoPath })).data
if ('type' in data && data.type === 'file') {
if (data.encoding === 'base64' && data.content) {
return JSON.parse(Buffer.from(data.content, 'base64').toString('utf-8'))
}
throw Error(`Could not read contents "${data.content}" in encoding "${data.encoding}"`)
}
throw Error('Found directory at config path when expecting file' + JSON.stringify(data))
}
async releaseContainsCommit(release: string, commit: string): Promise<boolean> {
if (getInput('commitReleasedDebuggingOverride')) {
return true
}
return new Promise((resolve, reject) =>
exec(`git -C ./repo merge-base --is-ancestor ${commit} ${release}`, (err) =>
!err || err.code === 1 ? resolve(!err) : reject(err),
),
)
}
}
export class OctoKitIssue extends OctoKit implements GitHubIssue {
constructor(
token: string,
protected params: { repo: string; owner: string },
private issueData: { number: number } | Issue,
options: { readonly: boolean } = { readonly: false },
) {
super(token, params, options)
}
async addAssignee(assignee: string): Promise<void> {
debug('Adding assignee ' + assignee + ' to ' + this.issueData.number)
if (!this.options.readonly) {
await this.octokit.issues.addAssignees({
...this.params,
issue_number: this.issueData.number,
assignees: [assignee],
})
}
}
async closeIssue(): Promise<void> {
debug('Closing issue ' + this.issueData.number)
if (!this.options.readonly)
await this.octokit.issues.update({
...this.params,
issue_number: this.issueData.number,
state: 'closed',
})
}
async lockIssue(): Promise<void> {
debug('Locking issue ' + this.issueData.number)
if (!this.options.readonly)
await this.octokit.issues.lock({ ...this.params, issue_number: this.issueData.number })
}
async getIssue(): Promise<Issue> {
if (isIssue(this.issueData)) {
debug('Got issue data from query result ' + this.issueData.number)
return this.issueData
}
console.log('Fetching issue ' + this.issueData.number)
const issue = (
await this.octokit.issues.get({
...this.params,
issue_number: this.issueData.number,
mediaType: { previews: ['squirrel-girl'] },
})
).data
return (this.issueData = this.octokitIssueToIssue(issue))
}
async postComment(body: string): Promise<void> {
debug(`Posting comment ${body} on ${this.issueData.number}`)
if (!this.options.readonly)
await this.octokit.issues.createComment({
...this.params,
issue_number: this.issueData.number,
body,
})
}
async deleteComment(id: number): Promise<void> {
debug(`Deleting comment ${id} on ${this.issueData.number}`)
if (!this.options.readonly)
await this.octokit.issues.deleteComment({
owner: this.params.owner,
repo: this.params.repo,
comment_id: id,
})
}
async setMilestone(milestoneId: number) {
debug(`Setting milestone for ${this.issueData.number} to ${milestoneId}`)
if (!this.options.readonly)
await this.octokit.issues.update({
...this.params,
issue_number: this.issueData.number,
milestone: milestoneId,
})
}
async *getComments(last?: boolean): AsyncIterableIterator<Comment[]> {
debug('Fetching comments for ' + this.issueData.number)
const response = this.octokit.paginate.iterator(
this.octokit.issues.listComments.endpoint.merge({
...this.params,
issue_number: this.issueData.number,
per_page: 100,
...(last ? { per_page: 1, page: (await this.getIssue()).numComments } : {}),
}),
)
for await (const page of response) {
yield (page.data as Octokit.IssuesListCommentsResponseItem[]).map((comment) => ({
author: { name: comment.user.login, isGitHubApp: comment.user.type === 'Bot' },
body: comment.body,
id: comment.id,
timestamp: +new Date(comment.created_at),
}))
}
}
async addLabel(name: string): Promise<void> {
debug(`Adding label ${name} to ${this.issueData.number}`)
if (!(await this.repoHasLabel(name))) {
throw Error(`Action could not execute becuase label ${name} is not defined.`)
}
if (!this.options.readonly)
await this.octokit.issues.addLabels({
...this.params,
issue_number: this.issueData.number,
labels: [name],
})
}
async removeLabel(name: string): Promise<void> {
debug(`Removing label ${name} from ${this.issueData.number}`)
try {
if (!this.options.readonly)
await this.octokit.issues.removeLabel({
...this.params,
issue_number: this.issueData.number,
name,
})
} catch (err) {
if (err.status === 404) {
console.log(`Label ${name} not found on issue`)
return
}
throw err
}
}
async getClosingInfo(): Promise<{ hash: string | undefined; timestamp: number } | undefined> {
if ((await this.getIssue()).open) {
return
}
const options = this.octokit.issues.listEventsForTimeline.endpoint.merge({
...this.params,
issue_number: this.issueData.number,
})
let closingCommit: { hash: string | undefined; timestamp: number } | undefined
for await (const event of this.octokit.paginate.iterator(options)) {
const timelineEvents = event.data as Octokit.IssuesListEventsForTimelineResponseItem[]
for (const timelineEvent of timelineEvents) {
if (timelineEvent.event === 'closed') {
closingCommit = {
hash: timelineEvent.commit_id ?? undefined,
timestamp: +new Date(timelineEvent.created_at),
}
}
}
}
console.log(`Got ${closingCommit} as closing commit of ${this.issueData.number}`)
return closingCommit
}
}
function isIssue(object: any): object is Issue {
const isIssue =
'author' in object &&
'body' in object &&
'title' in object &&
'labels' in object &&
'open' in object &&
'locked' in object &&
'number' in object &&
'numComments' in object &&
'reactions' in object &&
'milestoneId' in object
return isIssue
}

View File

@@ -0,0 +1,123 @@
"use strict";
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
Object.defineProperty(exports, "__esModule", { value: true });
class Testbed {
constructor(config) {
var _a, _b, _c, _d, _e;
this.config = {
globalLabels: (_a = config === null || config === void 0 ? void 0 : config.globalLabels) !== null && _a !== void 0 ? _a : [],
configs: (_b = config === null || config === void 0 ? void 0 : config.configs) !== null && _b !== void 0 ? _b : {},
writers: (_c = config === null || config === void 0 ? void 0 : config.writers) !== null && _c !== void 0 ? _c : [],
releasedCommits: (_d = config === null || config === void 0 ? void 0 : config.releasedCommits) !== null && _d !== void 0 ? _d : [],
queryRunner: (_e = config === null || config === void 0 ? void 0 : config.queryRunner) !== null && _e !== void 0 ? _e : async function* () {
yield [];
},
};
}
async *query(query) {
for await (const page of this.config.queryRunner(query)) {
yield page.map((issue) => issue instanceof TestbedIssue ? issue : new TestbedIssue(this.config, issue));
}
}
async createIssue(_owner, _repo, _title, _body) {
// pass...
}
async readConfig(path) {
return JSON.parse(JSON.stringify(this.config.configs[path]));
}
async hasWriteAccess(user) {
return this.config.writers.includes(user.name);
}
async repoHasLabel(label) {
return this.config.globalLabels.includes(label);
}
async createLabel(label, _color, _description) {
this.config.globalLabels.push(label);
}
async deleteLabel(labelToDelete) {
this.config.globalLabels = this.config.globalLabels.filter((label) => label !== labelToDelete);
}
async releaseContainsCommit(_release, commit) {
return this.config.releasedCommits.includes(commit);
}
}
exports.Testbed = Testbed;
class TestbedIssue extends Testbed {
constructor(globalConfig, issueConfig) {
var _a, _b, _c;
super(globalConfig);
issueConfig = issueConfig !== null && issueConfig !== void 0 ? issueConfig : {};
issueConfig.comments = (_a = issueConfig === null || issueConfig === void 0 ? void 0 : issueConfig.comments) !== null && _a !== void 0 ? _a : [];
issueConfig.labels = (_b = issueConfig === null || issueConfig === void 0 ? void 0 : issueConfig.labels) !== null && _b !== void 0 ? _b : [];
issueConfig.issue = {
author: { name: 'JacksonKearl' },
body: 'issue body',
locked: false,
numComments: ((_c = issueConfig === null || issueConfig === void 0 ? void 0 : issueConfig.comments) === null || _c === void 0 ? void 0 : _c.length) || 0,
number: 1,
open: true,
title: 'issue title',
assignee: undefined,
reactions: {
'+1': 0,
'-1': 0,
confused: 0,
eyes: 0,
heart: 0,
hooray: 0,
laugh: 0,
rocket: 0,
},
closedAt: undefined,
createdAt: +new Date(),
updatedAt: +new Date(),
...issueConfig.issue,
};
this.issueConfig = issueConfig;
}
async addAssignee(assignee) {
this.issueConfig.issue.assignee = assignee;
}
async setMilestone(milestoneId) {
this.issueConfig.issue.milestoneId = milestoneId;
}
async getIssue() {
const labels = [...this.issueConfig.labels];
return { ...this.issueConfig.issue, labels };
}
async postComment(body, author) {
this.issueConfig.comments.push({
author: { name: author !== null && author !== void 0 ? author : 'bot' },
body,
id: Math.random(),
timestamp: +new Date(),
});
}
async deleteComment(id) {
this.issueConfig.comments = this.issueConfig.comments.filter((comment) => comment.id !== id);
}
async *getComments(last) {
yield last
? [this.issueConfig.comments[this.issueConfig.comments.length - 1]]
: this.issueConfig.comments;
}
async addLabel(label) {
this.issueConfig.labels.push(label);
}
async removeLabel(labelToDelete) {
this.issueConfig.labels = this.issueConfig.labels.filter((label) => label !== labelToDelete);
}
async closeIssue() {
this.issueConfig.issue.open = false;
}
async lockIssue() {
this.issueConfig.issue.locked = true;
}
async getClosingInfo() {
return this.issueConfig.closingCommit;
}
}
exports.TestbedIssue = TestbedIssue;

View File

@@ -0,0 +1,170 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { Comment, GitHub, GitHubIssue, Issue, Query, User } from './api'
type TestbedConfig = {
globalLabels: string[]
configs: Record<string, any>
writers: string[]
releasedCommits: string[]
queryRunner: (query: Query) => AsyncIterableIterator<(TestbedIssueConstructorArgs | TestbedIssue)[]>
}
export type TestbedConstructorArgs = Partial<TestbedConfig>
export class Testbed implements GitHub {
public config: TestbedConfig
constructor(config?: TestbedConstructorArgs) {
this.config = {
globalLabels: config?.globalLabels ?? [],
configs: config?.configs ?? {},
writers: config?.writers ?? [],
releasedCommits: config?.releasedCommits ?? [],
queryRunner:
config?.queryRunner ??
async function* () {
yield []
},
}
}
async *query(query: Query): AsyncIterableIterator<GitHubIssue[]> {
for await (const page of this.config.queryRunner(query)) {
yield page.map((issue) =>
issue instanceof TestbedIssue ? issue : new TestbedIssue(this.config, issue),
)
}
}
async createIssue(_owner: string, _repo: string, _title: string, _body: string): Promise<void> {
// pass...
}
async readConfig(path: string): Promise<any> {
return JSON.parse(JSON.stringify(this.config.configs[path]))
}
async hasWriteAccess(user: User): Promise<boolean> {
return this.config.writers.includes(user.name)
}
async repoHasLabel(label: string): Promise<boolean> {
return this.config.globalLabels.includes(label)
}
async createLabel(label: string, _color: string, _description: string): Promise<void> {
this.config.globalLabels.push(label)
}
async deleteLabel(labelToDelete: string): Promise<void> {
this.config.globalLabels = this.config.globalLabels.filter((label) => label !== labelToDelete)
}
async releaseContainsCommit(_release: string, commit: string): Promise<boolean> {
return this.config.releasedCommits.includes(commit)
}
}
type TestbedIssueConfig = {
issue: Omit<Issue, 'labels'>
comments: Comment[]
labels: string[]
closingCommit: { hash: string | undefined; timestamp: number } | undefined
}
export type TestbedIssueConstructorArgs = Partial<Omit<TestbedIssueConfig, 'issue'>> & {
issue?: Partial<Omit<Issue, 'labels'>>
}
export class TestbedIssue extends Testbed implements GitHubIssue {
public issueConfig: TestbedIssueConfig
constructor(globalConfig?: TestbedConstructorArgs, issueConfig?: TestbedIssueConstructorArgs) {
super(globalConfig)
issueConfig = issueConfig ?? {}
issueConfig.comments = issueConfig?.comments ?? []
issueConfig.labels = issueConfig?.labels ?? []
issueConfig.issue = {
author: { name: 'JacksonKearl' },
body: 'issue body',
locked: false,
numComments: issueConfig?.comments?.length || 0,
number: 1,
open: true,
title: 'issue title',
assignee: undefined,
reactions: {
'+1': 0,
'-1': 0,
confused: 0,
eyes: 0,
heart: 0,
hooray: 0,
laugh: 0,
rocket: 0,
},
closedAt: undefined,
createdAt: +new Date(),
updatedAt: +new Date(),
...issueConfig.issue,
}
this.issueConfig = issueConfig as TestbedIssueConfig
}
async addAssignee(assignee: string): Promise<void> {
this.issueConfig.issue.assignee = assignee
}
async setMilestone(milestoneId: number): Promise<void> {
this.issueConfig.issue.milestoneId = milestoneId
}
async getIssue(): Promise<Issue> {
const labels = [...this.issueConfig.labels]
return { ...this.issueConfig.issue, labels }
}
async postComment(body: string, author?: string): Promise<void> {
this.issueConfig.comments.push({
author: { name: author ?? 'bot' },
body,
id: Math.random(),
timestamp: +new Date(),
})
}
async deleteComment(id: number): Promise<void> {
this.issueConfig.comments = this.issueConfig.comments.filter((comment) => comment.id !== id)
}
async *getComments(last?: boolean): AsyncIterableIterator<Comment[]> {
yield last
? [this.issueConfig.comments[this.issueConfig.comments.length - 1]]
: this.issueConfig.comments
}
async addLabel(label: string): Promise<void> {
this.issueConfig.labels.push(label)
}
async removeLabel(labelToDelete: string): Promise<void> {
this.issueConfig.labels = this.issueConfig.labels.filter((label) => label !== labelToDelete)
}
async closeIssue(): Promise<void> {
this.issueConfig.issue.open = false
}
async lockIssue(): Promise<void> {
this.issueConfig.issue.locked = true
}
async getClosingInfo(): Promise<{ hash: string | undefined; timestamp: number } | undefined> {
return this.issueConfig.closingCommit
}
}

View File

@@ -0,0 +1,12 @@
name: 'PR Labeler'
description: 'Automatically add a Label to a PR'
inputs:
token:
description: GitHub token with issue, comment, and label read/write permissions
default: ${{ github.token }}
label:
description: Github label to add to the PR
required: true
runs:
using: 'node12'
main: 'index.js'

View File

@@ -0,0 +1,22 @@
"use strict";
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
Object.defineProperty(exports, "__esModule", { value: true });
const core = require("@actions/core");
const github_1 = require("@actions/github");
const octokit_1 = require("../api/octokit");
const utils_1 = require("../utils/utils");
const token = utils_1.getRequiredInput('token');
const label = utils_1.getRequiredInput('label');
async function main() {
const pr = new octokit_1.OctoKitIssue(token, github_1.context.repo, { number: github_1.context.issue.number });
pr.addLabel(label);
}
main()
.then(() => utils_1.logRateLimit(token))
.catch(async (error) => {
core.setFailed(error.message);
await utils_1.logErrorToIssue(error.message, true, token);
});

View File

@@ -0,0 +1,26 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import * as core from '@actions/core'
import { context } from '@actions/github'
import { OctoKitIssue } from '../api/octokit'
import { getRequiredInput, logErrorToIssue, logRateLimit } from '../utils/utils'
const token = getRequiredInput('token');
const label = getRequiredInput('label');
async function main() {
const pr = new OctoKitIssue(token, context.repo, { number: context.issue.number });
pr.addLabel(label);
}
main()
.then(() => logRateLimit(token))
.catch(async (error) => {
core.setFailed(error.message)
await logErrorToIssue(error.message, true, token)
})

View File

@@ -0,0 +1,15 @@
name: Copycat
description: Copy all new issues to a different repo
inputs:
token:
description: GitHub token with issue, comment, and label read/write permissions to both repos
default: ${{ github.token }}
owner:
description: account/organization that owns the destination repo (the microsoft part of microsoft/vscode)
required: true
repo:
description: name of the destination repo (the vscode part of microsoft/vscode)
required: true
runs:
using: 'node12'
main: 'index.js'

View File

@@ -0,0 +1,19 @@
"use strict";
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
Object.defineProperty(exports, "__esModule", { value: true });
class CopyCat {
constructor(github, owner, repo) {
this.github = github;
this.owner = owner;
this.repo = repo;
}
async run() {
const issue = await this.github.getIssue();
console.log(`Mirroring issue \`${issue.title}\` to ${this.owner}/${this.repo}`);
await this.github.createIssue(this.owner, this.repo, issue.title, issue.body.replace(/@|#|issues/g, '-'));
}
}
exports.CopyCat = CopyCat;

View File

@@ -0,0 +1,21 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { GitHubIssue } from '../api/api'
export class CopyCat {
constructor(private github: GitHubIssue, private owner: string, private repo: string) {}
async run() {
const issue = await this.github.getIssue()
console.log(`Mirroring issue \`${issue.title}\` to ${this.owner}/${this.repo}`)
await this.github.createIssue(
this.owner,
this.repo,
issue.title,
issue.body.replace(/@|#|issues/g, '-'),
)
}
}

View File

@@ -0,0 +1,21 @@
"use strict";
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
Object.defineProperty(exports, "__esModule", { value: true });
const core = require("@actions/core");
const github_1 = require("@actions/github");
const octokit_1 = require("../api/octokit");
const utils_1 = require("../utils/utils");
const copyCat_1 = require("./copyCat");
const token = utils_1.getRequiredInput('token');
const main = async () => {
await new copyCat_1.CopyCat(new octokit_1.OctoKitIssue(token, github_1.context.repo, { number: github_1.context.issue.number }), utils_1.getRequiredInput('owner'), utils_1.getRequiredInput('repo')).run();
};
main()
.then(() => utils_1.logRateLimit(token))
.catch(async (error) => {
core.setFailed(error.message);
await utils_1.logErrorToIssue(error.message, true, token);
});

View File

@@ -0,0 +1,27 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import * as core from '@actions/core'
import { context } from '@actions/github'
import { OctoKitIssue } from '../api/octokit'
import { getRequiredInput, logErrorToIssue, logRateLimit } from '../utils/utils'
import { CopyCat } from './copyCat'
const token = getRequiredInput('token')
const main = async () => {
await new CopyCat(
new OctoKitIssue(token, context.repo, { number: context.issue.number }),
getRequiredInput('owner'),
getRequiredInput('repo'),
).run()
}
main()
.then(() => logRateLimit(token))
.catch(async (error) => {
core.setFailed(error.message)
await logErrorToIssue(error.message, true, token)
})

View File

@@ -0,0 +1,24 @@
{
"name": "github-actions",
"version": "1.0.0",
"description": "GitHub Actions",
"scripts": {
"test": "mocha -r ts-node/register **/*.test.ts",
"build": "tsc -p ./tsconfig.json",
"lint": "eslint -c .eslintrc --fix --ext .ts .",
"watch-typecheck": "tsc --watch"
},
"repository": {
"type": "git",
"url": "git+https://github.com/microsoft/azuredatastudio.git"
},
"keywords": [],
"author": "",
"dependencies": {
"@actions/core": "^1.2.3",
"@actions/github": "^2.1.1",
"axios": "^0.19.2",
"ts-node": "^8.6.2",
"typescript": "^3.8.3"
}
}

View File

@@ -0,0 +1,19 @@
{
"compilerOptions": {
"target": "es2019",
"strict": true,
"module": "commonjs",
"moduleResolution": "node",
"removeComments": false,
"resolveJsonModule": true,
"lib": [
"es2020"
],
},
"include": [
"./**/*.ts"
],
"exclude": [
"node_modules"
]
}

View File

@@ -0,0 +1,72 @@
"use strict";
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
Object.defineProperty(exports, "__esModule", { value: true });
const core = require("@actions/core");
const github_1 = require("@actions/github");
const axios_1 = require("axios");
const octokit_1 = require("../api/octokit");
exports.getInput = (name) => core.getInput(name) || undefined;
exports.getRequiredInput = (name) => core.getInput(name, { required: true });
exports.normalizeIssue = (issue) => {
const { body, title } = issue;
const isBug = body.includes('bug_report_template') || /Issue Type:.*Bug.*/.test(body);
const isFeatureRequest = body.includes('feature_request_template') || /Issue Type:.*Feature Request.*/.test(body);
const cleanse = (str) => str
.toLowerCase()
.replace(/<!--.*?-->/gu, '')
.replace(/.* version: .*/gu, '')
.replace(/issue type: .*/gu, '')
.replace(/<details>(.|\s)*?<\/details>/gu, '')
.replace(/vs ?code/gu, '')
.replace(/we have written.*please paste./gu, '')
.replace(/steps to reproduce:/gu, '')
.replace(/does this issue occur when all extensions are disabled.*/gu, '')
.replace(/```(.|\s)*?```/gu, '')
.replace(/!?\[.*?\]\(.*?\)/gu, '')
.replace(/\s+/gu, ' ');
return {
body: cleanse(body),
title: cleanse(title),
issueType: isBug ? 'bug' : isFeatureRequest ? 'feature_request' : 'unknown',
};
};
exports.loadLatestRelease = async (quality) => (await axios_1.default.get(`https://vscode-update.azurewebsites.net/api/update/darwin/${quality}/latest`)).data;
exports.daysAgoToTimestamp = (days) => +new Date(Date.now() - days * 24 * 60 * 60 * 1000);
exports.daysAgoToHumanReadbleDate = (days) => new Date(Date.now() - days * 24 * 60 * 60 * 1000).toISOString().replace(/\.\d{3}\w$/, '');
exports.logRateLimit = async (token) => {
const usageData = (await new github_1.GitHub(token).rateLimit.get()).data.resources;
['core', 'graphql', 'search'].forEach(async (category) => {
const usage = 1 - usageData[category].remaining / usageData[category].limit;
const message = `Usage at ${usage} for ${category}`;
if (usage > 0) {
console.log(message);
}
if (usage > 0.5) {
await exports.logErrorToIssue(message, false, token);
}
});
};
exports.logErrorToIssue = async (message, ping, token) => {
// Attempt to wait out abuse detection timeout if present
await new Promise((resolve) => setTimeout(resolve, 10000));
const dest = github_1.context.repo.repo === 'vscode-internalbacklog'
? { repo: 'vscode-internalbacklog', issue: 974 }
: { repo: 'vscode', issue: 93814 };
return new octokit_1.OctoKitIssue(token, { owner: 'Microsoft', repo: dest.repo }, { number: dest.issue })
.postComment(`
Workflow: ${github_1.context.workflow}
Error: ${message}
Issue: ${ping ? `${github_1.context.repo.owner}/${github_1.context.repo.repo}#` : ''}${github_1.context.issue.number}
Repo: ${github_1.context.repo.owner}/${github_1.context.repo.repo}
<!-- Context:
${JSON.stringify(github_1.context, null, 2).replace(/<!--/gu, '<@--').replace(/-->/gu, '--@>')}
-->
`);
};

View File

@@ -0,0 +1,95 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import * as core from '@actions/core'
import { context, GitHub } from '@actions/github'
import axios from 'axios'
import { OctoKitIssue } from '../api/octokit'
import { Issue } from '../api/api'
export const getInput = (name: string) => core.getInput(name) || undefined
export const getRequiredInput = (name: string) => core.getInput(name, { required: true })
export const normalizeIssue = (
issue: Issue,
): { body: string; title: string; issueType: 'bug' | 'feature_request' | 'unknown' } => {
const { body, title } = issue
const isBug = body.includes('bug_report_template') || /Issue Type:.*Bug.*/.test(body)
const isFeatureRequest =
body.includes('feature_request_template') || /Issue Type:.*Feature Request.*/.test(body)
const cleanse = (str: string) =>
str
.toLowerCase()
.replace(/<!--.*?-->/gu, '')
.replace(/.* version: .*/gu, '')
.replace(/issue type: .*/gu, '')
.replace(/<details>(.|\s)*?<\/details>/gu, '')
.replace(/vs ?code/gu, '')
.replace(/we have written.*please paste./gu, '')
.replace(/steps to reproduce:/gu, '')
.replace(/does this issue occur when all extensions are disabled.*/gu, '')
.replace(/```(.|\s)*?```/gu, '')
.replace(/!?\[.*?\]\(.*?\)/gu, '')
.replace(/\s+/gu, ' ')
return {
body: cleanse(body),
title: cleanse(title),
issueType: isBug ? 'bug' : isFeatureRequest ? 'feature_request' : 'unknown',
}
}
export interface Release {
productVersion: string
timestamp: number
version: string
}
export const loadLatestRelease = async (quality: 'stable' | 'insider'): Promise<Release | undefined> =>
(await axios.get(`https://vscode-update.azurewebsites.net/api/update/darwin/${quality}/latest`)).data
export const daysAgoToTimestamp = (days: number): number => +new Date(Date.now() - days * 24 * 60 * 60 * 1000)
export const daysAgoToHumanReadbleDate = (days: number) =>
new Date(Date.now() - days * 24 * 60 * 60 * 1000).toISOString().replace(/\.\d{3}\w$/, '')
export const logRateLimit = async (token: string) => {
const usageData = (await new GitHub(token).rateLimit.get()).data.resources
;(['core', 'graphql', 'search'] as const).forEach(async (category) => {
const usage = 1 - usageData[category].remaining / usageData[category].limit
const message = `Usage at ${usage} for ${category}`
if (usage > 0) {
console.log(message)
}
if (usage > 0.5) {
await logErrorToIssue(message, false, token)
}
})
}
export const logErrorToIssue = async (message: string, ping: boolean, token: string): Promise<void> => {
// Attempt to wait out abuse detection timeout if present
await new Promise((resolve) => setTimeout(resolve, 10000))
const dest =
context.repo.repo === 'vscode-internalbacklog'
? { repo: 'vscode-internalbacklog', issue: 974 }
: { repo: 'vscode', issue: 93814 }
return new OctoKitIssue(token, { owner: 'Microsoft', repo: dest.repo }, { number: dest.issue })
.postComment(`
Workflow: ${context.workflow}
Error: ${message}
Issue: ${ping ? `${context.repo.owner}/${context.repo.repo}#` : ''}${context.issue.number}
Repo: ${context.repo.owner}/${context.repo.repo}
<!-- Context:
${JSON.stringify(context, null, 2).replace(/<!--/gu, '<@--').replace(/-->/gu, '--@>')}
-->
`)
}

435
build/actions/yarn.lock Normal file
View File

@@ -0,0 +1,435 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
"@actions/core@^1.2.3":
version "1.2.3"
resolved "https://registry.yarnpkg.com/@actions/core/-/core-1.2.3.tgz#e844b4fa0820e206075445079130868f95bfca95"
integrity sha512-Wp4xnyokakM45Uuj4WLUxdsa8fJjKVl1fDTsPbTEcTcuu0Nb26IPQbOtjmnfaCPGcaoPOOqId8H9NapZ8gii4w==
"@actions/github@^2.1.1":
version "2.1.1"
resolved "https://registry.yarnpkg.com/@actions/github/-/github-2.1.1.tgz#bcabedff598196d953f58ba750d5e75549a75142"
integrity sha512-kAgTGUx7yf5KQCndVeHSwCNZuDBvPyxm5xKTswW2lofugeuC1AZX73nUUVDNaysnM9aKFMHv9YCdVJbg7syEyA==
dependencies:
"@actions/http-client" "^1.0.3"
"@octokit/graphql" "^4.3.1"
"@octokit/rest" "^16.43.1"
"@actions/http-client@^1.0.3":
version "1.0.8"
resolved "https://registry.yarnpkg.com/@actions/http-client/-/http-client-1.0.8.tgz#8bd76e8eca89dc8bcf619aa128eba85f7a39af45"
integrity sha512-G4JjJ6f9Hb3Zvejj+ewLLKLf99ZC+9v+yCxoYf9vSyH+WkzPLB2LuUtRMGNkooMqdugGBFStIKXOuvH1W+EctA==
dependencies:
tunnel "0.0.6"
"@octokit/auth-token@^2.4.0":
version "2.4.0"
resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.4.0.tgz#b64178975218b99e4dfe948253f0673cbbb59d9f"
integrity sha512-eoOVMjILna7FVQf96iWc3+ZtE/ZT6y8ob8ZzcqKY1ibSQCnu4O/B7pJvzMx5cyZ/RjAff6DAdEb0O0Cjcxidkg==
dependencies:
"@octokit/types" "^2.0.0"
"@octokit/endpoint@^6.0.1":
version "6.0.1"
resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.1.tgz#16d5c0e7a83e3a644d1ddbe8cded6c3d038d31d7"
integrity sha512-pOPHaSz57SFT/m3R5P8MUu4wLPszokn5pXcB/pzavLTQf2jbU+6iayTvzaY6/BiotuRS0qyEUkx3QglT4U958A==
dependencies:
"@octokit/types" "^2.11.1"
is-plain-object "^3.0.0"
universal-user-agent "^5.0.0"
"@octokit/graphql@^4.3.1":
version "4.3.1"
resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-4.3.1.tgz#9ee840e04ed2906c7d6763807632de84cdecf418"
integrity sha512-hCdTjfvrK+ilU2keAdqNBWOk+gm1kai1ZcdjRfB30oA3/T6n53UVJb7w0L5cR3/rhU91xT3HSqCd+qbvH06yxA==
dependencies:
"@octokit/request" "^5.3.0"
"@octokit/types" "^2.0.0"
universal-user-agent "^4.0.0"
"@octokit/plugin-paginate-rest@^1.1.1":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-1.1.2.tgz#004170acf8c2be535aba26727867d692f7b488fc"
integrity sha512-jbsSoi5Q1pj63sC16XIUboklNw+8tL9VOnJsWycWYR78TKss5PVpIPb1TUUcMQ+bBh7cY579cVAWmf5qG+dw+Q==
dependencies:
"@octokit/types" "^2.0.1"
"@octokit/plugin-request-log@^1.0.0":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.0.tgz#eef87a431300f6148c39a7f75f8cfeb218b2547e"
integrity sha512-ywoxP68aOT3zHCLgWZgwUJatiENeHE7xJzYjfz8WI0goynp96wETBF+d95b8g/uL4QmS6owPVlaxiz3wyMAzcw==
"@octokit/plugin-rest-endpoint-methods@2.4.0":
version "2.4.0"
resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-2.4.0.tgz#3288ecf5481f68c494dd0602fc15407a59faf61e"
integrity sha512-EZi/AWhtkdfAYi01obpX0DF7U6b1VRr30QNQ5xSFPITMdLSfhcBqjamE3F+sKcxPbD7eZuMHu3Qkk2V+JGxBDQ==
dependencies:
"@octokit/types" "^2.0.1"
deprecation "^2.3.1"
"@octokit/request-error@^1.0.2":
version "1.2.1"
resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-1.2.1.tgz#ede0714c773f32347576c25649dc013ae6b31801"
integrity sha512-+6yDyk1EES6WK+l3viRDElw96MvwfJxCt45GvmjDUKWjYIb3PJZQkq3i46TwGwoPD4h8NmTrENmtyA1FwbmhRA==
dependencies:
"@octokit/types" "^2.0.0"
deprecation "^2.0.0"
once "^1.4.0"
"@octokit/request-error@^2.0.0":
version "2.0.0"
resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.0.0.tgz#94ca7293373654400fbb2995f377f9473e00834b"
integrity sha512-rtYicB4Absc60rUv74Rjpzek84UbVHGHJRu4fNVlZ1mCcyUPPuzFfG9Rn6sjHrd95DEsmjSt1Axlc699ZlbDkw==
dependencies:
"@octokit/types" "^2.0.0"
deprecation "^2.0.0"
once "^1.4.0"
"@octokit/request@^5.2.0", "@octokit/request@^5.3.0":
version "5.4.2"
resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.4.2.tgz#74f8e5bbd39dc738a1b127629791f8ad1b3193ee"
integrity sha512-zKdnGuQ2TQ2vFk9VU8awFT4+EYf92Z/v3OlzRaSh4RIP0H6cvW1BFPXq4XYvNez+TPQjqN+0uSkCYnMFFhcFrw==
dependencies:
"@octokit/endpoint" "^6.0.1"
"@octokit/request-error" "^2.0.0"
"@octokit/types" "^2.11.1"
deprecation "^2.0.0"
is-plain-object "^3.0.0"
node-fetch "^2.3.0"
once "^1.4.0"
universal-user-agent "^5.0.0"
"@octokit/rest@^16.43.1":
version "16.43.1"
resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-16.43.1.tgz#3b11e7d1b1ac2bbeeb23b08a17df0b20947eda6b"
integrity sha512-gfFKwRT/wFxq5qlNjnW2dh+qh74XgTQ2B179UX5K1HYCluioWj8Ndbgqw2PVqa1NnVJkGHp2ovMpVn/DImlmkw==
dependencies:
"@octokit/auth-token" "^2.4.0"
"@octokit/plugin-paginate-rest" "^1.1.1"
"@octokit/plugin-request-log" "^1.0.0"
"@octokit/plugin-rest-endpoint-methods" "2.4.0"
"@octokit/request" "^5.2.0"
"@octokit/request-error" "^1.0.2"
atob-lite "^2.0.0"
before-after-hook "^2.0.0"
btoa-lite "^1.0.0"
deprecation "^2.0.0"
lodash.get "^4.4.2"
lodash.set "^4.3.2"
lodash.uniq "^4.5.0"
octokit-pagination-methods "^1.1.0"
once "^1.4.0"
universal-user-agent "^4.0.0"
"@octokit/types@^2.0.0", "@octokit/types@^2.0.1", "@octokit/types@^2.11.1":
version "2.12.1"
resolved "https://registry.yarnpkg.com/@octokit/types/-/types-2.12.1.tgz#4a26b4a85ec121043d3b0745b5798f9d8fd968ca"
integrity sha512-LRLR1tjbcCfAmUElvTmMvLEzstpx6Xt/aQVTg2xvd+kHA2Ekp1eWl5t+gU7bcwjXHYEAzh4hH4WH+kS3vh+wRw==
dependencies:
"@types/node" ">= 8"
"@types/node@>= 8":
version "13.13.2"
resolved "https://registry.yarnpkg.com/@types/node/-/node-13.13.2.tgz#160d82623610db590a64e8ca81784e11117e5a54"
integrity sha512-LB2R1Oyhpg8gu4SON/mfforE525+Hi/M1ineICEDftqNVTyFg1aRIeGuTvXAoWHc4nbrFncWtJgMmoyRvuGh7A==
arg@^4.1.0:
version "4.1.3"
resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089"
integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==
atob-lite@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/atob-lite/-/atob-lite-2.0.0.tgz#0fef5ad46f1bd7a8502c65727f0367d5ee43d696"
integrity sha1-D+9a1G8b16hQLGVyfwNn1e5D1pY=
axios@^0.19.2:
version "0.19.2"
resolved "https://registry.yarnpkg.com/axios/-/axios-0.19.2.tgz#3ea36c5d8818d0d5f8a8a97a6d36b86cdc00cb27"
integrity sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==
dependencies:
follow-redirects "1.5.10"
before-after-hook@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.1.0.tgz#b6c03487f44e24200dd30ca5e6a1979c5d2fb635"
integrity sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A==
btoa-lite@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/btoa-lite/-/btoa-lite-1.0.0.tgz#337766da15801210fdd956c22e9c6891ab9d0337"
integrity sha1-M3dm2hWAEhD92VbCLpxokaudAzc=
buffer-from@^1.0.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
cross-spawn@^6.0.0:
version "6.0.5"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==
dependencies:
nice-try "^1.0.4"
path-key "^2.0.1"
semver "^5.5.0"
shebang-command "^1.2.0"
which "^1.2.9"
debug@=3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
dependencies:
ms "2.0.0"
deprecation@^2.0.0, deprecation@^2.3.1:
version "2.3.1"
resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919"
integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==
diff@^4.0.1:
version "4.0.2"
resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"
integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==
end-of-stream@^1.1.0:
version "1.4.4"
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
dependencies:
once "^1.4.0"
execa@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8"
integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==
dependencies:
cross-spawn "^6.0.0"
get-stream "^4.0.0"
is-stream "^1.1.0"
npm-run-path "^2.0.0"
p-finally "^1.0.0"
signal-exit "^3.0.0"
strip-eof "^1.0.0"
follow-redirects@1.5.10:
version "1.5.10"
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a"
integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==
dependencies:
debug "=3.1.0"
get-stream@^4.0.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"
integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==
dependencies:
pump "^3.0.0"
is-plain-object@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-3.0.0.tgz#47bfc5da1b5d50d64110806c199359482e75a928"
integrity sha512-tZIpofR+P05k8Aocp7UI/2UTa9lTJSebCXpFFoR9aibpokDj/uXBsJ8luUu0tTVYKkMU6URDUuOfJZ7koewXvg==
dependencies:
isobject "^4.0.0"
is-stream@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
isexe@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
isobject@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/isobject/-/isobject-4.0.0.tgz#3f1c9155e73b192022a80819bacd0343711697b0"
integrity sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==
lodash.get@^4.4.2:
version "4.4.2"
resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99"
integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=
lodash.set@^4.3.2:
version "4.3.2"
resolved "https://registry.yarnpkg.com/lodash.set/-/lodash.set-4.3.2.tgz#d8757b1da807dde24816b0d6a84bea1a76230b23"
integrity sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=
lodash.uniq@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=
macos-release@^2.2.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.3.0.tgz#eb1930b036c0800adebccd5f17bc4c12de8bb71f"
integrity sha512-OHhSbtcviqMPt7yfw5ef5aghS2jzFVKEFyCJndQt2YpSQ9qRVSEv2axSJI1paVThEu+FFGs584h/1YhxjVqajA==
make-error@^1.1.1:
version "1.3.6"
resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==
ms@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
nice-try@^1.0.4:
version "1.0.5"
resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
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==
npm-run-path@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=
dependencies:
path-key "^2.0.0"
octokit-pagination-methods@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz#cf472edc9d551055f9ef73f6e42b4dbb4c80bea4"
integrity sha512-fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ==
once@^1.3.1, once@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
dependencies:
wrappy "1"
os-name@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/os-name/-/os-name-3.1.0.tgz#dec19d966296e1cd62d701a5a66ee1ddeae70801"
integrity sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg==
dependencies:
macos-release "^2.2.0"
windows-release "^3.1.0"
p-finally@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=
path-key@^2.0.0, path-key@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
pump@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==
dependencies:
end-of-stream "^1.1.0"
once "^1.3.1"
semver@^5.5.0:
version "5.7.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
shebang-command@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=
dependencies:
shebang-regex "^1.0.0"
shebang-regex@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=
signal-exit@^3.0.0:
version "3.0.3"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"
integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==
source-map-support@^0.5.17:
version "0.5.19"
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61"
integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==
dependencies:
buffer-from "^1.0.0"
source-map "^0.6.0"
source-map@^0.6.0:
version "0.6.1"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
strip-eof@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=
ts-node@^8.6.2:
version "8.9.0"
resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.9.0.tgz#d7bf7272dcbecd3a2aa18bd0b96c7d2f270c15d4"
integrity sha512-rwkXfOs9zmoHrV8xE++dmNd6ZIS+nmHHCxcV53ekGJrxFLMbp+pizpPS07ARvhwneCIECPppOwbZHvw9sQtU4w==
dependencies:
arg "^4.1.0"
diff "^4.0.1"
make-error "^1.1.1"
source-map-support "^0.5.17"
yn "3.1.1"
tunnel@0.0.6:
version "0.0.6"
resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c"
integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==
typescript@^3.8.3:
version "3.8.3"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.8.3.tgz#409eb8544ea0335711205869ec458ab109ee1061"
integrity sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==
universal-user-agent@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-4.0.1.tgz#fd8d6cb773a679a709e967ef8288a31fcc03e557"
integrity sha512-LnST3ebHwVL2aNe4mejI9IQh2HfZ1RLo8Io2HugSif8ekzD1TlWpHpColOB/eh8JHMLkGH3Akqf040I+4ylNxg==
dependencies:
os-name "^3.1.0"
universal-user-agent@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-5.0.0.tgz#a3182aa758069bf0e79952570ca757de3579c1d9"
integrity sha512-B5TPtzZleXyPrUMKCpEHFmVhMN6EhmJYjG5PQna9s7mXeSqGTLap4OpqLl5FCEFUI3UBmllkETwKf/db66Y54Q==
dependencies:
os-name "^3.1.0"
which@^1.2.9:
version "1.3.1"
resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
dependencies:
isexe "^2.0.0"
windows-release@^3.1.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/windows-release/-/windows-release-3.3.0.tgz#dce167e9f8be733f21c849ebd4d03fe66b29b9f0"
integrity sha512-2HetyTg1Y+R+rUgrKeUEhAG/ZuOmTrI1NBb3ZyAGQMYmOJjBBPe4MTodghRkmLJZHwkuPi02anbeGP+Zf401LQ==
dependencies:
execa "^1.0.0"
wrappy@1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
yn@3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"
integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==

View File

@@ -6,24 +6,33 @@
'use strict';
import * as vfs from 'vinyl-fs';
import * as path from 'path';
import * as es from 'event-stream';
import * as fs from 'fs';
const files = [
'.build/extensions/**/*.vsix', // external extensions
'.build/win32-x64/**/*.{exe,zip}', // windows binaries
'.build/linux/sha256hashes.txt', // linux hashes
'.build/linux/deb/amd64/deb/*', // linux debs
'.build/linux/rpm/x86_64/*', // linux rpms
'.build/linux/deb/amd64/deb/*.deb', // linux debs
'.build/linux/rpm/x86_64/*.rpm', // linux rpms
'.build/linux/server/*', // linux server
'.build/linux/archive/*', // linux archive
'.build/docker/**', // docker images
'.build/darwin/**', // darwin binaries
'.build/docker/*', // docker images
'.build/darwin/*', // darwin binaries
'.build/version.json' // version information
];
async function main() {
return new Promise((resolve, reject) => {
const stream = vfs.src(files, { base: '.build', allowEmpty: true })
.pipe(vfs.dest(process.env.BUILD_ARTIFACTSTAGINGDIRECTORY!));
.pipe(es.through(file => {
const filePath = path.join(process.env.BUILD_ARTIFACTSTAGINGDIRECTORY!,
//Preserve intermediate directories after .build folder
file.path.substr(path.resolve('.build').length + 1));
fs.mkdirSync(path.dirname(filePath), { recursive: true });
fs.renameSync(file.path, filePath);
}));
stream.on('end', () => resolve());
stream.on('error', e => reject(e));

View File

@@ -44,15 +44,16 @@ async function doesAssetExist(blobService: azure.BlobService, quality: string, b
return existsResult.exists;
}
async function uploadBlob(blobService: azure.BlobService, quality: string, blobName: string, file: string): Promise<void> {
async function uploadBlob(blobService: azure.BlobService, quality: string, blobName: string, filePath: string, fileName: string): Promise<void> {
const blobOptions: azure.BlobService.CreateBlockBlobRequestOptions = {
contentSettings: {
contentType: mime.lookup(file),
contentType: mime.lookup(filePath),
contentDisposition: `attachment; filename="${fileName}"`,
cacheControl: 'max-age=31536000, public'
}
};
await new Promise((c, e) => blobService.createBlockBlobFromLocalFile(quality, blobName, file, blobOptions, err => err ? e(err) : c()));
await new Promise((c, e) => blobService.createBlockBlobFromLocalFile(quality, blobName, filePath, blobOptions, err => err ? e(err) : c()));
}
function getEnv(name: string): string {
@@ -66,24 +67,24 @@ function getEnv(name: string): string {
}
async function main(): Promise<void> {
const [, , platform, type, name, file] = process.argv;
const [, , platform, type, fileName, filePath] = process.argv;
const quality = getEnv('VSCODE_QUALITY');
const commit = getEnv('BUILD_SOURCEVERSION');
console.log('Creating asset...');
const stat = await new Promise<fs.Stats>((c, e) => fs.stat(file, (err, stat) => err ? e(err) : c(stat)));
const stat = await new Promise<fs.Stats>((c, e) => fs.stat(filePath, (err, stat) => err ? e(err) : c(stat)));
const size = stat.size;
console.log('Size:', size);
const stream = fs.createReadStream(file);
const stream = fs.createReadStream(filePath);
const [sha1hash, sha256hash] = await Promise.all([hashStream('sha1', stream), hashStream('sha256', stream)]);
console.log('SHA1:', sha1hash);
console.log('SHA256:', sha256hash);
const blobName = commit + '/' + name;
const blobName = commit + '/' + fileName;
const storageAccount = process.env['AZURE_STORAGE_ACCOUNT_2']!;
const blobService = azure.createBlobService(storageAccount, process.env['AZURE_STORAGE_ACCESS_KEY_2']!)
@@ -98,7 +99,7 @@ async function main(): Promise<void> {
console.log('Uploading blobs to Azure storage...');
await uploadBlob(blobService, quality, blobName, file);
await uploadBlob(blobService, quality, blobName, filePath, fileName);
console.log('Blobs successfully uploaded.');

View File

@@ -53,7 +53,7 @@ function getConfig(quality: string): Promise<Config> {
};
return new Promise<Config>((c, e) => {
client.queryDocuments(collection, query).toArray((err, results) => {
client.queryDocuments(collection, query, { enableCrossPartitionQuery: true }).toArray((err, results) => {
if (err && err.code !== 409) { return e(err); }
c(!results || results.length === 0 ? createDefaultConfig(quality) : results[0] as any as Config);
@@ -86,7 +86,7 @@ function createOrUpdate(commit: string, quality: string, platform: string, type:
updateTries++;
return new Promise<void>((c, e) => {
client.queryDocuments(collection, updateQuery).toArray((err, results) => {
client.queryDocuments(collection, updateQuery, { enableCrossPartitionQuery: true }).toArray((err, results) => {
if (err) { return e(err); }
if (results.length !== 1) { return e(new Error('No documents')); }
@@ -217,7 +217,13 @@ async function publish(commit: string, quality: string, platform: string, type:
// {{SQL CARBON EDIT}}
// Insiders: nightly build from master
const isReleased = (quality === 'insider' && /^master$|^refs\/heads\/master$/.test(sourceBranch) && /Project Collection Service Accounts|Microsoft.VisualStudio.Services.TFS/.test(queuedBy));
const isReleased = (
(
(quality === 'insider' && /^master$|^refs\/heads\/master$/.test(sourceBranch)) ||
(quality === 'rc1' && /^release\/|^refs\/heads\/release\//.test(sourceBranch))
) &&
/Project Collection Service Accounts|Microsoft.VisualStudio.Services.TFS/.test(queuedBy)
);
const release = {
id: commit,

View File

@@ -2,51 +2,76 @@ steps:
- task: NodeTool@0
inputs:
versionSpec: "12.13.0"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@3 # {{SQL CARBON EDIT}} update version
inputs:
versionSpec: "1.x"
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
inputs:
keyfile: '.yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock, !samples/**/yarn.lock'
keyfile: 'build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock, !samples/**/yarn.lock'
targetfolder: '**/node_modules, !**/node_modules/**/node_modules, !samples/**/node_modules'
vstsFeed: 'npm-cache' # {{SQL CARBON EDIT}} update build cache
- script: |
CHILD_CONCURRENCY=1 yarn --frozen-lockfile
displayName: Install Dependencies
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
- task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1
inputs:
keyfile: '.yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock, !samples/**/yarn.lock'
keyfile: 'build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock, !samples/**/yarn.lock'
targetfolder: '**/node_modules, !**/node_modules/**/node_modules, !samples/**/node_modules'
vstsFeed: 'npm-cache' # {{SQL CARBON EDIT}} update build cache
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
- script: |
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
# yarn monaco-compile-check
# displayName: Run Monaco Editor Checks
- script: |
yarn valid-layers-check
displayName: Run Valid Layers Checks
- script: |
yarn compile
displayName: Compile Sources
# - script: | {{SQL CARBON EDIT}} remove step
# yarn download-builtin-extensions
# displayName: Download Built-in Extensions
- script: |
./scripts/test.sh --tfs "Unit Tests"
displayName: Run Unit Tests
# - script: | {{SQL CARBON EDIT}} remove step
displayName: Run Unit Tests (Electron)
# - script: | {{SQL CARBON EDIT}} disable
# yarn test-browser --browser chromium --browser webkit --browser firefox
# displayName: Run Unit Tests (Browser)
# - script: | {{SQL CARBON EDIT}} disable
# ./scripts/test-integration.sh --tfs "Integration Tests"
# displayName: Run 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: PublishTestResults@2
displayName: Publish Tests Results
inputs:

View File

@@ -0,0 +1,6 @@
<?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

@@ -0,0 +1,8 @@
<?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/>
</dict>
</plist>

View File

@@ -0,0 +1,10 @@
<?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-unsigned-executable-memory</key>
<true/>
<key>com.apple.security.cs.disable-library-validation</key>
<true/>
</dict>
</plist>

View File

@@ -0,0 +1,14 @@
<?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.disable-library-validation</key>
<true/>
<key>com.apple.security.cs.allow-dyld-environment-variables</key>
<true/>
</dict>
</plist>

View File

@@ -96,9 +96,13 @@ steps:
- script: |
set -e
./scripts/test.sh --build --tfs "Unit Tests"
# APP_NAME="`ls $(agent.builddirectory)/VSCode-darwin | head -n 1`"
# yarn smoketest -- --build "$(agent.builddirectory)/VSCode-darwin/$APP_NAME"
displayName: Run unit tests
displayName: Run unit tests (Electron)
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- script: |
set -e
yarn test-browser --build --browser chromium --browser webkit --browser firefox
displayName: Run unit tests (Browser)
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- script: |
@@ -111,33 +115,71 @@ steps:
INTEGRATION_TEST_ELECTRON_PATH="$APP_ROOT/$APP_NAME/Contents/MacOS/Electron" \
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-darwin" \
./scripts/test-integration.sh --build --tfs "Integration Tests"
displayName: Run integration tests
displayName: Run integration tests (Electron)
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
# Web Smoke Tests disabled due to https://github.com/microsoft/vscode/issues/80308
# - script: |
# set -e
# cd test/smoke
# yarn compile
# cd -
# yarn smoketest --web --headless
# continueOnError: true
# displayName: Run web smoke tests
# condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- script: |
set -e
cd test/smoke
yarn compile
cd -
APP_ROOT=$(agent.builddirectory)/VSCode-darwin
APP_NAME="`ls $APP_ROOT | head -n 1`"
INTEGRATION_TEST_ELECTRON_PATH="$APP_ROOT/$APP_NAME/Contents/MacOS/Electron" \
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-darwin" \
./resources/server/test/test-remote-integration.sh
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
APP_NAME="`ls $APP_ROOT | head -n 1`"
yarn smoketest --build "$APP_ROOT/$APP_NAME"
continueOnError: true
displayName: Run smoke 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" \
yarn smoketest --web --headless
continueOnError: true
displayName: Run smoke tests
displayName: Run smoke tests (Browser)
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- task: PublishPipelineArtifact@0
inputs:
artifactName: crash-dump-macos
targetPath: .build/crashes
displayName: 'Publish Crash Reports'
condition: succeededOrFailed()
- script: |
set -e
pushd ../VSCode-darwin && zip -r -X -y ../VSCode-darwin.zip * && popd
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"
displayName: Set Hardened Entitlements
- script: |
set -e
pushd $(agent.builddirectory)/VSCode-darwin && zip -r -X -y $(agent.builddirectory)/VSCode-darwin.zip * && popd
displayName: Archive build
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
@@ -151,14 +193,61 @@ steps:
{
"keyCode": "CP-401337-Apple",
"operationSetCode": "MacAppDeveloperSign",
"parameters": [ ],
"parameters": [
{
"parameterName": "Hardening",
"parameterValue": "--options=runtime"
}
],
"toolName": "sign",
"toolVersion": "1.0"
}
]
SessionTimeout: 120
SessionTimeout: 60
displayName: Codesign
- script: |
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`"
BUNDLE_IDENTIFIER=$(node -p "require(\"$APP_ROOT/$APP_NAME/Contents/Resources/app/product.json\").darwinBundleIdentifier")
echo "##vso[task.setvariable variable=BundleIdentifier]$BUNDLE_IDENTIFIER"
displayName: Export bundle identifier
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
inputs:
ConnectedServiceName: 'ESRP CodeSign'
FolderPath: '$(agent.builddirectory)'
Pattern: 'VSCode-darwin.zip'
signConfigType: inlineSignParams
inlineOperation: |
[
{
"keyCode": "CP-401337-Apple",
"operationSetCode": "MacAppNotarize",
"parameters": [
{
"parameterName": "BundleId",
"parameterValue": "$(BundleIdentifier)"
}
],
"toolName": "sign",
"toolVersion": "1.0"
}
]
SessionTimeout: 60
displayName: Notarization
- script: |
set -e
VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \

View File

@@ -1,9 +1,6 @@
#!/usr/bin/env bash
set -e
# remove pkg from archive
zip -d ../VSCode-darwin.zip "*.pkg"
# publish the build
node build/azure-pipelines/common/createAsset.js \
darwin \
@@ -22,7 +19,9 @@ node build/azure-pipelines/common/createAsset.js \
../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"
# 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

@@ -3,6 +3,7 @@ steps:
displayName: 'Install developer certificate'
inputs:
certSecureFile: 'osx_signing_key.p12'
condition: eq(variables['signed'], true)
- script: |
mkdir -p .build
@@ -91,11 +92,6 @@ steps:
node build/azure-pipelines/mixin
displayName: Mix in quality
- script: |
set -e
yarn gulp install-sqltoolsservice
displayName: Install sqltoolsservice
- script: |
set -e
yarn gulp package-rebuild-extensions
@@ -108,10 +104,38 @@ steps:
- script: |
set -e
./scripts/test.sh --build --coverage --reporter mocha-junit-reporter
./scripts/test.sh --build --coverage --reporter mocha-junit-reporter --tfs "Unit Tests"
displayName: Run unit tests
condition: and(succeeded(), eq(variables['RUN_TESTS'], 'true'))
- script: |
# Figure out the full absolute path of the product we just built
# including the remote server and configure the integration tests
# to run with these builds instead of running out of sources.
set -e
APP_ROOT=$(agent.builddirectory)/azuredatastudio-darwin
APP_NAME="`ls $APP_ROOT | head -n 1`"
INTEGRATION_TEST_ELECTRON_PATH="$APP_ROOT/$APP_NAME/Contents/MacOS/Electron" \
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/azuredatastudio-reh-darwin" \
./scripts/test-integration.sh --build --tfs "Integration Tests"
displayName: Run integration tests (Electron)
condition: and(succeeded(), eq(variables['RUN_TESTS'], 'true'))
- script: |
set -e
APP_ROOT=$(agent.builddirectory)/azuredatastudio-darwin
APP_NAME="`ls $APP_ROOT | head -n 1`"
yarn smoketest --build "$APP_ROOT/$APP_NAME" --screenshots "$(build.artifactstagingdirectory)/smokeshots"
displayName: Run smoke tests (Electron)
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
pushd ../azuredatastudio-darwin
@@ -139,6 +163,7 @@ steps:
codesign --force --timestamp --options runtime --entitlements $(Build.SourcesDirectory)/build/azure-pipelines/darwin/entitlements.xml -s LPV3BJJYXS *.app
popd
displayName: 'Manual codesign'
condition: and(succeeded(), eq(variables['signed'], true))
- script: |
set -e
@@ -148,12 +173,6 @@ steps:
popd
displayName: 'Archive'
- task: PublishPipelineArtifact@0
displayName: 'Publish SelfSigned'
inputs:
artifactName: darwin-selfsigned
targetPath: $(Build.SourcesDirectory)/.build/darwin/archive/azuredatastudio-darwin.zip
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
displayName: 'ESRP CodeSigning'
inputs:
@@ -174,19 +193,12 @@ steps:
}
]
SessionTimeout: 90
condition: and(succeeded(), eq(variables['signtba'], true))
condition: and(succeeded(), eq(variables['signed'], true))
- script: |
zip -d $(Build.SourcesDirectory)/.build/darwin/archive/azuredatastudio-darwin.zip "*.pkg"
displayName: Clean Archive
condition: and(succeeded(), eq(variables['signtba'], true))
- task: PublishPipelineArtifact@0
displayName: 'Publish Signed'
inputs:
artifactName: darwin-signed
targetPath: $(Build.SourcesDirectory)/.build/darwin/archive/azuredatastudio-darwin.zip
condition: and(succeeded(), eq(variables['signtba'], true))
condition: and(succeeded(), eq(variables['signed'], true))
- task: EsrpCodeSigning@1
displayName: 'ESRP Notarization'
@@ -208,14 +220,7 @@ steps:
}
]
SessionTimeout: 120
condition: and(succeeded(), eq(variables['signtba'], true))
- task: PublishPipelineArtifact@0
displayName: 'Publish Notarized'
inputs:
artifactName: darwin-notarized
targetPath: $(Build.SourcesDirectory)/.build/darwin/archive/azuredatastudio-darwin.zip
condition: and(succeeded(), eq(variables['signtba'], true))
condition: and(succeeded(), eq(variables['signed'], true))
- script: |
set -e
@@ -224,6 +229,7 @@ steps:
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: drop'
condition: always()
- task: PublishTestResults@2
displayName: 'Publish Test Results test-results.xml'
@@ -233,14 +239,6 @@ steps:
continueOnError: true
condition: and(succeeded(), eq(variables['RUN_TESTS'], 'true'))
- task: PublishTestResults@2
displayName: 'Publish Integration and Smoke Test Results'
inputs:
testResultsFiles: 'dawin-integration-tests-results.xml'
searchFolder: '$(Build.ArtifactStagingDirectory)\test-results'
continueOnError: true
condition: and(succeeded(), eq(variables['RUN_TESTS'], 'true'))
- task: PublishCodeCoverageResults@1
displayName: 'Publish code coverage from $(Build.SourcesDirectory)/.build/coverage/cobertura-coverage.xml'
inputs:

View File

@@ -15,5 +15,10 @@ $CommitId = $VersionJson.commit
$ZipName = "azuredatastudio-darwin.zip"
$Zip = "$artifactsDir\darwin\archive\$ZipName"
$UploadName = "azuredatastudio-macos-$Version"
node $sourcesDir\build\azure-pipelines\common\publish.js $Quality darwin archive $ZipName $Version true $Zip $CommitId
If (-NOT ($Quality -eq "stable")) {
$UploadName = "$UploadName-$Quality"
}
node $sourcesDir\build\azure-pipelines\common\publish.js $Quality darwin archive "$UploadName.zip" $Version true $Zip $CommitId

View File

@@ -0,0 +1,13 @@
set -e
REPO="$(pwd)"
ROOT="$REPO/.."
PLATFORM_LINUX="linux-x64"
SERVER_BUILD_NAME="azuredatastudio-server-$PLATFORM_LINUX"
# create docker
mkdir -p $REPO/.build/docker
docker build -t azuredatastudio-server -f $REPO/build/azure-pipelines/docker/Dockerfile $ROOT/$SERVER_BUILD_NAME
docker save azuredatastudio-server | gzip > $REPO/.build/docker/azuredatastudio-server-docker.tar.gz
node build/azure-pipelines/common/copyArtifacts.js

View File

@@ -0,0 +1,96 @@
steps:
- task: NodeTool@0
inputs:
versionSpec: '10.15.1'
- 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, !samples/**/yarn.lock'
targetfolder: '**/node_modules, !**/node_modules/**/node_modules, !samples/**/node_modules'
vstsFeed: 'BuildCache'
- script: |
set -e
CHILD_CONCURRENCY=1 yarn --frozen-lockfile
displayName: Install dependencies
env:
GITHUB_TOKEN: $(github-distro-mixin-password)
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, !samples/**/yarn.lock'
targetfolder: '**/node_modules, !**/node_modules/**/node_modules, !samples/**/node_modules'
vstsFeed: 'BuildCache'
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
- task: DownloadBuildArtifacts@0
inputs:
buildType: 'current'
downloadPath: '$(Build.SourcesDirectory)/.build'
artifactName: drop
itemPattern: |
drop/linux/server/*.tar.gz
- script: |
set -e
for f in $(Build.SourcesDirectory)/.build/drop/linux/server/*.tar.gz
do
tar -C $(agent.builddirectory) -zxvf $f
rm $f
done
displayName: Unzip artifacts
- script: |
set -e
./build/azure-pipelines/docker/createDrop.sh
displayName: Create Drop
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: drop'
- task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
displayName: 'Component Detection'
inputs:
failOnAlert: true

View File

@@ -1,8 +1,12 @@
pool:
vmImage: 'Ubuntu-16.04'
trigger: none
pr: none
trigger:
branches:
include: ['master']
pr:
branches:
include: ['master']
steps:
- task: NodeTool@0
@@ -27,10 +31,10 @@ steps:
git config user.email "vscode@microsoft.com"
git config user.name "VSCode"
git checkout origin/electron-6.0.x
git checkout origin/electron-8.0.x
git merge origin/master
# Push master branch into exploration branch
git push origin HEAD:electron-6.0.x
git push origin HEAD:electron-8.0.x
displayName: Sync & Merge Exploration

View File

@@ -1,39 +0,0 @@
trigger:
branches:
include: ['master']
pr: none
jobs:
- job: ExplorationMerge
pool:
vmImage: Ubuntu-16.04
steps:
- task: NodeTool@0
inputs:
versionSpec: "10.15.1"
- script: |
set -e
cat << EOF > ~/.netrc
machine mssqltools.visualstudio.com
login azuredatastudio
password $(DEVOPS_PASSWORD)
EOF
git config user.email "andresse@microsoft.com"
git config user.name "AzureDataStudio"
git remote add explore "$ADS_EXPLORE_REPO"
git fetch explore
git checkout -b merge-branch explore/master
git merge origin/master
git push explore HEAD:master
displayName: Sync & Merge Explore
env:
ADS_EXPLORE_REPO: $(ADS_EXPLORE_REPO)
DEVOPS_PASSWORD: $(DEVOPS_PASSWORD)

View File

@@ -7,54 +7,80 @@ steps:
sudo chmod +x /etc/init.d/xvfb
sudo update-rc.d xvfb defaults
sudo service xvfb start
- task: NodeTool@0
inputs:
versionSpec: "12.13.0"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@3
inputs:
versionSpec: "1.x"
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
inputs:
keyfile: '.yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock, !samples/**/yarn.lock'
keyfile: 'build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock, !samples/**/yarn.lock'
targetfolder: '**/node_modules, !**/node_modules/**/node_modules, !samples/**/node_modules'
vstsFeed: 'npm-cache' # {{SQL CARBON EDIT}} update build cache
- script: |
CHILD_CONCURRENCY=1 yarn --frozen-lockfile
displayName: Install Dependencies
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
- task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1
inputs:
keyfile: '.yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock, !samples/**/yarn.lock'
keyfile: 'build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock, !samples/**/yarn.lock'
targetfolder: '**/node_modules, !**/node_modules/**/node_modules, !samples/**/node_modules'
vstsFeed: 'npm-cache' # {{SQL CARBON EDIT}} update build cache
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
- script: |
yarn electron x64
displayName: Download Electron
- script: |
yarn gulp hygiene
displayName: Run Hygiene Checks
- 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
- script: |
yarn valid-layers-check
displayName: Run Valid Layers Checks
- script: |
yarn compile
displayName: Compile Sources
# - script: | {{SQL CARBON EDIT}} remove step
# yarn download-builtin-extensions
# displayName: Download Built-in Extensions
- script: |
DISPLAY=:10 ./scripts/test.sh --tfs "Unit Tests"
displayName: Run Unit Tests
# - script: | {{SQL CARBON EDIT}} remove step
displayName: Run Unit Tests (Electron)
# - script: | {{SQL CARBON EDIT}} disable
# DISPLAY=:10 yarn test-browser --browser chromium
# displayName: Run Unit Tests (Browser)
# - script: | {{SQL CARBON EDIT}} disable
# DISPLAY=:10 ./scripts/test-integration.sh --tfs "Integration Tests"
# displayName: Run Integration Tests
# displayName: Run Integration Tests (Electron)
# - task: PublishPipelineArtifact@0
# inputs:
# artifactName: crash-dump-linux
# targetPath: .build/crashes
# displayName: 'Publish Crash Reports'
# condition: succeededOrFailed()
- task: PublishTestResults@2
displayName: Publish Tests Results
inputs:

View File

@@ -11,12 +11,6 @@ BUILD="$ROOT/$BUILDNAME"
TARBALL_FILENAME="azuredatastudio-$PLATFORM_LINUX.tar.gz"
TARBALL_PATH="$REPO/.build/linux/archive/$TARBALL_FILENAME"
# create version
PACKAGEJSON="$BUILD/resources/app/package.json"
VERSION=$(node -p "require(\"$PACKAGEJSON\").version")
COMMIT_ID=$(git rev-parse HEAD)
echo -e "{ \"version\": \"$VERSION\", \"quality\": \"$VSCODE_QUALITY\", \"commit\": \"$COMMIT_ID\" }" > "$REPO/.build/version.json"
rm -rf $ROOT/code-*.tar.*
(cd $ROOT && tar -czf $TARBALL_PATH $BUILDNAME)
@@ -29,9 +23,4 @@ SERVER_TARBALL_PATH="$REPO/.build/linux/server/$SERVER_TARBALL_FILENAME"
rm -rf $ROOT/azuredatastudio-server-*.tar.*
(cd $ROOT && mv $LEGACY_SERVER_BUILD_NAME $SERVER_BUILD_NAME && tar --owner=0 --group=0 -czf $SERVER_TARBALL_PATH $SERVER_BUILD_NAME)
# create docker
mkdir -p $REPO/.build/docker
docker build -t azuredatastudio-server -f $REPO/build/azure-pipelines/docker/Dockerfile $ROOT/$SERVER_BUILD_NAME
docker save azuredatastudio-server | gzip > $REPO/.build/docker/azuredatastudio-server-docker.tar.gz
node build/azure-pipelines/common/copyArtifacts.js

View File

@@ -101,7 +101,13 @@ steps:
- script: |
set -e
DISPLAY=:10 ./scripts/test.sh --build --tfs "Unit Tests"
displayName: Run unit tests
displayName: Run unit tests (Electron)
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- script: |
set -e
DISPLAY=:10 yarn test-browser --build --browser chromium
displayName: Run unit tests (Browser)
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- script: |
@@ -114,10 +120,33 @@ steps:
INTEGRATION_TEST_ELECTRON_PATH="$APP_ROOT/$APP_NAME" \
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-linux-x64" \
DISPLAY=:10 ./scripts/test-integration.sh --build --tfs "Integration Tests"
# yarn smoketest -- --build "$(agent.builddirectory)/VSCode-linux-x64"
displayName: Run integration tests
displayName: Run integration tests (Electron)
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- script: |
set -e
APP_ROOT=$(agent.builddirectory)/VSCode-linux-x64
APP_NAME=$(node -p "require(\"$APP_ROOT/resources/app/product.json\").applicationName")
INTEGRATION_TEST_ELECTRON_PATH="$APP_ROOT/$APP_NAME" \
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-linux-x64" \
DISPLAY=:10 ./resources/server/test/test-remote-integration.sh
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'
condition: succeededOrFailed()
- script: |
set -e
yarn gulp "vscode-linux-x64-build-deb"

View File

@@ -28,7 +28,9 @@ 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"
# 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"

View File

@@ -85,12 +85,6 @@ steps:
node build/azure-pipelines/mixin
displayName: Mix in quality
- script: |
set -e
yarn gulp install-sqltoolsservice
yarn gulp install-ssmsmin
displayName: Install extension binaries
- script: |
set -e
yarn gulp vscode-linux-x64-min-ci
@@ -100,12 +94,6 @@ steps:
env:
VSCODE_MIXIN_PASSWORD: $(github-distro-mixin-password)
- script: |
set -e
service xvfb start
displayName: Start xvfb
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- script: |
set -e
yarn gulp package-rebuild-extensions
@@ -113,6 +101,31 @@ steps:
yarn gulp package-external-extensions
displayName: Package External extensions
- script: |
set -e
service xvfb start
displayName: Start xvfb
condition: and(succeeded(), eq(variables['RUN_TESTS'], 'true'))
- script: |
set -e
DISPLAY=:10 ./scripts/test.sh --build --coverage --reporter mocha-junit-reporter --tfs "Unit Tests"
displayName: Run unit tests (Electron)
condition: and(succeeded(), eq(variables['RUN_TESTS'], 'true'))
- script: |
# Figure out the full absolute path of the product we just built
# including the remote server and configure the integration tests
# to run with these builds instead of running out of sources.
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" \
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/azuredatastudio-reh-linux-x64" \
DISPLAY=:10 ./scripts/test-integration.sh --build --tfs "Integration Tests"
displayName: Run integration tests (Electron)
condition: and(succeeded(), eq(variables['RUN_TESTS'], 'true'))
- script: |
set -e
APP_ROOT=$(agent.builddirectory)/azuredatastudio-linux-x64
@@ -147,24 +160,23 @@ steps:
./build/azure-pipelines/linux/createDrop.sh
displayName: Create Drop
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: 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'
- task: PublishTestResults@2
displayName: 'Publish Test Results test-results.xml'
inputs:
testResultsFiles: 'test-results.xml'
searchFolder: '$(Build.SourcesDirectory)'
testResultsFiles: '*.xml'
searchFolder: '$(Build.ArtifactStagingDirectory)/test-results'
continueOnError: true
condition: and(succeeded(), eq(variables['RUN_TESTS'], 'true'))
- task: PublishCodeCoverageResults@1
displayName: 'Publish code coverage from $(Build.SourcesDirectory)/.build/coverage/cobertura-coverage.xml'
inputs:
codeCoverageTool: Cobertura
summaryFileLocation: '$(Build.SourcesDirectory)/.build/coverage/cobertura-coverage.xml'
reportDirectory: '$(Build.SourcesDirectory)/.build/coverage'
continueOnError: true
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: drop'
- task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
displayName: 'Component Detection'

View File

@@ -18,19 +18,34 @@ $Arch = "x64"
$PlatformLinux = "linux-$Arch"
$TarballFilename = "azuredatastudio-linux-$Arch.tar.gz"
$TarballPath = "$artifactsDir\linux\archive\$TarballFilename"
$TarballUploadName = "azuredatastudio-linux-$Version"
node $sourcesDir\build\azure-pipelines\common\publish.js $Quality $PlatformLinux archive-unsigned $TarballFilename $Version true $TarballPath $CommitId
If (-NOT ($Quality -eq "stable")) {
$TarballUploadName = "$TarballUploadName-$Quality"
}
node $sourcesDir\build\azure-pipelines\common\publish.js $Quality $PlatformLinux archive-unsigned "$TarballUploadName.tar.gz" $Version true $TarballPath $CommitId
# Publish DEB
$PlatformDeb = "linux-deb-$Arch"
$DebFilename = "$(Get-ChildItem -File -Name $artifactsDir\linux\deb\amd64\deb\*.deb)"
$DebPath = "$artifactsDir\linux\deb\amd64\deb\$DebFilename"
$DebUploadName = "azuredatastudio-linux-$Version"
node $sourcesDir\build\azure-pipelines\common\publish.js $Quality $PlatformDeb package $DebFilename $Version true $DebPath $CommitId
If (-NOT ($Quality -eq "stable")) {
$DebUploadName = "$DebUploadName-$Quality"
}
node $sourcesDir\build\azure-pipelines\common\publish.js $Quality $PlatformDeb package "$DebUploadName.deb" $Version true $DebPath $CommitId
# Publish RPM
$PlatformRpm = "linux-rpm-$Arch"
$RpmFilename = "$(Get-ChildItem -File -Name $artifactsDir\linux\rpm\x86_64\*.rpm)"
$RpmPath = "$artifactsDir\linux\rpm\x86_64\$RpmFilename"
$RpmUploadName = "azuredatastudio-linux-$Version"
node $sourcesDir\build\azure-pipelines\common\publish.js $Quality $PlatformRpm package $RpmFilename $Version true $RpmPath $CommitId
If (-NOT ($Quality -eq "stable")) {
$RpmUploadName = "$RpmUploadName-$Quality"
}
node $sourcesDir\build\azure-pipelines\common\publish.js $Quality $PlatformRpm package "$RpmUploadName.rpm" $Version true $RpmPath $CommitId

View File

@@ -19,7 +19,7 @@
[ "${NETWORKING}" = "no" ] && exit 0
PROG="/usr/bin/Xvfb"
PROG_OPTIONS=":10 -ac"
PROG_OPTIONS=":10 -ac -screen 0 1024x768x24"
PROG_OUTPUT="/tmp/Xvfb.out"
case "$1" in
@@ -50,4 +50,4 @@ case "$1" in
exit 1
esac
exit $RETVAL
exit $RETVAL

View File

@@ -72,6 +72,29 @@ 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

@@ -63,7 +63,7 @@ steps:
MESSAGE="DefinitelyTyped/DefinitelyTyped#vscode-types-$TAG_VERSION created. Endgame master, please open this link, examine changes and create a PR:"
LINK="https://github.com/DefinitelyTyped/DefinitelyTyped/compare/vscode-types-$TAG_VERSION?quick_pull=1&body=Updating%20VS%20Code%20Extension%20API.%20See%20https%3A%2F%2Fgithub.com%2Fmicrosoft%2Fvscode%2Fissues%2F70175%20for%20details."
MESSAGE2="[@octref, @jrieken, @kmaetzel, @egamma]. Please review and merge PR to publish @types/vscode."
MESSAGE2="[@eamodio, @jrieken, @kmaetzel, @egamma]. Please review and merge PR to publish @types/vscode."
curl -X POST -H "Authorization: Bearer $(SLACK_TOKEN)" \
-H 'Content-type: application/json; charset=utf-8' \

View File

@@ -10,10 +10,14 @@ jobs:
vmImage: 'Ubuntu-16.04'
container: linux-x64
steps:
- script: |
set -e
echo "##vso[build.addbuildtag]$(VSCODE_QUALITY)"
displayName: Add Quality Build Tag
- template: sql-product-compile.yml
- job: macOS
condition: eq(variables['VSCODE_BUILD_MACOS'], 'true')
condition: and(succeeded(), eq(variables['VSCODE_BUILD_MACOS'], 'true'))
pool:
vmImage: macOS-latest
dependsOn:
@@ -23,7 +27,7 @@ jobs:
timeoutInMinutes: 180
- job: Linux
condition: eq(variables['VSCODE_BUILD_LINUX'], 'true')
condition: and(succeeded(), eq(variables['VSCODE_BUILD_LINUX'], 'true'))
pool:
vmImage: 'Ubuntu-16.04'
container: linux-x64
@@ -31,15 +35,27 @@ jobs:
- Compile
steps:
- template: linux/sql-product-build-linux.yml
timeoutInMinutes: 70
- job: Docker
condition: and(succeeded(), eq(variables['VSCODE_BUILD_DOCKER'], 'true'))
pool:
vmImage: 'Ubuntu-16.04'
container: linux-x64
dependsOn:
- Linux
steps:
- template: docker/sql-product-build-docker.yml
- job: Windows
condition: eq(variables['VSCODE_BUILD_WIN32'], 'true')
condition: and(succeeded(), eq(variables['VSCODE_BUILD_WIN32'], 'true'))
pool:
vmImage: VS2017-Win2016
dependsOn:
- Compile
steps:
- template: win32/sql-product-build-win32.yml
timeoutInMinutes: 70
- job: Windows_Test
condition: and(succeeded(), eq(variables['VSCODE_BUILD_WIN32'], 'true'))
@@ -58,6 +74,7 @@ jobs:
dependsOn:
- macOS
- Linux
- Docker
- Windows
- Windows_Test
steps:

View File

@@ -16,12 +16,10 @@ steps:
- task: NodeTool@0
inputs:
versionSpec: "10.15.1"
condition: and(succeeded(), ne(variables['CacheRestored-Compilation'], 'true'))
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@3
inputs:
versionSpec: "1.x"
condition: and(succeeded(), ne(variables['CacheRestored-Compilation'], 'true'))
- task: AzureKeyVault@1
displayName: 'Azure Key Vault: Get Secrets'
@@ -56,26 +54,25 @@ steps:
keyfile: 'build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock, !samples/**/yarn.lock'
targetfolder: '**/node_modules, !**/node_modules/**/node_modules, !samples/**/node_modules'
vstsFeed: 'BuildCache'
condition: and(succeeded(), ne(variables['CacheRestored-Compilation'], 'true'))
- script: |
set -e
CHILD_CONCURRENCY=1 yarn --frozen-lockfile
displayName: Install dependencies
condition: and(succeeded(), ne(variables['CacheRestored-Compilation'], 'true'), ne(variables['CacheRestored'], 'true'))
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, !samples/**/yarn.lock'
targetfolder: '**/node_modules, !**/node_modules/**/node_modules, !samples/**/node_modules'
vstsFeed: 'BuildCache'
condition: and(succeeded(), ne(variables['CacheRestored-Compilation'], 'true'), ne(variables['CacheRestored'], 'true'))
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
- script: |
set -e
yarn postinstall
displayName: Run postinstall scripts
condition: and(succeeded(), ne(variables['CacheRestored-Compilation'], 'true'), eq(variables['CacheRestored'], 'true'))
condition: and(succeeded(), eq(variables['CacheRestored'], 'true'))
# Mixin must run before optimize, because the CSS loader will
# inline small SVGs
@@ -87,10 +84,11 @@ steps:
- script: |
set -e
yarn sqllint
yarn gulp hygiene
yarn strict-vscode
yarn valid-layers-check
displayName: Run hygiene, tslint
displayName: Run hygiene, eslint
condition: and(succeeded(), ne(variables['CacheRestored-Compilation'], 'true'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- script: |
@@ -103,6 +101,19 @@ steps:
displayName: Compile
condition: and(succeeded(), ne(variables['CacheRestored-Compilation'], 'true'))
- script: |
set -e
VERSION=$(node -p "require(\"./package.json\").version")
echo -e "{ \"version\": \"$VERSION\", \"quality\": \"$VSCODE_QUALITY\", \"commit\": \"$BUILD_SOURCEVERSION\" }" > ".build/version.json"
node build/azure-pipelines/common/copyArtifacts.js
displayName: Write Version Information
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: drop'
- task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1
inputs:
keyfile: 'build/.cachesalt, .build/commit, .build/quality'

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="EsrpClient" version="1.0.27" />
<package id="Microsoft.ESRPClient" version="1.2.25" />
</packages>

View File

@@ -2,56 +2,83 @@ steps:
- task: NodeTool@0
inputs:
versionSpec: "12.13.0"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@3 # {{SQL CARBON EDIT}} update version
inputs:
versionSpec: "1.x"
- task: UsePythonVersion@0
inputs:
versionSpec: '2.x'
addToPath: true
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
inputs:
keyfile: '.yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock, !samples/**/yarn.lock'
keyfile: 'build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock, !samples/**/yarn.lock'
targetfolder: '**/node_modules, !**/node_modules/**/node_modules, !samples/**/node_modules'
vstsFeed: 'npm-cache' # {{SQL CARBON EDIT}} update build cache
- powershell: |
yarn --frozen-lockfile
env:
CHILD_CONCURRENCY: "1"
displayName: Install Dependencies
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
- task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1
inputs:
keyfile: '.yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock, !samples/**/yarn.lock'
keyfile: 'build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock, !samples/**/yarn.lock'
targetfolder: '**/node_modules, !**/node_modules/**/node_modules, !samples/**/node_modules'
vstsFeed: 'npm-cache' # {{SQL CARBON EDIT}} update build cache
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
- powershell: |
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
# yarn monaco-compile-check
# displayName: Run Monaco Editor Checks
- script: |
yarn valid-layers-check
displayName: Run Valid Layers Checks
- powershell: |
yarn compile
displayName: Compile Sources
# - powershell: | {{SQL CARBON EDIT}} remove step
# yarn download-builtin-extensions
# displayName: Download Built-in Extensions
- powershell: |
.\scripts\test.bat --tfs "Unit Tests"
displayName: Run Unit Tests
# - powershell: | {{SQL CARBON EDIT}} remove step
displayName: Run Unit Tests (Electron)
# - powershell: | {{SQL CARBON EDIT}} disable
# yarn test-browser --browser chromium --browser firefox
# displayName: Run Unit Tests (Browser)
# - powershell: | {{SQL CARBON EDIT}} disable
# .\scripts\test-integration.bat --tfs "Integration Tests"
# displayName: Run 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: PublishTestResults@2
displayName: Publish Tests Results
inputs:

View File

@@ -109,7 +109,14 @@ steps:
$ErrorActionPreference = "Stop"
exec { yarn electron $(VSCODE_ARCH) }
exec { .\scripts\test.bat --build --tfs "Unit Tests" }
displayName: Run unit tests
displayName: Run unit tests (Electron)
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- powershell: |
. build/azure-pipelines/win32/exec.ps1
$ErrorActionPreference = "Stop"
exec { yarn test-browser --build --browser chromium --browser firefox }
displayName: Run unit tests (Browser)
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- powershell: |
@@ -122,9 +129,33 @@ steps:
$AppProductJson = Get-Content -Raw -Path "$AppRoot\resources\app\product.json" | ConvertFrom-Json
$AppNameShort = $AppProductJson.nameShort
exec { $env:INTEGRATION_TEST_ELECTRON_PATH = "$AppRoot\$AppNameShort.exe"; $env:VSCODE_REMOTE_SERVER_PATH = "$(agent.builddirectory)\vscode-reh-win32-$(VSCODE_ARCH)"; .\scripts\test-integration.bat --build --tfs "Integration Tests" }
displayName: Run integration tests
displayName: Run integration tests (Electron)
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- powershell: |
. build/azure-pipelines/win32/exec.ps1
$ErrorActionPreference = "Stop"
$AppRoot = "$(agent.builddirectory)\VSCode-win32-$(VSCODE_ARCH)"
$AppProductJson = Get-Content -Raw -Path "$AppRoot\resources\app\product.json" | ConvertFrom-Json
$AppNameShort = $AppProductJson.nameShort
exec { $env:INTEGRATION_TEST_ELECTRON_PATH = "$AppRoot\$AppNameShort.exe"; $env:VSCODE_REMOTE_SERVER_PATH = "$(agent.builddirectory)\vscode-reh-win32-$(VSCODE_ARCH)"; .\resources\server\test\test-remote-integration.bat }
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'
condition: succeededOrFailed()
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
inputs:
ConnectedServiceName: 'ESRP CodeSign'

View File

@@ -11,13 +11,12 @@ $SystemExe = "$Repo\.build\win32-$Arch\system-setup\VSCodeSetup.exe"
$UserExe = "$Repo\.build\win32-$Arch\user-setup\VSCodeSetup.exe"
$Zip = "$Repo\.build\win32-$Arch\archive\VSCode-win32-$Arch.zip"
$LegacyServer = "$Root\vscode-reh-win32-$Arch"
$ServerName = "vscode-server-win32-$Arch"
$Server = "$Root\$ServerName"
$Server = "$Root\vscode-server-win32-$Arch"
$ServerZip = "$Repo\.build\vscode-server-win32-$Arch.zip"
$Build = "$Root\VSCode-win32-$Arch"
# Create server archive
exec { Rename-Item -Path $LegacyServer -NewName $ServerName }
exec { xcopy $LegacyServer $Server /H /E /I }
exec { .\node_modules\7zip\7zip-lite\7z.exe a -tzip $ServerZip $Server -r }
# get version
@@ -31,6 +30,8 @@ exec { node build/azure-pipelines/common/createAsset.js "$AssetPlatform" setup "
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 }
# $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 }

View File

@@ -67,4 +67,4 @@ $Input = Create-TmpJson @{
$Output = [System.IO.Path]::GetTempFileName()
$ScriptPath = Split-Path -Path $MyInvocation.MyCommand.Definition -Parent
& "$ScriptPath\ESRPClient\packages\EsrpClient.1.0.27\tools\ESRPClient.exe" Sign -a $Auth -p $Policy -i $Input -o $Output
& "$ScriptPath\ESRPClient\packages\Microsoft.ESRPClient.1.2.25\tools\ESRPClient.exe" Sign -a $Auth -p $Policy -i $Input -o $Output

View File

@@ -90,12 +90,6 @@ steps:
exec { node build/azure-pipelines/mixin }
displayName: Mix in quality
- powershell: |
. build/azure-pipelines/win32/exec.ps1
$ErrorActionPreference = "Stop"
exec { yarn gulp "install-sqltoolsservice" }
displayName: Install sqltoolsservice
- powershell: |
. build/azure-pipelines/win32/exec.ps1
$ErrorActionPreference = "Stop"
@@ -103,14 +97,37 @@ steps:
exec { yarn gulp "vscode-win32-x64-min-ci" }
exec { yarn gulp "vscode-reh-win32-x64-min-ci" }
exec { yarn gulp "vscode-reh-web-win32-x64-min-ci" }
exec { yarn gulp "vscode-win32-x64-code-helper" }
exec { yarn gulp "vscode-win32-x64-inno-updater" }
displayName: Build
env:
VSCODE_MIXIN_PASSWORD: $(github-distro-mixin-password)
# - powershell: | @anthonydresser unit tests timeout never existing the node process
# . build/azure-pipelines/win32/exec.ps1
# $ErrorActionPreference = "Stop"
# exec { yarn electron x64 }
# exec { .\scripts\test.bat --build --coverage --reporter mocha-junit-reporter --tfs "Unit Tests" }
# displayName: Run unit tests (Electron)
# condition: and(succeeded(), eq(variables['RUN_TESTS'], 'true'))
- powershell: |
# Figure out the full absolute path of the product we just built
# including the remote server and configure the integration tests
# to run with these builds instead of running out of sources.
. build/azure-pipelines/win32/exec.ps1
$ErrorActionPreference = "Stop"
$AppRoot = "$(agent.builddirectory)\azuredatastudio-win32-x64"
$AppProductJson = Get-Content -Raw -Path "$AppRoot\resources\app\product.json" | ConvertFrom-Json
$AppNameShort = $AppProductJson.nameShort
exec { $env:INTEGRATION_TEST_ELECTRON_PATH = "$AppRoot\$AppNameShort.exe"; $env:VSCODE_REMOTE_SERVER_PATH = "$(agent.builddirectory)\azuredatastudio-reh-win32-x64"; .\scripts\test-integration.bat --build --tfs "Integration Tests" }
displayName: Run integration tests (Electron)
condition: and(succeeded(), eq(variables['RUN_TESTS'], 'true'))
- powershell: |
. build/azure-pipelines/win32/exec.ps1
$ErrorActionPreference = "Stop"
exec { .\scripts\test-unstable.bat --build --coverage --reporter mocha-junit-reporter }
exec { .\scripts\test-unstable.bat --build --tfs }
continueOnError: true
condition: and(succeeded(), eq(variables['RUN_UNSTABLE_TESTS'], 'true'))
displayName: Run unstable tests

View File

@@ -19,6 +19,9 @@ steps:
buildType: 'current'
targetPath: '$(Build.SourcesDirectory)\.build'
artifactName: drop
itemPattern: |
drop/extensions/**
drop/win32-x64/**
- powershell: |
. build/azure-pipelines/win32/exec.ps1
@@ -47,7 +50,7 @@ steps:
$AppProductJson = Get-Content -Raw -Path "$AppRoot\resources\app\product.json" | ConvertFrom-Json
$AppNameShort = $AppProductJson.nameShort
exec { $env:INTEGRATION_TEST_ELECTRON_PATH = "$AppRoot\$AppNameShort.exe"; $env:INTEGRATION_TEST_CLI_PATH = "$AppRoot\bin\$AppNameShort"; .\scripts\sql-test-integration.bat }
continueOnError: true
continueOnError: false
condition: and(succeeded(), eq(variables['RUN_TESTS'], 'true'))
displayName: Run stable tests
env:

View File

@@ -20,10 +20,20 @@ $Version = $VersionJson.version
$Quality = $VersionJson.quality
$CommitId = $VersionJson.commit
$ZipUploadName = "azuredatastudio-windows-$Version"
$SetupUploadName = "azuredatastudio-windows-setup-$Version"
$UserUploadName = "azuredatastudio-windows-user-setup-$Version"
$assetPlatform = "win32-x64"
node $sourcesDir/build/azure-pipelines/common/publish.js $Quality "$assetPlatform-archive" archive $ZipName $Version true $Zip $CommitId
If (-NOT ($Quality -eq "stable")) {
$ZipUploadName = "$ZipUploadName-$Quality"
$SetupUploadName = "$SetupUploadName-$Quality"
$UserUploadName = "$UserUploadName-$Quality"
}
node $sourcesDir/build/azure-pipelines/common/publish.js $Quality "$assetPlatform" setup $ExeName $Version true $SystemExe $CommitId
node $sourcesDir/build/azure-pipelines/common/publish.js $Quality "$assetPlatform-archive" archive "$ZipUploadName.zip" $Version true $Zip $CommitId
node $sourcesDir/build/azure-pipelines/common/publish.js $Quality "$assetPlatform-user" setup $UserExeName $Version true $UserExe $CommitId
node $sourcesDir/build/azure-pipelines/common/publish.js $Quality "$assetPlatform" setup "$SetupUploadName.exe" $Version true $SystemExe $CommitId
node $sourcesDir/build/azure-pipelines/common/publish.js $Quality "$assetPlatform-user" setup "$UserUploadName.exe" $Version true $UserExe $CommitId

View File

@@ -1,7 +0,0 @@
[
{
"name": "Microsoft.sqlservernotebook",
"version": "0.3.4",
"repo": "https://github.com/Microsoft/azuredatastudio"
}
]

View File

@@ -6,12 +6,10 @@
const fs = require('fs');
const path = require('path');
const os = require('os');
// @ts-ignore review
const { remote } = require('electron');
const dialog = remote.dialog;
const productJsonPath = path.join(__dirname, '..', '..', 'product.json');
const builtInExtensionsPath = path.join(__dirname, '..', 'builtInExtensions.json');
const builtInExtensionsPath = path.join(__dirname, '..', '..', 'product.json');
const controlFilePath = path.join(os.homedir(), '.vscode-oss-dev', 'extensions', 'control.json');
function readJson(filePath) {
@@ -52,7 +50,6 @@ function render(el, state) {
}
const ul = document.createElement('ul');
const { quality } = readJson(productJsonPath);
const { builtin, control } = state;
for (const ext of builtin) {
@@ -63,10 +60,6 @@ function render(el, state) {
const name = document.createElement('code');
name.textContent = ext.name;
if (quality && ext.forQualities && !ext.forQualities.includes(quality)) {
name.textContent += ` (only on ${ext.forQualities.join(', ')})`;
}
li.appendChild(name);
const form = document.createElement('form');
@@ -117,7 +110,7 @@ function render(el, state) {
function main() {
const el = document.getElementById('extensions');
const builtin = readJson(builtInExtensionsPath);
const builtin = readJson(builtInExtensionsPath).builtInExtensions;
let control;
try {

View File

@@ -16,6 +16,8 @@ const cp = require('child_process');
const compilation = require('./lib/compilation');
const monacoapi = require('./monaco/api');
const fs = require('fs');
const webpack = require('webpack');
const webpackGulp = require('webpack-stream');
let root = path.dirname(__dirname);
let sha1 = util.getVersion(root);
@@ -41,7 +43,7 @@ let editorEntryPoints = [
];
let editorResources = [
'out-editor-build/vs/base/browser/ui/codiconLabel/**/*.ttf'
'out-editor-build/vs/base/browser/ui/codicons/**/*.ttf'
];
let BUNDLED_FILE_HEADER = [
@@ -70,13 +72,8 @@ const extractEditorSrcTask = task.define('extract-editor-src', () => {
apiusages,
extrausages
],
libs: [
`lib.es5.d.ts`,
`lib.dom.d.ts`,
`lib.webworker.importscripts.d.ts`
],
shakeLevel: 2, // 0-Files, 1-InnerFile, 2-ClassMembers
importIgnorePattern: /(^vs\/css!)|(promise-polyfill\/polyfill)/,
importIgnorePattern: /(^vs\/css!)/,
destRoot: path.join(root, 'out-editor-src'),
redirects: []
});
@@ -129,6 +126,7 @@ const createESMSourcesAndResourcesTask = task.define('extract-editor-esm', () =>
});
const compileEditorESMTask = task.define('compile-editor-esm', () => {
const KEEP_PREV_ANALYSIS = false;
console.log(`Launching the TS compiler at ${path.join(__dirname, '../out-editor-esm')}...`);
let result;
if (process.platform === 'win32') {
@@ -147,41 +145,45 @@ const compileEditorESMTask = task.define('compile-editor-esm', () => {
if (result.status !== 0) {
console.log(`The TS Compilation failed, preparing analysis folder...`);
const destPath = path.join(__dirname, '../../vscode-monaco-editor-esm-analysis');
return util.rimraf(destPath)().then(() => {
fs.mkdirSync(destPath);
// initialize a new repository
cp.spawnSync(`git`, [`init`], {
cwd: destPath
});
const keepPrevAnalysis = (KEEP_PREV_ANALYSIS && fs.existsSync(destPath));
const cleanDestPath = (keepPrevAnalysis ? Promise.resolve() : util.rimraf(destPath)());
return cleanDestPath.then(() => {
// build a list of files to copy
const files = util.rreddir(path.join(__dirname, '../out-editor-esm'));
// copy files from src
for (const file of files) {
const srcFilePath = path.join(__dirname, '../src', file);
const dstFilePath = path.join(destPath, file);
if (fs.existsSync(srcFilePath)) {
util.ensureDir(path.dirname(dstFilePath));
const contents = fs.readFileSync(srcFilePath).toString().replace(/\r\n|\r|\n/g, '\n');
fs.writeFileSync(dstFilePath, contents);
if (!keepPrevAnalysis) {
fs.mkdirSync(destPath);
// initialize a new repository
cp.spawnSync(`git`, [`init`], {
cwd: destPath
});
// copy files from src
for (const file of files) {
const srcFilePath = path.join(__dirname, '../src', file);
const dstFilePath = path.join(destPath, file);
if (fs.existsSync(srcFilePath)) {
util.ensureDir(path.dirname(dstFilePath));
const contents = fs.readFileSync(srcFilePath).toString().replace(/\r\n|\r|\n/g, '\n');
fs.writeFileSync(dstFilePath, contents);
}
}
// create an initial commit to diff against
cp.spawnSync(`git`, [`add`, `.`], {
cwd: destPath
});
// create the commit
cp.spawnSync(`git`, [`commit`, `-m`, `"original sources"`, `--no-gpg-sign`], {
cwd: destPath
});
}
// create an initial commit to diff against
cp.spawnSync(`git`, [`add`, `.`], {
cwd: destPath
});
// create the commit
cp.spawnSync(`git`, [`commit`, `-m`, `"original sources"`, `--no-gpg-sign`], {
cwd: destPath
});
// copy files from esm
// copy files from tree shaken src
for (const file of files) {
const srcFilePath = path.join(__dirname, '../out-editor-esm', file);
const srcFilePath = path.join(__dirname, '../out-editor-src', file);
const dstFilePath = path.join(destPath, file);
if (fs.existsSync(srcFilePath)) {
util.ensureDir(path.dirname(dstFilePath));
@@ -227,8 +229,13 @@ function toExternalDTS(contents) {
if (line.indexOf('declare namespace monaco.') === 0) {
lines[i] = line.replace('declare namespace monaco.', 'export namespace ');
}
if (line.indexOf('declare let MonacoEnvironment') === 0) {
lines[i] = `declare global {\n let MonacoEnvironment: Environment | undefined;\n}`;
// lines[i] = line.replace('declare namespace monaco.', 'export namespace ');
}
}
return lines.join('\n');
return lines.join('\n').replace(/\n\n\n+/g, '\n\n');
}
function filterStream(testFunc) {
@@ -327,6 +334,13 @@ const finalEditorResourcesTask = task.define('final-editor-resources', () => {
);
});
gulp.task('extract-editor-src',
task.series(
util.rimraf('out-editor-src'),
extractEditorSrcTask
)
);
gulp.task('editor-distro',
task.series(
task.parallel(
@@ -353,6 +367,49 @@ gulp.task('editor-distro',
)
);
const bundleEditorESMTask = task.define('editor-esm-bundle-webpack', () => {
const result = es.through();
const webpackConfigPath = path.join(root, 'build/monaco/monaco.webpack.config.js');
const webpackConfig = {
...require(webpackConfigPath),
...{ mode: 'production' }
};
const webpackDone = (err, stats) => {
if (err) {
result.emit('error', err);
return;
}
const { compilation } = stats;
if (compilation.errors.length > 0) {
result.emit('error', compilation.errors.join('\n'));
}
if (compilation.warnings.length > 0) {
result.emit('data', compilation.warnings.join('\n'));
}
};
return webpackGulp(webpackConfig, webpack, webpackDone)
.pipe(gulp.dest('out-editor-esm-bundle'));
});
gulp.task('editor-esm-bundle',
task.series(
task.parallel(
util.rimraf('out-editor-src'),
util.rimraf('out-editor-esm'),
util.rimraf('out-monaco-editor-core'),
util.rimraf('out-editor-esm-bundle'),
),
extractEditorSrcTask,
createESMSourcesAndResourcesTask,
compileEditorESMTask,
bundleEditorESMTask,
)
);
gulp.task('monacodts', task.define('monacodts', () => {
const result = monacoapi.execute();
fs.writeFileSync(result.filePath, result.content);
@@ -398,10 +455,8 @@ function createTscCompileTask(watch) {
// e.g. src/vs/base/common/strings.ts(663,5): error TS2322: Type '1234' is not assignable to type 'string'.
let fullpath = path.join(root, match[1]);
let message = match[3];
// @ts-ignore
reporter(fullpath + message);
} else {
// @ts-ignore
reporter(str);
}
}

View File

@@ -33,7 +33,9 @@ const all = [
'scripts/**/*',
'src/**/*',
'test/**/*',
'!**/node_modules/**'
'!test/**/out/**',
'!**/node_modules/**',
'!build/actions/**/*.js' // {{ SQL CARBON EDIT }}
];
const indentationFilter = [
@@ -53,8 +55,7 @@ const indentationFilter = [
'!src/vs/base/common/marked/marked.js',
'!src/vs/base/node/terminateProcess.sh',
'!src/vs/base/node/cpuUsage.sh',
'!test/assert.js',
'!build/testSetup.js',
'!test/unit/assert.js',
// except specific folders
'!test/automation/out/**',
@@ -66,7 +67,6 @@ const indentationFilter = [
// except multiple specific files
'!**/package.json',
'!**/package-lock.json', // {{SQL CARBON EDIT}}
'!**/yarn.lock',
'!**/yarn-error.log',
@@ -84,7 +84,7 @@ const indentationFilter = [
'!src/vs/*/**/*.d.ts',
'!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}',
'!**/*.{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/**/*.sh',
'!build/azure-pipelines/**/*.js',
@@ -95,15 +95,22 @@ const indentationFilter = [
'!**/*.dockerfile',
'!extensions/markdown-language-features/media/*.js',
// {{SQL CARBON EDIT}}
'!**/*.{xlf,docx,sql,vsix,bacpac,ipynb}',
'!build/actions/**/*.js',
'!**/*.{xlf,docx,sql,vsix,bacpac,ipynb,jpg}',
'!extensions/mssql/sqltoolsservice/**',
'!extensions/import/flatfileimportservice/**',
'!extensions/admin-tool-ext-win/ssmsmin/**',
'!extensions/resource-deployment/notebooks/**',
'!extensions/mssql/notebooks/**',
'!extensions/integration-tests/testData/**',
'!extensions/arc/src/controller/generated/**',
'!extensions/sql-database-projects/resources/templates/*.xml',
'!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/big-data-cluster/src/bigDataCluster/controller/apiGenerated.ts',
'!extensions/big-data-cluster/src/bigDataCluster/controller/clusterApiGenerated2.ts'
'!extensions/big-data-cluster/src/bigDataCluster/controller/clusterApiGenerated2.ts',
'!resources/linux/snap/electron-launch'
];
const copyrightFilter = [
@@ -125,7 +132,6 @@ const copyrightFilter = [
'!**/*.disabled',
'!**/*.code-workspace',
'!**/*.js.map',
'!**/promise-polyfill/polyfill.js',
'!build/**/*.init',
'!resources/linux/snap/snapcraft.yaml',
'!resources/linux/snap/electron-launch',
@@ -141,9 +147,9 @@ const copyrightFilter = [
'!extensions/mssql/src/hdfs/webhdfs.ts',
'!src/sql/workbench/contrib/notebook/browser/outputs/tableRenderers.ts',
'!src/sql/workbench/contrib/notebook/common/models/url.ts',
'!src/sql/workbench/contrib/notebook/browser/models/renderMimeInterfaces.ts',
'!src/sql/workbench/services/notebook/browser/outputs/renderMimeInterfaces.ts',
'!src/sql/workbench/contrib/notebook/browser/models/outputProcessor.ts',
'!src/sql/workbench/contrib/notebook/browser/models/mimemodel.ts',
'!src/sql/workbench/services/notebook/browser/outputs/mimemodel.ts',
'!src/sql/workbench/contrib/notebook/browser/cellViews/media/*.css',
'!src/sql/base/browser/ui/table/plugins/rowSelectionModel.plugin.ts',
'!src/sql/base/browser/ui/table/plugins/rowDetailView.ts',
@@ -151,11 +157,11 @@ const copyrightFilter = [
'!src/sql/base/browser/ui/table/plugins/checkboxSelectColumn.plugin.ts',
'!src/sql/base/browser/ui/table/plugins/cellSelectionModel.plugin.ts',
'!src/sql/base/browser/ui/table/plugins/autoSizeColumns.plugin.ts',
'!src/sql/workbench/contrib/notebook/browser/outputs/sanitizer.ts',
'!src/sql/workbench/services/notebook/browser/outputs/sanitizer.ts',
'!src/sql/workbench/contrib/notebook/browser/outputs/renderers.ts',
'!src/sql/workbench/contrib/notebook/browser/outputs/registry.ts',
'!src/sql/workbench/contrib/notebook/browser/outputs/factories.ts',
'!src/sql/workbench/contrib/notebook/common/models/nbformat.ts',
'!src/sql/workbench/services/notebook/browser/outputs/registry.ts',
'!src/sql/workbench/services/notebook/browser/outputs/factories.ts',
'!src/sql/workbench/services/notebook/common/nbformat.ts',
'!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',
@@ -199,14 +205,7 @@ const tsHygieneFilter = [
'!extensions/big-data-cluster/src/bigDataCluster/controller/apiGenerated.ts', // {{SQL CARBON EDIT}},
'!extensions/big-data-cluster/src/bigDataCluster/controller/tokenApiGenerated.ts', // {{SQL CARBON EDIT}},
'!src/vs/workbench/services/themes/common/textMateScopeMatcher.ts', // {{SQL CARBON EDIT}} skip this because we have no plans on touching this and its not ours
'!src/vs/workbench/contrib/extensions/browser/extensionTipsService.ts' // {{SQL CARBON EDIT}} skip this because known issue
];
const sqlHygieneFilter = [ // for rules we want to only apply to our code
'src/sql/**/*.ts',
'!**/node_modules/**',
'extensions/**/*.ts',
'!extensions/{git,search-result,vscode-test-resolver,extension-editing,json-language-features,vscode-colorize-tests}/**/*.ts',
'!src/vs/workbench/contrib/extensions/browser/extensionRecommendationsService.ts' // {{SQL CARBON EDIT}} skip this because known issue
];
const copyrightHeaderLines = [
@@ -376,20 +375,8 @@ function hygiene(some) {
errorCount += results.errorCount;
}));
const sqlJavascript = result
.pipe(filter(sqlHygieneFilter))
.pipe(gulpeslint({
configFile: '.eslintrc.sql.json',
rulePaths: ['./build/lib/eslint']
}))
.pipe(gulpeslint.formatEach('compact'))
.pipe(gulpeslint.results(results => {
errorCount += results.warningCount;
errorCount += results.errorCount;
}));
let count = 0;
return es.merge(typescript, javascript, sqlJavascript)
return es.merge(typescript, javascript)
.pipe(es.through(function (data) {
count++;
if (process.env['TRAVIS'] && count % 10 === 0) {
@@ -420,7 +407,7 @@ function createGitIndexVinyls(paths) {
return e(err);
}
cp.exec(`git show ":${relativePath}"`, { maxBuffer: 2000 * 1024, encoding: 'buffer' }, (err, out) => {
cp.exec(`git show :${relativePath}`, { maxBuffer: 2000 * 1024, encoding: 'buffer' }, (err, out) => {
if (err) {
return e(err);
}

View File

@@ -5,13 +5,9 @@
'use strict';
const gulp = require('gulp');
const util = require('./lib/util');
const tsfmt = require('typescript-formatter');
const es = require('event-stream');
const filter = require('gulp-filter');
const del = require('del');
const serviceDownloader = require('service-downloader').ServiceDownloadProvider;
const platform = require('service-downloader/out/platform').PlatformInformation;
const path = require('path');
const ext = require('./lib/extensions');
const task = require('./lib/task');
@@ -19,9 +15,6 @@ const glob = require('glob');
const vsce = require('vsce');
const mkdirp = require('mkdirp');
gulp.task('clean-mssql-extension', util.rimraf('extensions/mssql/node_modules'));
gulp.task('clean-credentials-extension', util.rimraf('extensions/credentials/node_modules'));
gulp.task('fmt', () => formatStagedFiles());
const formatFiles = (some) => {
const formatting = es.map(function (file, cb) {
@@ -96,45 +89,6 @@ const formatStagedFiles = () => {
});
};
function installService() {
let config = require('../extensions/mssql/config.json');
return platform.getCurrent().then(p => {
let runtime = p.runtimeId;
// fix path since it won't be correct
config.installDirectory = path.join(__dirname, '../extensions/mssql/src', config.installDirectory);
let installer = new serviceDownloader(config);
let serviceInstallFolder = installer.getInstallDirectory(runtime);
console.log('Cleaning up the install folder: ' + serviceInstallFolder);
return del(serviceInstallFolder + '/*').then(() => {
console.log('Installing the service. Install folder: ' + serviceInstallFolder);
return installer.installService(runtime);
}, delError => {
console.log('failed to delete the install folder error: ' + delError);
});
});
}
gulp.task('install-sqltoolsservice', () => {
return installService();
});
gulp.task('install-ssmsmin', () => {
const config = require('../extensions/admin-tool-ext-win/config.json');
const runtime = 'Windows_64'; // admin-tool-ext is a windows only extension, and we only ship a 64 bit version, so locking the binaries as such
// fix path since it won't be correct
config.installDirectory = path.join(__dirname, '..', 'extensions', 'admin-tool-ext-win', config.installDirectory);
let installer = new serviceDownloader(config);
const serviceInstallFolder = installer.getInstallDirectory(runtime);
const serviceCleanupFolder = path.join(serviceInstallFolder, '..');
console.log('Cleaning up the install folder: ' + serviceCleanupFolder);
return del(serviceCleanupFolder + '/*').then(() => {
console.log('Installing the service. Install folder: ' + serviceInstallFolder);
return installer.installService(runtime);
}, delError => {
console.log('failed to delete the install folder error: ' + delError);
});
});
const root = path.dirname(__dirname);
gulp.task('package-external-extensions', task.series(

View File

@@ -36,10 +36,8 @@ 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));
// {{SQL CARBON EDIT}}
const nodeModules = [
const nodeModules = [ // {{SQL CARBON EDIT}}
'electron',
'original-fs',
'rxjs/Observable',
@@ -78,7 +76,7 @@ const vscodeResources = [
'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/codiconLabel/codicon/**',
'out-build/vs/base/browser/ui/codicons/codicon/**',
'out-build/vs/workbench/browser/media/*-theme.css',
'out-build/vs/workbench/contrib/debug/**/*.json',
'out-build/vs/workbench/contrib/externalTerminal/**/*.scpt',
@@ -123,7 +121,6 @@ const optimizeVSCodeTask = task.define('optimize-vscode', task.series(
resources: vscodeResources,
loaderConfig: common.loaderConfig(nodeModules),
out: 'out-vscode',
inlineAmdImages: true,
bundleInfo: undefined
})
));
@@ -189,6 +186,7 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
const checksums = computeChecksums(out, [
'vs/workbench/workbench.desktop.main.js',
'vs/workbench/workbench.desktop.main.css',
'vs/workbench/services/extensions/node/extensionHostProcess.js',
'vs/code/electron-browser/workbench/workbench.html',
'vs/code/electron-browser/workbench/workbench.js'
]);
@@ -246,7 +244,7 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
const deps = gulp.src(dependenciesSrc, { base: '.', dot: true })
.pipe(filter(['**', '!**/package-lock.json']))
.pipe(util.cleanNodeModules(path.join(__dirname, '.nativeignore')))
.pipe(createAsar(path.join(process.cwd(), 'node_modules'), ['**/*.node', '**/vscode-ripgrep/bin/*', '**/node-pty/build/Release/*'], 'app/node_modules.asar'));
.pipe(createAsar(path.join(process.cwd(), 'node_modules'), ['**/*.node', '**/vscode-ripgrep/bin/*', '**/node-pty/build/Release/*', '**/*.wasm'], 'app/node_modules.asar'));
let all = es.merge(
packageJsonStream,
@@ -275,6 +273,9 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
}
let result = all
.pipe(fileLengthFilter)
.pipe(filelength)
.pipe(fileLengthFilter.restore)
.pipe(util.skipDirectories())
.pipe(util.fixWin32DirectoryPermissions())
.pipe(electron(_.extend({}, config, { platform, arch, ffmpegChromium: true })))
@@ -329,11 +330,35 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
};
}
const fileLengthFilter = filter([
'**',
'!extensions/import/*.docx',
'!extensions/admin-tool-ext-win/license/**'
], {restore: true});
const filelength = es.through(function (file) {
const fileName = path.basename(file.relative);
const fileDir = path.dirname(file.relative);
//check the filename is < 50 characters (basename gets the filename with extension).
if (fileName.length > 50) {
console.error(`File name '${fileName}' under ${fileDir} is too long. Rename file to have less than 50 characters.`);
throw new Error('File name exceeds acceptable length of 50 characters: ' + fileName);
}
if (file.relative.length > 150) {
console.error(`File path ${file.relative} exceeds acceptable file-length. Rename the path to have less than 150 characters.`);
throw new Error('File path exceeds acceptable path-length of 150 characters: ' + file.relative);
}
this.emit('data', file);
});
const buildRoot = path.dirname(root);
const BUILD_TARGETS = [
{ platform: 'win32', arch: 'ia32' },
{ platform: 'win32', arch: 'x64' },
{ platform: 'win32', arch: 'arm64' },
{ platform: 'darwin', arch: null, opts: { stats: true } },
{ platform: 'linux', arch: 'ia32' },
{ platform: 'linux', arch: 'x64' },
@@ -465,20 +490,30 @@ const generateVSCodeConfigurationTask = task.define('generate-vscode-configurati
const extensionsDir = path.join(os.tmpdir(), 'tmpextdir');
const appName = process.env.VSCODE_QUALITY === 'insider' ? 'Visual\\ Studio\\ Code\\ -\\ Insiders.app' : 'Visual\\ Studio\\ Code.app';
const appPath = path.join(buildDir, `VSCode-darwin/${appName}/Contents/Resources/app/bin/code`);
const codeProc = cp.exec(`${appPath} --export-default-configuration='${allConfigDetailsPath}' --wait --user-data-dir='${userDataDir}' --extensions-dir='${extensionsDir}'`);
const codeProc = cp.exec(
`${appPath} --export-default-configuration='${allConfigDetailsPath}' --wait --user-data-dir='${userDataDir}' --extensions-dir='${extensionsDir}'`,
(err, stdout, stderr) => {
clearTimeout(timer);
if (err) {
console.log(`err: ${err} ${err.message} ${err.toString()}`);
reject(err);
}
if (stdout) {
console.log(`stdout: ${stdout}`);
}
if (stderr) {
console.log(`stderr: ${stderr}`);
}
resolve();
}
);
const timer = setTimeout(() => {
codeProc.kill();
reject(new Error('export-default-configuration process timed out'));
}, 10 * 1000);
codeProc.stdout.on('data', d => console.log(d.toString()));
codeProc.stderr.on('data', d => console.log(d.toString()));
codeProc.on('exit', () => {
clearTimeout(timer);
resolve();
});
}, 12 * 1000);
codeProc.on('error', err => {
clearTimeout(timer);

View File

@@ -44,7 +44,7 @@ function prepareDebPackage(arch) {
.pipe(replace('@@NAME_SHORT@@', product.nameShort))
.pipe(replace('@@NAME@@', product.applicationName))
.pipe(replace('@@EXEC@@', `/usr/share/${product.applicationName}/${product.applicationName}`))
.pipe(replace('@@ICON@@', `/usr/share/pixmaps/${product.linuxIconName}.png`))
.pipe(replace('@@ICON@@', product.linuxIconName))
.pipe(replace('@@URLPROTOCOL@@', product.urlProtocol));
const appdata = gulp.src('resources/linux/code.appdata.xml', { base: '.' })
@@ -92,9 +92,7 @@ function prepareDebPackage(arch) {
const postinst = gulp.src('resources/linux/debian/postinst.template', { base: '.' })
.pipe(replace('@@NAME@@', product.applicationName))
.pipe(replace('@@ARCHITECTURE@@', debArch))
// @ts-ignore JSON checking: quality is optional
.pipe(replace('@@QUALITY@@', product.quality || '@@QUALITY@@'))
// @ts-ignore JSON checking: updateUrl is optional
.pipe(replace('@@UPDATEURL@@', product.updateUrl || '@@UPDATEURL@@'))
.pipe(rename('DEBIAN/postinst'));
@@ -169,9 +167,7 @@ function prepareRpmPackage(arch) {
.pipe(replace('@@RELEASE@@', linuxPackageRevision))
.pipe(replace('@@ARCHITECTURE@@', rpmArch))
.pipe(replace('@@LICENSE@@', product.licenseName))
// @ts-ignore JSON checking: quality is optional
.pipe(replace('@@QUALITY@@', product.quality || '@@QUALITY@@'))
// @ts-ignore JSON checking: updateUrl is optional
.pipe(replace('@@UPDATEURL@@', product.updateUrl || '@@UPDATEURL@@'))
.pipe(replace('@@DEPENDENCIES@@', rpmDependencies[rpmArch].join(', ')))
.pipe(rename('SPECS/' + product.applicationName + '.spec'));

View File

@@ -128,6 +128,7 @@ function archiveWin32Setup(arch) {
gulp.task(task.define('vscode-win32-ia32-archive', task.series(util.rimraf(zipDir('ia32')), archiveWin32Setup('ia32'))));
gulp.task(task.define('vscode-win32-x64-archive', task.series(util.rimraf(zipDir('x64')), archiveWin32Setup('x64'))));
gulp.task(task.define('vscode-win32-arm64-archive', task.series(util.rimraf(zipDir('arm64')), archiveWin32Setup('arm64'))));
function copyInnoUpdater(arch) {
return () => {
@@ -150,3 +151,4 @@ gulp.task(task.define('vscode-win32-x64-inno-updater', task.series(copyInnoUpdat
gulp.task(task.define('vscode-win32-ia32-code-helper', task.series(updateIcon(path.join(buildPath('ia32'), 'resources', 'app', 'out', 'vs', 'platform', 'files', 'node', 'watcher', 'win32', 'CodeHelper.exe')))));
gulp.task(task.define('vscode-win32-x64-code-helper', task.series(updateIcon(path.join(buildPath('x64'), 'resources', 'app', 'out', 'vs', 'platform', 'files', 'node', 'watcher', 'win32', 'CodeHelper.exe')))));
gulp.task(task.define('vscode-win32-arm64-code-helper', task.series(updateIcon(path.join(buildPath('arm64'), 'resources', 'app', 'out', 'vs', 'platform', 'files', 'node', 'watcher', 'win32', 'CodeHelper.exe')))));

View File

@@ -4,6 +4,7 @@
*--------------------------------------------------------------------------------------------*/
'use strict';
Object.defineProperty(exports, "__esModule", { value: true });
exports.createAsar = void 0;
const path = require("path");
const es = require("event-stream");
const pickle = require('chromium-pickle-js');

View File

@@ -18,7 +18,7 @@ const fancyLog = require('fancy-log');
const ansiColors = require('ansi-colors');
const root = path.dirname(path.dirname(__dirname));
const builtInExtensions = require('../builtInExtensions.json');
const builtInExtensions = JSON.parse(fs.readFileSync(path.join(__dirname, '../../product.json'), 'utf8')).builtInExtensions;
const controlFilePath = path.join(os.homedir(), '.vscode-oss-dev', 'extensions', 'control.json');
const ENABLE_LOGGING = !process.env['VSCODE_BUILD_BUILTIN_EXTENSIONS_SILENCE_PLEASE'];

View File

@@ -4,6 +4,7 @@
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.bundle = void 0;
const fs = require("fs");
const path = require("path");
const vm = require("vm");

View File

@@ -4,6 +4,7 @@
*--------------------------------------------------------------------------------------------*/
'use strict';
Object.defineProperty(exports, "__esModule", { value: true });
exports.watchTask = exports.compileTask = void 0;
const es = require("event-stream");
const fs = require("fs");
const gulp = require("gulp");

View File

@@ -4,6 +4,7 @@
*--------------------------------------------------------------------------------------------*/
'use strict';
Object.defineProperty(exports, "__esModule", { value: true });
exports.config = exports.getElectronVersion = void 0;
const fs = require("fs");
const path = require("path");
const vfs = require("vinyl-fs");

View File

@@ -4,6 +4,7 @@
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.createImportRuleListener = void 0;
function createImportRuleListener(validateImport) {
function _checkImport(node) {
if (node && node.type === 'Literal' && typeof node.value === 'string') {

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