{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":72056048,"defaultBranch":"master","name":"fx","ownerLogin":"uber-go","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2016-10-27T00:25:00.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/19262598?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1726497659.0","currentOid":""},"activityList":{"items":[{"before":null,"after":"6886c684342c76dbd8637152285d4a45916eed60","ref":"refs/heads/dependabot/go_modules/tools/golang.org/x/tools-0.25.0","pushedAt":"2024-09-16T14:40:59.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"},"commit":{"message":"chore(deps): Bump golang.org/x/tools from 0.24.0 to 0.25.0 in /tools\n\nBumps [golang.org/x/tools](https://github.com/golang/tools) from 0.24.0 to 0.25.0.\n- [Release notes](https://github.com/golang/tools/releases)\n- [Commits](https://github.com/golang/tools/compare/v0.24.0...v0.25.0)\n\n---\nupdated-dependencies:\n- dependency-name: golang.org/x/tools\n dependency-type: direct:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] ","shortMessageHtmlLink":"chore(deps): Bump golang.org/x/tools from 0.24.0 to 0.25.0 in /tools"}},{"before":"27eba7cac706bda761240613813e0d90d14b4863","after":"99eee8344b4c993b8e4df466eb9d2d157b7a6ef2","ref":"refs/heads/master","pushedAt":"2024-08-27T14:27:32.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"abhinav","name":"Abhinav Gupta","path":"/abhinav","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/41730?s=80&v=4"},"commit":{"message":"docs: Merge intro into index (#1234)\n\nThe intro.md page and the index.md page were very similar in content.\r\nMerge the two together, further polish the content,\r\nand redirect the old intro.md page to index.md.\r\n\r\n---------\r\n\r\nCo-authored-by: Jacob Oaks ","shortMessageHtmlLink":"docs: Merge intro into index (#1234)"}},{"before":"67ed361414b1c62eaf2f3b69c42447c8507d59d5","after":"27eba7cac706bda761240613813e0d90d14b4863","ref":"refs/heads/master","pushedAt":"2024-08-27T13:12:13.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"JacobOaks","name":"Jacob Oaks","path":"/JacobOaks","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11602410?s=80&v=4"},"commit":{"message":"Upgrade to Go 1.22, 1.23 (#1235)\n\nGo 1.23 is out, so we can change supported versions to 1.22 and 1.23.\r\nSwitch CI to test against 1.22 and 1.23 only,\r\nand merge test files that were previously split on Go versions\r\nback together.","shortMessageHtmlLink":"Upgrade to Go 1.22, 1.23 (#1235)"}},{"before":"9b7c811fc1c7c5b84094c2dc89acf8ee392dd532","after":null,"ref":"refs/heads/dependabot/npm_and_yarn/docs/elliptic-6.5.7","pushedAt":"2024-08-27T01:26:29.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"abhinav","name":"Abhinav Gupta","path":"/abhinav","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/41730?s=80&v=4"}},{"before":"f19542018ce0b3e39e35aff5df36a100836cb651","after":"67ed361414b1c62eaf2f3b69c42447c8507d59d5","ref":"refs/heads/master","pushedAt":"2024-08-27T00:37:20.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"abhinav","name":"Abhinav Gupta","path":"/abhinav","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/41730?s=80&v=4"},"commit":{"message":"docs: Switch to mkdocs, mkdocs-material (#1232)\n\n# Background\r\n\r\nWhen we originally set up the documentation website,\r\nthere were a couple core requirements:\r\n\r\n- Inter-linking of documentation pages should be \"checked\".\r\n That is, instead of writing \"../foo.html\"\r\n and hoping that that generated page exists,\r\n we wanted to write \"../foo.md\", have the system check that it exists,\r\n and turn it into \"foo.html\" or equivalent as needed.\r\n\r\n- It must be possible to include code snippets in documentation\r\n from sections of real code.\r\n\r\nWe didn't find anything at the time that met the latter requirement\r\nwell enough, so we resorted to a custom solution:\r\nwe used `mdox` and a custom shell script to extract code snippets\r\nfrom source and include them in the documentation.\r\nThis has worked well okay, but it is a bit annoying to have around.\r\n\r\nAt the time we evaluated options, mkdocs almost won,\r\nexcept that its snippets plugin only supported line numbers,\r\nnot named regions of code the way we wanted.\r\n\r\nThe mkdocs snippets plugin has since added support\r\nfor including named regions of code:\r\n\r\nhttps://facelessuser.github.io/pymdown-extensions/extensions/snippets/#snippet-sections\r\nThis unblocks us from using mkdocs for our documentation.\r\n\r\n# Description\r\n\r\nThis PR deletes all custom setup, mdox integration, etc.\r\nin favor of using mkdocs to generate documentation for Fx.\r\nIt migrates all documentation as-is over from VuePress to mkdocs.\r\n\r\nHigh-level notes:\r\n\r\n- Navigation tree which was previously specified in\r\n docs/.vuepress/config.js is now specified in docs/mkdocs.yml.\r\n (It was always weird to have it in a hidden directory anyway.)\r\n- mkdocs is configured to verify validity of all interlinking,\r\n including links to headers within a page.\r\n The build will fail if any links are invalid.\r\n- We're using [uv](https://docs.astral.sh/uv/)\r\n to manage our Python dependencies.\r\n This will also manage the Python version as needed.\r\n- There is no longer need for a custom page redirect component.\r\n We can use the mkdocs-redirects plugin for this purpose.\r\n- The existing Google Analytics tag has been carried over.\r\n- The mkdocs-material theme supports a fair bit of customization,\r\n including a dark/light mode toggle. This resolves #1071.\r\n\r\n## Syntax changes\r\n\r\n- Admonitions were previously specified as:\r\n\r\n ```\r\n ::: tip\r\n\r\n This is a tip.\r\n\r\n :::\r\n ```\r\n\r\n They are now specified as:\r\n\r\n ```\r\n !!! tip\r\n\r\n This is a tip.\r\n ```\r\n\r\n- Tabbed blocks were previously specified as:\r\n\r\n ```\r\n \r\n \r\n ...\r\n \r\n \r\n ...\r\n \r\n \r\n ```\r\n\r\n They are now specified as:\r\n\r\n ```\r\n === \"Go\"\r\n\r\n ...\r\n\r\n === \"Python\"\r\n\r\n ...\r\n ```\r\n\r\n- Code snippets were previously included as:\r\n\r\n ```\r\n go mdox-exec='region ex/path/to/file.go snippet-name'\r\n ```\r\n\r\n They are now included as:\r\n\r\n ```\r\n --8<-- \"path/to/file.go:snippet-name\"\r\n ```\r\n\r\n- Code regions were previously marked in code as:\r\n\r\n ```\r\n // region snippet-name\r\n ...\r\n // endregion snippet-name\r\n ```\r\n\r\n They are now marked as:\r\n\r\n ```\r\n // --8<-- [start:snippet-name]\r\n ...\r\n // --8<-- [end:snippet-name]\r\n ```\r\n\r\n The snippets are processed at Markdown file-read time,\r\n so they don't result in code duplicated into the Markdown file.\r\n\r\n- Multi-paragraph list items must be indented 4 spaces\r\n instead of just aligning to the list item text\r\n (which was 2 spaces for `-` and 3 spaces for `1. `).\r\n\r\n So, before:\r\n\r\n ```\r\n - First paragraph\r\n\r\n Second paragraph\r\n\r\n - Next item\r\n ```\r\n\r\n Becomes:\r\n\r\n ```\r\n - First paragraph\r\n\r\n Second paragraph\r\n\r\n - Next item\r\n ```\r\n\r\n The following is also valid:\r\n\r\n ```\r\n - First paragraph\r\n\r\n Second paragraph\r\n\r\n - Next item\r\n ```\r\n\r\n# Demo\r\n\r\nA demo site is available at https://abhinav.github.io/fx/.\r\nIt will be deleted if/when this PR is merged.\r\n\r\n# Backwards compatibility\r\n\r\nmkdocs has been configured to generate file URLs instead of directory\r\nURLs.\r\n\r\n foo.md -> foo.html\r\n foo/index.md -> foo/index.html\r\n\r\nThis matches the configuration we had for VuePress.\r\n\r\n## Testing\r\n\r\nTo test this, I hacked together a quick script to crawl the old website,\r\nand verify that all links still work if the host is changed to the demo\r\nsite.\r\n\r\n
\r\n Script to check URLs\r\n\r\n```go\r\npackage main\r\n\r\nimport (\r\n\t\"cmp\"\r\n\t\"container/list\"\r\n\t\"fmt\"\r\n\t\"iter\"\r\n\t\"log\"\r\n\t\"net/http\"\r\n\t\"net/url\"\r\n\t\"path\"\r\n\r\n\t\"golang.org/x/net/html\"\r\n\t\"golang.org/x/net/html/atom\"\r\n)\r\n\r\nconst (\r\n\t_oldHost = \"uber-go.github.io\"\r\n\t_newHost = \"abhinav.github.io\"\r\n)\r\n\r\nfunc main() {\r\n\tlog.SetFlags(0)\r\n\r\n\tfor link, err := range oldLinks() {\r\n\t\tif err != nil {\r\n\t\t\tpanic(err)\r\n\t\t}\r\n\r\n\t\tif err := checkNewLink(link); err != nil {\r\n\t\t\tlog.Printf(\" not migrated (%v): %s\", link, err)\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunc checkNewLink(oldLink string) error {\r\n\tu, err := url.Parse(oldLink)\r\n\tif err != nil {\r\n\t\treturn err\r\n\t}\r\n\tu.Host = _newHost\r\n\r\n\tlog.Println(\"Checking:\", u.String())\r\n\tres, err := http.Get(u.String())\r\n\tif err != nil {\r\n\t\treturn err\r\n\t}\r\n\r\n\tif res.StatusCode != http.StatusOK {\r\n\t\treturn fmt.Errorf(\"status: %s\", res.Status)\r\n\t}\r\n\r\n\treturn nil\r\n}\r\n\r\nfunc oldLinks() iter.Seq2[string, error] {\r\n\tseen := make(map[string]struct{})\r\n\tpending := list.New() // list[string]\r\n\tpending.PushBack(\"https://\" + _oldHost + \"/fx\")\r\n\treturn func(yield func(string, error) bool) {\r\n\t\tfor pending.Len() > 0 {\r\n\t\t\tu := pending.Remove(pending.Front()).(string)\r\n\t\t\tif _, ok := seen[u]; ok {\r\n\t\t\t\tcontinue\r\n\t\t\t}\r\n\t\t\tseen[u] = struct{}{}\r\n\r\n\t\t\tif !yield(u, nil) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\tlog.Println(\"Fetching:\", u)\r\n\t\t\tres, err := http.Get(u)\r\n\t\t\tif err != nil {\r\n\t\t\t\tyield(\"\", err)\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\tif res.StatusCode != http.StatusOK {\r\n\t\t\t\tlog.Println(\" skipping:\", res.Status)\r\n\t\t\t\tcontinue\r\n\t\t\t}\r\n\r\n\t\t\turl, err := url.Parse(u)\r\n\t\t\tif err != nil {\r\n\t\t\t\tyield(\"\", err)\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\tlinks, err := extractLocalLinks(url.Path, res)\r\n\t\t\t_ = res.Body.Close()\r\n\t\t\tif err != nil {\r\n\t\t\t\tyield(\"\", err)\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\tfor _, link := range links {\r\n\t\t\t\tpending.PushBack(link)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunc extractLocalLinks(fromPath string, res *http.Response) ([]string, error) {\r\n\tdoc, err := html.Parse(res.Body)\r\n\tif err != nil {\r\n\t\treturn nil, err\r\n\t}\r\n\r\n\tvar links []string\r\n\tvar visit func(*html.Node)\r\n\tvisit = func(n *html.Node) {\r\n\t\tif n.Type == html.ElementNode && n.DataAtom == atom.A {\r\n\t\t\tfor _, a := range n.Attr {\r\n\t\t\t\tif a.Key != \"href\" {\r\n\t\t\t\t\tcontinue\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif a.Val == \"\" {\r\n\t\t\t\t\tcontinue\r\n\t\t\t\t}\r\n\r\n\t\t\t\tu, err := url.Parse(a.Val)\r\n\t\t\t\tif err != nil {\r\n\t\t\t\t\tcontinue\r\n\t\t\t\t}\r\n\t\t\t\tu.Host = cmp.Or(u.Host, _oldHost)\r\n\t\t\t\tu.Scheme = cmp.Or(u.Scheme, \"https\")\r\n\t\t\t\tu.Fragment = \"\"\r\n\r\n\t\t\t\tif u.Host != _oldHost {\r\n\t\t\t\t\tcontinue // external link\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif !path.IsAbs(u.Path) {\r\n\t\t\t\t\tu.Path = path.Join(path.Dir(fromPath), u.Path)\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlinks = append(links, u.String())\r\n\t\t\t\tbreak\r\n\t\t\t}\r\n\t\t}\r\n\t\tfor c := n.FirstChild; c != nil; c = c.NextSibling {\r\n\t\t\tvisit(c)\r\n\t\t}\r\n\t}\r\n\tvisit(doc)\r\n\r\n\treturn links, nil\r\n}\r\n```\r\n\r\n
","shortMessageHtmlLink":"docs: Switch to mkdocs, mkdocs-material (#1232)"}},{"before":"432521ee87a4f97e584c4ecb0ac517bb26ef574c","after":"f19542018ce0b3e39e35aff5df36a100836cb651","ref":"refs/heads/master","pushedAt":"2024-08-26T21:21:47.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sywhang","name":"Sung Yoon Whang","path":"/sywhang","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/30421794?s=80&v=4"},"commit":{"message":"Fix changelog duplicate entry (#1233)\n\nFor some reason #1229 added duplicate entry for 1.22.2","shortMessageHtmlLink":"Fix changelog duplicate entry (#1233)"}},{"before":null,"after":"9b7c811fc1c7c5b84094c2dc89acf8ee392dd532","ref":"refs/heads/dependabot/npm_and_yarn/docs/elliptic-6.5.7","pushedAt":"2024-08-20T17:53:12.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"},"commit":{"message":"chore(deps): Bump elliptic from 6.5.4 to 6.5.7 in /docs\n\nBumps [elliptic](https://github.com/indutny/elliptic) from 6.5.4 to 6.5.7.\n- [Commits](https://github.com/indutny/elliptic/compare/v6.5.4...v6.5.7)\n\n---\nupdated-dependencies:\n- dependency-name: elliptic\n dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] ","shortMessageHtmlLink":"chore(deps): Bump elliptic from 6.5.4 to 6.5.7 in /docs"}},{"before":"d48747654c08472dd65e240543922d003547f1f9","after":null,"ref":"refs/heads/dependabot/go_modules/tools/golang.org/x/tools-0.24.0","pushedAt":"2024-08-20T17:52:03.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"r-hang","name":null,"path":"/r-hang","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42982339?s=80&v=4"}},{"before":"d275a659cc3227c6633bf476c9f86b6ca222dfa7","after":"432521ee87a4f97e584c4ecb0ac517bb26ef574c","ref":"refs/heads/master","pushedAt":"2024-08-20T17:52:02.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"r-hang","name":null,"path":"/r-hang","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42982339?s=80&v=4"},"commit":{"message":"chore(deps): Bump golang.org/x/tools from 0.23.0 to 0.24.0 in /tools (#1230)\n\nBumps [golang.org/x/tools](https://github.com/golang/tools) from 0.23.0\r\nto 0.24.0.\r\n
\r\nCommits\r\n
    \r\n
  • 3057be8\r\ngo.mod: update golang.org/x dependencies
  • \r\n
  • 4653e48\r\ngopls/internal/analysis: add skipped analysis simplify on generated\r\ncode
  • \r\n
  • f855a53\r\ngopls/internal/telemetry/cmd/stacks: use authentication token
  • \r\n
  • 3ffd605\r\ngopls/doc/features: fix prominent typo
  • \r\n
  • a5df6ad\r\ngo/analysis/passes/printf: report non-constant format, no args
  • \r\n
  • c03e5c2\r\ngo/packages: do not nullify Fset when NeedSyntax is set
  • \r\n
  • 6a6fd99\r\ngo/ssa: substitute type parameterized aliases
  • \r\n
  • f6a2390\r\ngopls/doc: delete commands.md
  • \r\n
  • 2154cbf\r\ngopls/internal/golang: add "Browse gopls features" code\r\naction
  • \r\n
  • ead76ab\r\ngo/analysis: Add modules to Pass
  • \r\n
  • Additional commits viewable in compare\r\nview
  • \r\n
\r\n
\r\n
\r\n\r\n\r\n[![Dependabot compatibility\r\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=golang.org/x/tools&package-manager=go_modules&previous-version=0.23.0&new-version=0.24.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\r\n\r\nDependabot will resolve any conflicts with this PR as long as you don't\r\nalter it yourself. You can also trigger a rebase manually by commenting\r\n`@dependabot rebase`.\r\n\r\n[//]: # (dependabot-automerge-start)\r\n[//]: # (dependabot-automerge-end)\r\n\r\n---\r\n\r\n
\r\nDependabot commands and options\r\n
\r\n\r\nYou can trigger Dependabot actions by commenting on this PR:\r\n- `@dependabot rebase` will rebase this PR\r\n- `@dependabot recreate` will recreate this PR, overwriting any edits\r\nthat have been made to it\r\n- `@dependabot merge` will merge this PR after your CI passes on it\r\n- `@dependabot squash and merge` will squash and merge this PR after\r\nyour CI passes on it\r\n- `@dependabot cancel merge` will cancel a previously requested merge\r\nand block automerging\r\n- `@dependabot reopen` will reopen this PR if it is closed\r\n- `@dependabot close` will close this PR and stop Dependabot recreating\r\nit. You can achieve the same result by closing it manually\r\n- `@dependabot show ignore conditions` will show all\r\nof the ignore conditions of the specified dependency\r\n- `@dependabot ignore this major version` will close this PR and stop\r\nDependabot creating any more for this major version (unless you reopen\r\nthe PR or upgrade to it yourself)\r\n- `@dependabot ignore this minor version` will close this PR and stop\r\nDependabot creating any more for this minor version (unless you reopen\r\nthe PR or upgrade to it yourself)\r\n- `@dependabot ignore this dependency` will close this PR and stop\r\nDependabot creating any more for this dependency (unless you reopen the\r\nPR or upgrade to it yourself)\r\n\r\n\r\n
\r\n\r\nSigned-off-by: dependabot[bot] \r\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>","shortMessageHtmlLink":"chore(deps): Bump golang.org/x/tools from 0.23.0 to 0.24.0 in /tools (#…"}},{"before":null,"after":"d48747654c08472dd65e240543922d003547f1f9","ref":"refs/heads/dependabot/go_modules/tools/golang.org/x/tools-0.24.0","pushedAt":"2024-08-12T14:33:34.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"},"commit":{"message":"chore(deps): Bump golang.org/x/tools from 0.23.0 to 0.24.0 in /tools\n\nBumps [golang.org/x/tools](https://github.com/golang/tools) from 0.23.0 to 0.24.0.\n- [Release notes](https://github.com/golang/tools/releases)\n- [Commits](https://github.com/golang/tools/compare/v0.23.0...v0.24.0)\n\n---\nupdated-dependencies:\n- dependency-name: golang.org/x/tools\n dependency-type: direct:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] ","shortMessageHtmlLink":"chore(deps): Bump golang.org/x/tools from 0.23.0 to 0.24.0 in /tools"}},{"before":"e5d5a59f3de7a803cab2f57a495464c67cc0fc6f","after":null,"ref":"refs/heads/back-to-development","pushedAt":"2024-08-07T15:24:21.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"JacobOaks","name":"Jacob Oaks","path":"/JacobOaks","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11602410?s=80&v=4"}},{"before":"61862dace318941412060b4c7529f46692b04038","after":"d275a659cc3227c6633bf476c9f86b6ca222dfa7","ref":"refs/heads/master","pushedAt":"2024-08-07T15:24:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"JacobOaks","name":"Jacob Oaks","path":"/JacobOaks","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11602410?s=80&v=4"},"commit":{"message":"Back to development (#1229)\n\nReturn changelog and version to development mode.","shortMessageHtmlLink":"Back to development (#1229)"}},{"before":"cbfe544a1b66345e5701bc0604adab182ddd0c05","after":"e5d5a59f3de7a803cab2f57a495464c67cc0fc6f","ref":"refs/heads/back-to-development","pushedAt":"2024-08-07T15:19:58.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"JacobOaks","name":"Jacob Oaks","path":"/JacobOaks","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11602410?s=80&v=4"},"commit":{"message":"Merge branch 'master' into back-to-development","shortMessageHtmlLink":"Merge branch 'master' into back-to-development"}},{"before":"e587a04950a646dd40b5d6af2b9f6d994748490c","after":null,"ref":"refs/heads/joaks/release_1_22_0","pushedAt":"2024-08-07T15:17:51.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"JacobOaks","name":"Jacob Oaks","path":"/JacobOaks","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11602410?s=80&v=4"}},{"before":"aed7ddae3a687ca8344144b81bdebe36d954855a","after":"61862dace318941412060b4c7529f46692b04038","ref":"refs/heads/master","pushedAt":"2024-08-07T15:17:49.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"JacobOaks","name":"Jacob Oaks","path":"/JacobOaks","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11602410?s=80&v=4"},"commit":{"message":"Prepare Release v1.22.2 (#1228)\n\nUpdate changelog and version for a 1.22.2 release.\r\n\r\nTip of Fx has been tested internally at Uber with no issues.","shortMessageHtmlLink":"Prepare Release v1.22.2 (#1228)"}},{"before":"978da198bb1ed69850127ab188bcf29b56ba9be9","after":null,"ref":"refs/heads/joaks/upgrade_dig","pushedAt":"2024-08-07T15:15:28.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"JacobOaks","name":"Jacob Oaks","path":"/JacobOaks","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11602410?s=80&v=4"}},{"before":"7925476fcbbcd66478871b36b72675e5060a423a","after":"aed7ddae3a687ca8344144b81bdebe36d954855a","ref":"refs/heads/master","pushedAt":"2024-08-07T15:15:27.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"JacobOaks","name":"Jacob Oaks","path":"/JacobOaks","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11602410?s=80&v=4"},"commit":{"message":"Upgrade to dig v1.18.0 (#1227)\n\nUpgrades go.uber.org/dig to\r\n[v1.18.0](https://github.com/uber-go/dig/releases/tag/v1.18.0), which\r\nincludes new callback information Fx can incorporate into its events.","shortMessageHtmlLink":"Upgrade to dig v1.18.0 (#1227)"}},{"before":null,"after":"cbfe544a1b66345e5701bc0604adab182ddd0c05","ref":"refs/heads/back-to-development","pushedAt":"2024-08-07T15:14:28.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"JacobOaks","name":"Jacob Oaks","path":"/JacobOaks","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11602410?s=80&v=4"},"commit":{"message":"Back to development\n\nReturn changelog and version to development mode.\nDo not merge until a release is tagged with #1228.","shortMessageHtmlLink":"Back to development"}},{"before":null,"after":"e587a04950a646dd40b5d6af2b9f6d994748490c","ref":"refs/heads/joaks/release_1_22_0","pushedAt":"2024-08-07T15:01:05.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"JacobOaks","name":"Jacob Oaks","path":"/JacobOaks","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11602410?s=80&v=4"},"commit":{"message":"Prepare Release v1.22.2\n\nUpdate changelog and version for a 1.22.2 release.","shortMessageHtmlLink":"Prepare Release v1.22.2"}},{"before":null,"after":"978da198bb1ed69850127ab188bcf29b56ba9be9","ref":"refs/heads/joaks/upgrade_dig","pushedAt":"2024-08-07T15:00:57.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"JacobOaks","name":"Jacob Oaks","path":"/JacobOaks","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11602410?s=80&v=4"},"commit":{"message":"Upgrade to dig v1.18.0\n\nUpgrades go.uber.org/dig to v1.18.0.","shortMessageHtmlLink":"Upgrade to dig v1.18.0"}},{"before":"f1aeb62e9acf5bd1c4de4ac838e234b74d2f1a95","after":null,"ref":"refs/heads/dependabot/go_modules/tools/golang.org/x/tools-0.23.0","pushedAt":"2024-07-23T17:31:57.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"r-hang","name":null,"path":"/r-hang","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42982339?s=80&v=4"}},{"before":"8fa92e9e702f362210d2eff5dfea6ac4b9b7a37b","after":"7925476fcbbcd66478871b36b72675e5060a423a","ref":"refs/heads/master","pushedAt":"2024-07-23T17:31:55.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"r-hang","name":null,"path":"/r-hang","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42982339?s=80&v=4"},"commit":{"message":"chore(deps): Bump golang.org/x/tools from 0.22.0 to 0.23.0 in /tools (#1224)\n\nBumps [golang.org/x/tools](https://github.com/golang/tools) from 0.22.0\r\nto 0.23.0.\r\n
\r\nCommits\r\n
    \r\n
  • 33be3ef\r\ngo.mod: update golang.org/x dependencies
  • \r\n
  • 0e7ccc0\r\ngopls/internal/golang: provide version info for stdlib in pkgdoc
  • \r\n
  • fcf5463\r\ngopls/internal/server: add counters to inform v0.17.0
  • \r\n
  • 70a59b2\r\ngopls/doc: respond to Hana's review of CL 583316
  • \r\n
  • 799a471\r\ngopls/doc: document all of gopls' features
  • \r\n
  • 2e239ad\r\ngopls/internal/golang: provide version info for stdlib fields
  • \r\n
  • bc15dd8\r\ngopls/internal/analysis/fillstruct: use package name (not path) in\r\nUI
  • \r\n
  • 72edac2\r\ninternal/typeparams: fix crash in interface hover with empty type\r\nset
  • \r\n
  • c0ae6bb\r\ngopls/internal/golang: splitlines: s/parameter/arguments/ in\r\nCallExpr
  • \r\n
  • 5cc2d0b\r\ngopls/internal/golang: splitlines: remove workaround for golang/go#68202
  • \r\n
  • Additional commits viewable in compare\r\nview
  • \r\n
\r\n
\r\n
\r\n\r\n\r\n[![Dependabot compatibility\r\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=golang.org/x/tools&package-manager=go_modules&previous-version=0.22.0&new-version=0.23.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\r\n\r\nDependabot will resolve any conflicts with this PR as long as you don't\r\nalter it yourself. You can also trigger a rebase manually by commenting\r\n`@dependabot rebase`.\r\n\r\n[//]: # (dependabot-automerge-start)\r\n[//]: # (dependabot-automerge-end)\r\n\r\n---\r\n\r\n
\r\nDependabot commands and options\r\n
\r\n\r\nYou can trigger Dependabot actions by commenting on this PR:\r\n- `@dependabot rebase` will rebase this PR\r\n- `@dependabot recreate` will recreate this PR, overwriting any edits\r\nthat have been made to it\r\n- `@dependabot merge` will merge this PR after your CI passes on it\r\n- `@dependabot squash and merge` will squash and merge this PR after\r\nyour CI passes on it\r\n- `@dependabot cancel merge` will cancel a previously requested merge\r\nand block automerging\r\n- `@dependabot reopen` will reopen this PR if it is closed\r\n- `@dependabot close` will close this PR and stop Dependabot recreating\r\nit. You can achieve the same result by closing it manually\r\n- `@dependabot show ignore conditions` will show all\r\nof the ignore conditions of the specified dependency\r\n- `@dependabot ignore this major version` will close this PR and stop\r\nDependabot creating any more for this major version (unless you reopen\r\nthe PR or upgrade to it yourself)\r\n- `@dependabot ignore this minor version` will close this PR and stop\r\nDependabot creating any more for this minor version (unless you reopen\r\nthe PR or upgrade to it yourself)\r\n- `@dependabot ignore this dependency` will close this PR and stop\r\nDependabot creating any more for this dependency (unless you reopen the\r\nPR or upgrade to it yourself)\r\n\r\n\r\n
\r\n\r\nSigned-off-by: dependabot[bot] \r\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>","shortMessageHtmlLink":"chore(deps): Bump golang.org/x/tools from 0.22.0 to 0.23.0 in /tools (#…"}},{"before":null,"after":"f1aeb62e9acf5bd1c4de4ac838e234b74d2f1a95","ref":"refs/heads/dependabot/go_modules/tools/golang.org/x/tools-0.23.0","pushedAt":"2024-07-08T14:43:17.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"},"commit":{"message":"chore(deps): Bump golang.org/x/tools from 0.22.0 to 0.23.0 in /tools\n\nBumps [golang.org/x/tools](https://github.com/golang/tools) from 0.22.0 to 0.23.0.\n- [Release notes](https://github.com/golang/tools/releases)\n- [Commits](https://github.com/golang/tools/compare/v0.22.0...v0.23.0)\n\n---\nupdated-dependencies:\n- dependency-name: golang.org/x/tools\n dependency-type: direct:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] ","shortMessageHtmlLink":"chore(deps): Bump golang.org/x/tools from 0.22.0 to 0.23.0 in /tools"}},{"before":"ad7c1ef5b0eeeccfaa8d3a38095db0d93c108006","after":null,"ref":"refs/heads/dependabot/npm_and_yarn/docs/ws-6.2.3","pushedAt":"2024-07-02T15:57:21.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"sywhang","name":"Sung Yoon Whang","path":"/sywhang","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/30421794?s=80&v=4"}},{"before":"6fde730b36d2518f9ee885f08e734acde77f10b7","after":"8fa92e9e702f362210d2eff5dfea6ac4b9b7a37b","ref":"refs/heads/master","pushedAt":"2024-07-02T15:57:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sywhang","name":"Sung Yoon Whang","path":"/sywhang","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/30421794?s=80&v=4"},"commit":{"message":"chore(deps): Bump ws from 6.2.2 to 6.2.3 in /docs (#1216)\n\nBumps [ws](https://github.com/websockets/ws) from 6.2.2 to 6.2.3.\r\n
\r\nRelease notes\r\n

Sourced from ws's\r\nreleases.

\r\n
\r\n

6.2.3

\r\n

Bug fixes

\r\n
    \r\n
  • Backported e55e5106 to the 6.x release line (eeb76d31).
  • \r\n
\r\n
\r\n
\r\n
\r\nCommits\r\n
    \r\n
  • d87f3b6\r\n[dist] 6.2.3
  • \r\n
  • eeb76d3\r\n[security] Fix crash when the Upgrade header cannot be read (#2231)
  • \r\n
  • See full diff in compare\r\nview
  • \r\n
\r\n
\r\n
\r\n\r\n\r\n[![Dependabot compatibility\r\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ws&package-manager=npm_and_yarn&previous-version=6.2.2&new-version=6.2.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\r\n\r\nDependabot will resolve any conflicts with this PR as long as you don't\r\nalter it yourself. You can also trigger a rebase manually by commenting\r\n`@dependabot rebase`.\r\n\r\n[//]: # (dependabot-automerge-start)\r\n[//]: # (dependabot-automerge-end)\r\n\r\n---\r\n\r\n
\r\nDependabot commands and options\r\n
\r\n\r\nYou can trigger Dependabot actions by commenting on this PR:\r\n- `@dependabot rebase` will rebase this PR\r\n- `@dependabot recreate` will recreate this PR, overwriting any edits\r\nthat have been made to it\r\n- `@dependabot merge` will merge this PR after your CI passes on it\r\n- `@dependabot squash and merge` will squash and merge this PR after\r\nyour CI passes on it\r\n- `@dependabot cancel merge` will cancel a previously requested merge\r\nand block automerging\r\n- `@dependabot reopen` will reopen this PR if it is closed\r\n- `@dependabot close` will close this PR and stop Dependabot recreating\r\nit. You can achieve the same result by closing it manually\r\n- `@dependabot show ignore conditions` will show all\r\nof the ignore conditions of the specified dependency\r\n- `@dependabot ignore this major version` will close this PR and stop\r\nDependabot creating any more for this major version (unless you reopen\r\nthe PR or upgrade to it yourself)\r\n- `@dependabot ignore this minor version` will close this PR and stop\r\nDependabot creating any more for this minor version (unless you reopen\r\nthe PR or upgrade to it yourself)\r\n- `@dependabot ignore this dependency` will close this PR and stop\r\nDependabot creating any more for this dependency (unless you reopen the\r\nPR or upgrade to it yourself)\r\nYou can disable automated security fix PRs for this repo from the\r\n[Security Alerts page](https://github.com/uber-go/fx/network/alerts).\r\n\r\n
\r\n\r\nSigned-off-by: dependabot[bot] \r\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\r\nCo-authored-by: Sung Yoon Whang ","shortMessageHtmlLink":"chore(deps): Bump ws from 6.2.2 to 6.2.3 in /docs (#1216)"}},{"before":"4dd03a88c911e7c3e6ba7d2f8d68501713e977e7","after":"ad7c1ef5b0eeeccfaa8d3a38095db0d93c108006","ref":"refs/heads/dependabot/npm_and_yarn/docs/ws-6.2.3","pushedAt":"2024-07-02T15:46:31.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"sywhang","name":"Sung Yoon Whang","path":"/sywhang","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/30421794?s=80&v=4"},"commit":{"message":"Merge branch 'master' into dependabot/npm_and_yarn/docs/ws-6.2.3","shortMessageHtmlLink":"Merge branch 'master' into dependabot/npm_and_yarn/docs/ws-6.2.3"}},{"before":"74d9643901f29e17920d4c4324110deab06affb3","after":"6fde730b36d2518f9ee885f08e734acde77f10b7","ref":"refs/heads/master","pushedAt":"2024-07-02T14:06:25.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"JacobOaks","name":"Jacob Oaks","path":"/JacobOaks","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11602410?s=80&v=4"},"commit":{"message":"Fix deadlock caused by race while signal receivers are stopping (#1220)\n\nA user reported a possible deadlock within the signal receivers (#1219).\r\n\r\nThis happens by:\r\n* `(*signalReceivers).Stop()` is called, by Shutdowner for instance.\r\n* `(*signalReceivers).Stop()` [acquires the\r\nlock](https://github.com/uber-go/fx/blob/master/signal.go#L121).\r\n* Separately, an OS signal is sent to the program.\r\n* There is a chance that `relayer()` is still running at this point if\r\n`(*signalReceivers).Stop()` has not yet sent along the `shutdown`\r\nchannel.\r\n* The relayer [attempts to broadcast the\r\nsignal](https://github.com/uber-go/fx/blob/master/signal.go#L93)\r\nreceived via the `signals` channel.\r\n* `Broadcast()` blocks on [trying to acquire the\r\nlock](https://github.com/uber-go/fx/blob/master/signal.go#L178).\r\n* `(*signalReceivers).Stop()` blocks on [waiting for the `relayer()` to\r\nfinish](https://github.com/uber-go/fx/blob/master/signal.go#L132) by\r\nblocking on the `finished` channel.\r\n* Deadlock.\r\n\r\nLuckily, this is not a hard deadlock, as `Stop` will return if the\r\ncontext times out, but we should still fix it.\r\n\r\nThis PR fixes this deadlock. The idea behind how it does it is based on\r\nthe observation that the broadcasting logic does not necessarily seem to\r\nneed to share a mutex with the rest of `signalReceivers`. Specifically,\r\nit seems like we can separate protection around the registered `wait`\r\nand `done` channels, `last`, and the rest of the fields, since the\r\nreferences to those fields are easily isolated. To avoid\r\novercomplicating `signalReceivers` with multiple locks for different\r\nuses, this PR creates a separate `broadcaster` type in charge of keeping\r\ntrack of and broadcasting to `Wait` and `Done` channels. Most of the\r\nimplementation of `broadcaster` is simply moved over from\r\n`signalReceivers`.\r\n\r\nHaving a separate broadcaster type seems actually quite natural, so I\r\nopted for this to fix the deadlock. Absolutely open to feedback or\r\ntaking other routes if folks have thoughts.\r\n\r\nSince broadcasting is protected separately, this deadlock no longer\r\nhappens since `relayer()` is free to finish its broadcast and then exit.\r\n\r\nIn addition to running the example provided in the original post to\r\nverify, I added a test and ran it before/after this change.\r\n\r\nBefore:\r\n```\r\n$ go test -v -count=10 -run \"TestSignal/stop_deadlock\" .\r\n=== RUN TestSignal/stop_deadlock\r\n signal_test.go:141:\r\n Error Trace:\r\n/home/user/go/src/github.com/uber-go/fx/signal_test.go:141\r\n Error: Received unexpected error:\r\n context deadline exceeded\r\n Test: TestSignal/stop_deadlock\r\n```\r\n(the failure appeared roughly 1/3 of the time)\r\n\r\nAfter:\r\n```\r\n$ go test -v -count=100 -run \"TestSignal/stop_deadlock\" .\r\n--- PASS: TestSignal (0.00s)\r\n --- PASS: TestSignal/stop_deadlock (0.00s)\r\n```\r\n(no failures appeared)","shortMessageHtmlLink":"Fix deadlock caused by race while signal receivers are stopping (#1220)"}},{"before":"45af511c27eebb3b9e02abe4a35e1f978ad61bdc","after":"74d9643901f29e17920d4c4324110deab06affb3","ref":"refs/heads/master","pushedAt":"2024-06-25T20:21:40.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"JacobOaks","name":"Jacob Oaks","path":"/JacobOaks","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11602410?s=80&v=4"},"commit":{"message":"Back to development (#1218)\n\nModify changelog and version to reflect back to development.","shortMessageHtmlLink":"Back to development (#1218)"}},{"before":"38e64eca60855806c1f3f353a63526801609c3a1","after":"45af511c27eebb3b9e02abe4a35e1f978ad61bdc","ref":"refs/heads/master","pushedAt":"2024-06-25T20:10:21.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"JacobOaks","name":"Jacob Oaks","path":"/JacobOaks","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11602410?s=80&v=4"},"commit":{"message":"Prepare Release v1.22.1 (#1217)\n\nUpdate changelog and `version.go` for a patch release that includes\r\n#1215.","shortMessageHtmlLink":"Prepare Release v1.22.1 (#1217)"}},{"before":"d0d12e909cb11b142686311b1e6f1a0c0bbaa28c","after":"38e64eca60855806c1f3f353a63526801609c3a1","ref":"refs/heads/master","pushedAt":"2024-06-25T19:43:36.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"JacobOaks","name":"Jacob Oaks","path":"/JacobOaks","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11602410?s=80&v=4"},"commit":{"message":"fix: Only register signal handlers if user intends to use them (#1215)\n\ncloses #1212, and fixes a regression from #989. Previously we would only\r\nregister signal handlers if the user intended to use them. #989 changed\r\nthis behavior\r\n[here](https://github.com/uber-go/fx/pull/989/files#diff-6c4b6ed7dc8834cef100f50dae61c30ffe7775a3f3f6f5a557517cb740c44a2dR649).\r\n\r\nThis regression meant that if you only used app.Start()/app.Stop(), fx\r\nwould register signal handlers for no reason as the user didn't use\r\napp.Done/app.Wait.","shortMessageHtmlLink":"fix: Only register signal handlers if user intends to use them (#1215)"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xNlQxNDo0MDo1OS4wMDAwMDBazwAAAAS3i2hd","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNi0yNVQxOTo0MzozNi4wMDAwMDBazwAAAARvAiC6"}},"title":"Activity · uber-go/fx"}