-
Notifications
You must be signed in to change notification settings - Fork 923
How to Contribute
There are many ways to contribute to the Azure Data Studio project: logging bugs, submitting pull requests, reporting issues, and creating suggestions.
If you want to understand how Azure Data Studio works or want to debug an issue, you'll want to get the source, build it, and run the tool locally.
git clone https://github.com/Microsoft/azuredatastudio.git
- Git
-
Node.JS,
>= 8.9.1, < 9.0.0
- Yarn, follow the installation guide
- Python, at least version 2.7 (version 3 is not supported)
- C/C++ compiler tool chain
-
Windows
- Set a
PYTHON
environment variable pointing to yourpython.exe
. Eg:C:\Python27\python.exe
- Visual Studio 2013 for Windows Desktop or Visual Studio 2015, make sure to select the option to install all C++ tools and the Windows SDK.
- You can also use Felix Rieseberg's Windows Build Tools npm module instead of Visual Studio. The
--debug
flag is helpful if you encounter any problems during installation - Please note that building and debugging via the Windows subsystem for Linux (WSL) is currently not supported.
- Set a
-
OS X
-
Xcode and the Command Line Tools (Xcode -> Preferences -> Downloads), which will install
gcc
and the related toolchain containingmake
-
Xcode and the Command Line Tools (Xcode -> Preferences -> Downloads), which will install
-
Linux
make
- GCC or another compile toolchain
-
native-keymap needs
libx11-dev
andlibxkbfile-dev
.- On Debian-based Linux:
sudo apt-get install libx11-dev libxkbfile-dev
- On Red Hat-based Linux:
sudo yum install libX11-devel.x86_64 libxkbfile-devel.x86_64 # or .i686
.
- On Debian-based Linux:
-
keytar needs
libsecret-1-dev
.- On Debian-based Linux:
sudo apt-get install libsecret-1-dev
. - On Red Hat-based Linux:
sudo yum install libsecret-devel
.
- On Debian-based Linux:
- Building deb and rpm packages requires
fakeroot
andrpm
, run:sudo apt-get install fakeroot rpm
-
Windows
Finally, install all dependencies using Yarn
:
yarn
If you are on Windows or Linux 64 bit systems and would like to compile to 32 bits, you'll need to set the npm_config_arch
environment to ia32
before running yarn
. This will compile all native node modules for a 32 bit architecture.
Note: For more information on how to install NPM modules globally on UNIX systems without resorting to sudo
, refer to this guide.
After you have these tools installed, run the following commands to clone github repository, install dependencies, and compile source code:
git clone https://github.com/microsoft/azuredatastudio
cd azuredatastudio
yarn
yarn run watch
OS X and Linux
./scripts/sql.sh
Windows
.\scripts\sql.bat
if you encounter too many files opened error on macOS, run sudo launchctl limit maxfiles 200000 200000 then retry. The default settings is sudo launchctl limit maxfiles 256 unlimited
# for macOS
gulp --max-old-space-size=8192 vscode-darwin
cd ../sqlops-darwin
# for windows
gulp –-max-old-space-size=8192 vscode-win32-x64
cd ../sqlops-windows-x64
# for linux
gulp –-max-old-space-size=8192 vscode-linux-x64
cd ../sqlops-linux-x64
git clean -fxd
From a terminal, where you have cloned the sqlopsstudio
repository, execute the following command to run the TypeScript incremental builder:
yarn run watch
It will do an initial full build and then watch for file changes, compiling those changes incrementally, enabling a fast, iterative coding experience.
You can either use VS Code or the Chrome Developer Tools to debug Azure Data Studio.
- Install the Debugger for Chrome extension. This extension will let you attach to and debug client side code running in Chrome.
- Open the
azuredatastudio
repository folder - Choose the
Launch azuredatastudio
launch configuration from the launch dropdown in the Debug viewlet and pressF5
.
-
Run the
Developer: Toggle Developer Tools
command from the Command Palette in your development instance of Azure Data Studio to launch the Chrome tools. -
It's also possible to debug the released versions of Azure Data Studio, since the sources link to sourcemaps hosted online.
Run the unit tests directly from a terminal by running ./scripts/test.sh
from the azuredatastudio
folder (scripts\test
on Windows). The test README has complete details on how to run and debug tests, as well as how to produce coverage reports.
We use tslint for linting our sources. You can run tslint across the sources by calling gulp tslint
from a terminal or command prompt.
To lint the source as you make changes you can install the tslint extension.
Even if you have push rights on the Microsoft/azuredatastudio repository, you should create a personal fork and create feature branches there when you need them. This keeps the main repository clean and your personal workflow cruft out of sight.
Before we can accept a pull request from you, you'll need to sign a Contributor License Agreement (CLA). It is an automated process and you only need to do it once.
To enable us to quickly review and accept your pull requests, always create one pull request per issue and link the issue in the pull request. Never merge multiple requests in one unless they have the same root cause. Be sure to follow our coding guidelines and keep code changes as small as possible. Avoid pure formatting changes to code that has not been modified otherwise. Pull requests should contain tests whenever possible.
Check out the full issues list for a list of all potential areas for contributions.
To improve the chances to get a pull request merged you should select an issue that is labelled with the help-wanted
or bug
labels. If the issue you want to work on is not labelled with help-wanted
or bug
, you can start a conversation with the issue owner asking whether an external contribution will be considered.
We're also interested in your feedback for the future of Azure Data Studio. You can submit a suggestion or feature request through the issue tracker. To make this process more effective, we're asking that these include more information to help define them more clearly.
In order to keep the conversation clear and transparent, please limit discussion to English and keep things on topic with the issue. Be considerate to others and try to be courteous and professional at all times.
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.
Documentation
- Get Started
- Install Azure Data Studio
- Telemetry
- Microsoft Ready 2019 Lab
- MS Docs Overview
- Debug Trace Logging
- Troubleshoot Azure Authentication Issues
- FAQ
Contributing
- How to Contribute
- Developer Getting Started
- Submitting Bugs and Suggestions
- Localization
- Troubleshooting Build Issues
- Engineering FAQ
- How to update typings files
- Importing and using modules
- UI Guidelines
- Angular UI Guidelines
- Contributor License Agreement
- Azure Data Studio Tests
- Why is the Azure Data Studio license different than the repository license?
Tool Services
Extensibility Reference
- Getting Started
- Extensibility API
- Contribution Points
- Context Variables
- Servers and Data Explorer Tree Views
- Debugging with VS Code
- Extension Authoring
- Building multiple insight widgets
- Microsoft Ignite lab
- List of Extensions
- Replace sqlops namespace
Project Management