Skip to content

Commit

Permalink
Merge upstream '0.8.1'; update version to 0.8.99-avx1
Browse files Browse the repository at this point in the history
  • Loading branch information
avx-rchung committed Feb 3, 2024
2 parents ee4bdc2 + cfc931c commit 32e04ad
Show file tree
Hide file tree
Showing 36 changed files with 3,647 additions and 662 deletions.
13 changes: 11 additions & 2 deletions .bazelci/presubmit.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,18 @@
---
tasks:
ubuntu1804:
ubuntu2004:
shell_commands:
# Install Node.js and NPM
- "curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash - && sudo apt -y install nodejs && sudo npm install -g npm@latest"
# https://github.com/nodesource/distributions#installation-instructions
- |
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
NODE_MAJOR=20
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list
sudo apt-get update
sudo apt-get install nodejs -y
# Install node_modules and then compile and check the code for lint
# errors.
- npm ci
Expand Down
170 changes: 170 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,170 @@
module.exports = {
env: {
es6: true,
node: true,
},
extends: [
"plugin:@typescript-eslint/recommended",
"plugin:@typescript-eslint/recommended-requiring-type-checking",
"prettier",
],
parser: "@typescript-eslint/parser",
parserOptions: {
project: "tsconfig.json",
sourceType: "module",
},
plugins: [
"eslint-plugin-jsdoc",
"eslint-plugin-prefer-arrow",
"@typescript-eslint",
],
root: true,
rules: {
"@typescript-eslint/adjacent-overload-signatures": "error",
"@typescript-eslint/array-type": [
"error",
{
default: "array",
},
],
"@typescript-eslint/ban-types": [
"error",
{
types: {
Object: {
message: "Avoid using the `Object` type. Did you mean `object`?",
},
Function: {
message:
"Avoid using the `Function` type. Prefer a specific function type, like `() => void`.",
},
Boolean: {
message: "Avoid using the `Boolean` type. Did you mean `boolean`?",
},
Number: {
message: "Avoid using the `Number` type. Did you mean `number`?",
},
String: {
message: "Avoid using the `String` type. Did you mean `string`?",
},
Symbol: {
message: "Avoid using the `Symbol` type. Did you mean `symbol`?",
},
},
},
],
"@typescript-eslint/consistent-type-assertions": "error",
"@typescript-eslint/dot-notation": "error",
"@typescript-eslint/explicit-function-return-type": "off",
"@typescript-eslint/explicit-module-boundary-types": "off",
"@typescript-eslint/naming-convention": [
"error",
{
selector: "variable",
format: ["camelCase", "UPPER_CASE", "PascalCase"],
leadingUnderscore: "allow",
trailingUnderscore: "forbid",
},
],
"@typescript-eslint/no-empty-function": "error",
"@typescript-eslint/no-empty-interface": "error",
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-floating-promises": "error",
"@typescript-eslint/no-misused-new": "error",
"@typescript-eslint/no-namespace": "error",
"@typescript-eslint/no-parameter-properties": "off",
"@typescript-eslint/no-shadow": [
"error",
{
hoist: "all",
},
],
"@typescript-eslint/no-unused-expressions": "error",
"@typescript-eslint/no-use-before-define": "off",
"@typescript-eslint/no-var-requires": "error",
"@typescript-eslint/prefer-for-of": "error",
"@typescript-eslint/prefer-function-type": "error",
"@typescript-eslint/prefer-namespace-keyword": "error",
"@typescript-eslint/triple-slash-reference": [
"error",
{
path: "always",
types: "prefer-import",
lib: "always",
},
],
"@typescript-eslint/typedef": "off",
"@typescript-eslint/unified-signatures": "error",
complexity: "off",
"constructor-super": "error",
"dot-notation": "off",
eqeqeq: ["error", "smart"],
"guard-for-in": "error",
"id-denylist": [
"error",
"any",
"Number",
"number",
"String",
"string",
"Boolean",
"boolean",
"Undefined",
"undefined",
],
"id-match": "error",
"jsdoc/check-alignment": "error",
"jsdoc/check-indentation": "error",
"max-classes-per-file": ["error", 1],
"max-len": [
"error",
{
ignorePattern: "^(import |export)",
ignoreComments: true,
ignoreTemplateLiterals: true,
code: 80,
},
],
"new-parens": "error",
"no-bitwise": "error",
"no-caller": "error",
"no-cond-assign": "error",
"no-console": "error",
"no-debugger": "error",
"no-empty": "error",
"no-empty-function": "off",
"no-eval": "error",
"no-fallthrough": "off",
"no-invalid-this": "off",
"no-new-wrappers": "error",
"no-shadow": "off",
"no-throw-literal": "error",
"no-trailing-spaces": "error",
"no-undef-init": "error",
"no-underscore-dangle": "off",
"no-unsafe-finally": "error",
"no-unused-expressions": "off",
"no-unused-labels": "error",
"no-use-before-define": "off",
"no-var": "error",
"object-shorthand": "error",
"one-var": ["error", "never"],
"prefer-arrow/prefer-arrow-functions": [
"error",
{
allowStandaloneDeclarations: true,
},
],
"prefer-const": "error",
radix: "error",
"spaced-comment": [
"error",
"always",
{
markers: ["/"],
},
],
"use-isnan": "error",
"valid-typeof": "off",
},
};
2 changes: 1 addition & 1 deletion .vscode/extensions.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

