You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+35-19Lines changed: 35 additions & 19 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -374,10 +374,6 @@ As a simple example, let's say I wanted to add a new icon for CloudWatch log str
374
374
getIcon('aws-cloudwatch-log-stream')
375
375
```
376
376
377
-
### Beta artifacts
378
-
379
-
The Toolkit codebase contains logic in `src/dev/beta.ts` to support development during private betas. Creating a beta artifact requires a _stable_ URL to source Toolkit builds from. This URL should be added to `src/dev/config.ts`. Subsequent Toolkit artifacts will have their version set to `1.999.0` with a commit hash. Builds will automatically query the URL to check for a new build once a day and on every reload.
380
-
381
377
### VSCode Marketplace
382
378
383
379
The [marketplace page](https://marketplace.visualstudio.com/itemdetails?itemName=AmazonWebServices.aws-toolkit-vscode)
@@ -392,21 +388,9 @@ Note therefore:
392
388
2. `HEAD` implies that the URL depends on the current _default branch_ (i.e.
393
389
`master`). Changes to other branches won't affect the marketplace page.
394
390
395
-
## Using new vscode APIs
396
-
397
-
The minimum required vscode version specified in [package.json](https://github.com/aws/aws-toolkit-vscode/blob/07119655109bb06105a3f53bbcd86b812b32cdbe/package.json#L16)
398
-
is decided by the version of vscode running in Cloud9 and other vscode-compatible targets.
399
-
400
-
But you can still use the latest vscode APIs, by checking the current running vscode version. For example, to use a vscode 1.64 API:
401
-
402
-
1. Check the vscode version: `semver.gte(vscode.version, '1.64.0')`
403
-
2. Disable the feature if is too old. That could mean just skipping the code entirely, or showing a different UI.
404
-
405
-
Full example: https://github.com/aws/aws-toolkit-vscode/blob/7cb97a2ef0a765862d21842693967070b0dcdd49/src/shared/credentials/defaultCredentialSelectionDataProvider.ts#L54-L76
406
-
407
-
## Importing icons from other open source repos
391
+
### Importing icons from other projects
408
392
409
-
If you are contribuing visual assets from other open source repos, the source repo must have a compatible license (such as MIT), and we need to document the source of the images. Follow these steps:
393
+
If you are contribuing visual assets from other open source repos, the source repo must have a compatible license (such as MIT), and we need to document the source of the images. Follow these steps ([example: #227](https://github.com/aws/aws-toolkit-vscode/pull/227)):
410
394
411
395
1. Use a separate location in this repo for every repo/organization where images are sourced from. See `resources/icons/vscode` as an example.
412
396
1. Copy the source repo's licence into this destination location's LICENSE.txt file
@@ -422,7 +406,39 @@ If you are contribuing visual assets from other open source repos, the source re
422
406
423
407
1. Add an entry [here](docs/icons.md#third-party) summarizing the new destination location, where the assets were sourced from, and a brief rationale.
424
408
425
-
[PR #227](https://github.com/aws/aws-toolkit-vscode/pull/227) shows an example.
409
+
## Using new vscode APIs
410
+
411
+
The minimum required vscode version specified in [package.json](https://github.com/aws/aws-toolkit-vscode/blob/07119655109bb06105a3f53bbcd86b812b32cdbe/package.json#L16)
412
+
is decided by the version of vscode running in Cloud9 and other vscode-compatible targets.
413
+
414
+
But you can still use the latest vscode APIs, by checking the current running vscode version. For example, to use a vscode 1.64 API:
415
+
416
+
1. Check the vscode version: `semver.gte(vscode.version, '1.64.0')`
417
+
2. Disable the feature if is too old. That could mean just skipping the code entirely, or showing a different UI.
418
+
419
+
Full example: https://github.com/aws/aws-toolkit-vscode/blob/7cb97a2ef0a765862d21842693967070b0dcdd49/src/shared/credentials/defaultCredentialSelectionDataProvider.ts#L54-L76
420
+
421
+
## Preview Releases and Experiments
422
+
423
+
There are several ways to make pre-production changes available on a "preview" or "experimental" basis:
424
+
425
+
- **Experimental features:** settings defined in [aws.experiments](https://github.com/aws/aws-toolkit-vscode/blob/4dcee33931693380739eaa5d44e92fa4545a9666/package.json#L228-L241)
426
+
are available in the vscode settings UI so that customers **can discover and enable them.**
427
+
This mechanism is intended for non-production features which are ready for
428
+
early access / preview feedback from interested customers.
429
+
- **Developer-only features:** the `aws.dev.forceDevMode` setting can be used as
430
+
a condition to enable features only for users who have
431
+
`"aws.dev.forceDevMode": true` in their settings. These features are intended
432
+
to be part of the mainline branch, but are _not_ presented to customers in the
433
+
VSCode settings UI. Example: [EC2 commands were gated on `aws.isDevMode`](https://github.com/aws/aws-toolkit-vscode/blob/4dcee33931693380739eaa5d44e92fa4545a9666/package.json#L1115-L1126)
434
+
so the functionality could be merged to mainline while it was under development.
435
+
- **Beta artifacts:** For a "private beta" launch, `src/dev/beta.ts` contains
436
+
logic to check a hardcoded, stable URL serving the latest `.vsix` build for
437
+
the private beta. The hardcoded URL defined in [`dev/config.ts:betaUrl`](https://github.com/aws/aws-toolkit-vscode/blob/d9c27234c0732b021d07e184a865213d6efde8ec/src/dev/config.ts#L9)
438
+
also forces the Toolkit to declare version `1.999.0` (since "private beta"
439
+
has no semver and would conflict with the VSCode marketplace version,
440
+
causing unwanted auto-updating by VSCode). Beta builds of the Toolkit
441
+
automatically query the URL once per session per day.
0 commit comments