Skip to content

Commit f736b1b

Browse files
authored
Release 0.7.4 (#597)
2 parents dc12594 + aa7c191 commit f736b1b

20 files changed

Lines changed: 1188 additions & 231 deletions
Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
---
2+
name: review-external-pr
3+
description: Prepare an external contributor's PR for maintainer review by redirecting it into a dedicated review branch, then merging and creating a new finalization PR targeting next. Use when triaging/reviewing contributor PRs, merging external PRs with maintainer changes, or setting up a review workflow for incoming community contributions.
4+
---
5+
6+
# Review External PR Workflow
7+
8+
Redirects an external contributor's PR into a `reviews/` staging branch so a maintainer can inspect, add changes, then merge everything into `next` cleanly.
9+
10+
## When to Use
11+
12+
- An external contributor opened a PR targeting `next` and you want to add changes before merging
13+
- You want to formally review and finalize a community contribution
14+
- You want the contributor to get proper merge credit while still controlling what lands in `next`
15+
16+
## Workflow Steps
17+
18+
### 1. Gather PR Info
19+
20+
```bash
21+
gh pr view <PR_NUMBER> --json title,author,headRefName,baseRefName,body
22+
```
23+
24+
Note the **PR number**, **title**, and **author login** — you'll need them for branch naming and PR descriptions.
25+
26+
### 2. Create the Review Branch
27+
28+
Branch naming format: `reviews/<helpful-name>-original-pr-<number>`
29+
30+
```bash
31+
git fetch origin
32+
git checkout -b reviews/<helpful-name>-original-pr-<PR_NUMBER> origin/next
33+
git push origin reviews/<helpful-name>-original-pr-<PR_NUMBER>
34+
```
35+
36+
Example: `reviews/copy-reference-original-pr-545`
37+
38+
### 3. Retarget the Contributor's PR
39+
40+
> ⚠️ **Known issue**: `gh pr edit --base` may emit a deprecation warning about Projects (classic). This is a cosmetic warning only — the base branch change succeeds regardless. Verify with `gh pr view <PR_NUMBER> --json baseRefName`.
41+
42+
```bash
43+
gh pr edit <PR_NUMBER> --base reviews/<helpful-name>-original-pr-<PR_NUMBER>
44+
```
45+
46+
Verify:
47+
48+
```bash
49+
gh pr view <PR_NUMBER> --json baseRefName
50+
```
51+
52+
### 4. Merge the Contributor's PR
53+
54+
Once the base is updated and the PR is ready:
55+
56+
```bash
57+
gh pr merge <PR_NUMBER> --squash
58+
```
59+
60+
Or approve + merge via the GitHub UI to trigger any required status checks.
61+
62+
### 5. Create the Finalization PR
63+
64+
Pull the merged review branch, then open a new PR from it to `next`:
65+
66+
```bash
67+
git checkout reviews/<helpful-name>-original-pr-<PR_NUMBER>
68+
git pull origin reviews/<helpful-name>-original-pr-<PR_NUMBER>
69+
```
70+
71+
Create the PR:
72+
73+
```bash
74+
gh pr create \
75+
--base next \
76+
--head reviews/<helpful-name>-original-pr-<PR_NUMBER> \
77+
--title "<original title> [reviewed]" \
78+
--body "This PR finalizes the review of the contribution originally submitted by @<author_login> in #<PR_NUMBER>.
79+
80+
Original PR: <PR_URL>"
81+
```
82+
83+
### 6. Comment on the Original PR
84+
85+
Go back to the contributor's original (now merged) PR and leave a comment linking to the finalization PR:
86+
87+
```bash
88+
gh pr comment <ORIGINAL_PR_NUMBER> \
89+
--body "Thank you for the contribution! The review is continuing in #<NEW_PR_NUMBER> where maintainer changes will be finalized before merging to \`next\`."
90+
```
91+
92+
## Summary
93+
94+
| Step | Action | Result |
95+
| ---- | ------------------------------------------ | ----------------------------------------- |
96+
| 1 | Gather PR info | Know PR number, title, author |
97+
| 2 | Create `reviews/...` branch off `next` | Staging branch ready |
98+
| 3 | Retarget contributor's PR to review branch | Their diff is scoped to review branch |
99+
| 4 | Merge contributor's PR | Contributor gets merge credit |
100+
| 5 | Create finalization PR to `next` | Maintainer controls what lands in `next` |
101+
| 6 | Comment on original PR with link to new PR | Contributor is informed, thread is linked |

CHANGELOG.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,21 @@
11
# Change Log
22

3+
## 0.7.4
4+
5+
### New Features & Improvements
6+
7+
- **URL-Encoded Password Detection**: When a connection attempt fails and the password contains URL-encoded characters, the extension now offers a "Retry with Decoded Password" option. If the retry succeeds, the decoded password can be saved. [#444](https://github.com/microsoft/vscode-documentdb/issues/444), [#594](https://github.com/microsoft/vscode-documentdb/pull/594)
8+
- **Rich Markdown Tooltips**: Cluster, database, and collection tree items in the Connections view now show rich markdown tooltips on hover, displaying useful details (host, auth method, document count, storage size) without requiring expansion or connection. [#579](https://github.com/microsoft/vscode-documentdb/issues/579), [#588](https://github.com/microsoft/vscode-documentdb/pull/588)
9+
- **Copy Reference Context Menu**: Adds a "Copy Reference…" right-click option to database, collection, and index nodes with a QuickPick format picker. Databases offer name, shell command (`use dbName`), or qualified name; collections offer name, namespace, shell reference, or `db.getCollection()` form; indexes offer name, key definition, or shell command. Names with special characters automatically use safe escaping. [#545](https://github.com/microsoft/vscode-documentdb/pull/545), [#587](https://github.com/microsoft/vscode-documentdb/pull/587)
10+
11+
### Documentation
12+
13+
- **Improved CONTRIBUTING.md**: Adds a PR submission checklist, corrects Node/npm version requirements, and adds multi-platform setup stubs. [#565](https://github.com/microsoft/vscode-documentdb/pull/565)
14+
15+
### Dependencies
16+
17+
- **Dependency Updates**: Bumps `handlebars` (4.7.8 → 4.7.9), `lodash` (4.17.23 → 4.18.1), `lodash` and `@microsoft/api-extractor` in `/api`, and `follow-redirects` (1.15.11 → 1.16.0). [#552](https://github.com/microsoft/vscode-documentdb/pull/552), [#556](https://github.com/microsoft/vscode-documentdb/pull/556), [#558](https://github.com/microsoft/vscode-documentdb/pull/558), [#586](https://github.com/microsoft/vscode-documentdb/pull/586)
18+
319
## 0.7.3
420

521
### New Features

CONTRIBUTING.md

Lines changed: 91 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,12 @@
22

33
Thank you for your interest in contributing to the **DocumentDB for VS Code** extension. This guide helps you set up your development environment and configure Visual Studio Code to effectively contribute to the extension.
44

5-
The document consists of three sections:
5+
The document consists of four sections:
66

77
1. [Branching Strategy](#1-branching-strategy)
88
2. [Machine Setup](#2-machine-setup)
99
3. [VS Code Configuration](#3-vs-code-configuration)
10+
4. [PR Submission Checklist](#4-pr-submission-checklist)
1011

1112
## 1. Branching Strategy
1213

@@ -22,12 +23,10 @@ The repository follows a structured branching strategy to ensure smooth developm
2223
GitHub Actions are configured to perform automated checks on the repository. The intensity of these checks depends on the target branch:
2324

2425
1. **Push to `next`, `dev/*`, or `feature/*` branches**:
25-
2626
- Runs basic code quality checks and tests.
2727
- Skips resource-intensive jobs like integration tests and packaging to focus on code validation.
2828

2929
2. **Pull Requests to `main` or `next`**:
30-
3130
- Executes all jobs, including code checks, tests, and packaging.
3231
- Ensures complete validation before merging, including artifact generation.
3332

@@ -38,18 +37,21 @@ This setup ensures that contributions are thoroughly validated while optimizing
3837

3938
## 2. Machine Setup
4039

41-
Follow these instructions to configure your machine for JavaScript/TypeScript development using Windows Subsystem for Linux (WSL2) and Visual Studio Code.
40+
> **Platform coverage:** The detailed setup instructions below are written for **Windows + WSL2**. Stub sections for [macOS](#22-macos-pending), [Windows (native)](#23-windows-native-pending), and [plain Linux](#24-linux-pending) are included but not yet filled in; Contributors on those platforms are warmly invited to submit a PR expanding those sections!
4241
43-
> This setup assumes you're using WSL2 on Windows. However, you can use a Linux or Windows setup exclusively if preferred.
42+
---
4443

45-
### 2.1. Install Ubuntu 22.\* on Windows
44+
### 2.1. Windows + WSL2 _(documented)_
4645

47-
- Install **Ubuntu 22.\*** from the Microsoft Store and launch it to configure your Linux user account.
46+
Follow these instructions to configure your machine for JavaScript/TypeScript development using Windows Subsystem for Linux (WSL2) and Visual Studio Code.
47+
48+
#### 2.1.1. Install Ubuntu 22.\* on Windows
4849

50+
- Install **Ubuntu 22.\*** from the Microsoft Store and launch it to configure your Linux user account.
4951
- Your development environment and tools will reside within `WSL2`.
5052
- VS Code integrates seamlessly with `WSL2` instances, enabling smooth development from your Windows machine.
5153

52-
### 2.2. Update Ubuntu Packages
54+
#### 2.1.2. Update Ubuntu Packages
5355

5456
Open your Ubuntu terminal and run:
5557

@@ -58,29 +60,48 @@ sudo apt update
5860
sudo apt upgrade
5961
```
6062

61-
### 2.3. Install Node.js with FNM (Fast Node Manager)
63+
#### 2.1.3. Install Node.js with FNM (Fast Node Manager)
64+
65+
`FNM` helps with installing and switching Node.js versions easily. This is useful for testing compatibility across different Node.js versions.
6266

63-
- `FNM` helps with installing and switching Node.js versions easily. This is useful for testing compatibility across different Node.js versions.
67+
The minimum required versions are **Node.js 22.18.0** and **npm 10.0.0** (see `engines` in `package.json`).
6468

6569
Run the following commands:
6670

6771
```bash
6872
curl -fsSL https://fnm.vercel.app/install | bash
6973
source ~/.bashrc
70-
fnm install 22
71-
fnm use 22
72-
fnm default 22
73-
node --version
74+
fnm install 22.18.0
75+
fnm use 22.18.0
76+
fnm default 22.18.0
77+
node --version # should print v22.18.0 or later
78+
npm --version # should print 10.x or later
7479
```
7580

76-
### 2.4. Install TypeScript Globally (optional)
77-
78-
You can install TypeScript globally:
81+
#### 2.1.4. Install TypeScript Globally (optional)
7982

8083
```bash
8184
npm install -g typescript
8285
```
8386

87+
---
88+
89+
### 2.2. macOS _(pending)_
90+
91+
> **Help wanted!** If you develop on macOS, please consider contributing setup instructions for this section. The general flow (install Node.js via a version manager such as `nvm` or `fnm`, clone the repo, `npm install && npm run build`) should be very similar to the WSL2 path above.
92+
93+
---
94+
95+
### 2.3. Windows (native) _(pending)_
96+
97+
> **Help wanted!** If you develop on Windows without WSL2, please consider contributing setup instructions for this section.
98+
99+
---
100+
101+
### 2.4. Linux _(pending)_
102+
103+
> **Help wanted!** If you develop on Linux natively, please consider contributing setup instructions for this section. The WSL2 Ubuntu steps above should translate almost verbatim.
104+
84105
## 3. VS Code Configuration
85106

86107
This section explains how to clone the **DocumentDB for VS Code** repository and set up Visual Studio Code for development and debugging.
@@ -90,7 +111,6 @@ This section explains how to clone the **DocumentDB for VS Code** repository and
90111
1. Ensure you have completed the [Machine Setup](#2-machine-setup) steps.
91112

92113
2. Fork or directly clone the official repository:
93-
94114
- [DocumentDB for VS Code (vscode-documentdb)](https://github.com/microsoft/vscode-documentdb)
95115

96116
- Open your **WSL2** terminal and clone the repository:
@@ -124,6 +144,59 @@ code .
124144
- Select `Launch Extension (webpack)`.
125145
- Press `F5`.
126146

147+
## 4. PR Submission Checklist
148+
149+
Before opening or marking a pull request as ready for review, **all of the following steps must pass locally**. The same checks run in CI, so catching failures locally saves time.
150+
151+
### 4.1. Localization
152+
153+
If you added, changed, or removed any user-facing string (anything passed to `vscode.l10n.t()`), regenerate the localization bundle:
154+
155+
```bash
156+
npm run l10n
157+
```
158+
159+
Commit any changes to the `l10n/` folder together with your code changes.
160+
161+
### 4.2. Formatting
162+
163+
Run Prettier to ensure all files meet the project's formatting standards:
164+
165+
```bash
166+
npm run prettier-fix
167+
```
168+
169+
Commit any files that Prettier reformats.
170+
171+
### 4.3. Linting
172+
173+
Run ESLint and fix all reported issues before submitting:
174+
175+
```bash
176+
npm run lint
177+
```
178+
179+
### 4.4. Package Verification
180+
181+
Verify the extension can be packaged successfully without errors:
182+
183+
```bash
184+
npm run package
185+
```
186+
187+
This step catches webpack bundling issues and missing assets that unit tests alone won't surface.
188+
189+
---
190+
191+
> **Summary — run these four commands before every PR:**
192+
>
193+
> ```bash
194+
> npm run l10n
195+
> npm run prettier-fix
196+
> npm run lint
197+
> npm run package
198+
> ```
199+
127200
## You're Ready to Contribute! 🎉
128201
129202
You've now successfully set up your development environment and are ready to contribute to **DocumentDB for VS Code**. We appreciate your contributions!

0 commit comments

Comments
 (0)