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
+44-5Lines changed: 44 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,12 +3,14 @@
3
3
## Development
4
4
5
5
### Deephaven Packages
6
+
6
7
The extension depends on some Deephaven web-client-ui npm packages (`@deephaven/*`). In cases where the dependencies need to be developed as part of extension development, the dependencies can be aliased locally to the location of the web-client-ui packages source code.
7
8
8
-
1. Create a `.env.local` file in the root of this project
9
+
1. Create a `.env.local` file in the root of this project
9
10
1. Set the `DHC_PACKAGES_PATH` env variable to the path of the web-client-ui/packages directory
@@ -44,6 +46,30 @@ To run using `VS Code` debugger:
44
46
45
47
The `vscode-extension-tester` library uses `Mocha` to run tests. If you need to tweak debugging settings such as test timeout, you can do so in [`e2e-testing/src/mocharcDebug.ts`](./e2e-testing/src/mocharcDebug.ts).
46
48
49
+
#### Enterprise end-to-end Testing
50
+
51
+
Enterprise end-to-end tests are not yet integrated into CI builds, but they can be run locally. It is recommended to run them against QA / dev servers before doing extension releases.
52
+
53
+
Tests can be run by specifying the `--coreplus` flag and pointing to an enterprise server:
54
+
55
+
```sh
56
+
npm run test:e2e -- --coreplus https://my-enterprise-server.com:8123/
57
+
```
58
+
59
+
For release testing:
60
+
61
+
1. Checkout the appropriate pre-release tag for the pending release.
62
+
1. Run `npm install`
63
+
1. It is recommended to run against a few different server configurations:
64
+
- Server configured with both basic and SAML configs
65
+
- Server with basic only config
66
+
- Envoy server
67
+
- Non-envoy server
68
+
- Grizzly server
69
+
- Grizzly+ or later server
70
+
71
+
Some servers satisfy multiple of these cases, so can consolidate test runs.
72
+
47
73
### Documentation
48
74
49
75
The `/docs` directory contains the documentation for Deephaven VS Code Extension.
@@ -54,9 +80,10 @@ If any changes were made to docs, you **must** format them before committing cha
54
80
npm run docs:start # Start docs server on port 3001 (npm run docs:start -- -p <port>) to run on a different port.
55
81
npm run docs:format # Format all docs using dprint.
56
82
npm run docs:validate # Validates the docs build and links are valid.
57
-
```
83
+
```
58
84
59
85
## VSCE
86
+
60
87
[vsce](https://github.com/microsoft/vscode-vsce), short for "Visual Studio Code Extensions", is a command-line tool for packaging, publishing and managing `VS Code` extensions. The Deephaven extension calls `vsce` via npm scripts. Note that `vsce package` and `vsce publish` both call the `vscode:prepublish` script.
61
88
62
89
## Installation from .VSIX
@@ -112,36 +139,44 @@ We create tags for released commits as well as named branches (`vX.X.X-pre` and
112
139
See [versioning strategy](#versioning-strategy) for details on our version number scheme.
113
140
114
141
#### Choosing a Commit
142
+
115
143
Before publishing, you will need to checkout the commit to be published.
116
144
117
145
##### Pre-release
118
-
This will typically be latest `main`
146
+
147
+
This will typically be latest `main`
119
148
120
149
##### Release
150
+
121
151
Releases should be published from a tagged commit for an existing `pre-release`. e.g. To deploy `v1.0.7-release`, we deploy from the `v1.1.7-pre` tag. Since the `publish.sh` script increments based on the previous release tag, it's important to do a release corresponding to every pre-release to keep things in sequence.
122
152
123
153
1. Determine what the next release tag will be:
124
154
125
155
```sh
126
156
./scripts/nextreleasetag.sh
127
157
```
128
-
129
-
1. Checkout the corresponding pre-release tag (the minor version should be odd)
158
+
159
+
1. Checkout the corresponding pre-release tag (the minor version should be odd)
130
160
131
161
e.g. If the script yields `1.0.7-release`, run
162
+
132
163
```sh
133
164
git checkout v1.1.7-pre
134
165
```
135
166
136
167
#### Verify Package Contents
168
+
137
169
To verify the package will include what you expect, run:
170
+
138
171
```sh
139
172
npx vsce ls
140
173
```
174
+
141
175
1. If expected content is missing or unexpected content is included, the `.vscodeignore` file will likely need to be updated in a separate PR before doing the release (this should not be common).
142
176
1. Optionally run `npm run package:dev` if you want to locally install a `.vsix` for testing before publishing.
143
177
144
178
#### Publish a New Version
179
+
145
180
1. Make sure you are in a clean branch whose HEAD points to the commit to publish (see [Choosing a Commit](#choosing-a-commit)).
146
181
1.`npm install` to ensure npm packages up to date
147
182
1. Make sure you are logged in with `vsce` using a personal access token for a user in the https://dev.azure.com/deephaven-oss/ org. `npx vsce login deephaven`.
@@ -163,6 +198,7 @@ npm run publish
163
198
> Note if the publish fails due to an expired token, you can just re-run the appropriate `npx vsce publish` cmd found at the end of the `scripts/publish.sh` file.
164
199
165
200
#### Release Notes
201
+
166
202
After a successful pre-release / release, release notes can be created here: https://github.com/deephaven/vscode-deephaven/releases. A branch will have been created for the release. Just leave this as-is. No need to merge or delete.
The extension uses an icon font generated from SVGs in `@deephaven/icons`. Running the generator requires a local checkout of web-client-ui.
178
215
179
216
The generator can be run via the following script, where `<path-to-dh-icons-directory>` is the location of `packages/icons/src/icons` in `web-client-ui`.
217
+
180
218
```sh
181
219
npm run icon:gen -- <path-to-dh-icons-directory>
182
220
```
183
221
184
222
The script will automatically copy `icons/dist/dh-icons.woff2` file to the `/assets` folder of the extension, but the contents of `icons/dist/dh/dh-contributes-icons.json` has to be manually copied to the `package.json``contributes/icons` section.
223
+
185
224
> Note: All of the icons should be consumed via the `dh-xxx` icon ids, so no code changes should be necessary unless icons have been renamed or removed.
0 commit comments