Skip to content

Commit bae5a1d

Browse files
committed
survey: add developer survey sub module and release instructions
The config.json is now pointing at this year's survey waiting to be tagged with survey/v0.1.0. For #2891 Change-Id: Ia30e5f56a30085c213347b365b5a823491977f51 Reviewed-on: https://go-review.googlesource.com/c/vscode-go/+/697395 Reviewed-by: Madeline Kalil <[email protected]> LUCI-TryBot-Result: Go LUCI <[email protected]>
1 parent 57683f2 commit bae5a1d

File tree

4 files changed

+58
-0
lines changed

4 files changed

+58
-0
lines changed

survey/README.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# Go Developer Survey Configuration
2+
3+
This Go module serves the configuration file for the Go Developer Survey shown in the [VS Code Go extension](https://github.com/golang/vscode-go).
4+
5+
## Purpose
6+
7+
This module exists solely to host the `config.json` file. By hosting it as a Go module, it can be fetched via module proxy, providing a reliable and secure way for the VS Code Go extension to get the latest survey configuration.
8+
9+
This approach is inspired by the Go team's telemetry configuration module.
10+
11+
## `config.json`
12+
13+
The `config.json` file defines the parameters for the Go Developer Survey. It has the following structure:
14+
15+
```json
16+
{
17+
"StartDate": "2023-09-01T00:00:00Z",
18+
"EndDate": "2023-10-01T00:00:00Z",
19+
"URL": "https://google.com/survey/url"
20+
}
21+
```
22+
23+
- `StartDate`: The ISO 8601 timestamp for when the survey promotion should start.
24+
- `EndDate`: The ISO 8601 timestamp for when the survey promotion should end.
25+
- `URL`: The URL to the survey.
26+
27+
## Usage
28+
29+
This module is not intended to be used as a library. It is fetched by the VS Code Go extension.
30+
31+
## Tagging
32+
33+
The versioning scheme follows semantic versioning, with each change to the configuration being a **minor** version increment.
34+
35+
As this module is in the `survey/` subdirectory of its repository, the git tag **must** be prefixed with `survey/`. This is a requirement for Go modules located in subdirectories. For more details, see the [Go Modules documentation](https://go.dev/ref/mod#vcs-version).
36+
37+
For example, if the most recent tag is `survey/v0.1.0`, the new tag should be `survey/v0.2.0`.
38+
39+
## Release Process
40+
41+
When changes are made to `config.json`, a new version of this module must be released. This is done by creating a new git tag that follows the convention described above.

survey/config.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"StartDate": "2025-09-09T00:00:00Z",
3+
"EndDate": "2025-10-01T00:00:00Z",
4+
"URL": "https://google.qualtrics.com/jfe/form/SV_3wwSstC8vv4Ymkm"
5+
}

survey/go.mod

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
module github.com/golang/vscode-go/survey
2+
3+
go 1.24.0

survey/survey.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
// The survey package holds the config.json file defining the Go Developer
2+
// Survey configuration.
3+
//
4+
// The survey configuration specifies the survey's start and end dates, and the
5+
// URL for the survey.
6+
//
7+
// This package contains no actual Go code, and exists only so the config.json
8+
// file can be served by module proxies.
9+
package survey

0 commit comments

Comments
 (0)