Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updating supported versions of Golang #261

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 12 additions & 3 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
---
# We use github actions to test the code on windows and linux amd64. Circleci is used for linux arm64.
#
version: 2.1
Expand All @@ -9,7 +10,7 @@ executors:
linux_arm64:
description: "arm64"
machine:
image: ubuntu-2004:202101-01
image: ubuntu-2004:2022.04.1
resource_class: arm.medium

commands:
Expand All @@ -18,7 +19,7 @@ commands:
version:
type: string
steps:
- os-detect/init # this setup the '$SUDO' variable
- os-detect/init # this setup the '$SUDO' variable
- run:
name: "install Golang linux"
command: |
Expand Down Expand Up @@ -72,4 +73,12 @@ workflows:
- tests_arm64:
matrix:
parameters:
go-version: ["1.13", "1.14", "1.15", "1.16", "1.17"]
go-version:
- "1.13"
- "1.14"
- "1.15"
- "1.16"
- "1.17"
- "1.18"
- "1.19"
- "1.20"
6 changes: 6 additions & 0 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,15 @@ name: "CodeQL"
on:
push:
branches: [ master ]
paths-ignore:
- '*.md'
- '*.txt'
pull_request:
# The branches below must be a subset of the branches above
branches: [ master ]
paths-ignore:
- '*.md'
- '*.txt'

jobs:
analyze:
Expand Down
14 changes: 12 additions & 2 deletions .github/workflows/datadog-go.yaml
Original file line number Diff line number Diff line change
@@ -1,8 +1,17 @@
# We use github actions to test the code on windows and linux amd64. Circleci is used for linux arm64.

---
# We use github actions to test the code on windows and linux amd64.
# Circleci is used for linux arm64.
#
name: datadog-go
on:
push:
paths-ignore:
- '*.md'
- '*.txt'
pull_request:
paths-ignore:
- '*.md'
- '*.txt'

jobs:
native:
Expand All @@ -16,6 +25,7 @@ jobs:
- 1.17
- 1.18
- 1.19
- "1.20" # bug as without the quotes you get go 1.2
runs-on:
- macos-latest
- ubuntu-latest
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/generate.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
---
name: generate-mock
on:
pull_request:
paths-ignore:
- '*.md'
- '*.txt'

jobs:
native:
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
*.swp
*.swo
vendor/
33 changes: 32 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

`datadog-go` is a library that provides a [DogStatsD](https://docs.datadoghq.com/developers/dogstatsd/?code-lang=go) client in Golang.

Go 1.12+ is officially supported. Older versions might work but are not tested.
Go 1.16+ is officially supported. Older versions might work but are not tested.

The following documentation is available:

Expand All @@ -33,6 +33,8 @@ The following documentation is available:
- [Tweaking kernel options](#tweaking-kernel-options)
+ [Unix Domain Sockets](#unix-domain-sockets)
- [Maximum packets size in high-throughput scenarios](#maximum-packets-size-in-high-throughput-scenarios)
* [Support Policy](#support-policy)
* [Supported Versions](#supported-versions)
* [Development](#development)
* [License](#license)
* [Credits](#credits)
Expand Down Expand Up @@ -227,6 +229,35 @@ func main() {
}
```

### Support Policy

`datadog-go` is built upon dependencies defined in specific versions of Go releases and the Datadog Agent/API.
For Go the two latest releases are [GA](#support-ga) supported and the version before that (till version `1.12`) are in [Maintenance](#support-maintenance).
We do not support older releases, but generally these releases are considered [Legacy](#support-legacy).
This library only officially supports [first class ports](https://github.com/golang/go/wiki/PortingPolicy#first-class-ports) of Go.

| **Level** | **Support provided** |
|--------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| <span id="support-ga">General Availability (GA)</span> | Full implementation of all features. Full support for new features, bug & security fixes. |
| <span id="support-maintenance">Maintenance</span> | Full implementation of existing features. May receive new features. Support for bug & security fixes only. |
| <span id="support-legacy">Legacy</span> | Legacy implementation. May have limited function, but no maintenance provided. [Contact our customer support team for special requests.](https://www.datadoghq.com/support/) |

### Supported Versions

| **Go Version** | **Support level** |
|----------------|-------------------------------------|
| 1.20 | [GA](#support-ga) |
| 1.19 | [GA](#support-ga) |
| 1.18 | [Maintenance](#support-maintenance) |
| 1.17 | [Maintenance](#support-maintenance) |
| 1.16 | [Maintenance](#support-maintenance) |
| 1.15 | [Maintenance](#support-maintenance) |
| 1.14 | [Maintenance](#support-maintenance) |
| 1.13 | [Maintenance](#support-maintenance) |
| 1.12 | [Maintenance](#support-maintenance) |

Future releases may move older Go versions support to [Legacy](#support-legacy), which will be done in a **minor** version change.

## Development

Run the tests with:
Expand Down
1 change: 1 addition & 0 deletions statsd/benchmark_report_metric_noop_test.go
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
//go:build !go1.13
// +build !go1.13

package statsd_test
Expand Down
1 change: 1 addition & 0 deletions statsd/benchmark_report_metric_test.go
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
//go:build go1.13
// +build go1.13

package statsd_test
Expand Down
1 change: 1 addition & 0 deletions statsd/end_to_end_uds_test.go
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
//go:build !windows
// +build !windows

package statsd
Expand Down
1 change: 1 addition & 0 deletions statsd/pipe.go
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
//go:build !windows
// +build !windows

package statsd
Expand Down
1 change: 1 addition & 0 deletions statsd/pipe_windows.go
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
//go:build windows
// +build windows

package statsd
Expand Down
1 change: 1 addition & 0 deletions statsd/pipe_windows_test.go
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
//go:build windows
// +build windows

package statsd
Expand Down
1 change: 1 addition & 0 deletions statsd/uds.go
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
//go:build !windows
// +build !windows

package statsd
Expand Down
1 change: 1 addition & 0 deletions statsd/uds_test.go
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
//go:build !windows
// +build !windows

package statsd
Expand Down
1 change: 1 addition & 0 deletions statsd/uds_windows.go
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
//go:build windows
// +build windows

package statsd
Expand Down