Thank you for your interest in helping develop this extension. To get up and running, follow the guide below. If something doesn't work, feel free to open an issue or submit a PR fixing this documentation!
- Download the rust toolchain
- Install wasm-pack (
cargo install wasm-pack) - Download node (preferably with
nvmso you can easily install new versions later) and npm - From the top level folder, run
npm installto get the (javascript) dependencies. - Open this folder in vscode.
- Make your changes
- You can manually test your changes by navigating to "Run and Debug" -> "Run Extension" -> green arrow. This opens a sandboxed version of vscode with your updated extension.
- You should add unit tests for your functionality as well. These go under
src/test/suite, or insrc/lib.rsif you are modifying the rust code. Your PR will likely not be merged without unit tests.
The following items are relevant if you are actively maintaining this extension. I wrote this documentation for myself, since I have to do these maintenance actions approximately once a year at this point.
You will need vsce installed.
If needed, get a new access token. Follow the instructions here.
- The CHANGELOG has been updated.
git checkout maingit pull- Tests pass locally (both rust and typescript):
npm run test- Do NOT skip this step. It also compiles the wasm code which needs to happen before publishing.
- Smoke test (run extension through debugger, open
smoke_test.py, pressenterafter each line and make sure it looks good). - CI has passed on the main branch.
vsce publish {patch,minor,major}and optionally use the--pre-releaseargumentvsvsce packagegit push; git push --tags- On GitHub, draft a release using the existing tag that was created by the
publishcommand.- If you are not told that the tag already exists, then you have a typo, or you missed a step.
- Attach the
.vsixartifact created by thepackagecommand to the draft release. - Publish the release.
Follow the instructions here.
https://marketplace.visualstudio.com/manage/publishers/kevinrose/extensions/vsc-python-indent/hub (requries login)