Informe JSON sin procesar legible por máquina
{
"data": {
"repo": {
"topics": [
"netlist",
"eda",
"semiconductor",
"verilog",
"asic",
"fpga",
"cpp"
],
"is_fork": false,
"size_kb": 21971,
"has_wiki": true,
"homepage": null,
"languages": {
"C": 1437,
"C++": 5911075,
"CMake": 57442,
"Shell": 20362,
"Python": 1752868,
"Verilog": 12497482,
"Makefile": 18432,
"PowerShell": 1867,
"SystemVerilog": 62820,
"Jupyter Notebook": 70566
},
"pushed_at": "2026-07-22T07:55:47Z",
"created_at": "2021-10-08T08:28:13Z",
"owner_type": "Organization",
"updated_at": "2026-07-21T08:13:26Z",
"description": "Netlist API (and more) for EDA flow development",
"is_archived": false,
"is_disabled": false,
"license_spdx": "Apache-2.0",
"default_branch": "main",
"license_spdx_raw": "Apache-2.0",
"primary_language": "Verilog",
"significant_languages": [
"Verilog",
"C++"
]
},
"owner": {
"blog": null,
"name": "Naja EDA",
"type": "Organization",
"login": "najaeda",
"company": null,
"location": null,
"followers": 23,
"avatar_url": "https://avatars.githubusercontent.com/u/162299668?v=4",
"created_at": "2024-03-05T09:08:52Z",
"is_verified": null,
"public_repos": 16,
"account_age_days": 868
},
"license": {
"state": "standard",
"spdx_id": "Apache-2.0",
"raw_spdx": "Apache-2.0",
"file_present": true,
"scorecard_found": true,
"profile_has_license": true
},
"activity": {
"releases": [
{
"tag": "v0.7.16",
"kind": "patch",
"published_at": "2026-07-16T23:44:49Z"
},
{
"tag": "v0.7.15",
"kind": "patch",
"published_at": "2026-07-16T16:32:26Z"
},
{
"tag": "v0.7.14",
"kind": "patch",
"published_at": "2026-07-15T11:09:01Z"
},
{
"tag": "v0.7.13",
"kind": "patch",
"published_at": "2026-07-13T17:34:22Z"
},
{
"tag": "v0.7.12",
"kind": "patch",
"published_at": "2026-07-09T09:44:22Z"
},
{
"tag": "v0.7.11",
"kind": "patch",
"published_at": "2026-07-07T22:07:43Z"
},
{
"tag": "v0.7.10",
"kind": "patch",
"published_at": "2026-07-06T06:56:30Z"
},
{
"tag": "v0.7.9",
"kind": "patch",
"published_at": "2026-07-03T13:27:54Z"
},
{
"tag": "v0.7.8",
"kind": "patch",
"published_at": "2026-06-28T18:29:17Z"
},
{
"tag": "v0.7.7",
"kind": "patch",
"published_at": "2026-06-25T05:51:28Z"
},
{
"tag": "v0.7.6",
"kind": "patch",
"published_at": "2026-06-23T06:54:38Z"
},
{
"tag": "v0.7.5",
"kind": "patch",
"published_at": "2026-06-22T04:36:14Z"
},
{
"tag": "v0.7.4",
"kind": "patch",
"published_at": "2026-06-20T06:12:43Z"
},
{
"tag": "v0.7.3",
"kind": "patch",
"published_at": "2026-06-17T23:03:28Z"
},
{
"tag": "v0.7.2",
"kind": "patch",
"published_at": "2026-06-15T20:25:02Z"
},
{
"tag": "v0.7.1",
"kind": "patch",
"published_at": "2026-06-13T09:14:11Z"
},
{
"tag": "v0.7.0",
"kind": "minor",
"published_at": "2026-06-08T13:00:22Z"
},
{
"tag": "v0.6.7",
"kind": "patch",
"published_at": "2026-06-01T20:02:34Z"
},
{
"tag": "v0.6.6",
"kind": "patch",
"published_at": "2026-05-21T13:52:30Z"
},
{
"tag": "v0.6.5",
"kind": "patch",
"published_at": "2026-05-19T05:33:06Z"
},
{
"tag": "v0.6.4",
"kind": "patch",
"published_at": "2026-05-16T22:07:16Z"
},
{
"tag": "v0.6.3",
"kind": "patch",
"published_at": "2026-05-14T13:32:02Z"
},
{
"tag": "v0.6.2",
"kind": "patch",
"published_at": "2026-05-04T21:05:23Z"
},
{
"tag": "v0.6.1",
"kind": "patch",
"published_at": "2026-05-02T20:28:56Z"
},
{
"tag": "v0.6.0",
"kind": "minor",
"published_at": "2026-04-22T23:02:53Z"
},
{
"tag": "v0.5.4",
"kind": "patch",
"published_at": "2026-04-02T16:23:33Z"
},
{
"tag": "v0.5.3",
"kind": "patch",
"published_at": "2026-03-31T13:46:56Z"
},
{
"tag": "v0.5.2",
"kind": "patch",
"published_at": "2026-03-19T22:27:43Z"
},
{
"tag": "v0.5.1",
"kind": "patch",
"published_at": "2026-03-18T01:19:44Z"
},
{
"tag": "v0.5.0",
"kind": "minor",
"published_at": "2026-02-27T14:12:02Z"
},
{
"tag": "v0.4.1",
"kind": "patch",
"published_at": "2026-02-19T22:33:26Z"
},
{
"tag": "v0.4.0",
"kind": "minor",
"published_at": "2026-02-03T08:46:11Z"
},
{
"tag": "v0.3.6",
"kind": "patch",
"published_at": "2026-01-30T23:41:08Z"
},
{
"tag": "v0.3.5",
"kind": "patch",
"published_at": "2026-01-20T19:15:25Z"
},
{
"tag": "v0.3.4",
"kind": "patch",
"published_at": "2026-01-16T20:52:43Z"
},
{
"tag": "v0.3.3",
"kind": "patch",
"published_at": "2026-01-06T18:01:33Z"
},
{
"tag": "v0.3.2",
"kind": "patch",
"published_at": "2025-12-21T09:03:23Z"
},
{
"tag": "v0.3.1",
"kind": "patch",
"published_at": "2025-12-20T23:20:13Z"
},
{
"tag": "v0.3.0",
"kind": "minor",
"published_at": "2025-12-02T16:10:06Z"
},
{
"tag": "v0.2.13",
"kind": "patch",
"published_at": "2025-11-18T17:58:18Z"
},
{
"tag": "v0.2.12",
"kind": "patch",
"published_at": "2025-09-17T10:51:13Z"
},
{
"tag": "v0.2.11",
"kind": "patch",
"published_at": "2025-09-09T06:45:35Z"
},
{
"tag": "v0.2.10",
"kind": "patch",
"published_at": "2025-09-03T09:07:32Z"
},
{
"tag": "v0.2.9",
"kind": "patch",
"published_at": "2025-08-29T22:21:00Z"
},
{
"tag": "v0.2.8",
"kind": "patch",
"published_at": "2025-08-20T08:28:46Z"
},
{
"tag": "v0.2.7",
"kind": "patch",
"published_at": "2025-08-19T07:08:18Z"
},
{
"tag": "v0.2.6",
"kind": "patch",
"published_at": "2025-08-17T22:52:09Z"
},
{
"tag": "v0.2.5",
"kind": "patch",
"published_at": "2025-08-13T10:38:36Z"
},
{
"tag": "v0.2.4",
"kind": "patch",
"published_at": "2025-08-10T14:34:54Z"
},
{
"tag": "v0.2.3",
"kind": "patch",
"published_at": "2025-08-07T16:24:33Z"
},
{
"tag": "v0.2.2",
"kind": "patch",
"published_at": "2025-07-30T21:59:15Z"
},
{
"tag": "v0.2.1",
"kind": "patch",
"published_at": "2025-07-22T20:08:46Z"
},
{
"tag": "v0.2.0",
"kind": "minor",
"published_at": "2025-07-22T14:24:28Z"
},
{
"tag": "v0.1.25",
"kind": "patch",
"published_at": "2025-07-21T18:21:44Z"
},
{
"tag": "v0.1.24",
"kind": "patch",
"published_at": "2025-07-15T16:26:57Z"
},
{
"tag": "v0.1.23",
"kind": "patch",
"published_at": "2025-07-11T21:54:12Z"
},
{
"tag": "v0.1.22",
"kind": "patch",
"published_at": "2025-07-06T11:26:04Z"
},
{
"tag": "v0.1.21",
"kind": "patch",
"published_at": "2025-06-27T07:14:19Z"
},
{
"tag": "v0.1.20",
"kind": "patch",
"published_at": "2025-06-26T14:03:21Z"
},
{
"tag": "v0.1.19",
"kind": "patch",
"published_at": "2025-06-26T13:07:38Z"
},
{
"tag": "v0.1.18",
"kind": "patch",
"published_at": "2025-06-26T11:16:31Z"
},
{
"tag": "v0.1.17",
"kind": "patch",
"published_at": "2025-06-25T15:14:11Z"
}
],
"recent_commits": [
{
"oid": "dd16e9310e6b967910ff9ac5ac0285faf469b78a",
"body": null,
"is_bot": false,
"headline": "bump naja-if version",
"author_name": "xtof",
"author_login": "xtofalex",
"committed_at": "2026-07-21T08:11:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d67342020f295c2563d85a6c051f6adf02843985",
"body": "* Adding X and Z types\n\n* fix naja-if\n\n* improve coverage\n\n* coverage",
"is_bot": false,
"headline": "Adding X and Z types (#414)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-07-21T07:19:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "feb8a09303cb6139145f170b7fa9da26691d2659",
"body": null,
"is_bot": false,
"headline": "naja perf disabled by default in najaeda (#412)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-07-16T23:44:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e1a649e2fce182d8b7ca5c5c80ab5d04aad3ffa3",
"body": null,
"is_bot": false,
"headline": "B0.7.15 (#411)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-07-16T16:32:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6d033c316a3c86295ed8fb091a0bbb77d5aad6f2",
"body": "* start next v0.7.14\n\n* new testing\n\n* add 3.15 python support, remove 3.9",
"is_bot": false,
"headline": "B0.7.14 (#409)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-07-15T11:09:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bfc5649c27ebbef9459da87da995aca950610487",
"body": "* start 0.7.13 version\n\n* doc and version check in naja-if in progress\n\n* more mem inference\n\n* fix test\n\n* update cva6 regress\n\n* coverage\n\n* coverage\n\n* license cleaning\n\n* Fix the versioning checkes in naja-if dumps\n\n* coverage",
"is_bot": false,
"headline": "B0.7.13 (#408)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-07-13T17:34:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "003f954cca1311b9d78ee693fea4b2f1b426d558",
"body": null,
"is_bot": false,
"headline": "more coverage and testing",
"author_name": "xtof",
"author_login": "xtofalex",
"committed_at": "2026-07-11T11:52:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "30f65197f51c04dc3ec0ddd0143bb3b8f5e6db90",
"body": "$countones(x) on a runtime operand is not constant-foldable, so it reached\nresolveExpressionBits as an unresolved system Call and was rejected with\n\"Unsupported RHS in continuous assign ... Call\". It appears throughout\nissue-queue / freelist style RTL (population counts of valid/request vectors),\nin\n[…]\ne test to the existing\n bad_cond() case-inside-with-x-range idiom so it still exercises the\n member-setter-resolve-failure path.\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "sv frontend: lower $countones as an adder-fold popcount (#407)",
"author_name": "Michael Rogenmoser",
"author_login": "micprog",
"committed_at": "2026-07-10T17:47:04Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "2fa82d9e89b11d7f271356e9a75401ce5008be51",
"body": "resolveUnbasedOrStructuredPatternBits handled '{...} assignment patterns for\nunpacked arrays and packed structs, but not packed arrays (e.g.\n`logic [1:0][63:0] v = '{a, b}`). Such a pattern fell through to nullopt, so any\ncontinuous-assign RHS containing one — directly, or nested inside a '{...}\nstr\n[…]\ntternWithPackedArrayMember (packed array nested in a packed\nstruct pattern), both previously threw SNLSVUnsupportedConstructError.\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "sv frontend: lower packed-array assignment patterns (#406)",
"author_name": "Michael Rogenmoser",
"author_login": "micprog",
"committed_at": "2026-07-10T15:06:35Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "eb1dde036f924ecf3a181d73776bb5a9918509b3",
"body": "* prepare v0.7.12 version\n\n* rework documentation\n\n* description\n\n* clean hash functions in Py objects\n\n* has attributes\n\n* adding gate recognition primitives\n\n* new NLDB0 primitive\n\n* update testing\n\n* fixing tests\n\n* coverage\n\n* coverage\n\n* coverage\n\n* exclude line",
"is_bot": false,
"headline": "B0.7.12 (#405)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-07-09T09:44:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "af7695a1326727cc6efd808f523291f6c0f9fc88",
"body": "* add allow_unknown_designs in SV frontend and refactor verilog option\n\n* add standard __version__\n\n* add support in SV\n\n* Add API for Term characterization on primitives, currently only used in NLDB0 prims, to extend later to liberty and python loading.\n\n* Fix Ibex top ports issue\n\n* add INIT parameter on FFs\n\n* accept FF initialization at declaration time\n\n* more testing and coverage\n\n* more coverage\n\n* more coverage\n\n* coverage",
"is_bot": false,
"headline": "Allow unknown blackbox refactor (#403)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-07-07T22:07:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b9d5443e875fa167ce5ab69d31298b5a7878c6ae",
"body": null,
"is_bot": false,
"headline": "package najaeda sources (#404)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-07-07T21:46:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dd0c818b2f0b0d785d931456835f9f2325b66125",
"body": null,
"is_bot": false,
"headline": "naja FFs with INIT - defaulted to X",
"author_name": "xtof",
"author_login": "xtofalex",
"committed_at": "2026-07-07T11:17:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bac272e9b8bb6f2f032d4831f53a9304c10c7a3c",
"body": "* more memory inferring support\n\n* more SV support\n\n* adding new regress\n\n* new regress\n\n* fix test\n\n* memory inference coverage\n\n* new support\n\n* redesign SV warning messages\n\n* update tests\n\n* clean logging\n\n* more coverage\n\n* licensing",
"is_bot": false,
"headline": "B0.7.10 (#401)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-07-06T06:56:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "63031addd9a4f20b1ba252050a75b1c2d13b321e",
"body": null,
"is_bot": false,
"headline": "table select generic tt (#402)",
"author_name": "Noam Cohen",
"author_login": "nanocoh",
"committed_at": "2026-07-05T16:52:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "532014c15d95b305837d421398f07e54586c453c",
"body": null,
"is_bot": false,
"headline": "B0.7.9 (#398)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-07-03T13:27:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "618c6b54273caa3f6fd51372c80e6486af5213de",
"body": null,
"is_bot": false,
"headline": "partial path support in logic cone (#400)",
"author_name": "Noam Cohen",
"author_login": "nanocoh",
"committed_at": "2026-07-03T08:43:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "77cb2b1796b798572162fedda62539ef3054cc3c",
"body": "* DNL logic cone compute api",
"is_bot": false,
"headline": "DNL based logical cone compute api (#399)",
"author_name": "Noam Cohen",
"author_login": "nanocoh",
"committed_at": "2026-07-02T21:03:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4d6b8108c7d0680020c1d793372130a637d8c066",
"body": "* support and differentiate blocking and non blocking assignments\n\n* coverage",
"is_bot": false,
"headline": "support and differentiate blocking and non blocking assignments (#397)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-06-30T21:53:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "883b1c36f696fa7fa1e1e71123d8a0d8039668ae",
"body": "* initiate slang <-> naja link in memory\n\n* adding SV Intent\n\n* SVIntent evolution\n\n* coverage\n\n* more coverage",
"is_bot": false,
"headline": "B0.7.8 (#396)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-06-28T18:29:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "017a1c852a0d2630340619e932bb1b777eafe502",
"body": null,
"is_bot": false,
"headline": "B0.7.7 (#395)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-06-25T05:51:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7f5984ba6267bfbcc2a40f15192bc7173e740216",
"body": "* Add Combinatorial Dependencies to NLDB0 and, or, xor, ... gates\n\n* Add API for Instance Occurrence\n\n* add getAssign/NonAssign Instances",
"is_bot": false,
"headline": "Add Combinatorial Dependencies to NLDB0 and, or, xor, ... gates (#394)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-06-23T06:54:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "90b4128a092f6cbab9f670a5c32be81c935a91e4",
"body": null,
"is_bot": false,
"headline": "adding logical cone (#393)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-06-22T04:36:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7d9ccd4dcaf10673f3866b460b0a61a676b6be8c",
"body": null,
"is_bot": false,
"headline": "B0.7.4 (#392)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-06-20T06:12:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b4f66dd0f7625bca763dff567805d32dd7b31950",
"body": null,
"is_bot": false,
"headline": "B0.7.3 (#391)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-06-17T23:03:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8a038d7c32d26438178f2cfae4459f34a65c32c7",
"body": "* wrap source access in Python\n\n* coverage\n\n* fix",
"is_bot": false,
"headline": "wrap source access in Python (#390)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-06-15T20:25:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a78da55e85263eb2391e01def2f5cc9629854ee9",
"body": "* rework RTL source infos\n\n* coverage\n\n* fix git-hash information.\n\n* Clean Logic Optimization logging\n\n* apply all optim in megaboom regress run and add infos in naja_edit log\n\n* fix for docker build wf\n\n* fix for log\n\n* cleaning\n\n* improve instance optmization count logging\n\n* coverage",
"is_bot": false,
"headline": "rework RTL source infos (#389)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-06-15T15:52:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7a6775acacdded3892cb0628d4cb157074173e0e",
"body": null,
"is_bot": false,
"headline": "Liberty filtering (#388)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-06-13T09:14:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e09c942c2c8a24406bd4f0ba949220a82a5f9fc4",
"body": null,
"is_bot": false,
"headline": "Log cleaning (#387)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-06-13T06:07:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "71bfd75d36570d5730c705229967aeb7647f66cc",
"body": "* package as a bundle\n\n* fix path\n\n* verifications and cleaning\n\n* some cleaning\n\n* Fix\n\n* new cleaning",
"is_bot": false,
"headline": "package as a bundle (#386)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-06-12T10:19:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3a42cb4e3ecd872ae924e9920732a5dc64368e5b",
"body": null,
"is_bot": false,
"headline": "compress registers - switch to 0.7.0 version (#385)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-06-08T13:00:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c998ec4df1cccf0dfd5c76776ec5d38670bddd1e",
"body": null,
"is_bot": false,
"headline": "optimize cva6 regress (#384)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-06-07T10:41:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "122ec5103f815f248a3179a52515fcf357898823",
"body": "* primitive FFs and Latches\n\n* fix tests\n\n* reorganize db0\n\n* clean test\n\n* coverage",
"is_bot": false,
"headline": "primitive FFs and Latches (#383)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-06-05T14:49:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "eaba93f5efe0fc2f57d39466c45855ef9495a298",
"body": "…… (#382)\n\n* disable some parts of the workflows in forks when they can only work in central repo\n\n* protect forks against non runnable runs (upload package, ...)\n\n* add cva6 sim\n\n* clean regress\n\n* missing package\n\n* add local sim\n\n* add authorization\n\n* update sv regress\n\n* remove cva6 for the moment\n\n* add boost",
"is_bot": false,
"headline": "disable some parts of the workflows in forks when they can only work …",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-06-05T10:16:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e591f54bfe52d019e5790fd374a21a9cf7379440",
"body": null,
"is_bot": false,
"headline": "run megaboom regress on docker image (#381)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-06-04T06:42:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7576360808d16632847c1d02a9282531baf24143",
"body": "Removed Codacy badge from README.md",
"is_bot": false,
"headline": "Remove Codacy badge from README",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-06-03T11:23:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "12b3e86bcb5326b06ecfe97864e865dda459402b",
"body": "* add rl8 support\n\n* new attempt\n\n* adapt parser to rockylinux 8\n\n* use concurrent_hash_map from tbb\n\n* compile oneTBB\n\n* fix curl",
"is_bot": false,
"headline": "add rl8 support (#380)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-06-03T08:44:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d4bab5e687cedb120217261e42209ee53abd03f2",
"body": "* Towards 0.6.7 and more SV support\n\n* divmod prim\n\n* more SV support\n\n* support more latch cases\n\n* new latch support\n\n* new support\n\n* next row of support\n\n* next support\n\n* Trigger CI\n\n* Trigger CI\n\n* new row of support\n\n* next row\n\n* more support\n\n* new set of support\n\n* update workflow\n\n* updat\n[…]\nprocess design before multi-threading operation\n\n* clean tsan\n\n* cleaning\n\n* rerun wheels\n\n* run wheels\n\n* coverage\n\n* coverage\n\n* coverage\n\n---------\n\nCo-authored-by: Noam Cohen <noam.chn1@gmail.com>",
"is_bot": false,
"headline": "B0.6.7 (#377)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-06-01T20:02:34Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "8fa27fca8bfe64dd5f19229546491e3301b93024",
"body": "* test and fix for the bug\n\n* coverage\n\n* Trigger CI\n\n* Trigger CI",
"is_bot": false,
"headline": "test and fix for the bug (#378)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-05-26T14:50:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6d7199df68d6fb326bb3c62c65a9bdf759460c18",
"body": "* prepare next version\n\n* remove PINMISSING suppression warning in verilator linting\n\n* more SV support\n\n* edit IBEX linting\n\n* more avoided warnings\n\n* more suppression\n\n* more SV support\n\n* Fix more SV and tutorials\n\n* new support and cleaning\n\n* more SV support\n\n* next row of support\n\n* more support\n\n* improve coverage\n\n* coverage\n\n* coverage\n\n* coverage\n\n* coverage",
"is_bot": false,
"headline": "B0.6.6 (#376)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-05-21T13:52:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3634212302c1916a81bf9c8de672e66bde7e3a81",
"body": null,
"is_bot": false,
"headline": "Fix for SV (#375)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-05-19T05:33:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7c620f8b3ab850ef20e9c9094df8b11ac8f68900",
"body": "* prepare next version and simplify README\n\n* merging tutorials in repo in progress\n\n* integrate tutorials in naja\n\n* updates to README\n\n* clean licenses\n\n* setup najaeda to test tutorials\n\n* fix tutorial\n\n* don't change version",
"is_bot": false,
"headline": "Tutorials readme reworked (#374)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-05-18T10:11:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "17544c56bc1234953396bee2ca0c9e352771d71d",
"body": null,
"is_bot": false,
"headline": "B0.6.4 (#372)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-05-16T22:07:16Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "acd6ffaf1e6a64912b7139c8fea9a6fd736376f4",
"body": null,
"is_bot": false,
"headline": "addinx new axi bench and towards 0.6.3 (#371)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-05-14T13:32:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "002deb8d229e62e8f0fc256f10064412b824e980",
"body": null,
"is_bot": false,
"headline": "More SV sims (#370)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-05-09T13:23:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dbbac1c86735a01104c9651dfbe2f110df50f5a7",
"body": null,
"is_bot": false,
"headline": "more ibex sim",
"author_name": "xtof",
"author_login": "xtofalex",
"committed_at": "2026-05-08T09:39:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "af1d00128ca51f9182c7f37cdbd5ce3faac4a9cc",
"body": null,
"is_bot": false,
"headline": "IBEX sim and fix (#369)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-05-08T08:54:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6a3d849c8c0f4fedb93c6a5be0d07ac4e5b1df60",
"body": null,
"is_bot": false,
"headline": "new cv32e40p sim and fix for bug detected with the design (#368)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-05-07T19:46:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cfefd37c8e2c5d64d574105b83f86641792e70ce",
"body": "* adding simulation setup\n\n* fix simulation\n\n* sim again\n\n* update regress\n\n* clean getString\n\n* name assign\n\n* clean test\n\n* cleaning and coverage\n\n* cleaning\n\n* test bundle terms\n\n* setting global coverage\n\n* add license",
"is_bot": false,
"headline": "Cv32e40p simulation (#367)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-05-07T08:37:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "05a14c34844b62a2e40e8ff459d0cf7bb5d6d9ee",
"body": null,
"is_bot": false,
"headline": "memory modeling (#364)",
"author_name": "Noam Cohen",
"author_login": "nanocoh",
"committed_at": "2026-05-05T07:47:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9dde4931c2c2492d162c4a2989c6736508dc5952",
"body": "* cleaning regress\n\n* add round script to verify SV loading - CVA6 loading\n\n* fix SV\n\n* SV fix\n\n* fix multi driver\n\n* compute coverange with clang\n\n* fix coverage\n\n* new attempt\n\n* coverage\n\n* new testing",
"is_bot": false,
"headline": "cleaning regress (#366)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-05-04T21:05:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "83a2dbaa96f77f824d49e902a292c2e27eb5d10f",
"body": null,
"is_bot": false,
"headline": "clean coverage (#365)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-05-02T20:28:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a472a822064d5a2d942bebc89ef873676ea076c9",
"body": null,
"is_bot": false,
"headline": "sim fixes and ibex hello world (#363)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-05-01T09:23:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ffd9b13a4d022c262a140faea2b938f8a53ed767",
"body": "* SV fixes and more regress\n\n* cleaning\n\n* coverage\n\n* new fixes",
"is_bot": false,
"headline": "SV fixes and more regress (#362)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-04-29T07:39:10Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6c3ee26cebd7b7738158f90fcded32461917f3bc",
"body": null,
"is_bot": false,
"headline": "clean coverage and more sv regress (#361)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-04-28T09:14:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "783b5de40080b91fabb873435f3584535c9b5400",
"body": null,
"is_bot": false,
"headline": "Sv elaboration multidriver fixes (#360)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-04-27T21:47:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0157dd45161580a776b520cbb3415992fe754e8a",
"body": "* Fix for Dynamic element-select compound assignment\n\n* update black-parrot setup\n\nCo-authored-by: Copilot <copilot@github.com>\n\n* coverage and rework SV regress\n\n---------\n\nCo-authored-by: Copilot <copilot@github.com>",
"is_bot": false,
"headline": "Sv fix range selects (#359)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-04-26T19:57:18Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "4fc095dfdd5ff3f51d8dd9e67dd66fbb585ce58f",
"body": null,
"is_bot": false,
"headline": "bp regress",
"author_name": "xtof",
"author_login": "xtofalex",
"committed_at": "2026-04-26T14:50:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "907187b45ae424e70f8a88074e16f98db86e0e2b",
"body": "* Fix createAssignInstance\n\n* new fixes and starting SV regression by cloning existing repos\n\n* coverage",
"is_bot": false,
"headline": "Sv assign fix (#358)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-04-26T13:49:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a90c4027da7ca387bf43fd82926c2b27f3d2f4ed",
"body": "* mem inference fix\n\n* coverage\n\n* upgrade wheels internal actions\n\nCo-authored-by: Copilot <copilot@github.com>\n\n* coverage\n\n* coverage\n\n---------\n\nCo-authored-by: Copilot <copilot@github.com>",
"is_bot": false,
"headline": "mem inference fix (#357)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-04-25T12:37:48Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "2681f9d395472e3bdd615189d04a7e51e3d4f976",
"body": "* tests and fixes for always overrides\n\n* improve coverage\n\n* new option to dump assign as instances for debug in VRL dumper and new fix in SV Constructor\n\n* improve coverage\n\n* coverage again",
"is_bot": false,
"headline": "tests and fixes for always overrides (#356)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-04-25T01:51:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "162f008f1dadc054864254180e2e6ab4f9efd25a",
"body": "* fix always_comb overrides, improve VRLDumper layout\n\n* clean dumper",
"is_bot": false,
"headline": "fix always_comb overrides, improve VRLDumper layout (#355)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-04-23T20:40:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cb3aa27eb920d33d41bed9d8e8694b6833da6d19",
"body": "* report more unsupported SV elements\n\n* more SV support\n\n* negedge flops\n\n* support '|'\n\n* more sv support\n\n* more SV support\n\n* new SV supports : latch added in NLDB0\n\n* SV parsing\n\n* more SV support\n\n* add coverage scripts, switch to 0.6.0, more coverage\n\n* improve coverage\n\n* cleaning\n\n* coverage\n\n* more testing\n\n* coverage\n\n* coverage\n\n* bump slang version\n\n* exclude from cov\n\n* improve coverage\n\n* coverage\n\n* more coverage\n\n* more coverage\n\n* more coverage\n\n* cleaning",
"is_bot": false,
"headline": "Sv updates (#354)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-04-22T23:02:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9c1cf1da9c1e8fb4d37ebb8f06b61ef9f1f85bb3",
"body": "* liberty-bundle-no-pin\n\n* adding failing test\n\n* bypass \"internal\" bundle pins in liberty parser",
"is_bot": false,
"headline": "Liberty bundle no pin (#353)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-04-16T08:14:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3075cd639bb0db400d16815bd1ea895b01a747d1",
"body": null,
"is_bot": false,
"headline": "refactor in order to remove repeating nl directories",
"author_name": "xtof",
"author_login": "xtofalex",
"committed_at": "2026-04-15T10:06:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "763b85e2d9cb7f726be465db7dddef4d3f38a6d9",
"body": "…#352)\n\n* work on common usage for najaeda and naja_edit level for primitives\n\n* clean coverage\n\n* cleaning najaeda build and remove xilinx.py from primitives installation\n\n* clean SNLPyLoader\n\n* cleaning files\n\n* add rule in python exclude coverage\n\n* coverage cleaning",
"is_bot": false,
"headline": "work on common usage for najaeda and naja_edit level for primitives (…",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-04-14T12:02:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f348ecc80d49fb655dcdbf0048223f5e246cd94a",
"body": null,
"is_bot": false,
"headline": "Adding Bundle Term in SNL (#351)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-04-11T21:49:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "319865a0f291ad7ad501fd8e77767700ae5168c1",
"body": "* coverage process cleaning\n\n* switch back to lcov\n\n* add expected failing test\n\n* extend always support in SV\n\n* coverage settings\n\n* update coverage",
"is_bot": false,
"headline": "B0.5.5 (#350)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-04-07T14:46:42Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5136b9f699b7cb3caedefe6678a19603f9204e35",
"body": null,
"is_bot": false,
"headline": "work towards full RTL support + fix in tt",
"author_name": "Noam Cohen",
"author_login": "nanocoh",
"committed_at": "2026-04-06T23:25:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "348eb18cb7dd4410ccdb483bdec35b98f70fea22",
"body": null,
"is_bot": false,
"headline": "switching to 0.5.4",
"author_name": "xtof",
"author_login": "xtofalex",
"committed_at": "2026-04-02T16:23:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c74285ebf18152a4aaa320472533d0330452bfc0",
"body": "* Fix Perf on macos\n\n* Fix bloating of memory gen\n\n* code coverage exclusion",
"is_bot": false,
"headline": "B0.5.4 (#348)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-04-01T18:38:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7b13cb0aeff525802fd22e30af6f00a5db18c964",
"body": "* towards v0.5.3\n\n* fix typo",
"is_bot": false,
"headline": "towards v0.5.3 (#347)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-03-31T13:46:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "24e307110d1e4cad5b9eaea86105c772560aab8a",
"body": "* First steps\n\n* naja_mem in progress\n\n* bused mux2\n\n* clean coverage\n\n* perf coverage\n\n* save current state\n\n* cleaning and coverage\n\n* coverage\n\n* coverage\n\n* coverage\n\n* coverage\n\n* clean coverage\n\n* NLDB0 optims and SV Constructor coverage\n\n* code cleaning\n\n* coverage\n\n* cleaning and coverage\n\n* cleaning\n\n* coverage\n\n* cleaning and coverage",
"is_bot": false,
"headline": "Rtl memory inferring (#345)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-03-30T16:26:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0d8fe466ac566208680f5f5d1692a3e346ead691",
"body": "* add blackbox detection in SV constructor\n\n* clean coverage",
"is_bot": false,
"headline": "add blackbox detection in SV constructor (#346)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-03-23T12:20:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d529aacf231568235d88843e76688b851ebaa66b",
"body": null,
"is_bot": false,
"headline": "new exclusion pattern (#344)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-03-21T14:32:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c4a6dcba1181705bfaa77db67dbb5868de83d5c8",
"body": null,
"is_bot": false,
"headline": "coverage cleaning",
"author_name": "xtof",
"author_login": "xtofalex",
"committed_at": "2026-03-20T23:39:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3698bfe3c599ce9bbea43555e63aada4faa1a9c2",
"body": null,
"is_bot": false,
"headline": "cleaning codecov",
"author_name": "xtof",
"author_login": "xtofalex",
"committed_at": "2026-03-20T23:18:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "800693539f4283942f0c968c0fbf84220475dfe1",
"body": null,
"is_bot": false,
"headline": "install gcovr with python",
"author_name": "xtof",
"author_login": "xtofalex",
"committed_at": "2026-03-20T22:46:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "19c944a2abc9303c7c8d07cfc976ec4536af51d4",
"body": "* codecov run cleaning\n\n* update naja-verilog\n\n* update slang and add multiple combinations for compiling on ubuntu\n\n* new testing\n\n* update coverage\n\n* update coverage\n\n* switch to gcovr\n\n* cleaning\n\n* cleaning coverage\n\n* new attempt\n\n* new setting\n\n* update config file",
"is_bot": false,
"headline": "codecov run cleaning (#343)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-03-20T21:55:10Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f2aa8ad570e32ebdd74eff9d4e0991e59c0e25d2",
"body": "* new options in dump verilog to dump or not RTL informations\n\n* add TT for not\n\n* new attempt",
"is_bot": false,
"headline": "new options in dump verilog to dump or not RTL informations (#342)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-03-19T22:27:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a7792f81f69fe0c3486c30a7c45d18b45b146d5d",
"body": "* rework naja-regress\n\n* code cleaning and NajaEdit cleaning",
"is_bot": false,
"headline": "rework naja-regress (#341)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-03-18T18:56:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "20f660677b572158bf3d3f8019ce5e356e3b94b7",
"body": null,
"is_bot": false,
"headline": "B0.5.1 (#340)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-03-18T01:19:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e854ad98634b4caa35aa36552de1e38ee17f5f6a",
"body": "* add test and support\n\n* new testing",
"is_bot": false,
"headline": "Liberty: bus direction coming from child pins (#339)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-03-04T13:50:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2a5ef178dcb6fc015f5c17d35c87817e7a9abab3",
"body": "* new options better diagnose\n\n* more support\n\n* support packed arrays\n\n* new operator\n\n* add shifter support\n\n* adding dffn/dffr\n\n* new feature\n\n* more support\n\n* support +\n\n* more support\n\n* more support\n\n* bump slang and add perf in SV loading\n\n* adding coverage\n\n* adding in naja_edit\n\n* coverage\n\n* coverage\n\n* refactor code\n\n* coverage\n\n* more coverage\n\n* more coverage\n\n* coverage\n\n* coverage\n\n* cover\n\n* missing license\n\n* more coverage\n\n* coverage\n\n* more coverage\n\n* coverage\n\n* coverage",
"is_bot": false,
"headline": "Sv integration (#337)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-02-27T14:12:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a5a75781b287649f65b3046b93137f9b60147fd0",
"body": null,
"is_bot": false,
"headline": "supporting unquoted enable (#338)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-02-25T11:46:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8ae43f5ce018d863660064ea99759c8a246b565b",
"body": "* init sv support\n\n* more testing\n\n* bump slang version\n\n* some progress\n\n* Add FA (Full Adder) primitive to NLDB0\n\n- Ports: A, B, CI (inputs), S (sum), CO (carry-out)\n- Combinatorial arcs from all inputs to both outputs\n- getFASumTruthTable() -> SNLTruthTable(3, 0x96) [XOR-3]\n- getFACoutTruthTable(\n[…]\nre testing\n\n* coverage\n\n* improve testing and coverage\n\n* logging cleaning\n\n* coverage\n\n* more coverage\n\n* more testing\n\n* mux2 cover\n\n* bump slang version\n\n* license and coverage\n\n* verilator support",
"is_bot": false,
"headline": "Slang testing (#333)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-02-22T02:08:23Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "899fc098cc513859e355789b05893c54a58ee153",
"body": null,
"is_bot": false,
"headline": "better reporting and implicit AND support (#336)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-02-19T22:33:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b35fdd957f286f8344ce678d803c8879ff451fbb",
"body": "* enable assign compression\n\n* new tests\n\n* fix and coverage\n\n* local coverage and testing\n\n* more coverage\n\n* fix license and coverage\n\n* cleaning and coverage",
"is_bot": false,
"headline": "enable assign compression (#335)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-02-18T12:45:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a0e7d5abf641c36a5113c70ed84d8a7970bf184b",
"body": null,
"is_bot": false,
"headline": "switch to macos15 (#334)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-02-16T09:31:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d3f19c7f423f6688988ec12eeacc9d6ba0c97a19",
"body": "* adding Perf in Python\n\n* improve perf report\n\n* more cleaning\n\n* code cleaning and more perf",
"is_bot": false,
"headline": "B0.4.1 (#332)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-02-04T09:40:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "43e5519d690220a0f015605038e7f33c7baf3a6d",
"body": "* towards 0.4.0 adding zlib support in liberty parsing\n\n* more testing\n\n* install zlib on rockylinux\n\n* cleaning coverage\n\n* coverage\n\n* coverage",
"is_bot": false,
"headline": "Liberty zlib support (#331)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-02-03T08:46:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c89decf6faf85d152d38aa561994cab9111a3e29",
"body": null,
"is_bot": false,
"headline": "integrating naja-verilog preprocessor (#330)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-02-02T14:27:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3df926407c3b26e2b6816dfbff69d61a5d93c6e1",
"body": "* switch to b0.3.6\n\n* more linux distribs tested with Docker\n\n* update\n\n* clean docker build\n\n* use latest\n\n* update version\n\n* switch back to rockylinux\n\n* switch back to rockylinux:9\n\n* setting for rockylinux compile\n\n* new attempt",
"is_bot": false,
"headline": "B0.3.6 (#329)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-01-30T23:41:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6384a8a7115c9b25cffbb22a00c11d6eecd10bda",
"body": "* can you add associated unit test\n\n* implementation for BusNet\n\n* coverage\n\n* coverage\n\n* coverage\n\n* export to python\n\n* more testing\n\n* support until najaeda level\n\n* improve coverage\n\n* fix for empty busses (no bits)\n\n* boost cleaning\n\n* add early error for getting package on linux\n\n* try to be more resiliient\n\n* go back\n\n* new try\n\n* new attempt\n\n* new try\n\n* re-cleaning",
"is_bot": false,
"headline": "xSet msb and set msb on busses (#328)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-01-27T07:17:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8aecabcee68458f2389838f86ab8d5d1af06a1d9",
"body": "* add smoke test in docker build test\n\n* cleaning flows",
"is_bot": false,
"headline": "add smoke test in docker build test (#327)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-01-23T16:52:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4699ec482be39687206de51f685924edd52f7440",
"body": null,
"is_bot": false,
"headline": "Merge branch 'main' of https://github.com/najaeda/naja",
"author_name": "xtof",
"author_login": "xtofalex",
"committed_at": "2026-01-23T14:49:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d64b9251a1c5cf4861d00bfa2c97c6f310cf632d",
"body": null,
"is_bot": false,
"headline": "update Dockerfile and NajaEdit.cpp",
"author_name": "xtof",
"author_login": "xtofalex",
"committed_at": "2026-01-23T14:49:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d0aa3027cde042adebe508234ce7dc58fa76597b",
"body": null,
"is_bot": false,
"headline": "Fixing missing onetbb runtime libraries inside Dockerfile (#326)",
"author_name": "Christian MICHON",
"author_login": "cmichon",
"committed_at": "2026-01-23T14:47:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "80a2fefca55c1d0904f84abf1478047ae6496638",
"body": "* init remote netlist server\n\n* cleaning\n\n* code cleaning\n\n* 3.9 support\n\n* more testing",
"is_bot": false,
"headline": "Najaeda netlist remote server (#324)",
"author_name": "Christophe Alexandre",
"author_login": "xtofalex",
"committed_at": "2026-01-22T12:23:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f83ee7dd24d137982acd0b000b8bcbcd73c805ae",
"body": null,
"is_bot": false,
"headline": "Assign Truth Table",
"author_name": "xtof",
"author_login": "xtofalex",
"committed_at": "2026-01-22T11:03:33Z",
"body_truncated": false,
"is_coding_agent": false
}
],
"releases_count": 62,
"commits_last_year": 153,
"latest_release_at": "2026-07-16T23:44:49Z",
"latest_release_tag": "v0.7.16",
"releases_from_tags": true,
"days_since_last_push": 0,
"active_weeks_last_year": 40,
"days_since_latest_release": 5,
"mean_days_between_releases": 2.4
},
"community": {
"has_readme": true,
"has_license": true,
"has_description": true,
"has_contributing": false,
"health_percentage": 37,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"ecosystem": {
"packages": [
{
"name": "najaeda",
"exists": true,
"license": "Apache License 2.0",
"keywords": [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"License :: OSI Approved :: Apache Software License",
"Operating System :: MacOS",
"Operating System :: Microsoft :: Windows",
"Operating System :: POSIX :: Linux",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Programming Language :: Python :: 3.15",
"Topic :: Scientific/Engineering :: Electronic Design Automation (EDA)"
],
"ecosystem": "pypi",
"matches_repo": true,
"registry_url": "https://pypi.org/project/najaeda/",
"is_deprecated": false,
"latest_version": "0.7.16",
"repository_url": "https://github.com/najaeda/naja",
"versions_count": 73,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": null,
"monthly_downloads": 16850,
"first_published_at": "2024-11-26T21:00:51.361928Z",
"latest_published_at": "2026-07-17T16:16:01.700517Z",
"latest_version_yanked": null,
"days_since_latest_publish": 4
}
]
},
"popularity": {
"forks": 22,
"stars": 149,
"watchers": 8,
"fork_history": {
"days": [
{
"date": "2022-03-01",
"count": 1
},
{
"date": "2022-03-08",
"count": 1
},
{
"date": "2022-08-13",
"count": 1
},
{
"date": "2022-11-19",
"count": 1
},
{
"date": "2023-04-12",
"count": 1
},
{
"date": "2023-07-19",
"count": 1
},
{
"date": "2023-07-26",
"count": 1
},
{
"date": "2024-01-25",
"count": 1
},
{
"date": "2024-02-26",
"count": 1
},
{
"date": "2024-07-02",
"count": 1
},
{
"date": "2024-12-18",
"count": 1
},
{
"date": "2025-01-03",
"count": 1
},
{
"date": "2025-05-07",
"count": 1
},
{
"date": "2025-07-24",
"count": 1
},
{
"date": "2025-08-03",
"count": 1
},
{
"date": "2025-08-29",
"count": 1
},
{
"date": "2025-09-13",
"count": 1
},
{
"date": "2026-01-23",
"count": 1
},
{
"date": "2026-04-03",
"count": 1
},
{
"date": "2026-06-08",
"count": 1
},
{
"date": "2026-07-10",
"count": 1
}
],
"complete": true,
"collected": 21,
"total_forks": 22
},
"star_history": {
"days": [
{
"date": "2021-12-10",
"count": 1
},
{
"date": "2022-02-28",
"count": 2
},
{
"date": "2022-03-02",
"count": 1
},
{
"date": "2022-03-14",
"count": 1
},
{
"date": "2022-08-16",
"count": 1
},
{
"date": "2022-08-24",
"count": 1
},
{
"date": "2022-09-02",
"count": 1
},
{
"date": "2022-10-17",
"count": 1
},
{
"date": "2022-11-11",
"count": 1
},
{
"date": "2022-11-19",
"count": 1
},
{
"date": "2022-11-20",
"count": 3
},
{
"date": "2022-11-21",
"count": 1
},
{
"date": "2022-11-23",
"count": 1
},
{
"date": "2023-03-25",
"count": 3
},
{
"date": "2023-03-26",
"count": 1
},
{
"date": "2023-04-13",
"count": 1
},
{
"date": "2023-04-14",
"count": 1
},
{
"date": "2023-06-20",
"count": 1
},
{
"date": "2023-07-11",
"count": 1
},
{
"date": "2023-07-22",
"count": 1
},
{
"date": "2023-09-04",
"count": 2
},
{
"date": "2023-09-11",
"count": 1
},
{
"date": "2023-11-27",
"count": 1
},
{
"date": "2024-01-01",
"count": 1
},
{
"date": "2024-01-06",
"count": 1
},
{
"date": "2024-01-07",
"count": 1
},
{
"date": "2024-01-21",
"count": 1
},
{
"date": "2024-02-10",
"count": 1
},
{
"date": "2024-02-22",
"count": 1
},
{
"date": "2024-02-27",
"count": 1
},
{
"date": "2024-04-09",
"count": 2
},
{
"date": "2024-04-19",
"count": 1
},
{
"date": "2024-04-25",
"count": 1
},
{
"date": "2024-05-10",
"count": 1
},
{
"date": "2024-05-18",
"count": 1
},
{
"date": "2024-05-26",
"count": 1
},
{
"date": "2024-05-30",
"count": 1
},
{
"date": "2024-06-15",
"count": 1
},
{
"date": "2024-06-21",
"count": 1
},
{
"date": "2024-07-24",
"count": 1
},
{
"date": "2024-08-14",
"count": 2
},
{
"date": "2024-08-17",
"count": 3
},
{
"date": "2024-08-23",
"count": 1
},
{
"date": "2024-08-31",
"count": 1
},
{
"date": "2024-09-11",
"count": 1
},
{
"date": "2024-09-14",
"count": 1
},
{
"date": "2024-09-15",
"count": 1
},
{
"date": "2024-09-23",
"count": 1
},
{
"date": "2024-09-30",
"count": 2
},
{
"date": "2024-10-11",
"count": 1
},
{
"date": "2024-10-13",
"count": 1
},
{
"date": "2024-10-29",
"count": 1
},
{
"date": "2024-11-15",
"count": 1
},
{
"date": "2024-11-19",
"count": 1
},
{
"date": "2024-11-23",
"count": 1
},
{
"date": "2024-11-30",
"count": 1
},
{
"date": "2024-12-03",
"count": 1
},
{
"date": "2024-12-15",
"count": 1
},
{
"date": "2024-12-18",
"count": 2
},
{
"date": "2024-12-21",
"count": 1
},
{
"date": "2024-12-23",
"count": 1
},
{
"date": "2025-01-03",
"count": 1
},
{
"date": "2025-01-07",
"count": 2
},
{
"date": "2025-01-08",
"count": 1
},
{
"date": "2025-01-17",
"count": 1
},
{
"date": "2025-01-22",
"count": 2
},
{
"date": "2025-01-23",
"count": 1
},
{
"date": "2025-01-29",
"count": 1
},
{
"date": "2025-02-01",
"count": 1
},
{
"date": "2025-02-04",
"count": 1
},
{
"date": "2025-02-07",
"count": 1
},
{
"date": "2025-02-18",
"count": 1
},
{
"date": "2025-02-19",
"count": 1
},
{
"date": "2025-02-20",
"count": 1
},
{
"date": "2025-02-24",
"count": 1
},
{
"date": "2025-03-01",
"count": 1
},
{
"date": "2025-03-24",
"count": 1
},
{
"date": "2025-04-28",
"count": 1
},
{
"date": "2025-05-02",
"count": 1
},
{
"date": "2025-05-07",
"count": 4
},
{
"date": "2025-05-08",
"count": 1
},
{
"date": "2025-05-20",
"count": 1
},
{
"date": "2025-05-27",
"count": 1
},
{
"date": "2025-05-30",
"count": 1
},
{
"date": "2025-06-06",
"count": 1
},
{
"date": "2025-06-18",
"count": 1
},
{
"date": "2025-06-19",
"count": 1
},
{
"date": "2025-06-24",
"count": 1
},
{
"date": "2025-06-26",
"count": 1
},
{
"date": "2025-06-28",
"count": 1
},
{
"date": "2025-07-04",
"count": 1
},
{
"date": "2025-07-07",
"count": 1
},
{
"date": "2025-07-18",
"count": 1
},
{
"date": "2025-07-29",
"count": 1
},
{
"date": "2025-09-02",
"count": 1
},
{
"date": "2025-09-14",
"count": 1
},
{
"date": "2025-09-15",
"count": 1
},
{
"date": "2025-09-16",
"count": 3
},
{
"date": "2025-10-22",
"count": 1
},
{
"date": "2025-11-07",
"count": 1
},
{
"date": "2025-11-14",
"count": 1
},
{
"date": "2025-11-24",
"count": 1
},
{
"date": "2025-12-03",
"count": 1
},
{
"date": "2025-12-08",
"count": 1
},
{
"date": "2025-12-22",
"count": 1
},
{
"date": "2025-12-29",
"count": 1
},
{
"date": "2025-12-30",
"count": 4
},
{
"date": "2026-01-13",
"count": 1
},
{
"date": "2026-01-24",
"count": 1
},
{
"date": "2026-01-25",
"count": 1
},
{
"date": "2026-02-02",
"count": 1
},
{
"date": "2026-02-06",
"count": 1
},
{
"date": "2026-02-11",
"count": 1
},
{
"date": "2026-04-26",
"count": 1
},
{
"date": "2026-05-15",
"count": 1
},
{
"date": "2026-05-21",
"count": 1
},
{
"date": "2026-06-01",
"count": 1
},
{
"date": "2026-06-08",
"count": 1
},
{
"date": "2026-06-10",
"count": 1
},
{
"date": "2026-06-16",
"count": 1
},
{
"date": "2026-06-17",
"count": 1
},
{
"date": "2026-07-06",
"count": 1
},
{
"date": "2026-07-07",
"count": 2
},
{
"date": "2026-07-08",
"count": 1
},
{
"date": "2026-07-09",
"count": 2
}
],
"complete": true,
"collected": 149,
"total_stars": 149
},
"open_issues_and_prs": 11
},
"ai_readiness": {
"has_nix": false,
"example_dirs": [
"examples",
"notebooks"
],
"has_llms_txt": false,
"has_dockerfile": true,
"has_mcp_signal": false,
"bootstrap_files": [
"regress/designs/verilog/megaboom/Makefile",
"src/apps/naja_edit/examples/Makefile",
"src/apps/naja_edit/examples/addaccu/Makefile",
"src/apps/naja_edit/examples/adder/Makefile",
"src/apps/naja_edit/examples/arm_core/Makefile",
"src/apps/naja_edit/examples/test_args/Makefile",
"src/apps/naja_edit/examples/vexriscv/Makefile",
"test/nl/formats/systemverilog/benchmarks/Makefile",
"test/nl/formats/systemverilog/benchmarks/binary_ops_supported/Makefile",
"test/nl/formats/systemverilog/benchmarks/byte_ports/Makefile",
"test/nl/formats/systemverilog/benchmarks/fixed_unpacked_array_variable/Makefile",
"test/nl/formats/systemverilog/benchmarks/implicit_width_ports/Makefile",
"test/nl/formats/systemverilog/benchmarks/model_reuse/Makefile",
"test/nl/formats/systemverilog/benchmarks/non_ansi_ports/Makefile",
"test/nl/formats/systemverilog/benchmarks/packed_struct_enum_ports/Makefile",
"test/nl/formats/systemverilog/benchmarks/param_inst/Makefile",
"test/nl/formats/systemverilog/benchmarks/port_directions/Makefile",
"test/nl/formats/systemverilog/benchmarks/seq_add_non_increment/Makefile",
"test/nl/formats/systemverilog/benchmarks/seq_add_one_plus_out/Makefile",
"test/nl/formats/systemverilog/benchmarks/seq_add_out_plus_one/Makefile",
"test/nl/formats/systemverilog/benchmarks/seq_binary_non_add/Makefile",
"test/nl/formats/systemverilog/benchmarks/seq_concurrent_assertion_ignored/Makefile",
"test/nl/formats/systemverilog/benchmarks/seq_enable_bus1_supported/Makefile",
"test/nl/formats/systemverilog/benchmarks/seq_enable_else_default/Makefile",
"test/nl/formats/systemverilog/benchmarks/seq_list_single_wrapper_supported/Makefile",
"test/nl/formats/systemverilog/benchmarks/seq_nested_begin_wrapper_supported/Makefile",
"test/nl/formats/systemverilog/benchmarks/seq_preincrement_supported/Makefile",
"test/nl/formats/systemverilog/benchmarks/seq_reset_all_zero_literal_wide_supported/Makefile",
"test/nl/formats/systemverilog/benchmarks/seq_reset_only_supported/Makefile",
"test/nl/formats/systemverilog/benchmarks/seq_rhs_direct_match/Makefile",
"test/nl/formats/systemverilog/benchmarks/seq_rhs_unresolved/Makefile",
"test/nl/formats/systemverilog/benchmarks/seq_rhs_width_mismatch/Makefile",
"test/nl/formats/systemverilog/benchmarks/seq_timing_event_list_negedge_reset_supported/Makefile",
"test/nl/formats/systemverilog/benchmarks/simple/Makefile",
"test/nl/formats/systemverilog/benchmarks/unary_not/Makefile",
"test/nl/formats/systemverilog/benchmarks/unary_not_arithmetic_binary_supported/Makefile",
"test/nl/formats/systemverilog/benchmarks/unary_not_binary_supported/Makefile",
"test/nl/formats/systemverilog/benchmarks/unsupported_generic_type/Makefile",
"test/nl/formats/systemverilog/benchmarks/up_counter/Makefile",
"thirdparty/lefdef/src/def/Makefile",
"thirdparty/lefdef/src/def/TEST/Makefile",
"thirdparty/lefdef/src/def/cdef/Makefile",
"thirdparty/lefdef/src/def/cdefzlib/Makefile",
"thirdparty/lefdef/src/def/def/Makefile",
"thirdparty/lefdef/src/def/defdiff/Makefile",
"thirdparty/lefdef/src/def/defrw/Makefile",
"thirdparty/lefdef/src/def/defwrite/Makefile",
"thirdparty/lefdef/src/def/defzlib/Makefile",
"thirdparty/lefdef/src/lef/Makefile",
"thirdparty/lefdef/src/lef/TEST/Makefile",
"thirdparty/lefdef/src/lef/clef/Makefile",
"thirdparty/lefdef/src/lef/clefzlib/Makefile",
"thirdparty/lefdef/src/lef/lef/Makefile",
"thirdparty/lefdef/src/lef/lefdiff/Makefile",
"thirdparty/lefdef/src/lef/lefrw/Makefile",
"thirdparty/lefdef/src/lef/lefwrite/Makefile",
"thirdparty/lefdef/src/lef/lefzlib/Makefile"
],
"api_schema_files": [],
"has_devcontainer": false,
"typecheck_configs": [],
"toolchain_manifests": [],
"largest_source_bytes": 1310551,
"source_files_sampled": 990,
"oversized_source_files": 36,
"agent_instruction_files": [
"AGENTS.md",
"CLAUDE.md"
],
"agent_instruction_max_bytes": 7909
},
"dependencies": {
"manifests": [
"docs/requirements.txt",
"pyproject.toml"
],
"advisories": {
"error": "No resolved dependencies carried a version and a supported ecosystem",
"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": 7,
"direct_affected_count": 0
},
"ecosystems": [
"pypi"
],
"dependencies": [],
"all_dependencies": {
"error": null,
"source": "github-sbom",
"packages": [
{
"name": "breathe",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "docutils",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "jinja2",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "markupsafe",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "pygments",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "sphinx",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "sphinx-rtd-theme",
"direct": false,
"version": null,
"ecosystem": "pypi"
}
],
"collected": true,
"truncated": false,
"total_count": 7,
"direct_count": 0,
"indirect_count": 7
}
},
"maintainership": {
"issues": {
"open_prs": 4,
"merged_prs": 349,
"open_issues": 7,
"closed_ratio": 0.767,
"closed_issues": 23,
"closed_unmerged_prs": 29
},
"bus_factor": 1,
"bot_contributors": 0,
"top_contributors": [
{
"type": "User",
"login": "xtofalex",
"commits": 891,
"avatar_url": "https://avatars.githubusercontent.com/u/3635601?v=4"
},
{
"type": "User",
"login": "nanocoh",
"commits": 513,
"avatar_url": "https://avatars.githubusercontent.com/u/115838389?v=4"
},
{
"type": "User",
"login": "micprog",
"commits": 2,
"avatar_url": "https://avatars.githubusercontent.com/u/6088584?v=4"
},
{
"type": "User",
"login": "cmichon",
"commits": 1,
"avatar_url": "https://avatars.githubusercontent.com/u/15722?v=4"
},
{
"type": "User",
"login": "OPNA2608",
"commits": 1,
"avatar_url": "https://avatars.githubusercontent.com/u/23431373?v=4"
},
{
"type": "User",
"login": "Jit-p",
"commits": 1,
"avatar_url": "https://avatars.githubusercontent.com/u/135712534?v=4"
},
{
"type": "User",
"login": "MarceloDanigno",
"commits": 1,
"avatar_url": "https://avatars.githubusercontent.com/u/38264358?v=4"
},
{
"type": "User",
"login": "eilon9",
"commits": 1,
"avatar_url": "https://avatars.githubusercontent.com/u/77011165?v=4"
}
],
"contributors_sampled": 8,
"top_contributor_share": 0.631
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"asan-build.yml",
"benchmarks.yml",
"coverage.yml",
"docker-build.yml",
"macos-build.yml",
"naja_app_build.yml",
"najaeda-examples.yml",
"najaeda-test.yml",
"regress.yml",
"reuse.yml",
"snl_python_app.yml",
"sv-external-sim.yml",
"sv-regress.yml",
"sv-sim-image.yml",
"sv-unit-test-sim.yml",
"tsan-build.yml",
"tutorials.yml",
"ubuntu-build.yml",
"valgrind.yml",
"wheels.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": 0,
"reason": "binaries present in source code",
"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": 10,
"reason": "27 out of 27 merged PRs checked by a CI test -- score normalized to 10",
"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": 1,
"reason": "Found 3/30 approved changesets -- score normalized to 1",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
},
{
"name": "Contributors",
"score": 6,
"reason": "project has 2 contributing companies or organizations -- score normalized to 6",
"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": 10,
"reason": "license file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
},
{
"name": "Maintained",
"score": 10,
"reason": "30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
},
{
"name": "Packaging",
"score": 10,
"reason": "packaging workflow 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": 0,
"reason": "12 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "dd16e9310e6b967910ff9ac5ac0285faf469b78a",
"ran_at": "2026-07-22T08:40:58Z",
"aggregate_score": 3.1,
"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-21T08:32:18Z",
"oldest_open_prs": [
{
"number": 16,
"created_at": "2022-09-21T15:05:12Z",
"last_comment_at": "2022-09-21T15:10:38Z",
"last_comment_author": "codecov-commenter"
},
{
"number": 47,
"created_at": "2024-03-15T01:35:03Z",
"last_comment_at": "2024-03-15T01:38:54Z",
"last_comment_author": "codecov"
},
{
"number": 410,
"created_at": "2026-07-16T12:33:04Z",
"last_comment_at": "2026-07-16T13:25:11Z",
"last_comment_author": "codecov"
},
{
"number": 413,
"created_at": "2026-07-18T08:30:00Z",
"last_comment_at": "2026-07-18T09:21:09Z",
"last_comment_author": "codecov"
}
],
"last_merged_pr_at": "2026-07-21T07:19:33Z",
"ci_last_conclusion": "SUCCESS",
"oldest_open_issues": [
{
"number": 50,
"created_at": "2024-03-15T10:25:22Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 58,
"created_at": "2024-04-01T18:33:18Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 97,
"created_at": "2024-09-11T20:35:26Z",
"last_comment_at": "2024-09-11T20:37:08Z",
"last_comment_author": "xtofalex"
},
{
"number": 256,
"created_at": "2025-07-14T08:54:23Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 257,
"created_at": "2025-07-14T08:55:31Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 267,
"created_at": "2025-07-22T16:32:48Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 268,
"created_at": "2025-07-22T16:33:13Z",
"last_comment_at": null,
"last_comment_author": null
}
]
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/najaeda/naja",
"host": "github.com",
"name": "naja",
"owner": "najaeda"
},
"metrics": {
"overall": {
"key": "overall",
"band": "moderate",
"name": "Overall health",
"note": null,
"notes": [],
"value": 65,
"inputs": {
"security": 31,
"vitality": 90,
"community": 55,
"governance": 62,
"engineering": 75
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "excellent",
"name": "Vitality",
"value": 90,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "excellent",
"name": "Development activity",
"note": null,
"notes": [],
"value": 92,
"inputs": {
"commits_last_year": 153,
"human_commit_share": 1,
"days_since_last_push": 0,
"active_weeks_last_year": 40
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 0 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "push_recency",
"params": {
"days": 0
}
}
],
"max_points": 36
},
{
"key": "commit_cadence",
"name": "Commit cadence",
"detail": "40/52 weeks with commits",
"points": 27.7,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 40
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "153 commits in the last year",
"points": 18,
"status": "met",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 153
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "release_discipline",
"band": "excellent",
"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": 88,
"inputs": {
"releases_count": 62,
"latest_release_tag": "v0.7.16",
"releases_from_tags": true,
"days_since_latest_release": 5,
"mean_days_between_releases": 2.4
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "62 version tags (no GitHub releases)",
"points": 16.2,
"status": "partial",
"details": [
{
"code": "version_tags_no_releases",
"params": {
"count": 62
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 5 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "release_recency",
"params": {
"days": 5
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~2.4 days",
"points": 27,
"status": "met",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 2.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": "maintained",
"guards": [],
"signals": [],
"red_flag": false,
"multiplier_pct": 100,
"declared_reason": null,
"unverified_reason": null,
"unanswered_open_prs": null,
"unanswered_open_issues": null,
"days_since_last_merged_pr": null,
"days_since_last_human_commit": 1,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "last human commit 1 days ago",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_maintained",
"params": {
"days": 1
}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "moderate",
"name": "Community & Adoption",
"value": 55,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "moderate",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 51,
"inputs": {
"forks": 22,
"stars": 149,
"watchers": 8,
"growth_state": "organic",
"growth_factor_pct": 100
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "149 stars",
"points": 35.2,
"status": "partial",
"details": [
{
"code": "stars",
"params": {
"count": 149
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "22 forks",
"points": 11,
"status": "partial",
"details": [
{
"code": "forks",
"params": {
"count": 22
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "8 watchers",
"points": 4.7,
"status": "partial",
"details": [
{
"code": "watchers",
"params": {
"count": 8
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "moderate",
"name": "Community health",
"note": null,
"notes": [],
"value": 50,
"inputs": {
"has_readme": true,
"has_license": true,
"has_contributing": false,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 22.5,
"status": "met",
"details": [],
"max_points": 22.5
},
{
"key": "license",
"name": "License",
"detail": "recognized license (Apache-2.0)",
"points": 22.5,
"status": "met",
"details": [
{
"code": "license_standard",
"params": {}
},
{
"code": "license_spdx",
"params": {
"spdx": "Apache-2.0"
}
}
],
"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": 0,
"status": "missed",
"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": 0,
"status": "missed",
"details": [],
"max_points": 6.3
}
]
},
{
"key": "ecosystem_adoption",
"band": "good",
"name": "Ecosystem adoption (downloads)",
"note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"registry_dependents"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 70,
"inputs": {
"packages": [
"najaeda"
],
"dependents": null,
"ecosystems": "pypi",
"total_downloads": null,
"monthly_downloads": 16850
},
"components": [
{
"key": "monthly_downloads",
"name": "Monthly downloads",
"detail": "16,850 downloads/month across pypi",
"points": 56.4,
"status": "partial",
"details": [
{
"code": "downloads_monthly",
"params": {
"count": 16850,
"ecosystems": "pypi"
}
}
],
"max_points": 80
},
{
"key": "registry_dependents",
"name": "Registry dependents",
"detail": "not reported by this ecosystem",
"points": 0,
"status": "excluded",
"details": [
{
"code": "not_reported_by_this_ecosystem",
"params": {}
}
],
"max_points": 20
}
]
}
],
"description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
},
{
"key": "governance",
"band": "moderate",
"name": "Sustainability & Governance",
"value": 62,
"weight": 0.24,
"metrics": [
{
"key": "maintainer_resilience",
"band": "at_risk",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 34,
"inputs": {
"bus_factor": 1,
"contributors_sampled": 8,
"top_contributor_share": 0.631
},
"components": [
{
"key": "bus_factor",
"name": "Bus factor",
"detail": "1 contributor(s) cover half of all commits",
"points": 9,
"status": "partial",
"details": [
{
"code": "bus_factor",
"params": {
"count": 1
}
}
],
"max_points": 54
},
{
"key": "commit_distribution",
"name": "Commit distribution",
"detail": "top contributor authored 63% of commits",
"points": 8.3,
"status": "partial",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 63
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "8 contributors",
"points": 10.8,
"status": "partial",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 8
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 2 contributing companies or organizations -- score normalized to 6",
"points": 6,
"status": "partial",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "good",
"name": "Issue & PR responsiveness",
"note": null,
"notes": [],
"value": 73,
"inputs": {
"merged_prs": 349,
"open_issues": 7,
"closed_issues": 23,
"issue_closed_ratio": 0.767,
"closed_unmerged_prs": 29
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "77% of issues closed",
"points": 35.9,
"status": "partial",
"details": [
{
"code": "issues_closed_share",
"params": {
"share": 77
}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "349/378 decided PRs merged",
"points": 35.3,
"status": "partial",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 349,
"decided": 378
}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "Found 3/30 approved changesets -- score normalized to 1",
"points": 1.5,
"status": "partial",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "moderate",
"name": "Ownership & stewardship",
"note": null,
"notes": [],
"value": 54,
"inputs": {
"followers": 23,
"owner_type": "Organization",
"is_verified": null,
"owner_login": "najaeda",
"public_repos": 16,
"account_age_days": 868
},
"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": "23 followers of najaeda",
"points": 9.9,
"status": "partial",
"details": [
{
"code": "owner_followers",
"params": {
"count": 23,
"login": "najaeda"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "16 public repos, account ~2 yr old",
"points": 13.7,
"status": "partial",
"details": [
{
"code": "public_repos",
"params": {
"count": 16
}
},
{
"code": "account_age_years",
"params": {
"years": 2
}
}
],
"max_points": 25
}
]
},
{
"key": "package_maintenance",
"band": "excellent",
"name": "Package maintenance",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"packages": [
"najaeda"
],
"ecosystems": "pypi",
"any_deprecated": false,
"min_days_since_publish": 4
},
"components": [
{
"key": "published_resolvable",
"name": "Published & resolvable",
"detail": "1 package(s) on pypi",
"points": 25,
"status": "met",
"details": [
{
"code": "packages_published",
"params": {
"count": 1,
"ecosystems": "pypi"
}
}
],
"max_points": 25
},
{
"key": "publish_recency",
"name": "Publish recency",
"detail": "latest publish 4 days ago",
"points": 35,
"status": "met",
"details": [
{
"code": "publish_recency",
"params": {
"days": 4
}
}
],
"max_points": 35
},
{
"key": "version_history",
"name": "Version history",
"detail": "73 published versions",
"points": 20,
"status": "met",
"details": [
{
"code": "published_versions",
"params": {
"count": 73
}
}
],
"max_points": 20
},
{
"key": "not_deprecated",
"name": "Not deprecated",
"detail": "active, not deprecated or yanked",
"points": 20,
"status": "met",
"details": [
{
"code": "package_not_deprecated",
"params": {}
}
],
"max_points": 20
}
]
}
],
"description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
},
{
"key": "engineering",
"band": "good",
"name": "Engineering Quality",
"value": 75,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "moderate",
"name": "Engineering practices",
"note": null,
"notes": [],
"value": 68,
"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": "20 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 20
}
}
],
"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": "27 out of 27 merged PRs checked by a CI test -- score normalized to 10",
"points": 20,
"status": "met",
"details": [],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "excellent",
"name": "Documentation",
"note": null,
"notes": [],
"value": 85,
"inputs": {
"topics": [
"netlist",
"eda",
"semiconductor",
"verilog",
"asic",
"fpga",
"cpp"
],
"has_wiki": true,
"homepage": null,
"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": null,
"points": 0,
"status": "missed",
"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": "7 topics",
"points": 10,
"status": "met",
"details": [
{
"code": "topics_count",
"params": {
"count": 7
}
}
],
"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": 31,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "at_risk",
"name": "Security posture",
"note": "Excluded from scoring (no data or not applicable): Signed-Releases. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 31,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 17,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 1,
"scorecard_aggregate": 3.1
},
"components": [
{
"key": "binary_artifacts",
"name": "Binary-Artifacts",
"detail": "binaries present in source code",
"points": 0,
"status": "missed",
"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": "27 out of 27 merged PRs checked by a CI test -- score normalized to 10",
"points": 2.5,
"status": "met",
"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 3/30 approved changesets -- score normalized to 1",
"points": 0.8,
"status": "partial",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 2 contributing companies or organizations -- score normalized to 6",
"points": 1.5,
"status": "partial",
"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.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "maintained",
"name": "Maintained",
"detail": "30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "packaging",
"name": "Packaging",
"detail": "packaging workflow detected",
"points": 5,
"status": "met",
"details": [],
"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": "12 existing vulnerabilities detected",
"points": 0,
"status": "missed",
"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": 3
},
"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": "moderate",
"name": "AI Readiness",
"value": 63,
"weight": 0,
"metrics": [
{
"key": "ai_agent_context",
"band": "excellent",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 85,
"inputs": {
"has_llms_txt": false,
"legible_history_share": 0.85,
"agent_instruction_files": [
"AGENTS.md",
"CLAUDE.md"
],
"agent_instruction_max_bytes": 7909
},
"components": [
{
"key": "agent_instructions",
"name": "Agent instructions",
"detail": "AGENTS.md, CLAUDE.md",
"points": 45,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "AGENTS.md, CLAUDE.md"
}
}
],
"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": "85 of 100 human commits state their intent (structured subject or explanatory body)",
"points": 40,
"status": "met",
"details": [
{
"code": "legible_history",
"params": {
"legible": 85,
"sampled": 100
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "moderate",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 58,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [],
"has_dockerfile": true,
"typed_language": false,
"bootstrap_files": [
"regress/designs/verilog/megaboom/Makefile",
"src/apps/naja_edit/examples/Makefile",
"src/apps/naja_edit/examples/addaccu/Makefile",
"src/apps/naja_edit/examples/adder/Makefile",
"src/apps/naja_edit/examples/arm_core/Makefile",
"src/apps/naja_edit/examples/test_args/Makefile",
"src/apps/naja_edit/examples/vexriscv/Makefile",
"test/nl/formats/systemverilog/benchmarks/Makefile",
"test/nl/formats/systemverilog/benchmarks/binary_ops_supported/Makefile",
"test/nl/formats/systemverilog/benchmarks/byte_ports/Makefile",
"test/nl/formats/systemverilog/benchmarks/fixed_unpacked_array_variable/Makefile",
"test/nl/formats/systemverilog/benchmarks/implicit_width_ports/Makefile",
"test/nl/formats/systemverilog/benchmarks/model_reuse/Makefile",
"test/nl/formats/systemverilog/benchmarks/non_ansi_ports/Makefile",
"test/nl/formats/systemverilog/benchmarks/packed_struct_enum_ports/Makefile",
"test/nl/formats/systemverilog/benchmarks/param_inst/Makefile",
"test/nl/formats/systemverilog/benchmarks/port_directions/Makefile",
"test/nl/formats/systemverilog/benchmarks/seq_add_non_increment/Makefile",
"test/nl/formats/systemverilog/benchmarks/seq_add_one_plus_out/Makefile",
"test/nl/formats/systemverilog/benchmarks/seq_add_out_plus_one/Makefile",
"test/nl/formats/systemverilog/benchmarks/seq_binary_non_add/Makefile",
"test/nl/formats/systemverilog/benchmarks/seq_concurrent_assertion_ignored/Makefile",
"test/nl/formats/systemverilog/benchmarks/seq_enable_bus1_supported/Makefile",
"test/nl/formats/systemverilog/benchmarks/seq_enable_else_default/Makefile",
"test/nl/formats/systemverilog/benchmarks/seq_list_single_wrapper_supported/Makefile",
"test/nl/formats/systemverilog/benchmarks/seq_nested_begin_wrapper_supported/Makefile",
"test/nl/formats/systemverilog/benchmarks/seq_preincrement_supported/Makefile",
"test/nl/formats/systemverilog/benchmarks/seq_reset_all_zero_literal_wide_supported/Makefile",
"test/nl/formats/systemverilog/benchmarks/seq_reset_only_supported/Makefile",
"test/nl/formats/systemverilog/benchmarks/seq_rhs_direct_match/Makefile",
"test/nl/formats/systemverilog/benchmarks/seq_rhs_unresolved/Makefile",
"test/nl/formats/systemverilog/benchmarks/seq_rhs_width_mismatch/Makefile",
"test/nl/formats/systemverilog/benchmarks/seq_timing_event_list_negedge_reset_supported/Makefile",
"test/nl/formats/systemverilog/benchmarks/simple/Makefile",
"test/nl/formats/systemverilog/benchmarks/unary_not/Makefile",
"test/nl/formats/systemverilog/benchmarks/unary_not_arithmetic_binary_supported/Makefile",
"test/nl/formats/systemverilog/benchmarks/unary_not_binary_supported/Makefile",
"test/nl/formats/systemverilog/benchmarks/unsupported_generic_type/Makefile",
"test/nl/formats/systemverilog/benchmarks/up_counter/Makefile",
"thirdparty/lefdef/src/def/Makefile",
"thirdparty/lefdef/src/def/TEST/Makefile",
"thirdparty/lefdef/src/def/cdef/Makefile",
"thirdparty/lefdef/src/def/cdefzlib/Makefile",
"thirdparty/lefdef/src/def/def/Makefile",
"thirdparty/lefdef/src/def/defdiff/Makefile",
"thirdparty/lefdef/src/def/defrw/Makefile",
"thirdparty/lefdef/src/def/defwrite/Makefile",
"thirdparty/lefdef/src/def/defzlib/Makefile",
"thirdparty/lefdef/src/lef/Makefile",
"thirdparty/lefdef/src/lef/TEST/Makefile",
"thirdparty/lefdef/src/lef/clef/Makefile",
"thirdparty/lefdef/src/lef/clefzlib/Makefile",
"thirdparty/lefdef/src/lef/lef/Makefile",
"thirdparty/lefdef/src/lef/lefdiff/Makefile",
"thirdparty/lefdef/src/lef/lefrw/Makefile",
"thirdparty/lefdef/src/lef/lefwrite/Makefile",
"thirdparty/lefdef/src/lef/lefzlib/Makefile"
],
"has_devcontainer": false,
"has_linter_config": false,
"typecheck_configs": [],
"agent_commit_share": 0.04,
"toolchain_manifests": [],
"dependency_bot_commit_share": 0
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": "regress/designs/verilog/megaboom/Makefile, src/apps/naja_edit/examples/Makefile, src/apps/naja_edit/examples/addaccu/Makefile, src/apps/naja_edit/examples/adder/Makefile, src/apps/naja_edit/examples/arm_core/Makefile, src/apps/naja_edit/examples/test_args/Makefile, src/apps/naja_edit/examples/vexriscv/Makefile, test/nl/formats/systemverilog/benchmarks/Makefile, test/nl/formats/systemverilog/benchmarks/binary_ops_supported/Makefile, test/nl/formats/systemverilog/benchmarks/byte_ports/Makefile, test/nl/formats/systemverilog/benchmarks/fixed_unpacked_array_variable/Makefile, test/nl/formats/systemverilog/benchmarks/implicit_width_ports/Makefile, test/nl/formats/systemverilog/benchmarks/model_reuse/Makefile, test/nl/formats/systemverilog/benchmarks/non_ansi_ports/Makefile, test/nl/formats/systemverilog/benchmarks/packed_struct_enum_ports/Makefile, test/nl/formats/systemverilog/benchmarks/param_inst/Makefile, test/nl/formats/systemverilog/benchmarks/port_directions/Makefile, test/nl/formats/systemverilog/benchmarks/seq_add_non_increment/Makefile, test/nl/formats/systemverilog/benchmarks/seq_add_one_plus_out/Makefile, test/nl/formats/systemverilog/benchmarks/seq_add_out_plus_one/Makefile, test/nl/formats/systemverilog/benchmarks/seq_binary_non_add/Makefile, test/nl/formats/systemverilog/benchmarks/seq_concurrent_assertion_ignored/Makefile, test/nl/formats/systemverilog/benchmarks/seq_enable_bus1_supported/Makefile, test/nl/formats/systemverilog/benchmarks/seq_enable_else_default/Makefile, test/nl/formats/systemverilog/benchmarks/seq_list_single_wrapper_supported/Makefile, test/nl/formats/systemverilog/benchmarks/seq_nested_begin_wrapper_supported/Makefile, test/nl/formats/systemverilog/benchmarks/seq_preincrement_supported/Makefile, test/nl/formats/systemverilog/benchmarks/seq_reset_all_zero_literal_wide_supported/Makefile, test/nl/formats/systemverilog/benchmarks/seq_reset_only_supported/Makefile, test/nl/formats/systemverilog/benchmarks/seq_rhs_direct_match/Makefile, test/nl/formats/systemverilog/benchmarks/seq_rhs_unresolved/Makefile, test/nl/formats/systemverilog/benchmarks/seq_rhs_width_mismatch/Makefile, test/nl/formats/systemverilog/benchmarks/seq_timing_event_list_negedge_reset_supported/Makefile, test/nl/formats/systemverilog/benchmarks/simple/Makefile, test/nl/formats/systemverilog/benchmarks/unary_not/Makefile, test/nl/formats/systemverilog/benchmarks/unary_not_arithmetic_binary_supported/Makefile, test/nl/formats/systemverilog/benchmarks/unary_not_binary_supported/Makefile, test/nl/formats/systemverilog/benchmarks/unsupported_generic_type/Makefile, test/nl/formats/systemverilog/benchmarks/up_counter/Makefile, thirdparty/lefdef/src/def/Makefile, thirdparty/lefdef/src/def/TEST/Makefile, thirdparty/lefdef/src/def/cdef/Makefile, thirdparty/lefdef/src/def/cdefzlib/Makefile, thirdparty/lefdef/src/def/def/Makefile, thirdparty/lefdef/src/def/defdiff/Makefile, thirdparty/lefdef/src/def/defrw/Makefile, thirdparty/lefdef/src/def/defwrite/Makefile, thirdparty/lefdef/src/def/defzlib/Makefile, thirdparty/lefdef/src/lef/Makefile, thirdparty/lefdef/src/lef/TEST/Makefile, thirdparty/lefdef/src/lef/clef/Makefile, thirdparty/lefdef/src/lef/clefzlib/Makefile, thirdparty/lefdef/src/lef/lef/Makefile, thirdparty/lefdef/src/lef/lefdiff/Makefile, thirdparty/lefdef/src/lef/lefrw/Makefile, thirdparty/lefdef/src/lef/lefwrite/Makefile, thirdparty/lefdef/src/lef/lefzlib/Makefile",
"points": 18,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "regress/designs/verilog/megaboom/Makefile, src/apps/naja_edit/examples/Makefile, src/apps/naja_edit/examples/addaccu/Makefile, src/apps/naja_edit/examples/adder/Makefile, src/apps/naja_edit/examples/arm_core/Makefile, src/apps/naja_edit/examples/test_args/Makefile, src/apps/naja_edit/examples/vexriscv/Makefile, test/nl/formats/systemverilog/benchmarks/Makefile, test/nl/formats/systemverilog/benchmarks/binary_ops_supported/Makefile, test/nl/formats/systemverilog/benchmarks/byte_ports/Makefile, test/nl/formats/systemverilog/benchmarks/fixed_unpacked_array_variable/Makefile, test/nl/formats/systemverilog/benchmarks/implicit_width_ports/Makefile, test/nl/formats/systemverilog/benchmarks/model_reuse/Makefile, test/nl/formats/systemverilog/benchmarks/non_ansi_ports/Makefile, test/nl/formats/systemverilog/benchmarks/packed_struct_enum_ports/Makefile, test/nl/formats/systemverilog/benchmarks/param_inst/Makefile, test/nl/formats/systemverilog/benchmarks/port_directions/Makefile, test/nl/formats/systemverilog/benchmarks/seq_add_non_increment/Makefile, test/nl/formats/systemverilog/benchmarks/seq_add_one_plus_out/Makefile, test/nl/formats/systemverilog/benchmarks/seq_add_out_plus_one/Makefile, test/nl/formats/systemverilog/benchmarks/seq_binary_non_add/Makefile, test/nl/formats/systemverilog/benchmarks/seq_concurrent_assertion_ignored/Makefile, test/nl/formats/systemverilog/benchmarks/seq_enable_bus1_supported/Makefile, test/nl/formats/systemverilog/benchmarks/seq_enable_else_default/Makefile, test/nl/formats/systemverilog/benchmarks/seq_list_single_wrapper_supported/Makefile, test/nl/formats/systemverilog/benchmarks/seq_nested_begin_wrapper_supported/Makefile, test/nl/formats/systemverilog/benchmarks/seq_preincrement_supported/Makefile, test/nl/formats/systemverilog/benchmarks/seq_reset_all_zero_literal_wide_supported/Makefile, test/nl/formats/systemverilog/benchmarks/seq_reset_only_supported/Makefile, test/nl/formats/systemverilog/benchmarks/seq_rhs_direct_match/Makefile, test/nl/formats/systemverilog/benchmarks/seq_rhs_unresolved/Makefile, test/nl/formats/systemverilog/benchmarks/seq_rhs_width_mismatch/Makefile, test/nl/formats/systemverilog/benchmarks/seq_timing_event_list_negedge_reset_supported/Makefile, test/nl/formats/systemverilog/benchmarks/simple/Makefile, test/nl/formats/systemverilog/benchmarks/unary_not/Makefile, test/nl/formats/systemverilog/benchmarks/unary_not_arithmetic_binary_supported/Makefile, test/nl/formats/systemverilog/benchmarks/unary_not_binary_supported/Makefile, test/nl/formats/systemverilog/benchmarks/unsupported_generic_type/Makefile, test/nl/formats/systemverilog/benchmarks/up_counter/Makefile, thirdparty/lefdef/src/def/Makefile, thirdparty/lefdef/src/def/TEST/Makefile, thirdparty/lefdef/src/def/cdef/Makefile, thirdparty/lefdef/src/def/cdefzlib/Makefile, thirdparty/lefdef/src/def/def/Makefile, thirdparty/lefdef/src/def/defdiff/Makefile, thirdparty/lefdef/src/def/defrw/Makefile, thirdparty/lefdef/src/def/defwrite/Makefile, thirdparty/lefdef/src/def/defzlib/Makefile, thirdparty/lefdef/src/lef/Makefile, thirdparty/lefdef/src/lef/TEST/Makefile, thirdparty/lefdef/src/lef/clef/Makefile, thirdparty/lefdef/src/lef/clefzlib/Makefile, thirdparty/lefdef/src/lef/lef/Makefile, thirdparty/lefdef/src/lef/lefdiff/Makefile, thirdparty/lefdef/src/lef/lefrw/Makefile, thirdparty/lefdef/src/lef/lefwrite/Makefile, thirdparty/lefdef/src/lef/lefzlib/Makefile"
}
}
],
"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": "Dockerfile",
"points": 10,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "Dockerfile"
}
}
],
"max_points": 10
},
{
"key": "demonstrated_agent_practice",
"name": "Demonstrated agent practice",
"detail": "4 of the last 100 commits agent-authored or agent-credited",
"points": 8,
"status": "partial",
"details": [
{
"code": "agent_authored_commits",
"params": {
"count": 4,
"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": "moderate",
"name": "Code legibility for models",
"note": null,
"notes": [],
"value": 53,
"inputs": {
"primary_language": "Verilog",
"largest_source_bytes": 1310551,
"source_files_sampled": 990,
"oversized_source_files": 36
},
"components": [
{
"key": "type_checkable_code",
"name": "Type-checkable code",
"detail": "Verilog without a type-check config",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_typecheck_config_language",
"params": {
"language": "Verilog"
}
}
],
"max_points": 45
},
{
"key": "manageable_file_sizes",
"name": "Manageable file sizes",
"detail": "36/990 source files over 60KB",
"points": 53,
"status": "partial",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 990,
"oversized": 36
}
}
],
"max_points": 55
}
]
},
{
"key": "ai_interfaces",
"band": "at_risk",
"name": "Machine-readable interfaces",
"note": null,
"notes": [],
"value": 40,
"inputs": {
"example_dirs": [
"examples",
"notebooks"
],
"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, notebooks",
"points": 40,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "examples, notebooks"
}
}
],
"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": [
"deps.dev does not index pypi:najaeda@0.7.16; advisories assessed against the repository dependency graph instead",
"No resolved dependencies carried a version and a supported ecosystem"
],
"report_type": "repository",
"generated_at": "2026-07-22T08:41:21.994360Z",
"schema_version": "0.26.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/n/najaeda/naja.svg",
"full_name": "najaeda/naja",
"license_state": "standard",
"license_spdx": "Apache-2.0"
}