Raw JSON report machine-readable
{
"data": {
"repo": {
"topics": [
"julia",
"macro"
],
"is_fork": false,
"size_kb": 842,
"has_wiki": true,
"homepage": "https://fluxml.ai/MacroTools.jl/stable/",
"languages": {
"Julia": 45983
},
"pushed_at": "2025-12-29T02:42:30Z",
"created_at": "2015-07-09T14:20:08Z",
"owner_type": "Organization",
"updated_at": "2026-06-22T21:11:47Z",
"description": "MacroTools provides a library of tools for working with Julia code and expressions.",
"is_archived": false,
"is_disabled": false,
"license_spdx": null,
"default_branch": "master",
"license_spdx_raw": "NOASSERTION",
"primary_language": "Julia",
"significant_languages": [
"Julia"
]
},
"owner": {
"blog": "https://fluxml.ai",
"name": "FluxML",
"type": "Organization",
"login": "FluxML",
"company": null,
"location": null,
"followers": 335,
"avatar_url": "https://avatars.githubusercontent.com/u/26222520?v=4",
"created_at": "2017-03-06T12:07:55Z",
"is_verified": null,
"public_repos": 48,
"account_age_days": 3429
},
"license": {
"state": "custom",
"spdx_id": null,
"raw_spdx": "NOASSERTION",
"file_present": true,
"scorecard_found": true,
"profile_has_license": true
},
"activity": {
"releases": [
{
"tag": "v0.5.16",
"kind": "patch",
"published_at": "2025-04-17T20:38:20Z"
},
{
"tag": "v0.5.15",
"kind": "patch",
"published_at": "2025-01-07T01:27:36Z"
},
{
"tag": "v0.5.13",
"kind": "patch",
"published_at": "2024-01-15T01:14:50Z"
},
{
"tag": "v0.5.12",
"kind": "patch",
"published_at": "2023-12-19T17:54:41Z"
},
{
"tag": "v0.5.11",
"kind": "patch",
"published_at": "2023-08-22T16:09:16Z"
},
{
"tag": "v0.5.10",
"kind": "patch",
"published_at": "2022-10-05T10:01:46Z"
},
{
"tag": "v0.5.6",
"kind": "patch",
"published_at": "2020-10-18T19:59:32Z"
},
{
"tag": "v0.5.4",
"kind": "patch",
"published_at": "2020-02-04T14:33:15Z"
},
{
"tag": "v0.5.3",
"kind": "patch",
"published_at": "2019-12-03T16:17:54Z"
},
{
"tag": "v0.5.2",
"kind": "patch",
"published_at": "2019-11-12T15:48:30Z"
},
{
"tag": "v0.5.1",
"kind": "patch",
"published_at": "2019-07-12T17:06:21Z"
},
{
"tag": "v0.5.0",
"kind": "minor",
"published_at": "2019-04-03T18:48:22Z"
},
{
"tag": "v0.4.5",
"kind": "patch",
"published_at": "2019-02-19T15:42:04Z"
},
{
"tag": "v0.4.4",
"kind": "patch",
"published_at": "2018-08-08T10:22:27Z"
},
{
"tag": "v0.4.3",
"kind": "patch",
"published_at": "2018-08-07T19:17:30Z"
},
{
"tag": "v0.4.2",
"kind": "patch",
"published_at": "2018-06-27T07:43:00Z"
},
{
"tag": "v0.4.1",
"kind": "patch",
"published_at": "2018-06-05T18:01:35Z"
},
{
"tag": "v0.4.0",
"kind": "minor",
"published_at": "2017-10-16T14:07:45Z"
},
{
"tag": "v0.3.9",
"kind": "patch",
"published_at": "2017-10-16T12:21:50Z"
},
{
"tag": "v0.3.8",
"kind": "patch",
"published_at": "2017-06-13T15:16:41Z"
},
{
"tag": "v0.3.7",
"kind": "patch",
"published_at": "2017-06-13T14:32:25Z"
},
{
"tag": "v0.3.6",
"kind": "patch",
"published_at": "2017-03-01T13:40:39Z"
},
{
"tag": "v0.3.5",
"kind": "patch",
"published_at": "2017-02-10T15:58:04Z"
},
{
"tag": "v0.3.4",
"kind": "patch",
"published_at": "2016-12-19T18:25:35Z"
}
],
"recent_commits": [
{
"oid": "53155052f17971477e56117f330fc29832eb95e7",
"body": "…thodlist-compat\n\nFix Julia 1.12 compatibility for MethodList API change",
"is_bot": false,
"headline": "Merge pull request #217 from ChrisRackauckas-Claude/fix-julia-1.12-me…",
"author_name": "Cédric St-Jean",
"author_login": "cstjean",
"committed_at": "2025-12-29T02:40:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6990d348c89f80c8153fdd635634fa23161f1d55",
"body": "Test that prettify correctly resolves function references (like $sin) to\ntheir symbolic names (sin). This exercises the unresolve functionality\nwhich was fixed for Julia 1.12 compatibility.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add test for prettify function resolution",
"author_name": "ChrisRackauckas",
"author_login": "ChrisRackauckas",
"committed_at": "2025-12-29T02:27:54Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "3d396e72dfbcf6f2f3494be43028163fa00372e4",
"body": "In Julia 1.12, `Base.MethodList` no longer has the `mt` field.\nUse `nameof(f)` for Julia >= 1.12 to get the function name.\n\nFixes #216\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Fix Julia 1.12 compatibility for MethodList API change",
"author_name": "ChrisRackauckas",
"author_login": "ChrisRackauckas",
"committed_at": "2025-12-29T01:03:31Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "ac4492a09f79820475632fde5f7a640d24973201",
"body": "New utility `rmdocs`",
"is_bot": false,
"headline": "Merge pull request #215 from astrozot/master",
"author_name": "Cédric St-Jean",
"author_login": "cstjean",
"committed_at": "2025-12-12T01:14:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "35fb3a4c1bb5a4d42bf676547c16ebb2f23914b8",
"body": null,
"is_bot": false,
"headline": "Tests for rmlines and rmdocs",
"author_name": "Marco Lombardi",
"author_login": "astrozot",
"committed_at": "2025-12-09T10:48:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "27c84482863fda545bbc6aa42eca2a67224cbbc1",
"body": null,
"is_bot": false,
"headline": "Fix condition to check for non-nothing argument",
"author_name": "Marco Lombardi",
"author_login": "astrozot",
"committed_at": "2025-12-08T20:29:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4b9e25e70a35c7d907601afb8a32d8721a328fba",
"body": null,
"is_bot": false,
"headline": "Add MacroTools.rmdocs to utilities documentation",
"author_name": "Marco Lombardi",
"author_login": "astrozot",
"committed_at": "2025-12-08T19:20:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c804e71fee0d7d6142ad9b19e1a9deb0f7695487",
"body": "Add rmdocs function to remove documentation macros from expressions.",
"is_bot": false,
"headline": "Implement rmdocs to strip documentation macros",
"author_name": "Marco Lombardi",
"author_login": "astrozot",
"committed_at": "2025-12-08T19:18:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "937f97be353b443702337a40d16f76efeada7d5c",
"body": "fix: mark public non-exported names as `public` for Julia v1.11+",
"is_bot": false,
"headline": "Merge pull request #213 from digital-carver/dcarv/publicnames",
"author_name": "Cédric St-Jean",
"author_login": "cstjean",
"committed_at": "2025-09-01T00:38:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a5fde092184383f9012a8aa94dda0c815b0feef3",
"body": null,
"is_bot": false,
"headline": "fix: mark public non-exported names as `public` for Julia v1.11+",
"author_name": "SundaraRaman R",
"author_login": "digital-carver",
"committed_at": "2025-08-29T09:55:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1d50ac1ca915106b8b2f396832da1d0de7c7c06d",
"body": "Test correct `:params` in `splitdef` on constructor",
"is_bot": false,
"headline": "Merge pull request #211 from kunzaatko/master",
"author_name": "Cédric St-Jean",
"author_login": "cstjean",
"committed_at": "2025-06-23T21:45:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0aa614340ab268f81c3bfe95b6e8cdf85d9f1ce7",
"body": "Added a note to the documentation on the purpose of `params`\nAdded a test to check that the detection of `:params` works in `splitdef`",
"is_bot": false,
"headline": "test: `splitdef` on constructor function",
"author_name": "Martin Kunz",
"author_login": "kunzaatko",
"committed_at": "2025-06-21T16:46:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "87ef1f8a7328174dee5df5fa7cfc5b7bb82f01a7",
"body": null,
"is_bot": false,
"headline": "V bump",
"author_name": "Cedric St-Jean",
"author_login": "cstjean",
"committed_at": "2025-04-17T20:17:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fa9fc141d83b339501d6e0126a2c92c092f41a56",
"body": "Fix anonymous function edge cases",
"is_bot": false,
"headline": "Merge pull request #210 from MilesCranmer/fix-anonymous-edgecases",
"author_name": "Cédric St-Jean",
"author_login": "cstjean",
"committed_at": "2025-04-17T20:14:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b3e148c90229ec8ac82c220bd98fa9cdffd01084",
"body": null,
"is_bot": false,
"headline": "fix: issue in generating `:kw` for anonymous functions",
"author_name": "MilesCranmer",
"author_login": "MilesCranmer",
"committed_at": "2025-04-14T16:43:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0786002c6b2d085e6a03503ecc333df2a5e918ab",
"body": null,
"is_bot": false,
"headline": "fix: no-arg but kwarg splat",
"author_name": "MilesCranmer",
"author_login": "MilesCranmer",
"committed_at": "2025-04-13T17:43:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9c62605d70e81a60f7222c8917b686d49c9da5e8",
"body": null,
"is_bot": false,
"headline": "fix: misnaming function as `tuple`",
"author_name": "MilesCranmer",
"author_login": "MilesCranmer",
"committed_at": "2025-04-13T17:26:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "20e9d3abc409bb0c3d555a697cbdafd682b7617d",
"body": null,
"is_bot": false,
"headline": "test: anonymous function edgecases",
"author_name": "MilesCranmer",
"author_login": "MilesCranmer",
"committed_at": "2025-04-13T16:58:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f460b317a9a671db08ac59439ca8810c69a8510d",
"body": null,
"is_bot": false,
"headline": "feat: handle anonymous function edgecases",
"author_name": "MilesCranmer",
"author_login": "MilesCranmer",
"committed_at": "2025-04-13T16:57:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "db8ed6c7ca07c64ff4ecce2b476bde183b1b29ec",
"body": null,
"is_bot": false,
"headline": "Bump up version number.",
"author_name": "Cédric St-Jean",
"author_login": "cstjean",
"committed_at": "2025-01-07T00:36:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7d9ceb605cd19554b566f36b6ba73b9cd240a38a",
"body": "Store unique + randomly shuffled animal names",
"is_bot": false,
"headline": "Merge pull request #207 from devmotion/dw/animals",
"author_name": "Cédric St-Jean",
"author_login": "cstjean",
"committed_at": "2025-01-06T00:43:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dcf8b46361290c28de4ff5cfac01fc06fc7505ef",
"body": null,
"is_bot": false,
"headline": "Remove test with StableRNG",
"author_name": "David Widmann",
"author_login": "devmotion",
"committed_at": "2025-01-05T21:17:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d32b96d0371217351d788a0a46e95e345267865c",
"body": null,
"is_bot": false,
"headline": "Store unique + randomized animal names",
"author_name": "David Widmann",
"author_login": "devmotion",
"committed_at": "2025-01-02T22:31:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9a663496f1447277210116ef6f205489e33a41a3",
"body": "remove markdown from dependencies",
"is_bot": false,
"headline": "Merge pull request #206 from longemen3000/remove-markdown",
"author_name": "Cédric St-Jean",
"author_login": "cstjean",
"committed_at": "2024-07-16T05:55:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "26ab6ded09c4ab8ac7461237e9928c312945d6ef",
"body": null,
"is_bot": false,
"headline": "remove markdown from dependencies",
"author_name": "Andrés Riedemann",
"author_login": "longemen3000",
"committed_at": "2024-07-16T05:29:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0daeb44e0ab6166fa271366671dbea2585643474",
"body": "Update pattern-matching.md",
"is_bot": false,
"headline": "Merge pull request #202 from jkroso/patch-1",
"author_name": "Cédric St-Jean",
"author_login": "cstjean",
"committed_at": "2024-05-09T01:57:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "74d55fab567dc28e56ea490293300a62735dc0a3",
"body": null,
"is_bot": false,
"headline": "Update pattern-matching.md with example",
"author_name": "Jake Rosoman",
"author_login": "jkroso",
"committed_at": "2024-05-09T01:04:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bebf75d55af3bce43a9e0dd362232d8191c17a49",
"body": "Co-authored-by: Cédric St-Jean <cedric.stjean@gmail.com>",
"is_bot": false,
"headline": "Update docs/src/pattern-matching.md",
"author_name": "Jake Rosoman",
"author_login": "jkroso",
"committed_at": "2024-05-08T23:43:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "86a05102b45e36dceec40e9fa8400f39de4d5c71",
"body": "Explain why QuoteNode never matches",
"is_bot": false,
"headline": "Update pattern-matching.md",
"author_name": "Jake Rosoman",
"author_login": "jkroso",
"committed_at": "2024-05-08T21:02:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c9f9e98495d109cd354a6cc98e6c689c96fc3499",
"body": "Correctly interpolate `TypeBind`",
"is_bot": false,
"headline": "Merge pull request #201 from lassepe/fix/interpolation",
"author_name": "Cédric St-Jean",
"author_login": "cstjean",
"committed_at": "2024-03-22T02:32:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4b755b56cc81abfaf4b27146e503b1a17714c270",
"body": null,
"is_bot": false,
"headline": "Test capture with explicit import",
"author_name": "lassepe",
"author_login": "lassepe",
"committed_at": "2024-03-21T08:23:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dd025895811c2f166ea58d8316fbcbd758786b30",
"body": "Resolves #30",
"is_bot": false,
"headline": "Correctly interpolate `TypeBind`",
"author_name": "lassepe",
"author_login": "lassepe",
"committed_at": "2024-03-19T10:53:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2b843b20f271c63158eb07d2940cb73987395aa4",
"body": "Define @qq",
"is_bot": false,
"headline": "Merge pull request #200 from FluxML/qq",
"author_name": "Cédric St-Jean",
"author_login": "cstjean",
"committed_at": "2024-01-15T00:58:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7547d12de4e423e6b737d5030457a4b57399f385",
"body": null,
"is_bot": false,
"headline": "Bump up version",
"author_name": "Cédric St-Jean",
"author_login": "cstjean",
"committed_at": "2024-01-15T00:50:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "00875ee2f623b59a153d8821cb0ba246436d7016",
"body": null,
"is_bot": false,
"headline": "Only test on Julia 1.6",
"author_name": "Cédric St-Jean",
"author_login": "cstjean",
"committed_at": "2024-01-15T00:47:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2665789664251bab75d33bea984145cd6ca943c2",
"body": "Bump up julia compat",
"is_bot": false,
"headline": "Update Project.toml",
"author_name": "Cédric St-Jean",
"author_login": "cstjean",
"committed_at": "2024-01-15T00:45:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9db5a11428bb28988c7e868e4d9d5c603f0b9e26",
"body": null,
"is_bot": false,
"headline": "Define @qq",
"author_name": "Cedric St-Jean",
"author_login": "cstjean",
"committed_at": "2023-12-24T21:50:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6b3034a5bbef280ab8b927cada9dd9c8a665d5d4",
"body": "Fix isdef",
"is_bot": false,
"headline": "Merge pull request #199 from FluxML/fix-isdef",
"author_name": "Cédric St-Jean",
"author_login": "cstjean",
"committed_at": "2023-12-19T17:34:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "28bf092f788286260d42680ee3b140589c64ad77",
"body": null,
"is_bot": false,
"headline": "Bump up version",
"author_name": "Cedric St-Jean",
"author_login": "cstjean",
"committed_at": "2023-12-18T01:30:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "112c875ed0d9b73e7d0b92b0416d0bbc679576c9",
"body": null,
"is_bot": false,
"headline": "Improve comment",
"author_name": "Cedric St-Jean",
"author_login": "cstjean",
"committed_at": "2023-12-17T21:16:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7f5a4bd0ca8ff5ccaabcfa976e334c9a0ff093c6",
"body": null,
"is_bot": false,
"headline": "isdef for anonymous functions",
"author_name": "Cedric St-Jean",
"author_login": "cstjean",
"committed_at": "2023-12-17T21:15:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "222589fd4e22ed277081f70b384dbe523525017e",
"body": "This feels like the simplest fix, though I wonder why it wasn't defined like that in the first\nplace. Hopefully from now on we can increase test coverage on each release.",
"is_bot": false,
"headline": "Fix isdef",
"author_name": "Cedric St-Jean",
"author_login": "cstjean",
"committed_at": "2023-12-17T21:05:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a2664701742222ff3a8bb90d1c68dce3f595cb99",
"body": "Actions node 12 => node 16",
"is_bot": false,
"headline": "Merge pull request #198 from Jay-sanjay/version-5",
"author_name": "Cédric St-Jean",
"author_login": "cstjean",
"committed_at": "2023-09-30T07:00:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cef48a12528b3ed1263d4969158b17fc78606592",
"body": null,
"is_bot": false,
"headline": "revert",
"author_name": "Jay-sanjay",
"author_login": "Jay-sanjay",
"committed_at": "2023-09-30T05:42:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "449be20adb7478dd974c8fc402099de537114691",
"body": null,
"is_bot": false,
"headline": "updated .yml files",
"author_name": "Jay-sanjay",
"author_login": "Jay-sanjay",
"committed_at": "2023-09-30T05:40:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "30e4960eb06ba75d5d0fbbacfcce50b365269d6f",
"body": "misc fixes to `flatten`",
"is_bot": false,
"headline": "Merge pull request #197 from Krastanov/juliasyntax1.10alt",
"author_name": "Cédric St-Jean",
"author_login": "cstjean",
"committed_at": "2023-08-21T08:29:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b82987404f33a4345108e111de010c81d1d6b80e",
"body": null,
"is_bot": false,
"headline": "document the issue",
"author_name": "Stefan Krastanov",
"author_login": "Krastanov",
"committed_at": "2023-08-11T23:17:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "95906ba811d60c5d9134225a8e29b45f0451c58c",
"body": "Co-authored-by: Cédric St-Jean <cedric.stjean@gmail.com>",
"is_bot": false,
"headline": "Update src/utils.jl",
"author_name": "Stefan Krastanov",
"author_login": "Krastanov",
"committed_at": "2023-08-11T17:00:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "db92942417746a773d2531e788104c3e5ac7eb1b",
"body": null,
"is_bot": false,
"headline": "permit unnatural expressions",
"author_name": "Stefan Krastanov",
"author_login": "Krastanov",
"committed_at": "2023-08-11T16:41:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4f745b6177b0e0e727c4c9cb6cb871220839eba4",
"body": null,
"is_bot": false,
"headline": "simplify and more tests",
"author_name": "Stefan Krastanov",
"author_login": "Krastanov",
"committed_at": "2023-08-11T04:04:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a1a8badce70a2b52c377035ad9e72952de13ea16",
"body": null,
"is_bot": false,
"headline": "simplify",
"author_name": "Stefan Krastanov",
"author_login": "Krastanov",
"committed_at": "2023-08-11T01:13:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e56d94b2510587b68569a270d68c322fdd4f9539",
"body": null,
"is_bot": false,
"headline": "add a non-try flatten test",
"author_name": "Stefan Krastanov",
"author_login": "Krastanov",
"committed_at": "2023-08-10T19:37:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a0dec4d58864dc65752a68a0bb79ed23522a6669",
"body": null,
"is_bot": false,
"headline": "redo the tree traversal strategy in flatten",
"author_name": "Stefan Krastanov",
"author_login": "Krastanov",
"committed_at": "2023-08-10T19:21:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "29d342e30c72f6ce74b411b11522d1bf0833b3a6",
"body": null,
"is_bot": false,
"headline": "remove repeated tests",
"author_name": "Stefan Krastanov",
"author_login": "Krastanov",
"committed_at": "2023-07-31T05:14:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "57ee3a66b3fdf3cb8793e68829cc51dec78fbbc0",
"body": null,
"is_bot": false,
"headline": "disregard a harmless ambiguity",
"author_name": "Stefan Krastanov",
"author_login": "Krastanov",
"committed_at": "2023-07-31T05:11:42Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5b3e588277d52690ed3ad030e821a0f3a1fc21cf",
"body": null,
"is_bot": false,
"headline": "make tests conditional on supported syntax",
"author_name": "Stefan Krastanov",
"author_login": "Krastanov",
"committed_at": "2023-07-31T04:06:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "982d18fddb3a75d8671f5e27ccc009a81834a79d",
"body": null,
"is_bot": false,
"headline": "more robust flatten of try blocks",
"author_name": "Stefan Krastanov",
"author_login": "Krastanov",
"committed_at": "2023-07-31T03:56:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "275f495ac288be6efd9c06e1d7356bcc9cfdd98e",
"body": null,
"is_bot": false,
"headline": "fix for new line num nodes from JuliaSyntax",
"author_name": "Stefan Krastanov",
"author_login": "Krastanov",
"committed_at": "2023-07-29T20:03:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d1937f95a7e5c82f9cc3b5a4f8a2b33fdb32f884",
"body": "add manual `workflow_dispatch`",
"is_bot": false,
"headline": "Merge pull request #190 from t-bltg/patch-1",
"author_name": "Cédric St-Jean",
"author_login": "cstjean",
"committed_at": "2022-10-13T18:56:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "57eed04c83f9d8f493c0efc2c1489f295b219896",
"body": null,
"is_bot": false,
"headline": "add manual `workflow_dispatch`",
"author_name": "t-bltg",
"author_login": "t-bltg",
"committed_at": "2022-10-13T14:58:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0ac2fe19ae9febaae51a6f1841ff360536d88a1b",
"body": "docs workflow",
"is_bot": false,
"headline": "Merge pull request #189 from t-bltg/docs",
"author_name": "Cédric St-Jean",
"author_login": "cstjean",
"committed_at": "2022-10-13T14:50:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4012aa74f2f5fc576b2a3d34ae651103861526c0",
"body": null,
"is_bot": false,
"headline": "swap",
"author_name": "t-bltg",
"author_login": "t-bltg",
"committed_at": "2022-10-13T08:40:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1699465d15212c9e77142a5efc375867da33bd69",
"body": null,
"is_bot": false,
"headline": "remove `Manifest`",
"author_name": "t-bltg",
"author_login": "t-bltg",
"committed_at": "2022-10-13T08:37:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "adb1324c9f6e425af3edb3e96dc83347c602a7cf",
"body": null,
"is_bot": false,
"headline": "dev `MacroTools`",
"author_name": "t-bltg",
"author_login": "t-bltg",
"committed_at": "2022-10-13T08:35:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a70a504134b9b8dfbf915ef19dae314a3e3f6432",
"body": null,
"is_bot": false,
"headline": "add julia compat",
"author_name": "t-bltg",
"author_login": "t-bltg",
"committed_at": "2022-10-13T08:33:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b43d8181f8a8d2194a8de7c5049769ee82a9979f",
"body": null,
"is_bot": false,
"headline": "modernize invalidations",
"author_name": "t-bltg",
"author_login": "t-bltg",
"committed_at": "2022-10-13T08:30:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "98ef9f56645e7772e4a5d148b2f505987cb9bbbc",
"body": null,
"is_bot": false,
"headline": "update",
"author_name": "t-bltg",
"author_login": "t-bltg",
"committed_at": "2022-10-13T08:28:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7c2a905c5933a3ece289d625d29eb7f1b4f7b541",
"body": null,
"is_bot": false,
"headline": "modernize CI",
"author_name": "t-bltg",
"author_login": "t-bltg",
"committed_at": "2022-10-13T08:26:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9bf913a65730d027cd2a6ebf5978f2f944b95beb",
"body": null,
"is_bot": false,
"headline": "trigger docs",
"author_name": "t-bltg",
"author_login": "t-bltg",
"committed_at": "2022-10-13T08:23:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8018684c9284e3ab3b811fe029f7519b060c1476",
"body": null,
"is_bot": false,
"headline": "docs workflow",
"author_name": "t-bltg",
"author_login": "t-bltg",
"committed_at": "2022-10-13T08:17:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cfebc83b87e468d85912e4746fca67f0738ace85",
"body": null,
"is_bot": false,
"headline": "Tag 0.5.10",
"author_name": "Cedric St-Jean",
"author_login": "cstjean",
"committed_at": "2022-10-05T09:36:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ab2c02d3ade9ced3a32df11b3dc439ed20d4024b",
"body": "Throw an error when encountering missing values",
"is_bot": false,
"headline": "Merge pull request #183 from FluxML/mji/missing",
"author_name": "Mike J Innes",
"author_login": "MikeInnes",
"committed_at": "2022-09-14T08:56:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c6ab0a30847a8ddf7c537e213507161e1e7a578d",
"body": "Create Invalidations.yml",
"is_bot": false,
"headline": "Merge pull request #186 from ranocha/patch-1",
"author_name": "Cédric St-Jean",
"author_login": "cstjean",
"committed_at": "2022-09-01T14:57:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "27f3954792d2b713acd7c9eec46c7bf3bbf75c42",
"body": "This is based on https://github.com/julia-actions/julia-invalidations. Adding such checks came up in https://discourse.julialang.org/t/potential-performance-regressions-in-julia-1-8-for-special-un-precompiled-type-dispatches-and-how-to-fix-them/86359. I suggest to add this check here since this package is widely used as a dependency.\r\n\r\nSee also SciML/MuladdMacro.jl#26 and SciML/MuladdMacro.jl#29",
"is_bot": false,
"headline": "Create Invalidations.yml",
"author_name": "Hendrik Ranocha",
"author_login": "ranocha",
"committed_at": "2022-09-01T14:10:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6972738a06f562d53602f9844f7adc4289485053",
"body": null,
"is_bot": false,
"headline": "error out on missing",
"author_name": "Mike Innes",
"author_login": "MikeInnes",
"committed_at": "2022-05-12T16:01:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "639d1a62c3d6bc37325cddbaa13d4c993d1448fb",
"body": "Update badges",
"is_bot": false,
"headline": "Merge pull request #181 from FluxML/bc/badge-update",
"author_name": "Cédric St-Jean",
"author_login": "cstjean",
"committed_at": "2022-04-11T12:07:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c121d142d3026dfe24b1b3429f22d2ec7c147d0f",
"body": "Add Codecov badge and alt text to the docs links.",
"is_bot": false,
"headline": "Update badges",
"author_name": "Brian Chen",
"author_login": "ToucheSir",
"committed_at": "2022-04-11T05:05:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5e0fe08c0c8b4ab61989b187f5a151e2ec95541d",
"body": "Fixes 165, Fixes 177.",
"is_bot": false,
"headline": "Merge pull request #178 from peterahrens/pja/fix-splitcombinearg-1.7",
"author_name": "Cédric St-Jean",
"author_login": "cstjean",
"committed_at": "2022-01-04T21:59:10Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0dea2c093d3f105fa19bbddee5a3d386195d22ec",
"body": "Co-authored-by: Cédric St-Jean <cedric.stjean@gmail.com>",
"is_bot": false,
"headline": "Point out the test for 165",
"author_name": "Peter Ahrens",
"author_login": "willow-ahrens",
"committed_at": "2022-01-04T20:59:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8aefd25264fa6202cd1fba0952229ddef4fa6f6b",
"body": "Co-authored-by: Cédric St-Jean <cedric.stjean@gmail.com>",
"is_bot": false,
"headline": "Only avoid typeassert in combinearg when splatting.",
"author_name": "Peter Ahrens",
"author_login": "willow-ahrens",
"committed_at": "2022-01-04T20:57:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f84996f5e08d06799a007ff9dafe79766a0d0084",
"body": "Co-authored-by: Cédric St-Jean <cedric.stjean@gmail.com>",
"is_bot": false,
"headline": "Add comments suggested by @cstjean",
"author_name": "Peter Ahrens",
"author_login": "willow-ahrens",
"committed_at": "2022-01-03T01:28:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8da820cdf85f0d9a034f47996e597024ceca57ac",
"body": null,
"is_bot": false,
"headline": "No interface change necessary?",
"author_name": "Peter Ahrens",
"author_login": "willow-ahrens",
"committed_at": "2022-01-01T15:42:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fb9f6c6dc11e6c705759df9f3011fb24d0e096bf",
"body": null,
"is_bot": false,
"headline": "Fixes 165, Fixes 177.",
"author_name": "Peter Ahrens",
"author_login": "willow-ahrens",
"committed_at": "2021-12-30T22:45:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a80be88486e34801594d3dcd882282c13c5b5d51",
"body": "Remove code for Julia <= 0.7",
"is_bot": false,
"headline": "Merge pull request #176 from fingolfin/mh/VERSION",
"author_name": "Cédric St-Jean",
"author_login": "cstjean",
"committed_at": "2021-12-28T23:31:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ad43b617376e9540d3a4fba2f4d2029ac7897abf",
"body": null,
"is_bot": false,
"headline": "Remove code for Julia <= 0.7",
"author_name": "Max Horn",
"author_login": "fingolfin",
"committed_at": "2021-12-28T01:20:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "41d8f61b1367a0d82d21e8ea58a0669a8645e1f8",
"body": "Install TagBot as a GitHub Action",
"is_bot": false,
"headline": "Merge pull request #175 from fingolfin/mh/tagbot",
"author_name": "Cédric St-Jean",
"author_login": "cstjean",
"committed_at": "2021-12-28T00:41:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c0b7fc287fcd8e72e7c156d4775594eb7391c5ae",
"body": "Fix CI by moving CI.yml to right place",
"is_bot": false,
"headline": "Merge pull request #174 from fingolfin/mh/fix-CI",
"author_name": "Cédric St-Jean",
"author_login": "cstjean",
"committed_at": "2021-12-28T00:41:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c229e8fa1d8903523ee7491e483f4770f91b9e2a",
"body": "Closes #135 which installs an outdated predecessor of this action.\nSee https://github.com/marketplace/actions/julia-tagbot for details.",
"is_bot": false,
"headline": "Install TagBot as a GitHub Action",
"author_name": "Max Horn",
"author_login": "fingolfin",
"committed_at": "2021-12-27T22:52:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "30f130cdf44134fd387e3b28be967967d08fdfb4",
"body": "Also fix a typo and change a link from http to https",
"is_bot": false,
"headline": "README.md: point to GitHub Actions instead of Travis",
"author_name": "Max Horn",
"author_login": "fingolfin",
"committed_at": "2021-12-27T22:48:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0e9a161f32b88f97dd1636aabcbd124f1fcaa12f",
"body": null,
"is_bot": false,
"headline": "Fix CI by moving CI.yml to right place",
"author_name": "Max Horn",
"author_login": "fingolfin",
"committed_at": "2021-12-27T22:26:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d9bcebc8e4169d56cc7b2e42bef7d4b921056714",
"body": null,
"is_bot": false,
"headline": "Bump version",
"author_name": "Cedric St-Jean",
"author_login": "cstjean",
"committed_at": "2021-10-28T16:08:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5980dabf4e47ff98e41b1feb0fc8022a2e523e84",
"body": "move shuffling of animals to be done on demand instead of during initialization",
"is_bot": false,
"headline": "Merge pull request #169 from KristofferC/kc/improve_load_time",
"author_name": "Cédric St-Jean",
"author_login": "cstjean",
"committed_at": "2021-10-27T16:27:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "181137036bcf1725950fe00624bd078856413ba5",
"body": "move CI to GitHub actions",
"is_bot": false,
"headline": "Merge pull request #170 from KristofferC/kc/gha",
"author_name": "Cédric St-Jean",
"author_login": "cstjean",
"committed_at": "2021-10-27T16:25:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "85276e28ff275dbc3808f34bdece11a49dabbcb9",
"body": null,
"is_bot": false,
"headline": "move shuffle back to toplevel",
"author_name": "Kristoffer",
"author_login": "KristofferC",
"committed_at": "2021-10-27T15:46:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a01d7aa25feeb22758324909f6ac743a4e341df9",
"body": null,
"is_bot": false,
"headline": "move CI to GitHub actions",
"author_name": "Kristoffer",
"author_login": "KristofferC",
"committed_at": "2021-10-26T15:06:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dd3c53a59f639ae4bd96b777b22182e13dd7241a",
"body": "…ialization",
"is_bot": false,
"headline": "move shuffling of animals to be done on demand instead of during init…",
"author_name": "Kristoffer",
"author_login": "KristofferC",
"committed_at": "2021-10-26T14:53:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "65c55530b63918daac5f041b144c50d4e34e7984",
"body": "use `===` and `!==` in more places to improve inferrabilities",
"is_bot": false,
"headline": "Merge pull request #168 from aviatesk/avi/inf",
"author_name": "Cédric St-Jean",
"author_login": "cstjean",
"committed_at": "2021-09-11T20:34:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bdf210b4703843e4db5e4c6faf8c23b78867f024",
"body": null,
"is_bot": false,
"headline": "use `===` and `!==` in more places to improve inferrabilities",
"author_name": "Shuhei Kadowaki",
"author_login": "aviatesk",
"committed_at": "2021-09-11T13:35:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7bc92b783230ec69c9f3a61a3b9c5157759bac6f",
"body": "Use === in more places to reduce invalidation",
"is_bot": false,
"headline": "Merge pull request #167 from timholy/teh/===",
"author_name": "Cédric St-Jean",
"author_login": "cstjean",
"committed_at": "2021-08-18T18:25:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "498347865858b59f25679234ac91c4d8346528a1",
"body": null,
"is_bot": false,
"headline": "Use === in more places to reduce invalidation",
"author_name": "Tim Holy",
"author_login": "timholy",
"committed_at": "2021-08-18T13:26:41Z",
"body_truncated": false,
"is_coding_agent": false
}
],
"releases_count": 24,
"commits_last_year": 10,
"latest_release_at": "2025-04-17T20:38:20Z",
"latest_release_tag": "v0.5.16",
"releases_from_tags": false,
"days_since_last_push": 209,
"active_weeks_last_year": 4,
"days_since_latest_release": 465,
"mean_days_between_releases": 220.4
},
"community": {
"has_readme": true,
"has_license": true,
"has_description": true,
"has_contributing": false,
"health_percentage": 62,
"has_issue_template": false,
"has_code_of_conduct": true,
"has_pull_request_template": true
},
"ecosystem": {
"packages": []
},
"popularity": {
"forks": 84,
"stars": 321,
"watchers": 13,
"fork_history": {
"days": [
{
"date": "2015-07-13",
"count": 1
},
{
"date": "2015-07-25",
"count": 1
},
{
"date": "2016-05-08",
"count": 1
},
{
"date": "2016-06-03",
"count": 1
},
{
"date": "2016-06-21",
"count": 1
},
{
"date": "2016-07-11",
"count": 1
},
{
"date": "2016-08-03",
"count": 1
},
{
"date": "2016-08-04",
"count": 1
},
{
"date": "2016-08-20",
"count": 1
},
{
"date": "2017-03-30",
"count": 1
},
{
"date": "2017-04-17",
"count": 1
},
{
"date": "2017-05-01",
"count": 1
},
{
"date": "2017-07-06",
"count": 1
},
{
"date": "2017-11-08",
"count": 1
},
{
"date": "2017-12-22",
"count": 1
},
{
"date": "2018-03-14",
"count": 1
},
{
"date": "2018-04-02",
"count": 1
},
{
"date": "2018-04-12",
"count": 1
},
{
"date": "2018-05-20",
"count": 1
},
{
"date": "2018-06-27",
"count": 1
},
{
"date": "2018-07-04",
"count": 1
},
{
"date": "2018-07-07",
"count": 1
},
{
"date": "2018-07-20",
"count": 1
},
{
"date": "2018-07-30",
"count": 1
},
{
"date": "2018-08-05",
"count": 1
},
{
"date": "2018-08-07",
"count": 1
},
{
"date": "2018-08-17",
"count": 1
},
{
"date": "2018-08-20",
"count": 1
},
{
"date": "2018-09-08",
"count": 1
},
{
"date": "2018-09-15",
"count": 1
},
{
"date": "2018-09-23",
"count": 1
},
{
"date": "2018-11-22",
"count": 1
},
{
"date": "2019-03-02",
"count": 1
},
{
"date": "2019-03-08",
"count": 1
},
{
"date": "2019-06-06",
"count": 1
},
{
"date": "2019-06-27",
"count": 1
},
{
"date": "2019-07-09",
"count": 1
},
{
"date": "2019-07-22",
"count": 1
},
{
"date": "2019-08-18",
"count": 1
},
{
"date": "2019-10-10",
"count": 1
},
{
"date": "2019-10-28",
"count": 1
},
{
"date": "2019-12-06",
"count": 1
},
{
"date": "2019-12-19",
"count": 1
},
{
"date": "2020-01-17",
"count": 1
},
{
"date": "2020-02-08",
"count": 1
},
{
"date": "2020-02-10",
"count": 1
},
{
"date": "2020-02-24",
"count": 1
},
{
"date": "2020-04-30",
"count": 1
},
{
"date": "2020-07-03",
"count": 1
},
{
"date": "2020-07-04",
"count": 1
},
{
"date": "2020-07-06",
"count": 1
},
{
"date": "2020-07-10",
"count": 1
},
{
"date": "2020-08-03",
"count": 1
},
{
"date": "2020-09-09",
"count": 1
},
{
"date": "2020-09-18",
"count": 1
},
{
"date": "2020-11-09",
"count": 1
},
{
"date": "2020-12-09",
"count": 1
},
{
"date": "2020-12-12",
"count": 1
},
{
"date": "2020-12-24",
"count": 1
},
{
"date": "2021-02-22",
"count": 1
},
{
"date": "2021-04-05",
"count": 1
},
{
"date": "2021-08-13",
"count": 1
},
{
"date": "2021-10-06",
"count": 1
},
{
"date": "2021-12-22",
"count": 1
},
{
"date": "2022-01-02",
"count": 1
},
{
"date": "2022-04-22",
"count": 1
},
{
"date": "2022-07-20",
"count": 1
},
{
"date": "2023-01-03",
"count": 1
},
{
"date": "2023-03-12",
"count": 1
},
{
"date": "2023-07-29",
"count": 1
},
{
"date": "2023-09-30",
"count": 1
},
{
"date": "2024-02-10",
"count": 1
},
{
"date": "2024-03-19",
"count": 1
},
{
"date": "2024-05-08",
"count": 1
},
{
"date": "2024-07-16",
"count": 1
},
{
"date": "2025-01-02",
"count": 1
},
{
"date": "2025-04-13",
"count": 1
},
{
"date": "2025-06-21",
"count": 1
},
{
"date": "2025-08-28",
"count": 1
},
{
"date": "2025-12-08",
"count": 1
},
{
"date": "2025-12-29",
"count": 1
},
{
"date": "2026-02-24",
"count": 1
}
],
"complete": true,
"collected": 82,
"total_forks": 84
},
"star_history": null,
"open_issues_and_prs": 32
},
"ai_readiness": {
"has_nix": false,
"example_dirs": [
"examples"
],
"has_llms_txt": false,
"has_dockerfile": false,
"has_mcp_signal": false,
"bootstrap_files": [],
"api_schema_files": [],
"has_devcontainer": false,
"typecheck_configs": [],
"toolchain_manifests": [],
"largest_source_bytes": null,
"source_files_sampled": 0,
"oversized_source_files": 0,
"agent_instruction_files": [],
"agent_instruction_max_bytes": null
},
"dependencies": {
"manifests": [],
"advisories": {
"error": "No resolved dependencies to assess",
"scope": "repository_graph",
"source": null,
"findings": [],
"collected": false,
"malicious": [],
"truncated": false,
"by_severity": {},
"advisory_count": 0,
"affected_count": 0,
"assessed_count": 0,
"malicious_count": 0,
"assessed_package": null,
"unassessed_count": 0,
"direct_affected_count": 0
},
"ecosystems": [],
"dependencies": [],
"all_dependencies": {
"error": null,
"source": "github-sbom",
"packages": [],
"collected": true,
"truncated": false,
"total_count": 0,
"direct_count": 0,
"indirect_count": 0
}
},
"maintainership": {
"issues": {
"open_prs": 4,
"merged_prs": 99,
"open_issues": 28,
"closed_ratio": 0.682,
"closed_issues": 60,
"closed_unmerged_prs": 26
},
"bus_factor": 2,
"bot_contributors": 1,
"top_contributors": [
{
"type": "User",
"login": "MikeInnes",
"commits": 223,
"avatar_url": "https://avatars.githubusercontent.com/u/2234614?v=4"
},
{
"type": "User",
"login": "cstjean",
"commits": 84,
"avatar_url": "https://avatars.githubusercontent.com/u/8622776?v=4"
},
{
"type": "User",
"login": "Krastanov",
"commits": 12,
"avatar_url": "https://avatars.githubusercontent.com/u/705248?v=4"
},
{
"type": "User",
"login": "aviatesk",
"commits": 11,
"avatar_url": "https://avatars.githubusercontent.com/u/40514306?v=4"
},
{
"type": "User",
"login": "t-bltg",
"commits": 10,
"avatar_url": "https://avatars.githubusercontent.com/u/13423344?v=4"
},
{
"type": "User",
"login": "KristofferC",
"commits": 7,
"avatar_url": "https://avatars.githubusercontent.com/u/1282691?v=4"
},
{
"type": "User",
"login": "fingolfin",
"commits": 6,
"avatar_url": "https://avatars.githubusercontent.com/u/241512?v=4"
},
{
"type": "User",
"login": "willow-ahrens",
"commits": 6,
"avatar_url": "https://avatars.githubusercontent.com/u/5770255?v=4"
},
{
"type": "User",
"login": "MilesCranmer",
"commits": 5,
"avatar_url": "https://avatars.githubusercontent.com/u/7593028?v=4"
},
{
"type": "User",
"login": "yuyichao",
"commits": 5,
"avatar_url": "https://avatars.githubusercontent.com/u/712232?v=4"
}
],
"contributors_sampled": 58,
"top_contributor_share": 0.491
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"CI.yml",
"Docs.yml",
"Invalidations.yml",
"TagBot.yml"
],
"has_docs_dir": true,
"linter_configs": [],
"has_editorconfig": false,
"has_linter_config": false,
"has_precommit_config": false
},
"security_signals": {
"lockfiles": [],
"scorecard": {
"checks": [
{
"name": "Binary-Artifacts",
"score": 10,
"reason": "no binaries found in the repo",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
},
{
"name": "Branch-Protection",
"score": 0,
"reason": "branch protection not enabled on development/release branches",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
},
{
"name": "CI-Tests",
"score": 4,
"reason": "4 out of 9 merged PRs checked by a CI test -- score normalized to 4",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
},
{
"name": "CII-Best-Practices",
"score": 0,
"reason": "no effort to earn an OpenSSF best practices badge detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
},
{
"name": "Code-Review",
"score": 8,
"reason": "Found 9/11 approved changesets -- score normalized to 8",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
},
{
"name": "Contributors",
"score": 10,
"reason": "project has 69 contributing companies or organizations",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
},
{
"name": "Dangerous-Workflow",
"score": 10,
"reason": "no dangerous workflow patterns detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
},
{
"name": "Dependency-Update-Tool",
"score": 0,
"reason": "no update tool detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
},
{
"name": "Fuzzing",
"score": 0,
"reason": "project is not fuzzed",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
},
{
"name": "License",
"score": 9,
"reason": "license file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
},
{
"name": "Maintained",
"score": 0,
"reason": "0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
},
{
"name": "Packaging",
"score": null,
"reason": "packaging workflow not detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
},
{
"name": "Pinned-Dependencies",
"score": 0,
"reason": "dependency not pinned by hash detected -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
},
{
"name": "SAST",
"score": 0,
"reason": "SAST tool is not run on all commits -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
},
{
"name": "Security-Policy",
"score": 0,
"reason": "security policy file not detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
},
{
"name": "Signed-Releases",
"score": null,
"reason": "no releases found",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
},
{
"name": "Token-Permissions",
"score": 0,
"reason": "detected GitHub workflow tokens with excessive permissions",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
},
{
"name": "Vulnerabilities",
"score": 10,
"reason": "0 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "53155052f17971477e56117f330fc29832eb95e7",
"ran_at": "2026-07-26T22:58:15Z",
"aggregate_score": 4,
"scorecard_version": "v5.5.0"
},
"has_codeql_workflow": false,
"has_security_policy": false,
"has_dependabot_config": false
},
"contribution_flow": {
"collected": true,
"ci_last_run_at": "2026-07-02T14:35:34Z",
"oldest_open_prs": [
{
"number": 37,
"created_at": "2017-04-17T19:46:04Z",
"last_comment_at": "2017-05-10T13:55:22Z",
"last_comment_author": "MikeInnes"
},
{
"number": 132,
"created_at": "2020-01-17T17:52:08Z",
"last_comment_at": "2020-12-24T18:36:26Z",
"last_comment_author": "fingolfin"
},
{
"number": 160,
"created_at": "2021-05-24T17:21:45Z",
"last_comment_at": "2021-05-24T17:24:13Z",
"last_comment_author": "aviatesk"
},
{
"number": 179,
"created_at": "2022-01-05T01:19:13Z",
"last_comment_at": "2022-01-07T19:53:47Z",
"last_comment_author": "cstjean"
}
],
"last_merged_pr_at": "2025-12-29T02:40:52Z",
"ci_last_conclusion": "SKIPPED",
"oldest_open_issues": [
{
"number": 26,
"created_at": "2016-12-19T16:45:50Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 28,
"created_at": "2017-01-04T03:17:31Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 29,
"created_at": "2017-01-05T14:09:52Z",
"last_comment_at": "2017-01-19T14:06:48Z",
"last_comment_author": "MikeInnes"
},
{
"number": 31,
"created_at": "2017-02-10T03:08:23Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 36,
"created_at": "2017-04-03T17:12:03Z",
"last_comment_at": "2017-04-17T19:16:30Z",
"last_comment_author": "rdeits"
},
{
"number": 38,
"created_at": "2017-05-01T18:53:50Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 46,
"created_at": "2017-06-13T15:16:43Z",
"last_comment_at": "2017-07-25T15:04:37Z",
"last_comment_author": "tkelman"
},
{
"number": 49,
"created_at": "2017-08-11T15:34:49Z",
"last_comment_at": "2025-09-18T15:51:30Z",
"last_comment_author": "jakobjpeters"
},
{
"number": 74,
"created_at": "2018-05-25T10:16:38Z",
"last_comment_at": "2023-06-02T03:46:15Z",
"last_comment_author": "cstjean"
},
{
"number": 84,
"created_at": "2018-08-05T15:53:47Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 92,
"created_at": "2018-08-22T02:45:16Z",
"last_comment_at": "2018-11-02T20:16:19Z",
"last_comment_author": "cstjean"
},
{
"number": 94,
"created_at": "2018-08-26T12:23:52Z",
"last_comment_at": "2018-09-17T17:49:21Z",
"last_comment_author": "MikeInnes"
},
{
"number": 95,
"created_at": "2018-08-27T16:34:57Z",
"last_comment_at": "2018-09-17T14:10:50Z",
"last_comment_author": "MikeInnes"
},
{
"number": 98,
"created_at": "2018-09-08T09:28:27Z",
"last_comment_at": "2018-11-05T12:47:06Z",
"last_comment_author": "MikeInnes"
},
{
"number": 106,
"created_at": "2018-11-30T12:35:13Z",
"last_comment_at": "2019-01-28T10:56:28Z",
"last_comment_author": "MikeInnes"
},
{
"number": 107,
"created_at": "2018-12-10T14:31:40Z",
"last_comment_at": "2020-08-14T11:50:53Z",
"last_comment_author": "mauro3"
},
{
"number": 120,
"created_at": "2019-08-16T04:28:00Z",
"last_comment_at": "2019-10-10T17:37:15Z",
"last_comment_author": "saolof"
},
{
"number": 122,
"created_at": "2019-08-22T18:06:59Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 123,
"created_at": "2019-08-30T16:20:24Z",
"last_comment_at": "2019-09-02T13:27:10Z",
"last_comment_author": "MikeInnes"
},
{
"number": 124,
"created_at": "2019-09-02T14:00:57Z",
"last_comment_at": "2020-11-13T11:06:08Z",
"last_comment_author": "cstjean"
}
]
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/FluxML/MacroTools.jl",
"host": "github.com",
"name": "MacroTools.jl",
"owner": "FluxML"
},
"metrics": {
"overall": {
"key": "overall",
"band": "moderate",
"name": "Overall health",
"note": null,
"notes": [],
"value": 56,
"inputs": {
"security": 40,
"vitality": 30,
"community": 64,
"governance": 68,
"engineering": 74
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "at_risk",
"name": "Vitality",
"value": 30,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "critical",
"name": "Development activity",
"note": null,
"notes": [],
"value": 16,
"inputs": {
"commits_last_year": 10,
"human_commit_share": 1,
"days_since_last_push": 209,
"active_weeks_last_year": 4
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 209 days ago",
"points": 3.6,
"status": "partial",
"details": [
{
"code": "push_recency",
"params": {
"days": 209
}
}
],
"max_points": 36
},
{
"key": "commit_cadence",
"name": "Commit cadence",
"detail": "4/52 weeks with commits",
"points": 2.8,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 4
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "10 commits in the last year",
"points": 9.4,
"status": "partial",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 10
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "release_discipline",
"band": "moderate",
"name": "Release discipline",
"note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"openssf_scorecard_signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 52,
"inputs": {
"releases_count": 24,
"latest_release_tag": "v0.5.16",
"releases_from_tags": false,
"days_since_latest_release": 465,
"mean_days_between_releases": 220.4
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "24 releases published",
"points": 27,
"status": "met",
"details": [
{
"code": "releases_published",
"params": {
"count": 24
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 465 days ago",
"points": 7.2,
"status": "partial",
"details": [
{
"code": "release_recency",
"params": {
"days": 465
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~220.4 days",
"points": 12.6,
"status": "partial",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 220.4
}
}
],
"max_points": 27
},
{
"key": "openssf_scorecard_signed_releases",
"name": "OpenSSF Scorecard: Signed-Releases",
"detail": "no releases found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 10
}
]
},
{
"key": "abandonment",
"band": "excellent",
"name": "Abandonment",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"cap": null,
"state": "dormant",
"guards": [],
"signals": [
"issue_rot",
"scorecard_unmaintained"
],
"red_flag": false,
"multiplier_pct": 100,
"declared_reason": null,
"unverified_reason": null,
"unanswered_open_prs": 4,
"unanswered_open_issues": 11,
"days_since_last_merged_pr": 209,
"days_since_last_human_commit": 209,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "no human commit for 209 days, with nothing left unanswered",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_quiet",
"params": {
"days": 209
}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "moderate",
"name": "Community & Adoption",
"value": 64,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "moderate",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 63,
"inputs": {
"forks": 84,
"stars": 321,
"watchers": 13,
"growth_state": "unverified",
"growth_factor_pct": 100,
"growth_unverified_reason": "no_history"
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "321 stars",
"points": 40.6,
"status": "partial",
"details": [
{
"code": "stars",
"params": {
"count": 321
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "84 forks",
"points": 16,
"status": "partial",
"details": [
{
"code": "forks",
"params": {
"count": 84
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "13 watchers",
"points": 6,
"status": "partial",
"details": [
{
"code": "watchers",
"params": {
"count": 13
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "moderate",
"name": "Community health",
"note": null,
"notes": [],
"value": 66,
"inputs": {
"has_readme": true,
"has_license": true,
"has_contributing": false,
"has_issue_template": false,
"has_code_of_conduct": true,
"has_pull_request_template": true
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 22.5,
"status": "met",
"details": [],
"max_points": 22.5
},
{
"key": "license",
"name": "License",
"detail": "license file present, not a recognized license",
"points": 16.9,
"status": "partial",
"details": [
{
"code": "license_custom",
"params": {}
}
],
"max_points": 22.5
},
{
"key": "contributing_guide",
"name": "CONTRIBUTING guide",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 18
},
{
"key": "code_of_conduct",
"name": "Code of conduct",
"detail": null,
"points": 13.5,
"status": "met",
"details": [],
"max_points": 13.5
},
{
"key": "issue_template",
"name": "Issue template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.2
},
{
"key": "pr_template",
"name": "PR template",
"detail": null,
"points": 6.3,
"status": "met",
"details": [],
"max_points": 6.3
}
]
}
],
"description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
},
{
"key": "governance",
"band": "moderate",
"name": "Sustainability & Governance",
"value": 68,
"weight": 0.24,
"metrics": [
{
"key": "maintainer_resilience",
"band": "moderate",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 60,
"inputs": {
"bus_factor": 2,
"contributors_sampled": 58,
"top_contributor_share": 0.491
},
"components": [
{
"key": "bus_factor",
"name": "Bus factor",
"detail": "2 contributor(s) cover half of all commits",
"points": 25.2,
"status": "partial",
"details": [
{
"code": "bus_factor",
"params": {
"count": 2
}
}
],
"max_points": 54
},
{
"key": "commit_distribution",
"name": "Commit distribution",
"detail": "top contributor authored 49% of commits",
"points": 11.5,
"status": "partial",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 49
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "58 contributors",
"points": 13.5,
"status": "met",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 58
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 69 contributing companies or organizations",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "good",
"name": "Issue & PR responsiveness",
"note": null,
"notes": [],
"value": 74,
"inputs": {
"merged_prs": 99,
"open_issues": 28,
"closed_issues": 60,
"issue_closed_ratio": 0.682,
"closed_unmerged_prs": 26
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "68% of issues closed",
"points": 31.9,
"status": "partial",
"details": [
{
"code": "issues_closed_share",
"params": {
"share": 68
}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "99/125 decided PRs merged",
"points": 30.3,
"status": "partial",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 99,
"decided": 125
}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "Found 9/11 approved changesets -- score normalized to 8",
"points": 12,
"status": "partial",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "good",
"name": "Ownership & stewardship",
"note": null,
"notes": [],
"value": 72,
"inputs": {
"followers": 335,
"owner_type": "Organization",
"is_verified": null,
"owner_login": "FluxML",
"public_repos": 48,
"account_age_days": 3429
},
"components": [
{
"key": "ownership_backing",
"name": "Ownership backing",
"detail": "organization-owned",
"points": 30,
"status": "met",
"details": [
{
"code": "owner_organization",
"params": {}
}
],
"max_points": 30
},
{
"key": "verified_domain",
"name": "Verified domain",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 20
},
{
"key": "owner_reach",
"name": "Owner reach",
"detail": "335 followers of FluxML",
"points": 18.2,
"status": "partial",
"details": [
{
"code": "owner_followers",
"params": {
"count": 335,
"login": "FluxML"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "48 public repos, account ~9 yr old",
"points": 24.3,
"status": "partial",
"details": [
{
"code": "public_repos",
"params": {
"count": 48
}
},
{
"code": "account_age_years",
"params": {
"years": 9
}
}
],
"max_points": 25
}
]
}
],
"description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
},
{
"key": "engineering",
"band": "good",
"name": "Engineering Quality",
"value": 74,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "moderate",
"name": "Engineering practices",
"note": null,
"notes": [],
"value": 56,
"inputs": {
"has_ci": true,
"has_tests": true,
"has_editorconfig": false,
"has_linter_config": false,
"has_precommit_config": false
},
"components": [
{
"key": "ci_workflows",
"name": "CI workflows",
"detail": "4 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 4
}
}
],
"max_points": 24
},
{
"key": "tests_present",
"name": "Tests present",
"detail": null,
"points": 24,
"status": "met",
"details": [],
"max_points": 24
},
{
"key": "linter_config",
"name": "Linter config",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 16
},
{
"key": "pre_commit_hooks",
"name": "Pre-commit hooks",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 9.6
},
{
"key": "editorconfig",
"name": ".editorconfig",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.4
},
{
"key": "openssf_scorecard_ci_tests",
"name": "OpenSSF Scorecard: CI-Tests",
"detail": "4 out of 9 merged PRs checked by a CI test -- score normalized to 4",
"points": 8,
"status": "partial",
"details": [],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "excellent",
"name": "Documentation",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"topics": [
"julia",
"macro"
],
"has_wiki": true,
"homepage": "https://fluxml.ai/MacroTools.jl/stable/",
"has_readme": true,
"has_docs_dir": true,
"has_description": true
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 30,
"status": "met",
"details": [],
"max_points": 30
},
{
"key": "documentation_directory",
"name": "Documentation directory",
"detail": null,
"points": 25,
"status": "met",
"details": [],
"max_points": 25
},
{
"key": "documentation_homepage_site",
"name": "Documentation / homepage site",
"detail": "https://fluxml.ai/MacroTools.jl/stable/",
"points": 15,
"status": "met",
"details": [],
"max_points": 15
},
{
"key": "repository_description",
"name": "Repository description",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "topics",
"name": "Topics",
"detail": "2 topics",
"points": 10,
"status": "met",
"details": [
{
"code": "topics_count",
"params": {
"count": 2
}
}
],
"max_points": 10
},
{
"key": "wiki",
"name": "Wiki",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
}
],
"description": "Are baseline engineering and documentation practices in place?"
},
{
"key": "security",
"band": "at_risk",
"name": "Security",
"value": 40,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "at_risk",
"name": "Security posture",
"note": "Excluded from scoring (no data or not applicable): Packaging, Signed-Releases. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"packaging",
"signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 40,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 16,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 2,
"scorecard_aggregate": 4
},
"components": [
{
"key": "binary_artifacts",
"name": "Binary-Artifacts",
"detail": "no binaries found in the repo",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "branch_protection",
"name": "Branch-Protection",
"detail": "branch protection not enabled on development/release branches",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "ci_tests",
"name": "CI-Tests",
"detail": "4 out of 9 merged PRs checked by a CI test -- score normalized to 4",
"points": 1,
"status": "partial",
"details": [],
"max_points": 2.5
},
{
"key": "cii_best_practices",
"name": "CII-Best-Practices",
"detail": "no effort to earn an OpenSSF best practices badge detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "code_review",
"name": "Code-Review",
"detail": "Found 9/11 approved changesets -- score normalized to 8",
"points": 6,
"status": "partial",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 69 contributing companies or organizations",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "dangerous_workflow",
"name": "Dangerous-Workflow",
"detail": "no dangerous workflow patterns detected",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "dependency_update_tool",
"name": "Dependency-Update-Tool",
"detail": "no update tool detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "fuzzing",
"name": "Fuzzing",
"detail": "project is not fuzzed",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "license",
"name": "License",
"detail": "license file detected",
"points": 2.2,
"status": "partial",
"details": [],
"max_points": 2.5
},
{
"key": "maintained",
"name": "Maintained",
"detail": "0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "packaging",
"name": "Packaging",
"detail": "packaging workflow not detected",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 5
},
{
"key": "pinned_dependencies",
"name": "Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "sast",
"name": "SAST",
"detail": "SAST tool is not run on all commits -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "security_policy",
"name": "Security-Policy",
"detail": "security policy file not detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "signed_releases",
"name": "Signed-Releases",
"detail": "no releases found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 7.5
},
{
"key": "token_permissions",
"name": "Token-Permissions",
"detail": "detected GitHub workflow tokens with excessive permissions",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "vulnerabilities",
"name": "Vulnerabilities",
"detail": "0 existing vulnerabilities detected",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
}
]
},
{
"key": "high_risk_jurisdiction_exposure",
"band": "excellent",
"name": "High-Risk Jurisdiction Exposure",
"note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
"notes": [
{
"code": "jurisdiction_evidence_limits",
"params": {}
}
],
"value": 100,
"inputs": {
"meaning": "self-published location evidence; not nationality or citizenship",
"red_flag": false,
"exposures": [],
"policy_countries": [
"Russia",
"Iran",
"North Korea"
],
"review_only_matches": 0,
"assessed_self_published_locations": 18
},
"components": [
{
"key": "policy_exposure_multiplier",
"name": "Policy exposure multiplier",
"detail": "no confirmed policy-scope location match",
"points": 100,
"status": "met",
"details": [
{
"code": "jurisdiction_no_match",
"params": {}
}
],
"max_points": 100
}
]
}
],
"description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
},
{
"key": "ai_readiness",
"band": "critical",
"name": "AI Readiness",
"value": 23,
"weight": 0,
"metrics": [
{
"key": "ai_agent_context",
"band": "critical",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 20,
"inputs": {
"has_llms_txt": false,
"legible_history_share": 0.38,
"agent_instruction_files": [],
"agent_instruction_max_bytes": null
},
"components": [
{
"key": "agent_instructions",
"name": "Agent instructions",
"detail": "no CLAUDE.md / AGENTS.md / editor rules",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_agent_instructions",
"params": {}
}
],
"max_points": 45
},
{
"key": "machine_readable_docs_llms_txt",
"name": "Machine-readable docs (llms.txt)",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
},
{
"key": "legible_commit_history",
"name": "Legible commit history",
"detail": "38 of 100 human commits state their intent (structured subject or explanatory body)",
"points": 20.3,
"status": "partial",
"details": [
{
"code": "legible_history",
"params": {
"legible": 38,
"sampled": 100
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "critical",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 26,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [],
"has_dockerfile": false,
"typed_language": false,
"bootstrap_files": [],
"has_devcontainer": false,
"has_linter_config": false,
"typecheck_configs": [],
"agent_commit_share": 0.02,
"toolchain_manifests": [],
"dependency_bot_commit_share": 0
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 18
},
{
"key": "automated_tests",
"name": "Automated tests",
"detail": null,
"points": 22,
"status": "met",
"details": [],
"max_points": 22
},
{
"key": "lint_format_config",
"name": "Lint / format config",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 11
},
{
"key": "static_type_checking",
"name": "Static type checking",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 11
},
{
"key": "reproducible_environment",
"name": "Reproducible environment",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
},
{
"key": "demonstrated_agent_practice",
"name": "Demonstrated agent practice",
"detail": "2 of the last 100 commits agent-authored or agent-credited",
"points": 4,
"status": "partial",
"details": [
{
"code": "agent_authored_commits",
"params": {
"count": 2,
"sampled": 100
}
}
],
"max_points": 10
},
{
"key": "automated_maintenance",
"name": "Automated maintenance",
"detail": "no automated dependency updates observed",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_dependency_automation",
"params": {}
}
],
"max_points": 8
},
{
"key": "openssf_scorecard_pinned_dependencies",
"name": "OpenSSF Scorecard: Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "ai_code_legibility",
"band": "critical",
"name": "Code legibility for models",
"note": "Excluded from scoring (no data or not applicable): Manageable file sizes. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"manageable_file_sizes"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 1,
"inputs": {
"primary_language": "Julia",
"largest_source_bytes": null,
"source_files_sampled": 0,
"oversized_source_files": 0
},
"components": [
{
"key": "type_checkable_code",
"name": "Type-checkable code",
"detail": "Julia without a type-check config",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_typecheck_config_language",
"params": {
"language": "Julia"
}
}
],
"max_points": 45
},
{
"key": "manageable_file_sizes",
"name": "Manageable file sizes",
"detail": "no source files detected",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_source_files",
"params": {}
}
],
"max_points": 55
}
]
},
{
"key": "ai_interfaces",
"band": "at_risk",
"name": "Machine-readable interfaces",
"note": null,
"notes": [],
"value": 40,
"inputs": {
"example_dirs": [
"examples"
],
"has_mcp_signal": false,
"api_schema_files": []
},
"components": [
{
"key": "api_schema_openapi_graphql_proto",
"name": "API schema (OpenAPI/GraphQL/proto)",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 40
},
{
"key": "mcp_server",
"name": "MCP server",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 20
},
{
"key": "runnable_examples",
"name": "Runnable examples",
"detail": "examples",
"points": 40,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "examples"
}
}
],
"max_points": 40
}
]
}
],
"description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
}
],
"metrics_version": "1.13.0"
},
"warnings": [
"Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token"
],
"report_type": "repository",
"generated_at": "2026-07-26T22:58:40.331923Z",
"schema_version": "0.27.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/f/FluxML/MacroTools.jl.svg",
"full_name": "FluxML/MacroTools.jl",
"license_state": "custom",
"license_spdx": null
}