-
Notifications
You must be signed in to change notification settings - Fork 13.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add 'src/tools/rust-analyzer/' from commit '977e12a0bdc3e329af179ef3a…
…9d466af9eb613bb' git-subtree-dir: src/tools/rust-analyzer git-subtree-mainline: 3c98486 git-subtree-split: 977e12a
- Loading branch information
Showing
1,698 changed files
with
345,854 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
[alias] | ||
xtask = "run --package xtask --bin xtask --" | ||
tq = "test -- -q" | ||
qt = "tq" | ||
lint = "clippy --all-targets -- -Aclippy::collapsible_if -Aclippy::needless_pass_by_value -Aclippy::nonminimal_bool -Aclippy::redundant_pattern_matching --cap-lints warn" | ||
|
||
[target.x86_64-pc-windows-msvc] | ||
linker = "rust-lld" | ||
|
||
[env] | ||
CARGO_WORKSPACE_DIR = { value = "", relative = true } |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
# https://EditorConfig.org | ||
root = true | ||
|
||
[*] | ||
charset = utf-8 | ||
trim_trailing_whitespace = true | ||
end_of_line = lf | ||
insert_final_newline = true | ||
indent_style = space | ||
|
||
[*.{rs,toml}] | ||
indent_size = 4 | ||
|
||
[*.ts] | ||
indent_size = 4 | ||
[*.js] | ||
indent_size = 4 | ||
[*.json] | ||
indent_size = 4 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
# for this file to take effect make sure you use git ^2.23 and | ||
# add ignoreFile to your git configuration: | ||
# ``` | ||
# git config --global blame.ignoreRevsFile .git-blame-ignore-revs | ||
# ``` | ||
|
||
# prettier format | ||
f247090558c9ba3c551566eae5882b7ca865225f |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
* text=auto eol=lf | ||
# git grep shouldn't match entries in this benchmark data | ||
bench_data/** binary | ||
crates/syntax/test_data/** -text eof=LF | ||
# Older git versions try to fix line endings on images, this prevents it. | ||
*.png binary | ||
*.jpg binary | ||
*.ico binary |
10 changes: 10 additions & 0 deletions
10
src/tools/rust-analyzer/.github/ISSUE_TEMPLATE/blank_issue.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
--- | ||
name: Blank Issue | ||
about: Create a blank issue. | ||
title: '' | ||
labels: '' | ||
assignees: '' | ||
|
||
--- | ||
|
||
|
26 changes: 26 additions & 0 deletions
26
src/tools/rust-analyzer/.github/ISSUE_TEMPLATE/bug_report.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
--- | ||
name: Bug report | ||
about: Create a bug report for rust-analyzer. | ||
title: '' | ||
labels: '' | ||
assignees: '' | ||
|
||
--- | ||
|
||
<!-- | ||
Troubleshooting guide: https://rust-analyzer.github.io/manual.html#troubleshooting | ||
Forum for questions: https://users.rust-lang.org/c/ide/14 | ||
Before submitting, please make sure that you're not running into one of these known issues: | ||
1. extension doesn't load in VSCodium: #11080 | ||
2. on-the-fly diagnostics are mostly unimplemented (`cargo check` diagnostics will be shown when saving a file): #3107 | ||
Otherwise please try to provide information which will help us to fix the issue faster. Minimal reproducible examples with few dependencies are especially lovely <3. | ||
--> | ||
|
||
**rust-analyzer version**: (eg. output of "Rust Analyzer: Show RA Version" command) | ||
|
||
**rustc version**: (eg. output of `rustc -V`) | ||
|
||
**relevant settings**: (eg. client settings, or environment variables like `CARGO`, `RUSTUP_HOME` or `CARGO_HOME`) |
17 changes: 17 additions & 0 deletions
17
src/tools/rust-analyzer/.github/ISSUE_TEMPLATE/critical_nightly_regression.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
--- | ||
name: Critical Nightly Regression | ||
about: You are using nightly rust-analyzer and the latest version is unusable. | ||
title: '' | ||
labels: '' | ||
assignees: 'matklad' | ||
|
||
--- | ||
|
||
<!-- | ||
Troubleshooting guide: https://rust-analyzer.github.io/manual.html#troubleshooting | ||
Please try to provide information which will help us to fix the issue faster. Minimal reproducible examples with few dependencies are especially lovely <3. | ||
--> | ||
|
||
This is a serious regression in nightly and it's important to fix it before the next release. | ||
@matklad, please take a look. |
8 changes: 8 additions & 0 deletions
8
src/tools/rust-analyzer/.github/actions/github-release/Dockerfile
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
FROM node:slim | ||
|
||
COPY . /action | ||
WORKDIR /action | ||
|
||
RUN npm install --production | ||
|
||
ENTRYPOINT ["node", "/action/main.js"] |
21 changes: 21 additions & 0 deletions
21
src/tools/rust-analyzer/.github/actions/github-release/README.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
# github-release | ||
|
||
Copy-pasted from | ||
https://github.com/bytecodealliance/wasmtime/tree/8acfdbdd8aa550d1b84e0ce1e6222a6605d14e38/.github/actions/github-release | ||
|
||
An action used to publish GitHub releases for `wasmtime`. | ||
|
||
As of the time of this writing there's a few actions floating around which | ||
perform github releases but they all tend to have their set of drawbacks. | ||
Additionally nothing handles deleting releases which we need for our rolling | ||
`dev` release. | ||
|
||
To handle all this this action rolls-its-own implementation using the | ||
actions/toolkit repository and packages published there. These run in a Docker | ||
container and take various inputs to orchestrate the release from the build. | ||
|
||
More comments can be found in `main.js`. | ||
|
||
Testing this is really hard. If you want to try though run `npm install` and | ||
then `node main.js`. You'll have to configure a bunch of env vars though to get | ||
anything reasonably working. |
15 changes: 15 additions & 0 deletions
15
src/tools/rust-analyzer/.github/actions/github-release/action.yml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
name: 'wasmtime github releases' | ||
description: 'wasmtime github releases' | ||
inputs: | ||
token: | ||
description: '' | ||
required: true | ||
name: | ||
description: '' | ||
required: true | ||
files: | ||
description: '' | ||
required: true | ||
runs: | ||
using: 'docker' | ||
image: 'Dockerfile' |
144 changes: 144 additions & 0 deletions
144
src/tools/rust-analyzer/.github/actions/github-release/main.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,144 @@ | ||
const core = require('@actions/core'); | ||
const path = require("path"); | ||
const fs = require("fs"); | ||
const github = require('@actions/github'); | ||
const glob = require('glob'); | ||
|
||
function sleep(milliseconds) { | ||
return new Promise(resolve => setTimeout(resolve, milliseconds)); | ||
} | ||
|
||
async function runOnce() { | ||
// Load all our inputs and env vars. Note that `getInput` reads from `INPUT_*` | ||
const files = core.getInput('files'); | ||
const name = core.getInput('name'); | ||
const token = core.getInput('token'); | ||
const slug = process.env.GITHUB_REPOSITORY; | ||
const owner = slug.split('/')[0]; | ||
const repo = slug.split('/')[1]; | ||
const sha = process.env.HEAD_SHA; | ||
|
||
core.info(`files: ${files}`); | ||
core.info(`name: ${name}`); | ||
|
||
const options = { | ||
request: { | ||
timeout: 30000, | ||
} | ||
}; | ||
const octokit = github.getOctokit(token, options); | ||
|
||
// Delete the previous release since we can't overwrite one. This may happen | ||
// due to retrying an upload or it may happen because we're doing the dev | ||
// release. | ||
const releases = await octokit.paginate("GET /repos/:owner/:repo/releases", { owner, repo }); | ||
for (const release of releases) { | ||
if (release.tag_name !== name) { | ||
continue; | ||
} | ||
const release_id = release.id; | ||
core.info(`deleting release ${release_id}`); | ||
await octokit.rest.repos.deleteRelease({ owner, repo, release_id }); | ||
} | ||
|
||
// We also need to update the `dev` tag while we're at it on the `dev` branch. | ||
if (name == 'nightly') { | ||
try { | ||
core.info(`updating nightly tag`); | ||
await octokit.rest.git.updateRef({ | ||
owner, | ||
repo, | ||
ref: 'tags/nightly', | ||
sha, | ||
force: true, | ||
}); | ||
} catch (e) { | ||
core.error(e); | ||
core.info(`creating nightly tag`); | ||
await octokit.rest.git.createTag({ | ||
owner, | ||
repo, | ||
tag: 'nightly', | ||
message: 'nightly release', | ||
object: sha, | ||
type: 'commit', | ||
}); | ||
} | ||
} | ||
|
||
// Creates an official GitHub release for this `tag`, and if this is `dev` | ||
// then we know that from the previous block this should be a fresh release. | ||
core.info(`creating a release`); | ||
const release = await octokit.rest.repos.createRelease({ | ||
owner, | ||
repo, | ||
name, | ||
tag_name: name, | ||
target_commitish: sha, | ||
prerelease: name === 'nightly', | ||
}); | ||
const release_id = release.data.id; | ||
|
||
// Upload all the relevant assets for this release as just general blobs. | ||
for (const file of glob.sync(files)) { | ||
const size = fs.statSync(file).size; | ||
const name = path.basename(file); | ||
|
||
await runWithRetry(async function () { | ||
// We can't overwrite assets, so remove existing ones from a previous try. | ||
let assets = await octokit.rest.repos.listReleaseAssets({ | ||
owner, | ||
repo, | ||
release_id | ||
}); | ||
for (const asset of assets.data) { | ||
if (asset.name === name) { | ||
core.info(`delete asset ${name}`); | ||
const asset_id = asset.id; | ||
await octokit.rest.repos.deleteReleaseAsset({ owner, repo, asset_id }); | ||
} | ||
} | ||
|
||
core.info(`upload ${file}`); | ||
const headers = { 'content-length': size, 'content-type': 'application/octet-stream' }; | ||
const data = fs.createReadStream(file); | ||
await octokit.rest.repos.uploadReleaseAsset({ | ||
data, | ||
headers, | ||
name, | ||
url: release.data.upload_url, | ||
}); | ||
}); | ||
} | ||
} | ||
|
||
async function runWithRetry(f) { | ||
const retries = 10; | ||
const maxDelay = 4000; | ||
let delay = 1000; | ||
|
||
for (let i = 0; i < retries; i++) { | ||
try { | ||
await f(); | ||
break; | ||
} catch (e) { | ||
if (i === retries - 1) | ||
throw e; | ||
|
||
core.error(e); | ||
const currentDelay = Math.round(Math.random() * delay); | ||
core.info(`sleeping ${currentDelay} ms`); | ||
await sleep(currentDelay); | ||
delay = Math.min(delay * 2, maxDelay); | ||
} | ||
} | ||
} | ||
|
||
async function run() { | ||
await runWithRetry(runOnce); | ||
} | ||
|
||
run().catch(err => { | ||
core.error(err); | ||
core.setFailed(err.message); | ||
}); |
10 changes: 10 additions & 0 deletions
10
src/tools/rust-analyzer/.github/actions/github-release/package.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
{ | ||
"name": "wasmtime-github-release", | ||
"version": "0.0.0", | ||
"main": "main.js", | ||
"dependencies": { | ||
"@actions/core": "^1.6", | ||
"@actions/github": "^5.0", | ||
"glob": "^7.1.5" | ||
} | ||
} |
Oops, something went wrong.