Repository navigation
Sync docs from microsoft/main into microsoft/release-branch.go1.26 - #2670
Closed
bot-for-go[bot] wants to merge 1 commit into
Closed
bot-for-go[bot] wants to merge 1 commit into
bot-for-go[bot] wants to merge 1 commit into
Conversation
|
Azure Pipelines: Successfully started running 1 pipeline(s). There may be pipelines that require an authorized user to comment /azp run to run. |
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
The synced cryptography document does not match its generator output, causing the reproducibility test to fail until the generator inputs and sync-banner handling are reconciled.
8 open issues
Reconcile generated document inputs and sync banner · New Restrict OpenSSL backend exception to Linux · New Fix Go 1.26 cryptobackend links and source-location guidance · New Fix broken Go installation section link · New Correct cgo behavior when CC is unset · New Document missing build mode and macOS host-version counters · New Replace broken requirefips build-command link · New Document requirefips mandatory override separately · New
What changed in this PR
Synchronizes documentation from microsoft/main into microsoft/release-branch.go1.26, bringing the release branch’s guidance and download metadata up to date.
Changes:
- Reorganizes installation, support, contribution, and migration guidance.
- Adds feature, telemetry, platform-support, and no-cgo OpenSSL documentation.
- Updates cryptography guidance and download links for Go 1.26 and 1.27, with sync-source notices.
| File | Description |
|---|---|
SUPPORT.md |
Adds internal support guidance and sync notice. |
SECURITY.md |
Adds sync-source notice only. |
README.md |
Reorganizes support, release policy, and installation links. |
eng/doc/Telemetry.md |
Documents collected telemetry and opt-out settings. |
eng/doc/SupportedPlatforms.md |
Adds platform and OpenSSL support requirements. |
eng/doc/release-branch-links.json |
Updates release assets, including Windows ARM64. |
eng/doc/README.md |
Expands the documentation index. |
eng/doc/NocgoOpenSSL.md |
Explains no-cgo backend selection and dependencies. |
eng/doc/MigrationGuide.md |
Updates version selection and migration guidance. |
eng/doc/MicrosoftToolsetIdentification.md |
Documents Microsoft-specific version identification. |
eng/doc/Installation.md |
Consolidates installation methods and CI examples. |
eng/doc/fips/README.md |
Updates FIPS configuration and version-specific behavior. |
eng/doc/Downloads.md |
Refreshes download tables and removes macOS preview labels. |
eng/doc/DeveloperGuide.md |
Adds the extracted crypto-backend development workflow. |
eng/doc/CrossPlatformCryptography.md |
Updates platform and algorithm support documentation. |
eng/doc/AdditionalFeatures.md |
Adds an overview of Microsoft-specific toolchain features. |
CONTRIBUTING.md |
Consolidates contribution and policy guidance. |
CODE_OF_CONDUCT.md |
Adds sync-source notice only. |
Review effort: Balanced
Comment on lines
+1
to
+5
| <!-- | ||
| DO NOT EDIT THIS COPY. | ||
| Local edits will be overwritten. | ||
| Source: https://github.com/microsoft/go/blob/microsoft/main/eng/doc/CrossPlatformCryptography.md | ||
| --> |
Comment on lines
+72
to
+73
| > When using Go 1.26 and targeting Linux or FreeBSD, the table only applies if `GOEXPERIMENT=ms_nocgo_opensslcrypto` is set. | ||
| > Otherwise, cgo is always required. |
Comment on lines
+174
to
+183
| Most Microsoft build of Go changes live in `go/src`, but `cryptobackend` has two copies to know about: | ||
|
|
||
| * [`cryptobackend`](../../cryptobackend) is the source module in this repository. | ||
| * `go/src/vendor/github.com/microsoft/go/cryptobackend` is the copy that gets built into the Go standard library. | ||
|
|
||
| If you change cryptobackend code, run `go mod vendor` from `go/src` before running `git go-patch extract`; that copies the source module into `go/src/vendor/github.com/microsoft/go/cryptobackend` and updates the vendor metadata. | ||
|
|
||
| The vendored copy has one special rule: it is allowed to import selected `crypto/internal/...` packages because the Microsoft `go` command treats it as part of the standard-library build. | ||
| The source module under [`cryptobackend`](../../cryptobackend) does not get that special access when it is built like a normal external module. | ||
| See the [`cryptobackend` README](../../cryptobackend/README.md) for more detail. |
|
|
||
| We are not aware of an enhanced migration path for OneBranch pipelines that should be preferred over the Azure Pipelines migrations mentioned above. | ||
| See the above sections for [`GoTool@0`](#the-gotool0-azure-pipelines-step) and [container jobs](#an-azure-pipelines-container-job-referring-to-the-official-golang-container-image) to find the best fit for your project. | ||
| See the above sections for [`GoTool@0`](#the-gotool0-azure-pipelines-task) and [container jobs](#an-azure-pipelines-container-job-referring-to-the-official-golang-container-image) to find the best fit for your project. |
| * If cgo is not explicitly enabled or disabled, then the cgo-less OpenSSL backend is used if the Go toolchain decides that cgo should be disabled. The rules are officially described by [cmd/cgo](https://pkg.go.dev/cmd/cgo). This is a summary, at the time of writing (2026-03-19): | ||
| * cgo is disabled if the Go toolchain is built with `CGO_ENABLED=0`. Note that that's not currently the case for the Microsoft build of Go. | ||
| * cgo is disabled when cross-compiling. | ||
| * cgo is disabled if the `CC` environment variable is not set to an existing executable. |
| No source code, file paths, module contents, or personally identifiable information is collected. | ||
| Each telemetry session is assigned a random session ID that cannot be linked back to a user. | ||
|
|
||
| The counters and properties collected are defined in the [telemetry upload configuration](https://github.com/microsoft/go-infra/blob/main/telemetry/config/config.json) and are listed below. |
Comment on lines
+114
to
+116
| > Prior to Go 1.27, `systemcrypto` was a `GOEXPERIMENT` and could be selected with `GOEXPERIMENT=systemcrypto` and unselected with `GOEXPERIMENT=nosystemcrypto`. | ||
| > `systemcrypto` is no longer a `GOEXPERIMENT`. | ||
| > See [build option to use Go crypto](#build-option-to-use-go-crypto) for more information. |
| - If a platform-specific preference is detected: Enabled ✅ | ||
| - See the following sections for per-platform details. | ||
| - The platform-specific detection never results in a Disabled preference. | ||
| - If the [build option to require FIPS mode](#build-option-to-require-fips-mode) is enabled: Enabled ✅ |
Member
|
Next iteration should work if we have #2672 ported by then. |
auto-merge was automatically disabled
October 28, 2026 18:59
Pull request was closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


Hi! I'm a bot, and this is an automatically generated upstream sync PR. 🔃
After submitting the PR, I will attempt to enable auto-merge in the "merge commit" configuration.
For more information, visit sync documentation in microsoft/go-infra.
This PR copies documentation from
microsoft/mainintomicrosoft/release-branch.go1.26.