Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1# Visual Studio Code Extensions 2 3## Conventions for adding new extensions 4 5* Extensions are named in the **lowercase** version of the extension's unique identifier which is found on the extension's marketplace page, and is the name under which the extension is installed by VSCode under `~/.vscode`. 6 Extension location should be: ${lib.strings.toLower mktplcRef.publisher}.${lib.string.toLower mktplcRef.name} 7 8* When adding a new extension, place its definition in a `default.nix` file in a directory with the extension's ID (e.g. `publisher.extension-name/default.nix`) and refer to it in `./default.nix`, e.g. `publisher.extension-name = callPackage ./publisher.extension-name { };`. 9 10* Currently `nixfmt-rfc-style` formatter is being used to format the VSCode extensions. 11 12* Respect `alphabetical order` whenever adding extensions. On disorder, please, kindly open a PR re-establishing the order. 13 14* Avoid [unnecessary](https://nix.dev/guides/best-practices.html#with-scopes) use of `with`, particularly `nested with`. 15 16* Use `hash` instead of `sha256`. 17 18* On `meta` field: 19 - add a `changelog`. 20 - `description` should mention it is a Visual Studio Code extension. 21 - `downloadPage` is the VSCode marketplace URL. 22 - `homepage` is the source-code URL. 23 - `maintainers`: 24 - optionally consider adding yourself as a maintainer to be notified of updates, breakages and help with upkeep. 25 - recommended format is: 26 - a `non-nested with`, such as: `with lib.maintainers; [ your-username ];`. 27 - maintainers are listed in alphabetical order. 28 - verify `license` in upstream. 29 30* On commit messages: 31 - Naming convention for: 32 - Adding a new extension: 33 34 > vscode-extensions.publisher.extension-name: init at 1.2.3 35 > 36 > Release: https://github.com/owner/project/releases/tag/1.2.3 37 - Updating an extension: 38 39 > vscode-extensions.publisher.extension-name: 1.2.3 -> 2.3.4 40 > 41 > Release: https://github.com/owner/project/releases/tag/2.3.4 42 - Multiple extensions can be added in a single PR, but each extension requires its own commit.