// List of extensions which should be recommended for users of this workspace.
"recommendations": [
"ms-vscode.vscode-typescript-tslint-plugin",
"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode",
],
// List of extensions recommended by VS Code that should not be recommended for users of this workspace.
Expand Down
1 change: 0 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
"editor.detectIndentation": false,
"editor.rulers": [80]
},
"prettier.tslintIntegration": true,
"prettier.trailingComma": "all",
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
Expand Down
1 change: 0 additions & 1 deletion .vscodeignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,3 @@ AUTHORS
CODEOWNERS
CONTRIBUTORS
tsconfig.json
tslint.json
46 changes: 43 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,51 @@
# Change Log

## Version 0.8.1 (January 2, 2024)

### Bug Fixes

- Fix regressions caused by `bazel query` optimization in 0.8.0 (@daivinhtran)
- Add new and upcoming files names to the list of files marking the root of a repo / workspace (@hypdeb)

### Internal Improvements

- Migrate to eslint (@hypdeb)
- Upgrade typescript (@cameron-martin)

## Version 0.8.0 (December 15, 2023)

### New Features

- Add codelens support for running binary targets (@avx-rchung)

- WORKSPACE.bazel is now identified as starlark (@lalten)

- Add bazel.runTarget command for running targets (@romannikov)

- Add bazel.queryOutputBase configuration setting (@sheldonneuberger-sc)

Changes where output_base is placed. This is convenient for when someone wants bazel using something other than TMPDIR. This is useful if you use a ramdisk for faster builds, or if your TMPDIR has space or security constraints.

- Add bazel.info.\* commands (@jfirebaugh)

This command can be used in launch configurations to embed the results of `bazel info` values. For example:

"initCommands": [
"platform settings -w ${command:bazel.info.execution_root}",
]

### Bug Fixes

- Target completion no longer requires leading quotation mark (@kon72)
- Optimized performance of `bazel query` operations (@iamricard)
- CI updated to Node 20 (@jfirebaugh)

## Version 0.7.0 (December 6, 2022)

### New Features

- Add bazel.commandLine.queryExpression configuration setting (@maximMalofeev)

