From 268d4f07a57c3654bb1573b4b7338a2245fda285 Mon Sep 17 00:00:00 2001 From: Valentin Knabel Date: Sat, 8 Jun 2024 11:00:46 +0200 Subject: [PATCH] docs: contributing --- CONTRIBUTING.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..aa2a42c --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,27 @@ +# Contributing + +First of all, thanks for considering to improve Swift support for Visual Studio Code! +In general most of these extensions are created similarly and share the general architecture. + +- [vscode-swiftlint](https://github.com/vknabel/vscode-swiftlint) +- [vscode-swiftformat](https://github.com/vknabel/vscode-swiftformat) +- [vscode-apple-swift-format](https://github.com/vknabel/vscode-apple-swift-format) + +## Architecture + +Each of these project above have the following, central files. Many of them are shared, but might differ between extensions. When fixing bugs, it might make sense to replicate them to different extensions. + +- extension.ts acts as the entrypoint for the extension. +- Current.ts mostly encapsulating external dependencies for system and vscode access. +- UserInteraction.ts which handles alerts and displaying error messages. +- some *Provider.ts representing the core of the extension. +- execShell.ts provides a platform independent way for shell access. + +## Releasing + +If you want to release an update to this extension, follow these steps: + +1. Commit the new version number to the `package.json`. +2. Create an according release tag in the form of vX.X.X. +3. Create a release on GitHub for the tag with autogenerated release notes. +4. A new release build should automatically start off.