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 golang/vscode-go#2891 Change-Id: Ia30e5f56a30085c213347b365b5a823491977f51 Reviewed-on: https://go-review.googlesource.com/c/vscode-go/+/697395 Reviewed-by: Madeline Kalil <mkalil@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
diff --git a/survey/README.md b/survey/README.md new file mode 100644 index 0000000..94ddf6b --- /dev/null +++ b/survey/README.md
@@ -0,0 +1,41 @@ +# Go Developer Survey Configuration + +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). + +## Purpose + +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. + +This approach is inspired by the Go team's telemetry configuration module. + +## `config.json` + +The `config.json` file defines the parameters for the Go Developer Survey. It has the following structure: + +```json +{ + "StartDate": "2023-09-01T00:00:00Z", + "EndDate": "2023-10-01T00:00:00Z", + "URL": "https://google.com/survey/url" +} +``` + +- `StartDate`: The ISO 8601 timestamp for when the survey promotion should start. +- `EndDate`: The ISO 8601 timestamp for when the survey promotion should end. +- `URL`: The URL to the survey. + +## Usage + +This module is not intended to be used as a library. It is fetched by the VS Code Go extension. + +## Tagging + +The versioning scheme follows semantic versioning, with each change to the configuration being a **minor** version increment. + +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). + +For example, if the most recent tag is `survey/v0.1.0`, the new tag should be `survey/v0.2.0`. + +## Release Process + +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.
diff --git a/survey/config.json b/survey/config.json new file mode 100644 index 0000000..ebdcea9 --- /dev/null +++ b/survey/config.json
@@ -0,0 +1,5 @@ +{ + "StartDate": "2025-09-09T00:00:00Z", + "EndDate": "2025-10-01T00:00:00Z", + "URL": "https://google.qualtrics.com/jfe/form/SV_3wwSstC8vv4Ymkm" +} \ No newline at end of file
diff --git a/survey/go.mod b/survey/go.mod new file mode 100644 index 0000000..b84e64d --- /dev/null +++ b/survey/go.mod
@@ -0,0 +1,3 @@ +module github.com/golang/vscode-go/survey + +go 1.24.0 \ No newline at end of file
diff --git a/survey/survey.go b/survey/survey.go new file mode 100644 index 0000000..d5446cb --- /dev/null +++ b/survey/survey.go
@@ -0,0 +1,9 @@ +// The survey package holds the config.json file defining the Go Developer +// Survey configuration. +// +// The survey configuration specifies the survey's start and end dates, and the +// URL for the survey. +// +// This package contains no actual Go code, and exists only so the config.json +// file can be served by module proxies. +package survey