microsoft/vscode-react-native

Public

mirrored from https://github.com/microsoft/vscode-react-nativeAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
cdp-node-version-compatibility

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

CONTRIBUTING.md

58lines · modeblame

2af998b7Vladimir Kotikov8 years ago1## Development setup
34472878RedMickey5 years ago2
2af998b7Vladimir Kotikov8 years ago3We welcome any quality bugfixes or contributions!
4
e3278192JiglioNero5 years ago5To avoid conflicts with your existing installation, it is recommended to delete the installed extension at:
2af998b7Vladimir Kotikov8 years ago6
4d14f563Yuri Skorokhodov5 years ago7- **Linux and macOS**: `~/.vscode/extensions/msjsdiag.vscode-react-native-<version>`
8- **Windows**: `C:\Users\<username>\.vscode\extensions\msjsdiag.vscode-react-native-<version>`
34472878RedMickey5 years ago9
0541d8edHeniker4 years ago10## Build the project
34472878RedMickey5 years ago11
0541d8edHeniker4 years ago12- `git clone https://github.com/microsoft/vscode-react-native.git`
13- `cd vscode-react-native`
2974bd80Heniker4 years ago14- Run `npm ci`
73c38d75RedMickey4 years ago15- Run `npm install -g gulp-cli` and add `"gulp.autoDetect": "on"` to your VS Code settings
26f6d8dfbenjaminbi3 years ago16- Run `gulp` and check `dist` folder for extension files (now the tasks from gulpfile.js are being exported following the latest guidance from https://gulpjs.com/docs/en/getting-started/creating-tasks/ as the task() API isn't the recommended pattern anymore)
dcac9c9eEzio Li1 years ago17- After completing above steps, run `gulp release` to package extension `.vsix` file. A VSIX package can help you install the latest extension maunally in VS Code extension tab.
2af998b7Vladimir Kotikov8 years ago18
19## Debugging
34472878RedMickey5 years ago20
4d14f563Yuri Skorokhodov5 years ago21There are currently 2 components to our extension: The extension running in the VS Code process with the debug adapter, and some code wrapping the user React Native code which is launched by the debug adapter. These are all debugged in different ways:
2af998b7Vladimir Kotikov8 years ago22
4d14f563Yuri Skorokhodov5 years ago23- To debug the extension process itself and the debug adapter it provides, in VS Code run the `Launch Extension` debug target which will spawn a new instance of VS Code with the extension installed. You can set breakpoints in the Typescript and debug things such as extension activation and the command palette.
2af998b7Vladimir Kotikov8 years ago24
73c38d75RedMickey4 years ago25- To debug the code running in the same process as the React Native code, open a React Native project, start debugging and find the `debuggerWorker.js` file where you can set a breakpoint. This file is generated by Metro bundler, but modified by the extension and saved in your React Native `.vscode/.react` folder locally. The file is created only when you start debugging against your React Native application and the debugger is already attached to it. The `debuggerWorker.js` is launched in `--inspect-brk` mode so it will wait until debugger is attached to the app.
2af998b7Vladimir Kotikov8 years ago26
0a12b11cbenjaminbi3 years ago27- To debug the gulpfile.js, add a configuration to .vscode/launch.json to run "${workspaceRoot}/node_modules/gulp/bin/gulp.js". Then we can run it through "Run and Debug" tab in VS Code.
e670ffaabenjaminbi3 years ago28
2af998b7Vladimir Kotikov8 years ago29## Testing
34472878RedMickey5 years ago30
38700923Ezio Li3 years ago31There is a set of Mocha tests for the extension and extension localization which can be run with `npm test` and `npm run test-localization` or by `Launch Extension Tests` and `Launch Localization Tests`. Also there are e2e smoke tests placed in [`test/smoke`](https://github.com/microsoft/vscode-react-native/tree/master/test/smoke) folder that can be launched by `yarn smoke-tests` command or by `Launch All Smoke Tests` command. Make sure to [prepare test environment](https://github.com/microsoft/vscode-react-native/blob/master/test/smoke/docs/run-locally.md) before launching e2e tests.
2af998b7Vladimir Kotikov8 years ago32
38700923Ezio Li3 years ago33Run `gulp lint` to check your code against our linting rules or `gulp format` to try to auto fix all linting problems with Prettier.
2af998b7Vladimir Kotikov8 years ago34
35## Legal
34472878RedMickey5 years ago36
2af998b7Vladimir Kotikov8 years ago37You must complete a Contributor License Agreement (CLA). Briefly, this agreement testifies that you are granting us permission to use the submitted change according to the terms of the project's license, and that the work being submitted is under appropriate copyright.
38
39Please submit a Contributor License Agreement (CLA) before submitting a pull request. You may visit [https://cla.microsoft.com](https://cla.microsoft.com) to sign the agreement digitally. Alternatively, download the agreement from ([Microsoft Contribution License Agreement.docx](https://www.codeplex.com/Download?ProjectName=typescript&DownloadId=822190) or [Microsoft Contribution License Agreement.pdf](https://www.codeplex.com/Download?ProjectName=typescript&DownloadId=921298)), sign, scan, and email it back to <cla@microsoft.com>. Be sure to include your github user name along with a copy of the signed agreement. Once we have received the signed CLA, we'll review the request.
40
41## Sending a PR
34472878RedMickey5 years ago42
2af998b7Vladimir Kotikov8 years ago43Pull requests should:
44
34472878RedMickey5 years ago45- Include a clear description of the proposed change
46- Be a child commit of a reasonably recent commit in the **master** branch
47- Requests need not be a single commit, but should be a linear sequence of commits (i.e. no merge commits in your PR)
48- Have clear commit messages
49- e.g. "Refactor feature", "Fix issue", "Add tests for issue"
50- Include adequate tests
51- At least one test should fail in the absence of your non-test code changes. If your PR does not match this criteria, please specify why
52- Tests should include reasonable permutations of the target fix/change
53- Include baseline changes with your change
4d14f563Yuri Skorokhodov5 years ago54- Have linting issues (`gulp lint`)
2af998b7Vladimir Kotikov8 years ago55
3fe8602cYuri Skorokhodov7 years ago56It is desirable, but not necessary, for the tests to pass at each commit.
2af998b7Vladimir Kotikov8 years ago57
58To avoid line ending issues, set `autocrlf = input` and `whitespace = cr-at-eol` in your system's git configuration.