A [query language expression](https://bazel.build/query/language) which determines the packages displayed in the workspace tree and quick picker. The default inspects the entire workspace, but you could narrow it. For example: `//part/you/want/...:*`

- Make executable and buildifierExecutable settings `machine-overridable` (@jfirebaugh)
Expand All @@ -19,7 +59,7 @@
- Fix and document providing flags to `getTargetOutput` (@jfirebaugh)

Additional Bazel flags can be provided to the `bazel.getTargetOutput` command:

"inputs": [
{
"id": "debugOutputLocation",
Expand All @@ -34,7 +74,7 @@
### New Features

- Add bazel.getTargetOutput command.

This command can be used in launch configurations to obtain the path to an executable built by Bazel. For example, you can set the "program" attribute of a launch configuration to an input variable:

"program": "${input:binaryOutputLocation}"
Expand Down
6 changes: 3 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,19 +33,19 @@ The best place to start is probably their

Once somewhat familiar with the process, you just need to check out this
project, do an `npm install` to get the required packages into the local
checkout's *node_modules* and then open the directory in VS Code. There are
checkout's _node_modules_ and then open the directory in VS Code. There are
already tasks configured to build/debug the extension. Note: having the released
version of this extension install what trying to work on it can some times
confuse things, so it is usually best to not have the release version installed
at the same time.

To enforce a consistent code style through our code base, we have configured
the project to use **prettier** and **tslint** to perform formatting and
the project to use **prettier** and **eslint** to perform formatting and
linting. We strongly recommend installing the following Visual Studio Code
extensions to have these tools applied automatically as you develop:

- [Prettier - Code Formatter](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode)
- [TSLint](https://marketplace.visualstudio.com/items?itemName=ms-vscode.vscode-typescript-tslint-plugin)
- [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint)

## Code reviews

Expand Down
64 changes: 64 additions & 0 deletions RELEASE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# One-Time Setup

Make sure you have the `vsce` tool installed:

```
$ npm install -g vsce
```

# Prepare a Release

Once you have the code in the state that you want to release, make sure you've done the following:

- Bump the version number in the `version` key of `package.json`.
- Add a new section to CHANGELOG.md denoting the new release and any updates you wish to call out. This content is presented to users in the VS Code Extensions UI.
- Tag the commit with the version number of the release:

```
$ git tag x.y.z
```

(This step is optional; you can also do it as part of the GitHub release. See below.)

- Push these changes (including the tag) to GitHub.

# Create and Test the .vsix Package

From the directory containing the extension source code, run the following command:

```
$ vsce package
```

This will compile and bundle the extension into a file named `vscode-bazel-x.y.z.vsix`, where `x.y.z` is the version number of the extension as defined in `package.json`.

Having this standalone package available before uploading the release to the Marketplace or to GitHub is useful for testing:

- Install it manually by running the following command:

```
$ code --install-extension vscode-bazel-x.y.z.vsix
```

- Verify that everything works as intended in a deployment environment rather than a development environment. (For example, you can check that you haven't [accidentally listed dependencies you need at runtime as `devDependencies`](https://github.com/bazelbuild/vscode-bazel/issues/14).)

Once you're confident that the release works, deploy it using the steps below.

# Deploy the Release

We deploy the extension to **two** destinations:

1. We create a .vsix package to upload as a GitHub release, since this is a useful archiving method and it allows users to download and roll back to a previous version of the plugin if necessary. This can be done by anyone who is a maintainer on GitHub.
2. We publish the extension to the Visual Studio Marketplace so that it can be found in search results and downloaded from Visual Studio Code's Extensions area. This requires publishing rights for the Bazel organization on the Visual Studio Marketplace. Florian Weikert <[email protected]> has handled recent versions.

# Creating a GitHub Release

1. On the vscode-bazel Releases page, select **Draft a New Release**.
2. Fill out the form as follows:
1. **Tag version**: Enter the version number of the release (in the format `x.y.z`). If you create this tag earlier (see Preparing a Release, above), that tag will be used; otherwise, it will be created for you.
2. **Release title**: Enter the version number and release date (for example, `x.y.z (November 28, 2018)`).
3. **Describe this release**: Paste the information you wrote about this version from CHANGELOG.md into this text area.
3. Attach the `vscode-bazel-x.y.z.vsix` file to the release by dragging it or selecting it in the upload box.
4. Once you're ready for it to be public, click **Publish release**.

You can now delete the .vsix file if you wish; it will not be used when publishing to the marketplace.
Loading

0 comments on commit 32e04ad

Please sign in to comment.