Skip to content

Latest commit

 

History

History
25 lines (18 loc) · 2.92 KB

contributing.md

File metadata and controls

25 lines (18 loc) · 2.92 KB

How to Contribute to the Debug Adapter Protocol

TBD

Releasing DAP Changes

This section describes how changes in the Debug Adapter Protocol are released; informational for most readers, and instructional for maintainers.

DAP versions are synchronized to VS Code's iterations, with a minor release being cut about every month. All DAP changes for an iteration are committed to the main branch which is merged into the gh-pages branch in endgame week.

We also maintain npm packages containing the DAP types and a Node.js adapter and a test support library. Typically we update those three libraries whenever we change DAP (and commit to the main branch) so that interested stakeholders can try out latest DAP changes early. Since changes are considered to be "unofficial" until released to the gh-pages branch, we publish the three npm modules as a "pre-release version" first, e.g. with a version number like 1.53.0-pre.1.

Detailed steps:

  1. After discussion on the Github issue has come to a conclusion (typically with an agreed upon API proposal in TypeScript), update debugAdapterProtocol.json with the corresponding schema changes.
  2. Add an entry in changelog.md. If this is the first change of the iteration, add a new new section header with the upcoming version number, e.g. * 1.53.X: and bump the version number in index.html to the same number. The version number can be found in the sentence: The latest version of the protocol specification is version 1.53.0.
  3. Run node spec-generator (after npm install && npm run compile in the subdirectory) to automatically update the documentation. Commit it to the main branch.
  4. If this is a feature that VS Code would want to implement, open a corresponding issue in the VS Code repo.
  5. Updating the npm modules:
    1. Whenever there are worthwhile DAP changes, pull the updated DAP schema by running npm run sync-dap or npm run sync-next-dap and run the Generate debugProtocol.ts launch configuration to update the DebugProtocol TypeScript module.
    2. Run ./bump-version.sh preminor --preid pre in the repo, which will create a prerelease tag and a branch named release/<version name>rece.
    3. Create a PR for the release branch. Once merged, packages will get automatically published by CI.
    4. Adopt the three new npm modules in Mock Debug to verify that they still work.
    5. Commit and push the version changes to Mock Debug.
    6. At the end of each VS Code iteration (typically Wednesday of endgame week), publish the final version of the three npm packages by running ./bump-version.sh minor with steps 2-4 again.