Звіт у форматі JSON машиночитний
{
"data": {
"repo": {
"topics": [],
"is_fork": false,
"size_kb": 18911,
"has_wiki": true,
"homepage": "https://quest.qtechtheory.org/",
"languages": {
"C": 64831,
"C++": 2413228,
"CSS": 74385,
"TeX": 1261,
"Cuda": 96016,
"HTML": 3292,
"CMake": 26735,
"Shell": 17879,
"JavaScript": 9809
},
"pushed_at": "2026-07-16T02:33:18Z",
"created_at": "2017-03-28T12:00:18Z",
"owner_type": "Organization",
"updated_at": "2026-07-11T15:44:34Z",
"description": "A multithreaded, distributed, GPU-accelerated simulator of quantum computers",
"is_archived": false,
"is_disabled": false,
"license_spdx": "MIT",
"default_branch": "main",
"license_spdx_raw": "MIT",
"primary_language": "C++",
"significant_languages": [
"C++"
]
},
"owner": {
"blog": null,
"name": null,
"type": "Organization",
"login": "QuEST-Kit",
"company": null,
"location": null,
"followers": 15,
"avatar_url": "https://avatars.githubusercontent.com/u/45902318?v=4",
"created_at": "2018-12-15T18:07:35Z",
"is_verified": null,
"public_repos": 2,
"account_age_days": 2777
},
"license": {
"state": "standard",
"spdx_id": "MIT",
"raw_spdx": "MIT",
"file_present": true,
"scorecard_found": true,
"profile_has_license": true
},
"activity": {
"releases": [
{
"tag": "v4.2.0",
"kind": "minor",
"published_at": "2025-10-14T01:39:44Z"
},
{
"tag": "v4.1.0",
"kind": "minor",
"published_at": "2025-05-28T02:19:46Z"
},
{
"tag": "v4.0.0",
"kind": "major",
"published_at": "2025-04-06T23:25:17Z"
},
{
"tag": "v3.7.0",
"kind": "minor",
"published_at": "2023-09-22T11:17:04Z"
},
{
"tag": "v3.6.0",
"kind": "minor",
"published_at": "2023-08-07T18:01:23Z"
},
{
"tag": "v3.5.0",
"kind": "minor",
"published_at": "2022-04-21T10:07:13Z"
},
{
"tag": "v3.4.1",
"kind": "patch",
"published_at": "2021-10-13T12:16:59Z"
},
{
"tag": "v3.4.0",
"kind": "minor",
"published_at": "2021-10-10T07:23:00Z"
},
{
"tag": "v3.3.0",
"kind": "minor",
"published_at": "2021-08-22T13:14:09Z"
},
{
"tag": "v3.2.1",
"kind": "patch",
"published_at": "2021-06-06T17:30:11Z"
},
{
"tag": "v3.2.0",
"kind": "minor",
"published_at": "2020-07-21T20:46:28Z"
},
{
"tag": "v3.1.1",
"kind": "patch",
"published_at": "2020-03-21T14:43:07Z"
},
{
"tag": "v3.1.0",
"kind": "minor",
"published_at": "2020-02-29T00:12:48Z"
},
{
"tag": "v3.0.1",
"kind": "patch",
"published_at": "2020-01-17T16:51:31Z"
},
{
"tag": "3.0.0",
"kind": "major",
"published_at": "2020-01-10T08:19:09Z"
},
{
"tag": "2.1.0",
"kind": "minor",
"published_at": "2019-05-15T16:42:11Z"
},
{
"tag": "v2.0.1",
"kind": "patch",
"published_at": "2019-05-14T15:10:02Z"
},
{
"tag": "v2.0.0",
"kind": "major",
"published_at": "2018-12-12T17:37:48Z"
},
{
"tag": "v1.1.0",
"kind": "minor",
"published_at": "2018-07-14T17:09:51Z"
},
{
"tag": "v1.0.0",
"kind": "major",
"published_at": "2018-05-10T08:53:17Z"
},
{
"tag": "v0.12.0",
"kind": "minor",
"published_at": "2018-05-02T13:32:05Z"
},
{
"tag": "v0.11.1",
"kind": "patch",
"published_at": "2018-03-20T15:48:36Z"
},
{
"tag": "v0.11.0",
"kind": "minor",
"published_at": "2018-02-21T20:22:53Z"
},
{
"tag": "v0.10.0",
"kind": "minor",
"published_at": "2018-02-20T16:38:18Z"
},
{
"tag": "v0.9.0",
"kind": "minor",
"published_at": "2017-10-02T15:51:40Z"
}
],
"recent_commits": [
{
"oid": "9d7618d7263e3bfba433b88cf1eac0647f08fa0a",
"body": null,
"is_bot": false,
"headline": "v4.2 (#692)",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-10-14T01:36:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b0c66d2b088724cc79f614a58aab20b64e9cccca",
"body": null,
"is_bot": false,
"headline": "updated README with EPCC lead",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-10-13T01:00:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f0d4bcd1cc487d7f26bc6a5b101764ac8848062e",
"body": null,
"is_bot": false,
"headline": "bumped version to v4.2.0",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-10-09T01:52:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1d7abf75e8aceec3ea733a3e08b17093d1aada96",
"body": "All user-configurable macros utilised by the source code (e.g. `COMPILE_MPI`) are now CMake options, passed to the source only via preparation of the `config.h` header. This centralises them, reduces the myriad of arguments to the compiler command (which made verbose debugging cumbersome), makes err\n[…]\nnd/or inside a directory (like as a git submodule).\n\nTyson refactored options and Oliver patched the install issues.\n\n---------\n\nCo-authored-by: Oliver Thomson Brown <otbrown@users.noreply.github.com>",
"is_bot": false,
"headline": "refactored all macros to config options (#685)",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-10-09T01:47:39Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "cb682b239746ab239fd61ac3aaafe5af722437a3",
"body": null,
"is_bot": false,
"headline": "added calculation doc",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-10-09T01:34:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "265569090a45e1edcfa99b1345840fae16314ba8",
"body": null,
"is_bot": false,
"headline": "updated LICENSE.txt",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-09-20T21:20:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "60f9b3a153b52430286e555d75d5defc6c41a7b5",
"body": "As described in issue #638, QuEST v4 contained a performance regression (from v3) only sometimes seen in CPU settings. This was due to the use of std::complex operator overloads in cpu_subroutines.cpp (whereas QuEST v3 hand-rolled complex arithmetic), and affected compilation with Clang (in both sin\n[…]\n the C++ standard library. After deliberation, it beat out other solutions including hand-rolling complex arithmetic, use of a custom complex type, and use of more precise and compiler-specific flags.",
"is_bot": false,
"headline": "patched CPU performance",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-09-16T00:27:40Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "be7edbb1f3e2ff571cd1742db4228c334c7dc587",
"body": "so I can subsequently refactor it (stop propagating options to preprocessors) without pulling out all my hair. Whitespace is free! :^)",
"is_bot": false,
"headline": "tidied CMakeLists.txt",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-09-15T00:31:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "347d7e55391779d4eed1fd78db6e840b22aff48c",
"body": "which had only the below 4 changes visible to users:\n- changed the significant figures from 3 to 4 of reported memory (e.g. `3.23e1 KiB` becomes `32.30 KiB`)\n- fixed a README doc link\n- renamed to clarify the `setQuregToClone` parameters\n- suppressed illegitimate unused-variable compiler warnings\n\nand otherwise merely tidied internal code. See #672 for all changes.",
"is_bot": false,
"headline": "minor code cleanup (#672)",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-09-05T14:19:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5bd864b5881ab783465bde3aebf2195216641ec1",
"body": null,
"is_bot": false,
"headline": "added news doc",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-09-04T19:38:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "851691dd518aaa8089cc01eff382360209269b3c",
"body": "as per #638. The previous use of the Pauli-specific multi-qubit backend logic was suboptimal for single-target since it involved superfluous per-amplitude evaluation of bitstring parity. This introduced a performance regression in single-core QuEST v4 since v3 which used single-target matrix logic.\n\n[…]\ning a single-target through functions which can accept many, such as applyPauliStr() and applyPauliGadget(). Note too that further changes are expected necessary to recover single-core v3 performance.",
"is_bot": false,
"headline": "optimised one-qubit Paulis to use applyCompMatr1 (#682)",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-09-04T19:08:36Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "ab8b5603abeea8da52949edeb43005fc37d66d9a",
"body": "since superseded by setQuregToWeightedSum().\n\nAdditionally defined internal convenience functions...\n- localiser_statevec_scaleAmps\n- localiser_statevec_setQuregToClone\nwhich merely call localiser_statevec_setQuregToWeightedSum, for code clarity",
"is_bot": false,
"headline": "removed setQuregToSuperposition()",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-08-22T17:02:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d4a5714e76f00d760f146b7013de2e570b278e92",
"body": null,
"is_bot": false,
"headline": "added setQuregToWeightedSum (and ToMixture)",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-08-22T17:02:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "211d4e8a0030501bf71bc6258b22eb256ba47f23",
"body": "in order to make the applyTrotterized prefix consistent, as considered in #669.\n\nSpecifically, renamed:\n- applyNonUnitaryTrotterizedPauliStrSumGadget -> applyTrotterizedNonUnitaryPauliStrSumGadget\n- applyControlledTrotterizedPauliStrSumGadget -> applyTrotterizedControlledPauliStrSumGadget\n- applyMul\n[…]\ntrolledTrotterizedPauliStrSumGadget -> applyTrotterizedMultiControlledPauliStrSumGadget\n- applyMultiStateControlledTrotterizedPauliStrSumGadget -> applyTrotterizedMultiStateControlledPauliStrSumGadget",
"is_bot": false,
"headline": "renamed Trotter functions",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-08-20T19:14:36Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "0ecad9ca9f8d18728907b176c84a1cb513e2a4d7",
"body": "since paulis.cpp is an \"API\" file while the pauli logic previously therein was used by numerous core files.\n\nA final inelegance remains; some unit test utilities leverage the internal pauli logic functions using extern, which will break when we eventually switch to private namespacing. Alas!",
"is_bot": false,
"headline": "separated pauli logic from paulis.cpp",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-08-20T19:13:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6eec1cf662ba0d6f35acf059f7fc947ac7d1fa26",
"body": "Specifically:\n- applyTrotterizedUnitaryTimeEvolution()\n- applyTrotterizedImaginaryTimeEvolution()\n- applyTrotterizedNoisyTimeEvolution()\nwhere the latter has significant novelty.\n\nPR also\n- (patch) made imaginary-time evolution assert Hermiticity (315ea41)\n- (patch) patched non-unitary Trotter on de\n[…]\namples to use these new time-evol functions\n- tidied some Pauli algebra (replacing paulis_hasOddNumY calls with direct paulis_getSignOfPauliStrConj)\n- made createPauliStrSum validate it can fit in RAM",
"is_bot": false,
"headline": "added Trotterised time evolution (#674)",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-08-19T15:57:26Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "2db00e55a376972d4d92a066dc9d7deaddb27af8",
"body": "…ly (#668)\n\nas discussed in issue #663",
"is_bot": false,
"headline": "renamed multiply and postmultiply functions to leftapply and rightapp…",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-08-13T21:09:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "53c68280df3ce7bfb14a6e0fd047d2a3dab71c1b",
"body": "specifically:\n- multiplyQubitProjector\n- postMultiplyQubitProjector\n- multiplyMultiQubitProjector\n- postMultiplyMultiQubitProjector\n\nAlso updated multiplication doc warnings",
"is_bot": false,
"headline": "added multiply projector functions",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-07-22T13:15:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e0a0e96bb183d6d6fc9d4221cb06f93caf0b4d65",
"body": "Previously, the order >= 4 scenario of Trotterisation did not correctly invoke recursion, but instead called first order Trotterisation five times without symmetrisation. This meant passing order=4 erroneously excluded symmetrisation (halving the Trotter depth), and passing order>=6 merely performed\n[…]\nproximation of the intended unitary, albeit of lower order and ergo accuracy than expected. This was not caught by the unit tests since they do not exist, as warned in the function documentation. Eep!",
"is_bot": false,
"headline": "patched Trotterisation of order >= 4",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-07-21T20:21:33Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "2110b745bddaafa4554996b537ad7b0ec2fcc9c7",
"body": "which has the below benefits:\n- the remaining functions in operations.cpp are precise and do not need to be user-configured for accuracy (i.e. no Trotter hyperparameters)\n- the remaining functions in operations.cpp merely call the backend and do not include any bespoke logic (i.e. Trotter circuit sc\n[…]\nrations\n- the Trotter logic is isolated in preparation for it becoming more substantial with the introduction of randomisation, commuting groups, and that necessary for Linblad master equation solving",
"is_bot": false,
"headline": "separated API trotterisation from operations",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-07-20T01:37:11Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "c49f8d2ee92fd4055106daab2e36001d7ff3d498",
"body": "in order to shrink the bloated set of operations, making those remaining \"standard\" and trace-preserving (with the exception of the applyQubitProjector and applyMultiQubitProjector). The new multiplications module is catered to \"raw\" linear algebra upon density matrices",
"is_bot": false,
"headline": "separated API multiplications from operations",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-07-19T22:52:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "37e222ea2f3526d29cb14b01c319f4fabb62ec7e",
"body": "Danny Hindson discovered a bug wherein the failing cudaMalloc() call deliberately induced by the 'out-of-memory' unit test of createFullStateDiagMatr() breaks subsequent GPU simulation. This is because a failing cudaMalloc corrupts the CUDA API state until being explicitly cleared using the undocumented facility of cudaGetLastError (which clears \"non-sticky' errors). We correct this, and defensively check for irrecoverable sticky errors.",
"is_bot": false,
"headline": "patched broken CUDA state after malloc failure",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-07-13T16:21:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "378ad71021c2911db38c46eb5e5de09cfdfee155",
"body": "Luc:\nv3.7 was sensible on NUMA machines “by default” through first-touch initialization. This had been lost in v4 as idnetified by James Richings. Here’s some basic numa-aware allocation, and a little love for general parallel/openmp usage.\n\n- If we’re on *nix _and_ we find libnuma, we enable NUMA-a\n[…]\nction once (rather than once per thread).\n\nLuc coded the logic and Tyson added doc and error-handling. PR #658 replaced the original of #652\n\n---------\n\nCo-authored-by: Luc Jaulmes <ljaulmes@ed.ac.uk>",
"is_bot": false,
"headline": "restored NUMA-awareness (#658)",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-07-09T15:18:36Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "738ca891eee654d93b586afd10ffff3381009a07",
"body": "For every existing multiply*() function, such as multiplyCompMatr(), this commit adds a corresponding postMultiply*() function which operates upon a density matrix from the right-hand side. This is useful for preparing density matrices in non-physical states which appear as sub-expressions within th\n[…]\n- extending and refactoring the unit tests with postMultiply references\n\nWe additionally added the below expected but missing functions from the API:\n- multiplyPauliX\n- multiplyPauliY\n- multiplyPauliZ",
"is_bot": false,
"headline": "added postMultiply functions (#657)",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-06-30T18:04:02Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "aa11c23f39210445390d9d5c460c250a6ec57931",
"body": "The API functions createFullStateDiagMatr() and createCustomFullStateDiagMatr() worked correctly though their \"insufficient distributed memory\" validation error messages were erroneously excluded from the expected message lists in their respective unit tests.",
"is_bot": false,
"headline": "patched distributed validation test",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-06-26T17:51:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cd01c6f79de405d34c227db8b584b9c8add5f176",
"body": "which enables post-compilation pre-runtime configuring of the unit tests without hooking into QuEST's internal environment variable facilities. The macros...\n- TEST_MAX_NUM_QUBIT_PERMUTATIONS\n- TEST_MAX_NUM_SUPEROP_TARGETS\n- TEST_ALL_DEPLOYMENTS\n- TEST_NUM_MIXED_DEPLOYMENT_REPETITIONS\nare now enviro\n[…]\nles, along with new variable TEST_NUM_QUBITS_IN_QUREG which controls the size of the Quregs in the unit tests.\n\nWith this commit, all preprocessors considered in #645 have become environment variables",
"is_bot": false,
"headline": "added test environment variables (#655)",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-06-26T17:47:34Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "eeedec7002b1a09f3412ee910cff3c54e22e4ae6",
"body": "which enable configuring QuEST's execution after compilation, before QuEST environment initialisation, solving some of the issues lamented in #645 and generally being more sensible/convenient. It also patched an esoteric bug in the parsing of floating-point numbers, affecting functions like initInli\n[…]\nspaces into cmake error message about MacOS multithreading to make the advised commands clearer.\n\nA subsequent commit will refactor some unit-testing macros to non-QuEST-managed environment variables.",
"is_bot": false,
"headline": "added environment variables (#653)",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-06-25T21:09:16Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "f28691cede4c66bcf106271be530667c448e31fa",
"body": "- Promoted variables set in compile_option CMake function to parent scope, which ensures correct values are generated in the header file.\n- Separated compilation configuration defines into config.h\n- Added guards to check at least one of the required compiler macros is undefined as proposed by @TysonRayJones\n- Removed guards from modes.h which prevented COMPILE macros from being defined, as proposed by @TysonRayJones",
"is_bot": false,
"headline": "Patched quest.h generation (#645)",
"author_name": "Oliver Thomson Brown",
"author_login": "otbrown",
"committed_at": "2025-06-21T12:05:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c357267563e8fa9701908f6ff8057c1f7277df63",
"body": "so that the COMPILE_CUQUANTUM preprocessor need only ever be consulted by the source during compilation, as proposed by Oliver in #645",
"is_bot": false,
"headline": "bound isCuQuantumEnabled to QuESTEnv",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-06-14T08:04:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d4706b92a4f66cc541e6ba1a9f9bde0c4d85a075",
"body": "New API functions:\n- applyControlledTrotterizedPauliStrSumGadget()\n- applyMultiControlledTrotterizedPauliStrSumGadget()\n- applyMultiStateControlledTrotterizedPauliStrSumGadget()\n- C++-only std::vector overloads of the latter two.\n\nAdditionally:\n- renamed the internal constituent functions, like appl\n[…]\nwhich is bound to the PauliStrSum instance. We have deferred any such optimisation and the associated struct changes since it necessitates an update to the PauliStrSum design (like new sync functions)",
"is_bot": false,
"headline": "added controlled Trotter",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-06-13T18:42:14Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "f3baf3455956c03f98f351e69bcdb5d47b45562b",
"body": "- applyTrotterizedPauliStrSumGadget() was documented to effect exp(i t H) but actually effected exp(-i t H), eep! Thankfully the doc warned the function was untested. It now correctly effects exp(i t H).\n- defensively removed hardcoding of the scalar responsible for the above bug, which undoes the c\n[…]\nunctions\n- fixed defunct doxygen command (@cppoverload)\n\nNote that both these Trotter functions remain without unit tests since impending new functions are anticipated which will generalise the tests.",
"is_bot": false,
"headline": "patched Trotter sign and added non-unitary Trotter (#647)",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-06-12T21:34:34Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "5fa4f609847a80e1303e5a12c2024a8259db8515",
"body": "as part of unitaryHACK 2025, challenge issue #594\n\n---------\n\nCo-authored-by: Tyson Jones <tyson.jones.input@gmail.com>",
"is_bot": false,
"headline": "added non-unitary Pauli gadgets (#637)",
"author_name": "diogomaia00",
"author_login": "diogomaia00",
"committed_at": "2025-06-04T14:29:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cd5120c9c717420bbd363586fc37568a209d3d59",
"body": "Mai (Roll249) implemented the probe, and Tyson updated the tests and authorlist\n\n---------\n\nCo-authored-by: Tyson Jones <tyson.jones.input@gmail.com>",
"is_bot": false,
"headline": "implemented cross-platform RAM probe (#636)",
"author_name": "Roll249",
"author_login": "Roll249",
"committed_at": "2025-06-03T22:04:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4d44ec81debdae20cb6ae988e400bf606180a65e",
"body": "Updates version references and fixes doxygen parsing of CMake configured header broken in #616",
"is_bot": false,
"headline": "post v4.1",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-05-28T02:18:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8678836cd29ac59688556399860aab712db1fe14",
"body": "and fixing doxygen parsing of CMake configured header broken in #616",
"is_bot": false,
"headline": "updating version number (#628)",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-05-28T02:16:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2d1a6fbc147b38a2fa32e10ac007120578b605ff",
"body": null,
"is_bot": false,
"headline": "v4.1 (#622)",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-05-28T01:06:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e9fa519617edd498a9f7e8901ce7273f44ceebe1",
"body": "Now, all standalone C and C++ files in the 'isolated' and 'automated' subdirectories of 'examples' will be executed by the compiler Github Action. The former is to just catch/log interface issues not reflected by the unit tests, while the latter empowers external contributors to include casual test \n[…]\noss-precision. This is a much easier alternative to users attempting to include unit tests in their PRs, and has been setup in preparation for unitaryHACK 2025.\n\n Also documented each examples subdir",
"is_bot": false,
"headline": "extended CI example testing",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-05-27T21:43:31Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "835208e38735ef35341191eceeb4bc14cf81684e",
"body": "When the passed PauliStr is identity and no control qubits are imposed, the function merely effects a change in global phase. For density matrices, this induces no change at all; the two constituent operations upon the Choi vector cancel one-another, wasting time and numerical accuracy. So, we abort\n[…]\n insignificant runtime and accuracy optimisation, and this scenario is superfluously handled mostly to document the validity of the scenario (i.e. the use of gadgets to effect arbitrary phase changes)",
"is_bot": false,
"headline": "optimised applyPauliGadget edgecase",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-05-27T20:52:18Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "8db1c06b70b9a8642d8fc14bc09544d3500616d1",
"body": "This required editing the source to exclude designated initialisers which are not supported in C++17 except through compiler extensions. Such extensions are enabled by default in Clang and GCC but require explicit enabling in e.g. MSVC. We've here made the decision to widen default-compiler support by making struct initialisation a little uglier.",
"is_bot": false,
"headline": "separated source (C++17) and testing (C++20) standards",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-05-25T19:53:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "49e5ff32568885b0c1da74ef649a56adfd13ea8c",
"body": "Since `bitValue` is an `int`, the expression `bitValue << bitIndex` can overflow when `bitIndex` equals/exceeds 32. This is solved by casting `bitValue` into a `qindex` before shifting.\n\n(Tyson updated authorlists)",
"is_bot": false,
"headline": "patched overflow in setBit (#623)",
"author_name": "JPRichings",
"author_login": "JPRichings",
"committed_at": "2025-05-23T22:22:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c47422633b62a5e46f0b916afffb24283e1267e7",
"body": "including\n- removing references to defunct `invalidQuESTInputError`\n- essential doc needed to disambiguate function conventions (like relationship between function parameters and effected operation phases)\n- renamed Doxygen keyword `@equivalent` to `@equivalences`\n- ... `@notvalidated` to `@notyetva\n[…]\nanged some `@cpponly` functions into new `@cppvectoroverload`, and then hid the latter\n- added links from doc to the example PR\n- linked `C++`-overload doc to corresponding `C` function (using `@see`)",
"is_bot": false,
"headline": "updated doc (#621)",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-05-22T18:13:02Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "f11fb9511bb29b54ae3e60360648ccc39456613e",
"body": null,
"is_bot": false,
"headline": "added Luc Jualmes to authorlist",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-05-08T19:25:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9be1dfd4b7359c45fd7732d41ee611622cc695a1",
"body": "This resolves the issues highlighted in #611 while maintaining QuEST's header include structure in the source",
"is_bot": false,
"headline": "patched CMake install (#616)",
"author_name": "Luc Jaulmes",
"author_login": "lucjaulmes",
"committed_at": "2025-05-08T19:13:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ce95cf2e9c7759c11c47333677b309fbb88aa0d1",
"body": "so that external contributors (and importantly right now, example PRs) can contribute new, self-contained unit test code without needing to incorporate new headers",
"is_bot": false,
"headline": "standardising unit-test includes",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-05-06T17:18:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1c051cf38b227896d1c6316fbd5a3d9ce96e097b",
"body": "Erich (build):\n- adjusted install interface paths to use CMAKE_INSTALL_INCLUDEDIR\n- added platform-agnostic RPATH handling via helper function setup_quest_rpath\n- set RPATH origin for dynamic linking\n- passed QuEST version info to CMake\n\nTyson (CI):\n- run compiled examples to test for link-time errors\n- temporarily disabled LCOV reporting to PRs\n\n---------\n\nCo-authored-by: Tyson Jones <tyson.jones.input@gmail.com>",
"is_bot": false,
"headline": "improved build and CI (#601)",
"author_name": "Erich Essmann",
"author_login": "eessmann",
"committed_at": "2025-05-01T11:28:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3699f7c46ca892a4c2145f78d61d441514cf9487",
"body": "- moved and renamed isolated examples\n- tidied example-related CMakeLists.txt\n- updated example-related doc\n- added dynamics example\n- updated min_example to be C/C++ agnostic\n- change compile workflow to run Windows first (since MSVC is the most pedantic compiler of those tested so should run and fail soonest)",
"is_bot": false,
"headline": "restructured and extended examples (#593)",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-04-27T12:40:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2b4623c7eaada61b89080925acb1a950473f10b0",
"body": null,
"is_bot": false,
"headline": "added setReportedPauli(Chars|StrStyle)",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-04-22T14:35:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3279c45927dfe8be53149c48f40e4fd126036414",
"body": "See PR #589 for info on each patch",
"is_bot": false,
"headline": "patched reporters and optimised applyTrotter",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-04-22T09:45:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "53f8f3ad60e5b0171646ee8250c0e6ea65878b44",
"body": null,
"is_bot": false,
"headline": "updated v4 refs to main",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-04-06T23:16:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "786c0bff5a6a4d0fef4e723854cce0c126a4d5ae",
"body": "- added very cute, very essential emojis to markdown titles\n- added a tutorial\n- added a main docs/README.md\n- added a main tests/README.md\n- made markdown hyperlinks work on both Github and Doxygen\n- made markdown files appear as Doxygen pages\n- made macros appear in Doxygen docs via function/const\n[…]\nction)`) cannot be handled by Doxygen at all. A user clicking such a hyperlink in the generated html will hit a 404. These little user-traps have been marked with comments in the markdown files. Alas!",
"is_bot": false,
"headline": "added (final) v4 repo docs",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-04-06T21:57:37Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "e00cb41164302c4c367540cd1b4717ecb8cd3c14",
"body": "so that C++ users can pass vectors directly to functions, even inline, rather than having to store qubit lists as local variables and pass pointers. This is not only concise, but prevents them from causing insidious seg-faults/dangling errors by attempting to pass inline vector pointers.\n\nAlas this adds quite a lot of new boilerplate; 2000 lines of it! :'( \n\nSee PR #584 for a breakdown into smaller commits.",
"is_bot": false,
"headline": "added C++ convenience overloads",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-04-06T00:08:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "29d343a55d004106a63afa30717e69baa7a2ea51",
"body": "and API docs, and some patches!\n\nSpecifically: \n- added docs/v4.md\n- added docs/compile.md (WIP)\n- added docs/run.md (WIP)\n- added examples/README.md tutorial (WIP)\n- expanded docs/compilers.md\n- added test-var list to docs/cmake.md\n- added API doc latex definitins\n- added API doc sub-groups\n- added\n[…]\nseShift\n- added some TODO comments to source\n- patched:\n - syncQuESTEnv (which wasn't syncing GPU)\n - FullStateDiagMatr multithreaded setters (missing OpenMP if clause)\n\nSee commit breakdown in #583",
"is_bot": false,
"headline": "added (most) v4 repo docs",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-04-04T21:43:27Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "6bac19c16a96e69f44af87dd4242b46e7d91a892",
"body": "Corrected dereference of wasGpuSynced, as discussed in #581",
"is_bot": false,
"headline": "patched matrix-sync validation test",
"author_name": "Oliver Thomson Brown",
"author_login": "otbrown",
"committed_at": "2025-04-04T13:35:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c131a292214624b02a966293be021e3ed5b7f274",
"body": "The benefits include:\n- better portability between compilers; no macro guards!\n- better symmetry with existing debug API (mostly setters)\n- enables runtime re-routing of errors (so it can be unit tested!)\n- resolves problem when multiple translation units both define the previous weak-symbol function (like when deprecated tests are compiled alongside v4 tests)\n- more standard!",
"is_bot": false,
"headline": "replaced invalidQuESTInputError with setInputErrorHandler",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-04-02T23:07:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2dccccc7ac8b0f45e039afe6a4b29ff937d13535",
"body": "which used an incorrect method to obtain MPI_TAG_UB. We additionally added a fallback to use the standard-gauranteed minimum when there is trouble obtaining MPI_TAG_UB.\n\nShout out to the Julia G's for helping discover the bug!\n\n---------\n\nCo-authored-by: Oliver Thomson Brown <8394906+otbrown@users.noreply.github.com>",
"is_bot": false,
"headline": "patched MPI max-tag inference",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-04-02T17:07:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9b39fe4522561b8f8c652deefcc68109d3638f51",
"body": "since they arguably constitute the majority of functions interfaced by users, so are worth checking before v4 release! The in-development more-doc branch has removed the corresponding `@nottested` tags from the checked functions.\n\nAdditionally:\n- added C++-macro guard (to defend from `__cplusplus=0`\n[…]\nnsured pre-processor checks are performed first when `quest.h` is included\n- removed some defunct validation-related comments\n- added post-sample validation to test utility RNG - I'm suspicious of it!",
"is_bot": false,
"headline": "added (some) operator validation tests",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-04-02T15:25:09Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "0799d14730cb42d7b93e1664a4730a4502127dd8",
"body": "by adding missing test RNG seeding, and using only local C++ RNGs (foregoing use of the C-lib rand) \n\n---------\n\nCo-authored-by: Oliver Thomson Brown <8394906+otbrown@users.noreply.github.com>",
"is_bot": false,
"headline": "patched HIP + MPICH unit tests",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-03-31T21:30:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4ae04976cf4a66912dceca4c7e0db1ed4f7bdddf",
"body": "see individual commits/sub-tasks in #576",
"is_bot": false,
"headline": "scaffolded v4 doc",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-03-30T15:57:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6531616434d1b417f7232f01216c118d08197f11",
"body": "and added a warning about a potential issue with v3.X MPICH compilers. Also added code warnings that MSVC does not support the `#warning` pragma (ridiculous!)",
"is_bot": false,
"headline": "patching MPICH preprocessors",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-03-27T14:14:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5ca3daacf8c521f7aedb24ebe87ee298077df442",
"body": "to improve the user printing experience. Updated the examples to use these, and additionally made further patches to CI address sanitizer tests.",
"is_bot": false,
"headline": "added reportScalar, reportStr and setNumReportedNewlines",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-03-26T16:24:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0195c6ac627e6de1af4767413b532124a0237710",
"body": "By giving each send-recv pair a unique tag, we no longer require message orderedness and can ergo support adaptive routing (AR)\n\n---------\n\nCo-authored-by: Oliver Thomson Brown <8394906+otbrown@users.noreply.github.com>",
"is_bot": false,
"headline": "added MPI tags to support AR",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-03-25T23:22:16Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2cf512a854b6dde26d378737c4096ec8630edf00",
"body": "- renamed KrausMap.isCPTP to KrausMap.isApproxCPTP to reflect its epsilon-dependence, for consistency with isApproxUnitarity, isApproxHermitian and isApproxNonZero\n- defined util_setFlagToUnknown() so that constant validate_STRUCT_PROPERTY_UNKNOWN_FLAG need not be exposed beyond validation.cpp and u\n[…]\nlidation-changes (setValidationEpsilon, setValidationEpsilonToDefault()) clear all epsilon-dependent struct fields\n- hid \"struct not initialised\" tests from address sanitizer (which erm disliked them)",
"is_bot": false,
"headline": "tidied heap flags",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-03-25T23:19:19Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "a5e8e3e2054c6db472791f66e2ce57448a179b89",
"body": "Co-authored-by: Richard Meister <richardm.tug@gmail.com>",
"is_bot": false,
"headline": "clear matrix-flags when validation changes",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-03-25T19:45:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3abab9eab97f09abbdc683cfc208038191a7c289",
"body": "This colossal commit makes the follow...\n\nchanges:\n- made tests use both absolute and relative epsilon comparisons\n- added macro TEST_MAX_NUM_SUPEROP_TARGETS to speedup tests\n- added macro PERMIT_NODES_TO_SHARE_GPU to cmake\n- added macro TEST_NUM_MIXED_DEPLOYMENT_REPETITIONS to speedup tests\n- renam\n[…]\n and FullStateDiagMatr setters)\n- all operations (_sans_ Trotterisation and input validation)\n- all paulis (_sans_ reporters)\n- all qureg (_sans_ reporters and GPU syncs)\n- all types (_sans_ reporter)",
"is_bot": false,
"headline": "added most v4 tests and patches (#570)",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-03-25T02:22:11Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "778f03ac98de798264a6bf1069ce32b6c2415300",
"body": "v4 unit tests are now run with multithreaded (64 threads), multithreaded + distributed (4 threads on each of 16 nodes) and GPU-accelerated (with and without cuQuantum) deployments on paid Github runners.\n\nall changes:\n- disabled compiling tests by default, to significantly reduce first-compile time \n[…]\ns of HIP v6 UUID utility)\n- made workflows compile in parallel for small speedup\n- tidied unit-test qubit-list generation\n- changed min-example to use a random state (more interesting than plus state)",
"is_bot": false,
"headline": "added accelerated CI tests",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-03-12T22:42:55Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "842c375511889f7ebd7fc4acf01a70c53dacac09",
"body": "and:\n- updated README doc links\n- moved aux to utils (former is illegal on Windows)\n- added docgroup brief descriptions\n- moved TODOs to doxygen @todo (although not currently collected)\n- added missing channels.cpp and debug.cpp unit-test files\n- added high-res quest logo (for safe-keeping, not used)",
"is_bot": false,
"headline": "setup v4 doc CI",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-03-11T18:06:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a72c9293519d33bfb4ed811b62fd5dd7d41d21cd",
"body": "scaffolded v4 doc",
"is_bot": false,
"headline": "Merge pull request #563 from QuEST-Kit/alt-new-doc",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-03-11T00:21:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "85a0033bc47888784bc1e8fd36406a2454d16796",
"body": null,
"is_bot": false,
"headline": "scaffolded v4 doc",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-03-11T00:21:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "988aa821a1f5230da9e86f709e2df6a113260e83",
"body": "specifically:\n- updated landing README for v4 (although links must still be changed from relative to absolute for doxygen compatibility0\n- updated AUTHORS.txt for v4\n- updated author tags in file doc\n- added `compilers.md`\n- added `styleguide.md` (WIP)\n- added `version4.md` placeholder (WIP)\n- removed defunct v3 tutorial\n- removed defunct v3 makefile\n- removed defunct reportQuregToFile function stub\n- removed defunct error_functionNotImplemented function",
"is_bot": false,
"headline": "updated READMEs and author lists",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-03-10T17:26:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4a36e3c66c742419a7c85dab012fae8c0000ae76",
"body": "source changes:\n- patched GPU CompMatr upon large Quregs (larger than unit tests, eep!) whereby kernel cache indexing was wrong\n- patched multi-GPU cuquantum (erroneously called when custom-kernels were necessary)\n- added validation that MPI processes use unique GPUs in multi-GPU mode\n- added compil\n[…]\nll test suite\n\nbuild changes:\n- made cmake CXX compiler as default nvcc host compiler\n- suppressed unknown-pragma warnings when not-multithreading on gcc\n\nother:\n- added author docstrings to workflows",
"is_bot": false,
"headline": "patched v4 multi-GPU",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-03-10T17:13:44Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "69c78f5c180e3007f33b543c7a0e77718eee277b",
"body": "- ROCm documentation suggests using `hip::host` as the link target. I checked the CMake files and it is just an interface target to `hip::amdhip64`, so it should (and does as far as I can tell) generate the same build files, but ought to be more robust across platforms as it's what AMD expects.\n- re\n[…]\nrget language is HIP, so it ends up double defined in the compile line currently. That doesn't break anything, but it's just cruft.\n- unsuccessfully experimented with restoring HIP + MPI CI (see #554)",
"is_bot": false,
"headline": "tweaked HIP build",
"author_name": "Oliver Thomson Brown",
"author_login": "otbrown",
"committed_at": "2025-03-05T17:42:02Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "87ce001eb61b83b705ff787c6fbfeaa6d781d14b",
"body": "and set up associated CI compilation tests. These are incomplete; outstanding tasks include:\n- compile on Windows (ROCm installation hangs, times out after 6h)\n- compile with HIP + MPI (throws a thrust compilation `vtables` error, not seen when testing outside VM)\n\nCo-authoring with Oliver to acknowledge his cmake edits, and his organising access to test platforms!\n\n---------\n\nCo-authored-by: Oliver Thomson Brown <8394906+otbrown@users.noreply.github.com>",
"is_bot": false,
"headline": "patched HIP GPU build",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-03-04T23:40:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f7d22de42c27d18b91268c3830e62d660e1588b8",
"body": null,
"is_bot": false,
"headline": "patched MSVC GPU build",
"author_name": "Oliver Thomson Brown",
"author_login": "otbrown",
"committed_at": "2025-03-03T20:02:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5ddf6465b0142b5ba884db8a2c17359114e511c0",
"body": null,
"is_bot": false,
"headline": "added CI test coverage",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-03-03T19:06:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c1aa777327330f51d224299f51a35a2ba8b16741",
"body": "and some unimportant deprecated test patches",
"is_bot": false,
"headline": "added CI mem-leak and serial unit tests",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-03-02T23:05:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "113df8ec6e127eb8d6e2570af53e3804027f0e4a",
"body": "I guess Bill won.\n\nAlso added missing validation-aborts to avoid numerically-sensitive validation when user has called setValidationEpsilon(0), which is unrelated to MSVC, but I am too lazy to separate the commit",
"is_bot": false,
"headline": "patched MSVC multithreading",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-03-01T19:21:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "34916278e2ad5cc8d2a334128f5c6218ca3c456c",
"body": "in addition to:\n- patching MSVC distributed compilation\n- removed MSVC-incompatible data-structure initialisers on Windows\n- made examples MSVC-compatible\n- removed previous defunct CI workflows",
"is_bot": false,
"headline": "added CI compilation tests",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-02-28T23:43:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "103b9617cb08f1455e5c33fe220eae4e08545127",
"body": "so that development out of v4 can compile/use the existing tests immediately",
"is_bot": false,
"headline": "added half of v4 tests",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-02-27T16:50:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6e616ae55b1be3feba723e4e80182f85edda1989",
"body": "in addition to some other CPU and GPU facilities; see the full list in #541",
"is_bot": false,
"headline": "patched (mostly) v4 cuQuantum (#541)",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-02-27T16:14:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d970024af11591a44b30b570d0e50d5220469c15",
"body": "- corrected reporting of dependencies\n- added cmake config generation (improving QuEST's incorporation as a package)\n- restructured install directory\n- privatised link libraries to prevent spurious onward dependencies\n- removed (default) package export\n- added MPI as an explicit dependency of the deprecated tests\n- corrected BUILD/INSTALL interface in target_include_directories\n\n---------\n\nCo-authored-by: Oliver Thomson Brown <otbrown@users.noreply.github.com>",
"is_bot": false,
"headline": "patched CMake build (#537)",
"author_name": "Erich Essmann",
"author_login": "eessmann",
"committed_at": "2025-02-27T16:09:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b7dddae7e440a2ac2b63860fce6c117af4e8bd67",
"body": "- bumped internal standard to C++20\n- disabled OpenMP on Windows (since MSVC does not support custom OpenMP reductions)\n- corrected struct initialisation (formerly using C syntax)\n- added `_USE_MATH_DEFINES` to ensure `M_PI` defined in relevant files\n- added cross-platform workaround for `getBitMaskParity()`\n- patched memory leak in `getTypeName()`\n- extended `getTypeName()` to Windows\n- patched `invalidQuESTInputError()` lacking C-linkage",
"is_bot": false,
"headline": "patched MSVC build (#539)",
"author_name": "Erich Essmann",
"author_login": "eessmann",
"committed_at": "2025-02-27T15:44:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "796568ba0a79af8275193f9e85a039bc9ef7b5e4",
"body": "replacing the 2D CPU memory of CompMatr and SuperOp, which each retain a 2D alias to the new 1D memory for user convenience.\n\nExisting code which accesses .cpuElems of both these structs remains valid, although some usages may be accelerated by switching to accesing .cpuElemsFlat (like some unit-testing code).\n\nPrompted by discussion #540\n\nCo-authored-by: Erich Essmann <11630432+eessmann@users.noreply.github.com>",
"is_bot": false,
"headline": "added row-major CPU matrices",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-02-19T18:01:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "25256814bfe143866541d1afd971b55032b68919",
"body": "such that the deprecated unit tests pass on Ubuntu in GPU-accelerated deployment, distributed over up to 8 nodes, when not using cuQuantum. Alas we cannot presently test cuQuantum for want of a compatible GPU!\n\nSee PR #534 for the list of patches",
"is_bot": false,
"headline": "patched v4 GPU (without cuQuantum)",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-02-06T13:23:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "14855c9aff17e542cec081206d6efdcb3e5e96af",
"body": null,
"is_bot": false,
"headline": "corrected typo in FindCUQUANTUM.cmake",
"author_name": "Oliver Thomson Brown",
"author_login": "otbrown",
"committed_at": "2025-02-06T12:14:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "522353076045334df58b7d2e40ed4224e33d222e",
"body": null,
"is_bot": false,
"headline": "added cuQuantum to CMake",
"author_name": "Oliver Thomson Brown",
"author_login": "otbrown",
"committed_at": "2025-02-05T14:03:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "35de0e4e4b9add9cbfbfa682f73651ccc5ad19c0",
"body": "additionally\n- migrated v3 unit tests (now deprecated) to Catch v3\n- removed defunct examples",
"is_bot": false,
"headline": "added v4 CMake build (#430)",
"author_name": "Oliver Thomson Brown",
"author_login": "otbrown",
"committed_at": "2025-01-29T22:59:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "334a128ad9420fcf1cbfb9387782f13d9bf4f630",
"body": "such that the deprecated unit tests pass on MacOS and Ubuntu in serial, multithreaded, distributed and multithreaded+distributed settings, with clang and gcc. GPU-acceleration requires further patching.\n\nSee PR #528 for the list of patches",
"is_bot": false,
"headline": "patched v4 CPU",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-01-28T22:43:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "404dbc3787ccbae187cb3cd57e3e136b9b0ce634",
"body": "- calcPartialTrace\n- calcReducedDensityMatrix\n- setQuregToPartialTrace\n- setQuregToReducedDensityMatrix\n- setDensityQuregFlatAmps\n- createFullStateDiagMatrFromPauliStrSum\n- createForcedQureg\n- createForcedDensityQureg\n- getEnvironmentString",
"is_bot": false,
"headline": "added remaining API functions",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-01-27T14:26:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3d9a1606afd17a0b3adafc08a5ced30682faa0a5",
"body": "- setQuregToPauliStrSum()\n- setFullStateDiagMatrFromPauliStrSum()\n- multiplyPauliStrSum()\n- applyTrotterizedPauliStrSumGadget()",
"is_bot": false,
"headline": "added remaining PauliStrSum functions",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-01-26T13:52:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "47e542a11bd2609345f7f2718f75df21ea3720e9",
"body": "The v4 utility functions are refactored and significantly de-cluttered from v3, and separated into semantic files. The unit tests are also placed into a 'unit' subfolder, with an 'integration' subfolder reserved for future integration tests.\n\nSeveral functions were renamed (notably, areEqual() becam\n[…]\nto users for use in their own C++ source, to leverage the convenient matrix algebra/overloads and random generators\n\nA bug introduced in the previous commit's setSeeds() change was also patched, oops!",
"is_bot": false,
"headline": "Scaffolding v4 unit tests",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-01-24T21:28:05Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "d2dea7dd297e57893cbe65cbb8fe69c593860376",
"body": "Previously, setSeeds() had to receive identical seeds from every node in distributed settings, as validated. This was a painful nuisance for users to assure, requiring they themselves broadcast their per-node seeds for consensus.\n\nNow, only the root node's seed is consulted, and is broadcast interna\n[…]\nr even no seeds at all. This greatly simplifies user's distributed code, which is now identical to the serial code.\n\nWe also minor patched v4 user-input validation, and deleted defunct QASM references",
"is_bot": false,
"headline": "made setSeeds broadcast from root",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-01-24T20:37:17Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "31ffa0b571b5739dcd576378ca7681a84f7426f7",
"body": "so that they successfully run using the deprecated v3 API with the new v4 backend.\n\nCo-authoring with Ali Rezaei to recognise his previous efforts porting the tests\n\nCo-Authored-By: Ali Rezaei <26064235+rezaeial@users.noreply.github.com>",
"is_bot": false,
"headline": "updated deprecated tests",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-01-23T00:29:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "67a42052a43b81c83179c2e3dcc161eb838ebd2d",
"body": null,
"is_bot": false,
"headline": "restructured unit tests",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-01-23T00:29:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ead283e6bc9dba0bd1e5074b911ac1e36abfedc8",
"body": "along with non-unity exponent and non-Hermitian variants",
"is_bot": false,
"headline": "added calcExpecFullStateDiagMatr",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-01-22T20:51:42Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d969f43e77374bfdee0ee1f44e199aabf3ad6f1b",
"body": "- centralised localiser's struct spoofing\n- added missing multiplyFullStateDiagMatrPower API declaration\n- corrected DEAULT_VALIDATION_EPSILON typo (eep!)\n- added calcExpecNonHermitianPauliStrSum definition, missing from 4621e89\n- patched applyQubitMeasurementAndGetProb which was not modifying outpu\n[…]\n initPureState validation\n- changed nullptr comparisons in errors.cpp to use mem_isAllocated for consistency\n- removed now-superfluous warning-suppressing code from cpu_subroutines\n- improved some doc",
"is_bot": false,
"headline": "misc tidying and v4 bug patches",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-01-22T20:22:07Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "ce6079280e3554a27553a3a94d0ac4ed434d0625",
"body": "so that all v3 deprecated \"operator\" unit tests pass, for development convenience.\n\nWe will return to optimise a novel, optimised method (adapted from Simon's, removed from the initial distributed manuscript)",
"is_bot": false,
"headline": "added placeholder QFTs",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-01-22T14:03:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "62ea519769faf4f579d568780a172d4340b0f3d8",
"body": "* misc bug fixes\n\nwhich progress toward making the v3 deprecated unit tests run without error.\n\nWe also relax exclusivity of multithreading and GPU-acceleration, which was pointless and annoying.\n\n* patching density-matrix prob-calc\n\n* added missing amps-fit-in-node validation\n\n* patched bug in many\n[…]\nes\n\n* avoid overwriting .isCPTP when eps=0\n\n* patched deprecated createPauliStrSum\n\n* patched two-qubit depolarising\n\nas per https://github.com/TysonRayJones/Distributed-Full-State-Algorithms/issues/7",
"is_bot": false,
"headline": "misc v4 bug patches",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-01-20T14:36:34Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "4621e89d6235b5a391e646d6eac5e7264a8f14e0",
"body": null,
"is_bot": false,
"headline": "added calcExpecPauliStrSum",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2025-01-13T15:31:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3bd93f2c6e950557f3dd7dd08d1a6b90f18d2704",
"body": null,
"is_bot": false,
"headline": "added GPU-only expected values",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2024-11-24T23:43:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "400154915560077a7ec262ed70454f6fb193b59a",
"body": "such that backend functions which apply Pauli tensors and gadgets are agnostic to whether simulation is distributed.\r\n\r\nPreviously, these functions received masks encoding Paulis even on the prefix substate, for which necessary pre-communication had already been performed. This violated the conventi\n[…]\nunctions receive only suffix Paulis; the impact of the prefix Paulis is to change the complex coefficients passed to the backend.\r\n\r\nThis refactor involved removing the messy `util_pauliStrData` type.",
"is_bot": false,
"headline": "refactored Paulis in backend",
"author_name": "Tyson Jones",
"author_login": "TysonRayJones",
"committed_at": "2024-11-24T23:43:47Z",
"body_truncated": true,
"is_coding_agent": false
}
],
"releases_count": 25,
"commits_last_year": 17,
"latest_release_at": "2025-10-14T01:39:44Z",
"latest_release_tag": "v4.2.0",
"releases_from_tags": false,
"days_since_last_push": 8,
"active_weeks_last_year": 9,
"days_since_latest_release": 283,
"mean_days_between_releases": 176.7
},
"community": {
"has_readme": true,
"has_license": true,
"has_description": true,
"has_contributing": true,
"health_percentage": 50,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"ecosystem": {
"packages": []
},
"popularity": {
"forks": 195,
"stars": 483,
"watchers": 19,
"fork_history": {
"days": [
{
"date": "2018-05-25",
"count": 1
},
{
"date": "2018-12-02",
"count": 1
},
{
"date": "2019-01-23",
"count": 1
},
{
"date": "2019-02-13",
"count": 1
},
{
"date": "2019-02-20",
"count": 1
},
{
"date": "2019-02-27",
"count": 1
},
{
"date": "2019-03-04",
"count": 1
},
{
"date": "2019-03-08",
"count": 1
},
{
"date": "2019-04-01",
"count": 1
},
{
"date": "2019-04-17",
"count": 1
},
{
"date": "2019-04-24",
"count": 1
},
{
"date": "2019-05-05",
"count": 1
},
{
"date": "2019-06-02",
"count": 1
},
{
"date": "2019-06-06",
"count": 1
},
{
"date": "2019-06-17",
"count": 1
},
{
"date": "2019-08-21",
"count": 1
},
{
"date": "2019-11-25",
"count": 1
},
{
"date": "2019-12-18",
"count": 1
},
{
"date": "2020-01-12",
"count": 1
},
{
"date": "2020-01-16",
"count": 1
},
{
"date": "2020-01-26",
"count": 1
},
{
"date": "2020-01-30",
"count": 1
},
{
"date": "2020-02-08",
"count": 1
},
{
"date": "2020-02-12",
"count": 1
},
{
"date": "2020-02-14",
"count": 1
},
{
"date": "2020-03-06",
"count": 2
},
{
"date": "2020-03-23",
"count": 1
},
{
"date": "2020-03-25",
"count": 1
},
{
"date": "2020-03-30",
"count": 1
},
{
"date": "2020-04-09",
"count": 1
},
{
"date": "2020-04-30",
"count": 1
},
{
"date": "2020-05-13",
"count": 1
},
{
"date": "2020-06-01",
"count": 1
},
{
"date": "2020-07-08",
"count": 1
},
{
"date": "2020-07-31",
"count": 1
},
{
"date": "2020-08-04",
"count": 1
},
{
"date": "2020-08-10",
"count": 1
},
{
"date": "2020-09-08",
"count": 1
},
{
"date": "2020-09-11",
"count": 1
},
{
"date": "2020-09-16",
"count": 1
},
{
"date": "2020-10-11",
"count": 1
},
{
"date": "2020-10-13",
"count": 1
},
{
"date": "2020-10-26",
"count": 1
},
{
"date": "2020-11-02",
"count": 1
},
{
"date": "2020-11-05",
"count": 1
},
{
"date": "2020-11-16",
"count": 1
},
{
"date": "2020-11-24",
"count": 1
},
{
"date": "2020-11-25",
"count": 1
},
{
"date": "2020-11-26",
"count": 1
},
{
"date": "2020-12-12",
"count": 1
},
{
"date": "2020-12-15",
"count": 1
},
{
"date": "2020-12-19",
"count": 1
},
{
"date": "2020-12-20",
"count": 1
},
{
"date": "2020-12-29",
"count": 1
},
{
"date": "2021-01-12",
"count": 1
},
{
"date": "2021-01-19",
"count": 1
},
{
"date": "2021-02-11",
"count": 1
},
{
"date": "2021-03-15",
"count": 1
},
{
"date": "2021-04-11",
"count": 1
},
{
"date": "2021-06-11",
"count": 1
},
{
"date": "2021-06-26",
"count": 1
},
{
"date": "2021-07-12",
"count": 1
},
{
"date": "2021-08-04",
"count": 1
},
{
"date": "2021-08-31",
"count": 1
},
{
"date": "2021-09-02",
"count": 1
},
{
"date": "2021-09-06",
"count": 1
},
{
"date": "2021-09-17",
"count": 1
},
{
"date": "2021-10-14",
"count": 1
},
{
"date": "2021-11-06",
"count": 1
},
{
"date": "2021-12-02",
"count": 1
},
{
"date": "2022-01-25",
"count": 1
},
{
"date": "2022-02-11",
"count": 1
},
{
"date": "2022-02-17",
"count": 1
},
{
"date": "2022-02-18",
"count": 1
},
{
"date": "2022-03-13",
"count": 1
},
{
"date": "2022-03-14",
"count": 1
},
{
"date": "2022-04-17",
"count": 1
},
{
"date": "2022-04-24",
"count": 1
},
{
"date": "2022-04-25",
"count": 1
},
{
"date": "2022-05-09",
"count": 1
},
{
"date": "2022-05-26",
"count": 1
},
{
"date": "2022-06-19",
"count": 1
},
{
"date": "2022-07-05",
"count": 1
},
{
"date": "2022-07-11",
"count": 1
},
{
"date": "2022-09-16",
"count": 1
},
{
"date": "2022-10-07",
"count": 1
},
{
"date": "2022-10-25",
"count": 1
},
{
"date": "2022-11-16",
"count": 1
},
{
"date": "2023-01-13",
"count": 1
},
{
"date": "2023-01-17",
"count": 1
},
{
"date": "2023-02-05",
"count": 1
},
{
"date": "2023-02-12",
"count": 1
},
{
"date": "2023-03-25",
"count": 1
},
{
"date": "2023-04-03",
"count": 1
},
{
"date": "2023-04-07",
"count": 1
},
{
"date": "2023-04-27",
"count": 1
},
{
"date": "2023-05-14",
"count": 1
},
{
"date": "2023-05-16",
"count": 1
},
{
"date": "2023-05-26",
"count": 1
},
{
"date": "2023-06-03",
"count": 1
},
{
"date": "2023-06-13",
"count": 1
},
{
"date": "2023-06-14",
"count": 1
},
{
"date": "2023-06-15",
"count": 1
},
{
"date": "2023-07-07",
"count": 1
},
{
"date": "2023-07-10",
"count": 1
},
{
"date": "2023-07-18",
"count": 1
},
{
"date": "2023-08-10",
"count": 1
},
{
"date": "2023-08-20",
"count": 1
},
{
"date": "2023-08-31",
"count": 1
},
{
"date": "2023-10-06",
"count": 1
},
{
"date": "2023-10-09",
"count": 1
},
{
"date": "2023-10-11",
"count": 1
},
{
"date": "2023-10-19",
"count": 1
},
{
"date": "2023-10-27",
"count": 1
},
{
"date": "2023-10-31",
"count": 1
},
{
"date": "2023-11-08",
"count": 1
},
{
"date": "2023-11-09",
"count": 1
},
{
"date": "2024-02-17",
"count": 1
},
{
"date": "2024-02-26",
"count": 1
},
{
"date": "2024-04-17",
"count": 1
},
{
"date": "2024-04-29",
"count": 1
},
{
"date": "2024-05-16",
"count": 1
},
{
"date": "2024-06-03",
"count": 1
},
{
"date": "2024-07-01",
"count": 1
},
{
"date": "2024-09-21",
"count": 1
},
{
"date": "2024-10-26",
"count": 1
},
{
"date": "2024-11-19",
"count": 1
},
{
"date": "2024-11-20",
"count": 1
},
{
"date": "2024-12-20",
"count": 1
},
{
"date": "2025-03-14",
"count": 1
},
{
"date": "2025-04-01",
"count": 1
},
{
"date": "2025-04-07",
"count": 2
},
{
"date": "2025-04-11",
"count": 1
},
{
"date": "2025-04-15",
"count": 1
},
{
"date": "2025-04-22",
"count": 1
},
{
"date": "2025-05-06",
"count": 1
},
{
"date": "2025-05-23",
"count": 1
},
{
"date": "2025-05-27",
"count": 1
},
{
"date": "2025-05-28",
"count": 1
},
{
"date": "2025-05-29",
"count": 3
},
{
"date": "2025-05-30",
"count": 1
},
{
"date": "2025-05-31",
"count": 1
},
{
"date": "2025-06-16",
"count": 1
},
{
"date": "2025-06-21",
"count": 1
},
{
"date": "2025-07-15",
"count": 1
},
{
"date": "2025-08-04",
"count": 1
},
{
"date": "2025-08-21",
"count": 1
},
{
"date": "2025-08-24",
"count": 1
},
{
"date": "2025-08-28",
"count": 1
},
{
"date": "2025-10-24",
"count": 2
},
{
"date": "2025-10-27",
"count": 1
},
{
"date": "2026-01-03",
"count": 1
},
{
"date": "2026-01-14",
"count": 1
},
{
"date": "2026-01-24",
"count": 1
},
{
"date": "2026-02-02",
"count": 1
},
{
"date": "2026-02-26",
"count": 1
},
{
"date": "2026-03-02",
"count": 1
},
{
"date": "2026-03-09",
"count": 1
},
{
"date": "2026-03-28",
"count": 1
},
{
"date": "2026-04-02",
"count": 1
},
{
"date": "2026-04-10",
"count": 1
},
{
"date": "2026-04-14",
"count": 1
},
{
"date": "2026-04-26",
"count": 1
},
{
"date": "2026-04-27",
"count": 1
},
{
"date": "2026-06-04",
"count": 4
},
{
"date": "2026-06-05",
"count": 3
},
{
"date": "2026-06-06",
"count": 1
},
{
"date": "2026-06-07",
"count": 2
},
{
"date": "2026-06-08",
"count": 3
},
{
"date": "2026-06-10",
"count": 3
},
{
"date": "2026-06-11",
"count": 2
},
{
"date": "2026-06-12",
"count": 2
},
{
"date": "2026-06-14",
"count": 1
},
{
"date": "2026-06-16",
"count": 1
},
{
"date": "2026-07-19",
"count": 1
}
],
"complete": true,
"collected": 192,
"total_forks": 195
},
"star_history": null,
"open_issues_and_prs": 50
},
"ai_readiness": {
"has_nix": false,
"example_dirs": [
"examples"
],
"has_llms_txt": false,
"has_dockerfile": false,
"has_mcp_signal": false,
"bootstrap_files": [],
"api_schema_files": [],
"has_devcontainer": false,
"typecheck_configs": [],
"toolchain_manifests": [],
"largest_source_bytes": 216479,
"source_files_sampled": 149,
"oversized_source_files": 11,
"agent_instruction_files": [],
"agent_instruction_max_bytes": null
},
"dependencies": {
"manifests": [],
"advisories": {
"error": "No resolved dependencies to assess",
"scope": "repository_graph",
"source": null,
"findings": [],
"collected": false,
"malicious": [],
"truncated": false,
"by_severity": {},
"advisory_count": 0,
"affected_count": 0,
"assessed_count": 0,
"malicious_count": 0,
"assessed_package": null,
"unassessed_count": 0,
"direct_affected_count": 0
},
"ecosystems": [],
"dependencies": [],
"all_dependencies": {
"error": null,
"source": "github-sbom",
"packages": [],
"collected": true,
"truncated": false,
"total_count": 0,
"direct_count": 0,
"indirect_count": 0
}
},
"maintainership": {
"issues": {
"open_prs": 8,
"merged_prs": 410,
"open_issues": 42,
"closed_ratio": 0.865,
"closed_issues": 268,
"closed_unmerged_prs": 66
},
"bus_factor": 1,
"bot_contributors": 0,
"top_contributors": [
{
"type": "User",
"login": "TysonRayJones",
"commits": 1006,
"avatar_url": "https://avatars.githubusercontent.com/u/29574749?v=4"
},
{
"type": "User",
"login": "aniabrown",
"commits": 280,
"avatar_url": "https://avatars.githubusercontent.com/u/1617558?v=4"
},
{
"type": "User",
"login": "oerc0122",
"commits": 59,
"avatar_url": "https://avatars.githubusercontent.com/u/46597752?v=4"
},
{
"type": "User",
"login": "rrmeister",
"commits": 19,
"avatar_url": "https://avatars.githubusercontent.com/u/80358408?v=4"
},
{
"type": "User",
"login": "fcooper8472",
"commits": 16,
"avatar_url": "https://avatars.githubusercontent.com/u/3770306?v=4"
},
{
"type": "User",
"login": "nfwvogt",
"commits": 10,
"avatar_url": "https://avatars.githubusercontent.com/u/45093608?v=4"
},
{
"type": "User",
"login": "otbrown",
"commits": 7,
"avatar_url": "https://avatars.githubusercontent.com/u/8394906?v=4"
},
{
"type": "User",
"login": "eessmann",
"commits": 3,
"avatar_url": "https://avatars.githubusercontent.com/u/11630432?v=4"
},
{
"type": "User",
"login": "drewsilcock",
"commits": 2,
"avatar_url": "https://avatars.githubusercontent.com/u/14921224?v=4"
},
{
"type": "User",
"login": "chr5tphr",
"commits": 2,
"avatar_url": "https://avatars.githubusercontent.com/u/15217558?v=4"
}
],
"contributors_sampled": 18,
"top_contributor_share": 0.712
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"audit.yml",
"compile.yml",
"doc.yml",
"test_free.yml",
"test_paid.yml"
],
"has_docs_dir": true,
"linter_configs": [],
"has_editorconfig": false,
"has_linter_config": false,
"has_precommit_config": false
},
"security_signals": {
"lockfiles": [],
"scorecard": {
"checks": [
{
"name": "Binary-Artifacts",
"score": 10,
"reason": "no binaries found in the repo",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
},
{
"name": "Branch-Protection",
"score": 0,
"reason": "branch protection not enabled on development/release branches",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
},
{
"name": "CI-Tests",
"score": 10,
"reason": "23 out of 23 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": 0,
"reason": "Found 2/23 approved changesets -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
},
{
"name": "Contributors",
"score": 10,
"reason": "project has 11 contributing companies or organizations",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
},
{
"name": "Dangerous-Workflow",
"score": 10,
"reason": "no dangerous workflow patterns detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
},
{
"name": "Dependency-Update-Tool",
"score": 0,
"reason": "no update tool detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
},
{
"name": "Fuzzing",
"score": 0,
"reason": "project is not fuzzed",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
},
{
"name": "License",
"score": 10,
"reason": "license file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
},
{
"name": "Maintained",
"score": 10,
"reason": "0 commit(s) and 26 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": null,
"reason": "packaging workflow not detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
},
{
"name": "Pinned-Dependencies",
"score": 0,
"reason": "dependency not pinned by hash detected -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
},
{
"name": "SAST",
"score": 0,
"reason": "SAST tool is not run on all commits -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
},
{
"name": "Security-Policy",
"score": 0,
"reason": "security policy file not detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
},
{
"name": "Signed-Releases",
"score": null,
"reason": "no releases found",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
},
{
"name": "Token-Permissions",
"score": 0,
"reason": "detected GitHub workflow tokens with excessive permissions",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
},
{
"name": "Vulnerabilities",
"score": 10,
"reason": "0 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "9d7618d7263e3bfba433b88cf1eac0647f08fa0a",
"ran_at": "2026-07-24T17:22:59Z",
"aggregate_score": 4.3,
"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": "2025-10-14T04:44:57Z",
"oldest_open_prs": [
{
"number": 615,
"created_at": "2025-05-06T17:19:28Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 726,
"created_at": "2026-04-16T14:31:10Z",
"last_comment_at": "2026-07-24T13:41:30Z",
"last_comment_author": "otbrown"
},
{
"number": 774,
"created_at": "2026-06-03T02:55:12Z",
"last_comment_at": "2026-06-03T10:20:23Z",
"last_comment_author": "otbrown"
},
{
"number": 785,
"created_at": "2026-06-08T03:11:39Z",
"last_comment_at": "2026-06-21T17:00:42Z",
"last_comment_author": "TysonRayJones"
},
{
"number": 790,
"created_at": "2026-06-11T15:16:28Z",
"last_comment_at": "2026-06-16T14:20:55Z",
"last_comment_author": "thedaemon-wizard"
},
{
"number": 791,
"created_at": "2026-06-12T22:39:54Z",
"last_comment_at": "2026-06-15T18:10:55Z",
"last_comment_author": "TysonRayJones"
},
{
"number": 798,
"created_at": "2026-06-16T17:46:47Z",
"last_comment_at": "2026-06-16T19:42:07Z",
"last_comment_author": "VinaYrdx"
},
{
"number": 811,
"created_at": "2026-07-07T22:22:22Z",
"last_comment_at": null,
"last_comment_author": null
}
],
"last_merged_pr_at": "2026-06-30T04:19:00Z",
"ci_last_conclusion": "SUCCESS",
"oldest_open_issues": [
{
"number": 10,
"created_at": "2018-05-03T11:08:25Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 11,
"created_at": "2018-05-03T11:10:01Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 153,
"created_at": "2019-06-15T01:30:19Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 201,
"created_at": "2020-01-12T16:20:48Z",
"last_comment_at": "2020-01-13T15:24:07Z",
"last_comment_author": "TysonRayJones"
},
{
"number": 543,
"created_at": "2025-02-20T10:50:58Z",
"last_comment_at": "2026-05-19T03:00:40Z",
"last_comment_author": "TysonRayJones"
},
{
"number": 588,
"created_at": "2025-04-19T16:40:50Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 597,
"created_at": "2025-04-27T15:25:29Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 599,
"created_at": "2025-04-28T13:24:29Z",
"last_comment_at": "2025-07-05T00:27:10Z",
"last_comment_author": "TysonRayJones"
},
{
"number": 602,
"created_at": "2025-04-30T22:27:21Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 603,
"created_at": "2025-04-30T22:48:00Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 604,
"created_at": "2025-04-30T23:06:49Z",
"last_comment_at": "2025-05-02T13:09:55Z",
"last_comment_author": "TysonRayJones"
},
{
"number": 620,
"created_at": "2025-05-18T20:26:48Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 639,
"created_at": "2025-06-03T12:21:39Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 640,
"created_at": "2025-06-03T19:02:40Z",
"last_comment_at": "2026-06-22T06:14:02Z",
"last_comment_author": "TysonRayJones"
},
{
"number": 642,
"created_at": "2025-06-05T16:40:28Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 644,
"created_at": "2025-06-10T21:05:22Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 651,
"created_at": "2025-06-19T10:06:29Z",
"last_comment_at": "2025-09-21T19:43:25Z",
"last_comment_author": "TysonRayJones"
},
{
"number": 662,
"created_at": "2025-07-21T13:21:19Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 665,
"created_at": "2025-07-21T17:31:23Z",
"last_comment_at": "2025-07-21T23:04:25Z",
"last_comment_author": "TysonRayJones"
},
{
"number": 666,
"created_at": "2025-07-21T19:33:06Z",
"last_comment_at": null,
"last_comment_author": null
}
]
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/QuEST-Kit/QuEST",
"host": "github.com",
"name": "QuEST",
"owner": "QuEST-Kit"
},
"metrics": {
"overall": {
"key": "overall",
"band": "moderate",
"name": "Overall health",
"note": null,
"notes": [],
"value": 61,
"inputs": {
"security": 43,
"vitality": 58,
"community": 70,
"governance": 54,
"engineering": 77
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "moderate",
"name": "Vitality",
"value": 58,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "moderate",
"name": "Development activity",
"note": null,
"notes": [],
"value": 56,
"inputs": {
"commits_last_year": 17,
"human_commit_share": 1,
"days_since_last_push": 8,
"active_weeks_last_year": 9
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 8 days ago",
"points": 28.8,
"status": "partial",
"details": [
{
"code": "push_recency",
"params": {
"days": 8
}
}
],
"max_points": 36
},
{
"key": "commit_cadence",
"name": "Commit cadence",
"detail": "9/52 weeks with commits",
"points": 6.2,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 9
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "17 commits in the last year",
"points": 11.3,
"status": "partial",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 17
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "0 commit(s) and 26 issue activity found in the last 90 days -- score normalized to 10",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "release_discipline",
"band": "moderate",
"name": "Release discipline",
"note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"openssf_scorecard_signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 62,
"inputs": {
"releases_count": 25,
"latest_release_tag": "v4.2.0",
"releases_from_tags": false,
"days_since_latest_release": 283,
"mean_days_between_releases": 176.7
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "25 releases published",
"points": 27,
"status": "met",
"details": [
{
"code": "releases_published",
"params": {
"count": 25
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 283 days ago",
"points": 16.2,
"status": "partial",
"details": [
{
"code": "release_recency",
"params": {
"days": 283
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~176.7 days",
"points": 12.6,
"status": "partial",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 176.7
}
}
],
"max_points": 27
},
{
"key": "openssf_scorecard_signed_releases",
"name": "OpenSSF Scorecard: Signed-Releases",
"detail": "no releases found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 10
}
]
},
{
"key": "abandonment",
"band": "excellent",
"name": "Abandonment",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"cap": null,
"state": "dormant",
"guards": [
"maintainer_replying",
"recent_release"
],
"signals": [
"issue_rot"
],
"red_flag": false,
"multiplier_pct": 100,
"declared_reason": null,
"unverified_reason": null,
"unanswered_open_prs": 1,
"unanswered_open_issues": 13,
"days_since_last_merged_pr": 24,
"days_since_last_human_commit": 283,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "no human commit for 283 days, with nothing left unanswered; held at dormant by a maintainer still replying, a release within the year",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_quiet",
"params": {
"days": 283
}
},
{
"code": "abandonment_guarded",
"params": {
"guards": "a maintainer still replying, a release within the year"
}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "good",
"name": "Community & Adoption",
"value": 70,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "good",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 70,
"inputs": {
"forks": 195,
"stars": 483,
"watchers": 19,
"growth_state": "unverified",
"growth_factor_pct": 100,
"growth_unverified_reason": "no_history"
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "483 stars",
"points": 43.5,
"status": "partial",
"details": [
{
"code": "stars",
"params": {
"count": 483
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "195 forks",
"points": 19.1,
"status": "partial",
"details": [
{
"code": "forks",
"params": {
"count": 195
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "19 watchers",
"points": 7,
"status": "partial",
"details": [
{
"code": "watchers",
"params": {
"count": 19
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "good",
"name": "Community health",
"note": null,
"notes": [],
"value": 70,
"inputs": {
"has_readme": true,
"has_license": true,
"has_contributing": true,
"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 (MIT)",
"points": 22.5,
"status": "met",
"details": [
{
"code": "license_standard",
"params": {}
},
{
"code": "license_spdx",
"params": {
"spdx": "MIT"
}
}
],
"max_points": 22.5
},
{
"key": "contributing_guide",
"name": "CONTRIBUTING guide",
"detail": null,
"points": 18,
"status": "met",
"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
}
]
}
],
"description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
},
{
"key": "governance",
"band": "moderate",
"name": "Sustainability & Governance",
"value": 54,
"weight": 0.24,
"metrics": [
{
"key": "maintainer_resilience",
"band": "at_risk",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 39,
"inputs": {
"bus_factor": 1,
"contributors_sampled": 18,
"top_contributor_share": 0.712
},
"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 71% of commits",
"points": 6.5,
"status": "partial",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 71
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "18 contributors",
"points": 13.5,
"status": "met",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 18
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 11 contributing companies or organizations",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "good",
"name": "Issue & PR responsiveness",
"note": null,
"notes": [],
"value": 73,
"inputs": {
"merged_prs": 410,
"open_issues": 42,
"closed_issues": 268,
"issue_closed_ratio": 0.865,
"closed_unmerged_prs": 66
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "86% of issues closed",
"points": 40.4,
"status": "partial",
"details": [
{
"code": "issues_closed_share",
"params": {
"share": 86
}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "410/476 decided PRs merged",
"points": 32.9,
"status": "partial",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 410,
"decided": 476
}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "Found 2/23 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "moderate",
"name": "Ownership & stewardship",
"note": null,
"notes": [],
"value": 54,
"inputs": {
"followers": 15,
"owner_type": "Organization",
"is_verified": null,
"owner_login": "QuEST-Kit",
"public_repos": 2,
"account_age_days": 2777
},
"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": "15 followers of QuEST-Kit",
"points": 8.7,
"status": "partial",
"details": [
{
"code": "owner_followers",
"params": {
"count": 15,
"login": "QuEST-Kit"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "2 public repos, account ~7 yr old",
"points": 15.5,
"status": "partial",
"details": [
{
"code": "public_repos",
"params": {
"count": 2
}
},
{
"code": "account_age_years",
"params": {
"years": 7
}
}
],
"max_points": 25
}
]
}
],
"description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
},
{
"key": "engineering",
"band": "good",
"name": "Engineering Quality",
"value": 77,
"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": "5 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 5
}
}
],
"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": "23 out of 23 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": 90,
"inputs": {
"topics": [],
"has_wiki": true,
"homepage": "https://quest.qtechtheory.org/",
"has_readme": true,
"has_docs_dir": true,
"has_description": true
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 30,
"status": "met",
"details": [],
"max_points": 30
},
{
"key": "documentation_directory",
"name": "Documentation directory",
"detail": null,
"points": 25,
"status": "met",
"details": [],
"max_points": 25
},
{
"key": "documentation_homepage_site",
"name": "Documentation / homepage site",
"detail": "https://quest.qtechtheory.org/",
"points": 15,
"status": "met",
"details": [],
"max_points": 15
},
{
"key": "repository_description",
"name": "Repository description",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "topics",
"name": "Topics",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"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": 43,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "at_risk",
"name": "Security posture",
"note": "Excluded from scoring (no data or not applicable): Packaging, Signed-Releases. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"packaging",
"signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 43,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 16,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 2,
"scorecard_aggregate": 4.3
},
"components": [
{
"key": "binary_artifacts",
"name": "Binary-Artifacts",
"detail": "no binaries found in the repo",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "branch_protection",
"name": "Branch-Protection",
"detail": "branch protection not enabled on development/release branches",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "ci_tests",
"name": "CI-Tests",
"detail": "23 out of 23 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 2/23 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 11 contributing companies or organizations",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "dangerous_workflow",
"name": "Dangerous-Workflow",
"detail": "no dangerous workflow patterns detected",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "dependency_update_tool",
"name": "Dependency-Update-Tool",
"detail": "no update tool detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "fuzzing",
"name": "Fuzzing",
"detail": "project is not fuzzed",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "license",
"name": "License",
"detail": "license file detected",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "maintained",
"name": "Maintained",
"detail": "0 commit(s) and 26 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 not detected",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 5
},
{
"key": "pinned_dependencies",
"name": "Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "sast",
"name": "SAST",
"detail": "SAST tool is not run on all commits -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "security_policy",
"name": "Security-Policy",
"detail": "security policy file not detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "signed_releases",
"name": "Signed-Releases",
"detail": "no releases found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 7.5
},
{
"key": "token_permissions",
"name": "Token-Permissions",
"detail": "detected GitHub workflow tokens with excessive permissions",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "vulnerabilities",
"name": "Vulnerabilities",
"detail": "0 existing vulnerabilities detected",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
}
]
},
{
"key": "high_risk_jurisdiction_exposure",
"band": "excellent",
"name": "High-Risk Jurisdiction Exposure",
"note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
"notes": [
{
"code": "jurisdiction_evidence_limits",
"params": {}
}
],
"value": 100,
"inputs": {
"meaning": "self-published location evidence; not nationality or citizenship",
"red_flag": false,
"exposures": [],
"policy_countries": [
"Russia",
"Iran",
"North Korea"
],
"review_only_matches": 0,
"assessed_self_published_locations": 9
},
"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": "at_risk",
"name": "AI Readiness",
"value": 46,
"weight": 0,
"metrics": [
{
"key": "ai_agent_context",
"band": "at_risk",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 40,
"inputs": {
"has_llms_txt": false,
"legible_history_share": 0.75,
"agent_instruction_files": [],
"agent_instruction_max_bytes": null
},
"components": [
{
"key": "agent_instructions",
"name": "Agent instructions",
"detail": "no CLAUDE.md / AGENTS.md / editor rules",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_agent_instructions",
"params": {}
}
],
"max_points": 45
},
{
"key": "machine_readable_docs_llms_txt",
"name": "Machine-readable docs (llms.txt)",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
},
{
"key": "legible_commit_history",
"name": "Legible commit history",
"detail": "75 of 100 human commits state their intent (structured subject or explanatory body)",
"points": 40,
"status": "met",
"details": [
{
"code": "legible_history",
"params": {
"legible": 75,
"sampled": 100
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "at_risk",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 33,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [],
"has_dockerfile": false,
"typed_language": true,
"bootstrap_files": [],
"has_devcontainer": false,
"has_linter_config": false,
"typecheck_configs": [],
"agent_commit_share": 0,
"toolchain_manifests": [],
"dependency_bot_commit_share": 0
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 18
},
{
"key": "automated_tests",
"name": "Automated tests",
"detail": null,
"points": 22,
"status": "met",
"details": [],
"max_points": 22
},
{
"key": "lint_format_config",
"name": "Lint / format config",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 11
},
{
"key": "static_type_checking",
"name": "Static type checking",
"detail": "C++ (statically typed)",
"points": 11,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "C++"
}
}
],
"max_points": 11
},
{
"key": "reproducible_environment",
"name": "Reproducible environment",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
},
{
"key": "demonstrated_agent_practice",
"name": "Demonstrated agent practice",
"detail": "no agent-authored commits among the last 100",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_agent_authored_commits",
"params": {
"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": "excellent",
"name": "Code legibility for models",
"note": null,
"notes": [],
"value": 96,
"inputs": {
"primary_language": "C++",
"largest_source_bytes": 216479,
"source_files_sampled": 149,
"oversized_source_files": 11
},
"components": [
{
"key": "type_checkable_code",
"name": "Type-checkable code",
"detail": "C++ (statically typed)",
"points": 45,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "C++"
}
}
],
"max_points": 45
},
{
"key": "manageable_file_sizes",
"name": "Manageable file sizes",
"detail": "11/149 source files over 60KB",
"points": 50.9,
"status": "partial",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 149,
"oversized": 11
}
}
],
"max_points": 55
}
]
},
{
"key": "ai_interfaces",
"band": "at_risk",
"name": "Machine-readable interfaces",
"note": null,
"notes": [],
"value": 40,
"inputs": {
"example_dirs": [
"examples"
],
"has_mcp_signal": false,
"api_schema_files": []
},
"components": [
{
"key": "api_schema_openapi_graphql_proto",
"name": "API schema (OpenAPI/GraphQL/proto)",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 40
},
{
"key": "mcp_server",
"name": "MCP server",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 20
},
{
"key": "runnable_examples",
"name": "Runnable examples",
"detail": "examples",
"points": 40,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "examples"
}
}
],
"max_points": 40
}
]
}
],
"description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
}
],
"metrics_version": "1.13.0"
},
"warnings": [
"Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token"
],
"report_type": "repository",
"generated_at": "2026-07-24T17:23:22.446153Z",
"schema_version": "0.27.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/q/QuEST-Kit/QuEST.svg",
"full_name": "QuEST-Kit/QuEST",
"license_state": "standard",
"license_spdx": "MIT"
}