{"id":20057473,"url":"https://github.com/encoredev/go","last_synced_at":"2025-08-20T12:14:44.243Z","repository":{"id":38095309,"uuid":"290146864","full_name":"encoredev/go","owner":"encoredev","description":"Encore's rolling fork of Go with added automatic tracing \u0026 instrumentation","archived":false,"fork":false,"pushed_at":"2025-04-02T14:40:03.000Z","size":216556,"stargazers_count":12,"open_issues_count":3,"forks_count":3,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-04-30T21:05:56.957Z","etag":null,"topics":["distrbuted-tracing","encore","go","golang","hacktoberfest"],"latest_commit_sha":null,"homepage":"https://encore.dev","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/encoredev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-08-25T07:35:14.000Z","updated_at":"2025-02-11T21:35:06.000Z","dependencies_parsed_at":"2023-11-08T13:29:04.195Z","dependency_job_id":"93a118b7-ea56-4be9-9737-2ba70155da07","html_url":"https://github.com/encoredev/go","commit_stats":null,"previous_names":[],"tags_count":28,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/encoredev%2Fgo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/encoredev%2Fgo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/encoredev%2Fgo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/encoredev%2Fgo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/encoredev","download_url":"https://codeload.github.com/encoredev/go/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252514895,"owners_count":21760456,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["distrbuted-tracing","encore","go","golang","hacktoberfest"],"created_at":"2024-11-13T12:59:06.844Z","updated_at":"2025-05-05T14:31:09.376Z","avatar_url":"https://github.com/encoredev.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"  \u003ca href=\"https://encore.dev\" alt=\"encore\"\u003e\u003cimg width=\"189px\" src=\"https://encore.dev/assets/img/logo.svg\"\u003e\u003c/a\u003e\n\n# Encore Rolling Go Fork\n\nThis is [Encore's](https://github.com/encoredev/encore) rolling fork of Go with added automatic instrumentation.\n\nThis branch contains the raw patches, which allow us to re-apply them ontop of new Go releases.\n\nThis system produces [reproducible builds](https://reproducible-builds.org/) of the patched Go runtime. This means you can clone this repository, run the commands listed below and reproduce an identical go binary that we ship with our tooling.\n\n## How to Use\n\n1. Checkout this repository and then initial the Git submodule; `git submodule init \u0026\u0026 git submodule update`\n2. Create a fresh patched version of the Go runtime, passing in the Go version you want;  `./apply_patch.bash 1.17`\n   (Note: instead of a Go version number, you can pass in `master` to build against the latest Go development commit)\n3. Run our build script using; `go run . --goos \"darwin\" --goarch \"arm64\"`\n   (replacing the OS and arch parameters to match your requirement)\n4. Verify your go was build; `./dist/darwin_arm64/encore-go/bin/go version`\n    The output you see should look like this, looking for the `encore-go` string;\n   `go version encore-go1.17.6 encore-go1.17-4d15582aff Thu Jan 6 19:06:43 2022 +0000 darwin/arm64`\n\n## Directory Structure\n\nThis branch is broken up into three main folders;\n- `overlay`; this folder contains brand-new Encore specific files which should be copied into the `src` path of a fresh Go Release\n- `patches`; this folder contains patch files to modify the existing Go source code\n- `go`; a submodule checkout of https://go.googlesource.com/go which we apply the above two folders against \n\n## Creating Patches\n\nIf patches do not apply due conflicts, or you need to make other changes to the Go runtime, apply the patches to get a\nbase build, fix any conflicts or make your changes. Then from within the `go` folder, for each file run this command to\ncopy the exact patch.\n\n```\ngit diff --cached src/runtime/runtime2.go | pbcopy\n```\n\nThen create a new or update an existing `.diff` file in the patches folder. Once you've updated all the patches, re-run\nthe `./apply_patches.bash` script again to check your changes work. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fencoredev%2Fgo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fencoredev%2Fgo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fencoredev%2Fgo/lists"}