| # 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. |