Thank you for considering making contributions to Cosmy Wasmy!
There are two ways you can contribute to the extension:
- Code contributions - Bug fixes, new features, refactors etc
- Localization contributions - Add support for languages beyond English
The general procedure for contributing is:
- Start by browsing new issues.
- Looking for a good place to start contributing? How about checking out some good first issues or bugs?
- Create an issue if you have an interesting idea you would like included in the extension
- Comment on the issue that you would like to work on it. Once you have been assigned to the Github issue, you can start with the item. (This is to ensure the item isnt actively being worked on already)
- To submit your work as a contribution to the repository follow standard GitHub best practices. See pull request guideline below.
Note: For very small or blatantly obvious problems such as typos, you are not required to an open issue to submit a PR.
Before submitting a pull request:
- merge the latest main
git merge origin/main
Then:
- As soon as you have something to show, start with a
Draft
PR. Draft PRs helps provide early feedback and ensure the work is in the right direction. - When the code is complete, change your PR from
Draft
toReady for Review
. - Be sure to include a relevant changelog entry in the
Unreleased
section ofCHANGELOG.md
(see file for log format). The entry should be on top of all others changes in the section.
PRs name should start upper case. Additionally, each PR should only address a single issue.
The general procedure for contributing language translation is:
-
For the extension configurations:
This applies for static text in Settings and Command titles and Extension walkthroughs which is configured in
package.json
.- Create a
./package.nls.{locale}.json
in the root of the repository. - Copy all the keys from
./package.nls.json
into this new file. - Add translated values to all the keys
Currently, there are about ~100 keys which need to be translated for
package.json
. If a value is not provided for a certain key, the English translation is used. - Create a
-
For the code translations
This applies for text such as errors which are conditional and are displayed as part of execution of the extension code.
- Run
npx @vscode/l10n-dev export -o ./l10n ./src
from the root of the repository - You will now have a
./l10n/bundle.l10n.json
which will show you all the localizable strings in the code - Rename the file to
bundle.l10n.{locale}.json
and start replacing the translations
Currently, there are about ~130 keys which need to be translated. If a value is not provided for a certain key, the English translation is used.
- Run
-
Create a PR with your translations
Find more details on how the localization in vscode extensions works here.