|
| 1 | +# Contributing |
| 2 | +Contributions are always welcomed! |
| 3 | + |
| 4 | +## Issues |
| 5 | +Have a question, extension request, or need to report a bug? Open an issue [here][open-issue-url]! |
| 6 | + |
| 7 | +## Developing |
| 8 | +All that is needed to work with this project is [Node.js][nodejs-url], [git][git-url], and your favorite editor or IDE, although we recommend [VS Code][vscode-url]. |
| 9 | + |
| 10 | +### Getting Started |
| 11 | +To start working on this project: |
| 12 | + |
| 13 | +Clone the repo, change into the directory where you cloned the directory, and then run install the dependencies. |
| 14 | + |
| 15 | +```sh |
| 16 | +git clone https://github.com/swellaby/vscode-python-pack.git |
| 17 | +cd vscode-python-pack |
| 18 | +npm i |
| 19 | +``` |
| 20 | + |
| 21 | +### Tests |
| 22 | +We have a few tests that validate the extension has the expected attributes. The tests are written using [Mocha][mocha-url] with [Mocha's TDD interface][mocha-tdd-url]. Make sure you add/update tests accordingly if you change the extension. The tests are located in the [test/][tests] directory |
| 23 | + |
| 24 | +Run the tests: |
| 25 | +```sh |
| 26 | +npm test |
| 27 | +``` |
| 28 | + |
| 29 | +### Linting |
| 30 | +This repo uses [eslint][eslint-url] for linting. You can run [eslint][eslint-url] at any time by executing the npm `lint` script: |
| 31 | + |
| 32 | +```sh |
| 33 | +npm run lint |
| 34 | +``` |
| 35 | + |
| 36 | +### Submitting Changes |
| 37 | +Swellaby members should create a branch within the repository, make changes there, and then submit a Pull Request. |
| 38 | + |
| 39 | +Outside contributors should fork the repository, make changes in the fork, and then submit a Pull Request. Check out the [GitHub Forking Projects Guide][fork-guide-url] for more info. |
| 40 | + |
| 41 | +#### PR Validation |
| 42 | +When you create a Pull Request to merge changes, the [PR Validation Build Job][ci-pipeline-url] in Azure Pipelines will be triggered automatically to run test and lint checks. |
| 43 | + |
| 44 | +## Publishing |
| 45 | +Once changes are merged into the master branch the [CI Job][ci-pipeline-url] will be triggered automatically. Once it passes the [CD Pipeline][cd-pipeline-url] will be triggered automatically which will notify the maintainers and request maintainer approval. Once a maintainer approves the updates they will be automatically published to the marketplace. |
| 46 | + |
| 47 | +<br /> |
| 48 | + |
| 49 | +[Back to Top](#Contributing) |
| 50 | + |
| 51 | +[open-issue-url]: https://github.com/swellaby/vscode-python-pack/issues/new/choose |
| 52 | +[nodejs-url]:https://nodejs.org/en/download/ |
| 53 | +[git-url]: https://git-scm.com/download |
| 54 | +[vscode-url]: https://code.visualstudio.com/ |
| 55 | +[tests]: ./../test/ |
| 56 | +[eslint-url]: https://eslint.org/ |
| 57 | +[mocha-url]: https://mochajs.org/ |
| 58 | +[mocha-tdd-url]: https://mochajs.org/#tdd |
| 59 | +[fork-guide-url]: https://guides.github.com/activities/forking/ |
| 60 | +[ci-pipeline-url]: https://dev.azure.com/swellaby/OpenSource/_build?definitionId=46 |
| 61 | +[cd-pipeline-url]: https://dev.azure.com/swellaby/OpenSource/_release?view=mine&definitionId=9 |
0 commit comments