From df1862c626eed45841bdab5320e950546a1ecd84 Mon Sep 17 00:00:00 2001 From: George Adams Date: Fri, 25 Jul 2025 09:25:45 +0100 Subject: [PATCH 1/4] docs: Add Supported Platforms document --- README.md | 2 + SUPPORTED_PLATFORMS.md | 84 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 86 insertions(+) create mode 100644 SUPPORTED_PLATFORMS.md diff --git a/README.md b/README.md index 0c9a3f14159..34b9b050b70 100644 --- a/README.md +++ b/README.md @@ -68,6 +68,8 @@ cross-compilation may be necessary. * `linux_arm64` * `windows_amd64` +For detailed platform support information across different Go versions, see [SUPPORTED_PLATFORMS.md](SUPPORTED_PLATFORMS.md). + The following sections list the ways to get a build of the Microsoft fork of Go. > [!NOTE] diff --git a/SUPPORTED_PLATFORMS.md b/SUPPORTED_PLATFORMS.md new file mode 100644 index 00000000000..c4a2070ce0a --- /dev/null +++ b/SUPPORTED_PLATFORMS.md @@ -0,0 +1,84 @@ +# Supported Platforms + +This document outlines the platform support matrix for different versions of the Microsoft build of Go. + +## Support Policy + +The Microsoft build of Go follows the upstream Go [Release Policy](https://go.dev/doc/devel/release#policy). This means we support each major release (1.X) until there are two newer major releases. A new Go major version is [released every six months](https://github.com/golang/go/wiki/Go-Release-Cycle), so each Go major version is supported for about one year. + +## Currently Supported Versions + +As of July 2025, the following Go versions are actively supported: + +- **Go 1.25** (upcoming release) +- **Go 1.24** (current stable) +- **Go 1.23** (previous stable) + +After the release of Go 1.25, Go 1.23 will no longer be supported. + +## Platform Support Matrix + +### Go 1.25 (Upcoming) + +| Platform | Architecture | Status | Notes | +|----------|-------------|--------|-------| +| Linux | amd64 | ✅ Supported | Primary platform, Azure Linux 3.0+, Ubuntu 22.04+ | +| Linux | arm64 | ✅ Supported | Azure Linux 3.0+, Ubuntu 22.04+ | +| Linux | armv6l | ✅ Supported | Modern Linux distributions | +| Windows | amd64 | ✅ Supported | Windows Server 2016+, Windows 10+ | +| macOS (Darwin) | amd64 | 🔄 Preview | macOS 11+, not for production | +| macOS (Darwin) | arm64 | 🔄 Preview | macOS 11+, not for production | + +### Go 1.24 (Current Stable) + +| Platform | Architecture | Status | Notes | +|----------|-------------|--------|-------| +| Linux | amd64 | ✅ Supported | Primary platform, Azure Linux 3.0+, Ubuntu 22.04+ | +| Linux | arm64 | ✅ Supported | Azure Linux 3.0+, Ubuntu 22.04+ | +| Linux | armv6l | ✅ Supported | Modern Linux distributions | +| Windows | amd64 | ✅ Supported | Windows Server 2016+, Windows 10+ | +| macOS (Darwin) | amd64 | 🔄 Preview | macOS 11+, not for production | +| macOS (Darwin) | arm64 | 🔄 Preview | macOS 11+, not for production | + +### Go 1.23 (Previous Stable) + +| Platform | Architecture | Status | Notes | +|----------|-------------|--------|-------| +| Linux | amd64 | ✅ Supported | Primary platform, Azure Linux 3.0+, Ubuntu 22.04+ | +| Linux | arm64 | ✅ Supported | Azure Linux 3.0+, Ubuntu 22.04+ | +| Linux | armv6l | ✅ Supported | Modern Linux distributions | +| Windows | amd64 | ✅ Supported | Windows Server 2016+, Windows 10+ | +| macOS (Darwin) | amd64 | ❌ Not Available | | +| macOS (Darwin) | arm64 | ❌ Not Available | | + +## Platform-Specific Notes + +### Linux +- **linux-amd64**: Fully supported and tested. This is the primary development and testing platform. +- **linux-arm64**: Fully supported for ARM64-based systems. +- **linux-armv6l**: Supported for ARM v6 systems, including Raspberry Pi devices. +- **Minimum supported distributions**: + - Azure Linux 3.0 (recommended) + - Ubuntu 22.04 and later + - Other modern Linux distributions with glibc 2.17+ or musl 1.1.16+ + +### Windows +- **windows-amd64**: Fully supported on Windows Server 2016 and later, Windows 10 and later. +- **Minimum supported versions**: + - Windows 10 (any version) + - Windows Server 2016 and later + - Windows Server Core 2016 and later + +### macOS (Darwin) - Preview Status +- **darwin-amd64** and **darwin-arm64**: Available starting with Go 1.24 in preview mode. +- **Minimum supported versions**: macOS 11 (Big Sur) and later +- ⚠️ **Not recommended for production use** - these builds are experimental. +- `systemcrypto` support is also in preview status. +- Please [open an issue](https://github.com/microsoft/go/issues/new) if you encounter problems. + +## Getting Help + +If you need support for an additional platform or encounter issues with a supported platform: + +1. Check existing issues with the [Area-Acquisition](https://github.com/microsoft/go/labels/Area-Acquisition) label +2. [File a new issue](https://github.com/microsoft/go/issues/new/choose) if your platform or issue isn't already covered From e8eb43d3591fec81720751d514f76e670376d62e Mon Sep 17 00:00:00 2001 From: George Adams Date: Fri, 25 Jul 2025 12:01:02 +0100 Subject: [PATCH 2/4] Quim review --- SUPPORTED_PLATFORMS.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/SUPPORTED_PLATFORMS.md b/SUPPORTED_PLATFORMS.md index c4a2070ce0a..c56f5413997 100644 --- a/SUPPORTED_PLATFORMS.md +++ b/SUPPORTED_PLATFORMS.md @@ -60,7 +60,13 @@ After the release of Go 1.25, Go 1.23 will no longer be supported. - **Minimum supported distributions**: - Azure Linux 3.0 (recommended) - Ubuntu 22.04 and later + - CBL-Mariner 2.0 - Other modern Linux distributions with glibc 2.17+ or musl 1.1.16+ +- **OpenSSL Requirements**: + - OpenSSL 1.1.1 (supported) + - OpenSSL 3.x (supported) + - Built-in providers are supported + - SymCrypt provider v1.6.0 or higher is supported ### Windows - **windows-amd64**: Fully supported on Windows Server 2016 and later, Windows 10 and later. From 074f72542e4867ec823091a549259a16bbf2da0a Mon Sep 17 00:00:00 2001 From: George Adams Date: Wed, 6 Aug 2025 09:52:53 +0100 Subject: [PATCH 3/4] dagood feedback --- README.md | 2 ++ SUPPORTED_PLATFORMS.md | 48 +++++++++--------------------------------- 2 files changed, 12 insertions(+), 38 deletions(-) diff --git a/README.md b/README.md index 34b9b050b70..b91670ad2d5 100644 --- a/README.md +++ b/README.md @@ -67,6 +67,8 @@ cross-compilation may be necessary. * `linux_armv6l` * `linux_arm64` * `windows_amd64` +* `darwin_amd64` +* `darwin_arm64` For detailed platform support information across different Go versions, see [SUPPORTED_PLATFORMS.md](SUPPORTED_PLATFORMS.md). diff --git a/SUPPORTED_PLATFORMS.md b/SUPPORTED_PLATFORMS.md index c56f5413997..63656e594ec 100644 --- a/SUPPORTED_PLATFORMS.md +++ b/SUPPORTED_PLATFORMS.md @@ -2,54 +2,27 @@ This document outlines the platform support matrix for different versions of the Microsoft build of Go. -## Support Policy - -The Microsoft build of Go follows the upstream Go [Release Policy](https://go.dev/doc/devel/release#policy). This means we support each major release (1.X) until there are two newer major releases. A new Go major version is [released every six months](https://github.com/golang/go/wiki/Go-Release-Cycle), so each Go major version is supported for about one year. - -## Currently Supported Versions - -As of July 2025, the following Go versions are actively supported: - -- **Go 1.25** (upcoming release) -- **Go 1.24** (current stable) -- **Go 1.23** (previous stable) - -After the release of Go 1.25, Go 1.23 will no longer be supported. +"Support" in this context means that Microsoft actively tests these platforms and will accept bug reports for them. Platforms outside this scope are provided support on a best-effort basis with no guarantees. ## Platform Support Matrix -### Go 1.25 (Upcoming) - | Platform | Architecture | Status | Notes | |----------|-------------|--------|-------| -| Linux | amd64 | ✅ Supported | Primary platform, Azure Linux 3.0+, Ubuntu 22.04+ | -| Linux | arm64 | ✅ Supported | Azure Linux 3.0+, Ubuntu 22.04+ | +| Linux | amd64 | ✅ Supported | Azure Linux 3.0+, CBL-Mariner 2.0, Ubuntu 22.04+ | +| Linux | arm64 | ✅ Supported | Azure Linux 3.0+, CBL-Mariner 2.0, Ubuntu 22.04+ | | Linux | armv6l | ✅ Supported | Modern Linux distributions | | Windows | amd64 | ✅ Supported | Windows Server 2016+, Windows 10+ | +| Windows | arm64 | ✅ Supported | Windows Server 2016+, Windows 10+ | | macOS (Darwin) | amd64 | 🔄 Preview | macOS 11+, not for production | | macOS (Darwin) | arm64 | 🔄 Preview | macOS 11+, not for production | -### Go 1.24 (Current Stable) +## Platform Support History -| Platform | Architecture | Status | Notes | -|----------|-------------|--------|-------| -| Linux | amd64 | ✅ Supported | Primary platform, Azure Linux 3.0+, Ubuntu 22.04+ | -| Linux | arm64 | ✅ Supported | Azure Linux 3.0+, Ubuntu 22.04+ | -| Linux | armv6l | ✅ Supported | Modern Linux distributions | -| Windows | amd64 | ✅ Supported | Windows Server 2016+, Windows 10+ | -| macOS (Darwin) | amd64 | 🔄 Preview | macOS 11+, not for production | -| macOS (Darwin) | arm64 | 🔄 Preview | macOS 11+, not for production | - -### Go 1.23 (Previous Stable) +### Go 1.24 +- Added macOS (Darwin) amd64 and arm64 support in preview mode -| Platform | Architecture | Status | Notes | -|----------|-------------|--------|-------| -| Linux | amd64 | ✅ Supported | Primary platform, Azure Linux 3.0+, Ubuntu 22.04+ | -| Linux | arm64 | ✅ Supported | Azure Linux 3.0+, Ubuntu 22.04+ | -| Linux | armv6l | ✅ Supported | Modern Linux distributions | -| Windows | amd64 | ✅ Supported | Windows Server 2016+, Windows 10+ | -| macOS (Darwin) | amd64 | ❌ Not Available | | -| macOS (Darwin) | arm64 | ❌ Not Available | | +### Go 1.23 +- macOS (Darwin) platforms not available ## Platform-Specific Notes @@ -61,7 +34,6 @@ After the release of Go 1.25, Go 1.23 will no longer be supported. - Azure Linux 3.0 (recommended) - Ubuntu 22.04 and later - CBL-Mariner 2.0 - - Other modern Linux distributions with glibc 2.17+ or musl 1.1.16+ - **OpenSSL Requirements**: - OpenSSL 1.1.1 (supported) - OpenSSL 3.x (supported) @@ -76,7 +48,7 @@ After the release of Go 1.25, Go 1.23 will no longer be supported. - Windows Server Core 2016 and later ### macOS (Darwin) - Preview Status -- **darwin-amd64** and **darwin-arm64**: Available starting with Go 1.24 in preview mode. +- **darwin-amd64** and **darwin-arm64**: Available in preview mode. - **Minimum supported versions**: macOS 11 (Big Sur) and later - ⚠️ **Not recommended for production use** - these builds are experimental. - `systemcrypto` support is also in preview status. From 38c88ddd676e52241742f17a10ace1ef84588f98 Mon Sep 17 00:00:00 2001 From: George Adams Date: Wed, 6 Aug 2025 15:53:07 +0100 Subject: [PATCH 4/4] bump macOS version --- SUPPORTED_PLATFORMS.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SUPPORTED_PLATFORMS.md b/SUPPORTED_PLATFORMS.md index 63656e594ec..59c7f3d6c79 100644 --- a/SUPPORTED_PLATFORMS.md +++ b/SUPPORTED_PLATFORMS.md @@ -13,8 +13,8 @@ This document outlines the platform support matrix for different versions of the | Linux | armv6l | ✅ Supported | Modern Linux distributions | | Windows | amd64 | ✅ Supported | Windows Server 2016+, Windows 10+ | | Windows | arm64 | ✅ Supported | Windows Server 2016+, Windows 10+ | -| macOS (Darwin) | amd64 | 🔄 Preview | macOS 11+, not for production | -| macOS (Darwin) | arm64 | 🔄 Preview | macOS 11+, not for production | +| macOS (Darwin) | amd64 | 🔄 Preview | macOS 13+, not for production | +| macOS (Darwin) | arm64 | 🔄 Preview | macOS 13+, not for production | ## Platform Support History