Informe JSON sin procesar legible por máquina
{
"data": {
"repo": {
"topics": [],
"is_fork": false,
"size_kb": 194512,
"has_wiki": true,
"homepage": null,
"languages": {
"C": 5605497,
"C++": 22627,
"SWIG": 42281,
"CMake": 25919,
"Shell": 927,
"Python": 1262830,
"Makefile": 3533,
"Jupyter Notebook": 499150
},
"pushed_at": "2026-07-24T16:36:16Z",
"created_at": "2016-04-29T14:08:38Z",
"owner_type": "Organization",
"updated_at": "2026-07-24T16:12:37Z",
"description": "DESC Core Cosmology Library: cosmology routines with validated numerical accuracy",
"is_archived": false,
"is_disabled": false,
"license_spdx": "BSD-3-Clause",
"default_branch": "master",
"license_spdx_raw": "BSD-3-Clause",
"primary_language": "C",
"significant_languages": [
"C",
"Python"
]
},
"owner": {
"blog": "http://lsstdesc.org",
"name": "LSST Dark Energy Science Collaboration (DESC)",
"type": "Organization",
"login": "LSSTDESC",
"company": null,
"location": null,
"followers": 229,
"avatar_url": "https://avatars.githubusercontent.com/u/2731443?v=4",
"created_at": "2012-11-06T02:18:04Z",
"is_verified": null,
"public_repos": 482,
"account_age_days": 5009
},
"license": {
"state": "standard",
"spdx_id": "BSD-3-Clause",
"raw_spdx": "BSD-3-Clause",
"file_present": true,
"scorecard_found": true,
"profile_has_license": true
},
"activity": {
"releases": [
{
"tag": "v3.3.5",
"kind": "patch",
"published_at": "2026-07-24T16:36:16Z"
},
{
"tag": "v3.3.4",
"kind": "patch",
"published_at": "2026-05-14T16:09:39Z"
},
{
"tag": "v3.3.4-alpha",
"kind": "prerelease",
"published_at": "2026-05-13T21:37:23Z"
},
{
"tag": "v3.3.3",
"kind": "patch",
"published_at": "2026-04-08T19:06:07Z"
},
{
"tag": "v3.3.2",
"kind": "patch",
"published_at": "2026-03-24T01:44:43Z"
},
{
"tag": "v3.3.1",
"kind": "patch",
"published_at": "2026-03-09T16:52:19Z"
},
{
"tag": "v3.3.0",
"kind": "minor",
"published_at": "2026-03-03T20:29:58Z"
},
{
"tag": "v3.2.1",
"kind": "patch",
"published_at": "2025-06-10T19:30:55Z"
},
{
"tag": "v3.2",
"kind": "other",
"published_at": "2025-01-24T16:35:04Z"
},
{
"tag": "v3.1.2",
"kind": "patch",
"published_at": "2024-11-19T08:29:26Z"
},
{
"tag": "v3.1.1",
"kind": "patch",
"published_at": "2024-11-08T13:38:50Z"
},
{
"tag": "v3.1",
"kind": "other",
"published_at": "2024-07-18T11:43:13Z"
},
{
"tag": "v3.0.2",
"kind": "patch",
"published_at": "2024-03-08T17:01:27Z"
},
{
"tag": "v3.0.1",
"kind": "patch",
"published_at": "2024-03-08T16:13:41Z"
},
{
"tag": "v3.0.0",
"kind": "major",
"published_at": "2023-08-08T11:07:05Z"
},
{
"tag": "v2.8.0",
"kind": "minor",
"published_at": "2023-06-07T11:03:39Z"
},
{
"tag": "v2.7.0",
"kind": "minor",
"published_at": "2023-05-03T07:56:05Z"
},
{
"tag": "v2.6.1",
"kind": "patch",
"published_at": "2023-01-09T13:34:26Z"
},
{
"tag": "v2.6",
"kind": "other",
"published_at": "2022-12-19T19:26:39Z"
},
{
"tag": "v2.5.1",
"kind": "patch",
"published_at": "2022-08-02T14:53:48Z"
},
{
"tag": "v2.5.0",
"kind": "minor",
"published_at": "2022-07-13T22:10:07Z"
},
{
"tag": "v2.4.0",
"kind": "minor",
"published_at": "2022-06-01T07:41:33Z"
},
{
"tag": "v2.3.0",
"kind": "minor",
"published_at": "2021-09-09T16:52:51Z"
},
{
"tag": "v2.2.0",
"kind": "minor",
"published_at": "2021-02-04T17:26:01Z"
},
{
"tag": "v2.1.0",
"kind": "minor",
"published_at": "2020-04-29T16:59:44Z"
},
{
"tag": "v2.0.1",
"kind": "patch",
"published_at": "2019-10-22T12:01:41Z"
},
{
"tag": "v2.0.0",
"kind": "major",
"published_at": "2019-10-21T12:17:48Z"
},
{
"tag": "v2.0.0rc3",
"kind": "other",
"published_at": "2019-10-03T11:50:02Z"
},
{
"tag": "v2.0.0rc2",
"kind": "other",
"published_at": "2019-09-18T21:31:57Z"
},
{
"tag": "v2.0.0rc1",
"kind": "other",
"published_at": "2019-09-17T15:52:17Z"
},
{
"tag": "v1.0.0",
"kind": "major",
"published_at": "2018-12-14T11:05:47Z"
},
{
"tag": "v0.9",
"kind": "other",
"published_at": "2018-09-04T16:41:50Z"
},
{
"tag": "0.4",
"kind": "other",
"published_at": "2018-08-21T12:26:24Z"
},
{
"tag": "0.3.5",
"kind": "patch",
"published_at": "2018-07-17T16:57:23Z"
},
{
"tag": "0.3.3",
"kind": "patch",
"published_at": "2018-07-13T23:21:37Z"
},
{
"tag": "v0.3",
"kind": "other",
"published_at": "2018-04-11T19:32:32Z"
},
{
"tag": "0.2.1",
"kind": "patch",
"published_at": "2017-09-05T15:44:01Z"
},
{
"tag": "0.2",
"kind": "other",
"published_at": "2017-07-11T13:55:50Z"
}
],
"recent_commits": [
{
"oid": "c2cb4c0037f894ca1a08e70250351c7f68b5a433",
"body": "Fixes Issue1303: allows camb v2",
"is_bot": false,
"headline": "Merge pull request #1304 from LSSTDESC/issue1303",
"author_name": "Carlos García-García",
"author_login": "carlosggarcia",
"committed_at": "2026-07-24T16:01:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3b62bb1bbf6747dea9ba95b2061dff54e3fff36a",
"body": null,
"is_bot": false,
"headline": "default to camb v1 accuracy",
"author_name": "carlosggarcia",
"author_login": "carlosggarcia",
"committed_at": "2026-07-24T15:21:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "01d63f82b765df0a9cd8e3b84371a548cc18d103",
"body": null,
"is_bot": false,
"headline": "removed camb<2 constraint",
"author_name": "carlosggarcia",
"author_login": "carlosggarcia",
"committed_at": "2026-07-24T13:36:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1acfe2ab21fa78be4bf039ba0af38cfa6e7fd5ea",
"body": null,
"is_bot": false,
"headline": "fix for camb-v2",
"author_name": "carlosggarcia",
"author_login": "carlosggarcia",
"committed_at": "2026-07-24T13:32:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c5a75a393a941e5ed376b97e9a3065430d036817",
"body": "fix halomod_trispectrum_3h symmetry issue",
"is_bot": false,
"headline": "Merge pull request #1297 from davidesciotti/fix/trispectrum-3h-symmetry",
"author_name": "Carlos García-García",
"author_login": "carlosggarcia",
"committed_at": "2026-07-24T12:45:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6e77a5537303ad3d2492d63cdc6f6eddda1c18a1",
"body": null,
"is_bot": false,
"headline": "constrain CAMB version to avoid issues with tests",
"author_name": "Davide Sciotti",
"author_login": "davidesciotti",
"committed_at": "2026-07-24T12:25:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6f164e64fa82269df22321c87fd15f126df5b26c",
"body": null,
"is_bot": false,
"headline": "swap conditions to make the code more readable",
"author_name": "Davide Sciotti",
"author_login": "davidesciotti",
"committed_at": "2026-07-24T10:18:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e0fa442a9937d0efc246b96f4acd4d497b81a87c",
"body": null,
"is_bot": false,
"headline": "implement Carlos' PR comments",
"author_name": "Davide Sciotti",
"author_login": "davidesciotti",
"committed_at": "2026-07-24T09:40:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0b8797efac44701577eb70cbf9000d7c2923b473",
"body": null,
"is_bot": false,
"headline": "Merge branch 'master' into fix/trispectrum-3h-symmetry",
"author_name": "Davide Sciotti",
"author_login": "davidesciotti",
"committed_at": "2026-07-24T09:37:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2f511ea636f927959202d5ac29149936eea077fd",
"body": "Update README.md",
"is_bot": false,
"headline": "Merge pull request #1301 from LSSTDESC/readme-cclx",
"author_name": "Carlos García-García",
"author_login": "carlosggarcia",
"committed_at": "2026-06-29T15:44:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f7f10c91dbe80d7dd7e06c0a619efb24bd86de7c",
"body": "Add link to CCLX in README addressing #1300",
"is_bot": false,
"headline": "Update README.md",
"author_name": "Elisa Chisari",
"author_login": "elisachisari",
"committed_at": "2026-06-29T08:28:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "460d3e2586c569efa7dbd3aee7814e3e6479b233",
"body": null,
"is_bot": false,
"headline": "fix halomod_trispectrum_3h symmetry issue",
"author_name": "Davide Sciotti",
"author_login": "davidesciotti",
"committed_at": "2026-06-11T08:41:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "488dc9fd16378ec708c1f7a1dd788db760043151",
"body": "Update actions",
"is_bot": false,
"headline": "Merge pull request #1294 from LSSTDESC/ci_actions_update",
"author_name": "Carlos García-García",
"author_login": "carlosggarcia",
"committed_at": "2026-05-14T13:20:10Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5ca1f54755d11b7c04de31ec39055f0f3fe8ba17",
"body": null,
"is_bot": false,
"headline": "ci: updated actions",
"author_name": "carlosggarcia",
"author_login": "carlosggarcia",
"committed_at": "2026-05-14T00:22:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dafc23e38b369a0ab06f9afacfc5ad17fe299c74",
"body": "Cell memory fix",
"is_bot": false,
"headline": "Merge pull request #1292 from LSSTDESC/cell_memory_fix",
"author_name": "Carlos García-García",
"author_login": "carlosggarcia",
"committed_at": "2026-05-13T21:11:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a555e1af38b72f3f897dd4e970c99f0ee709f6c3",
"body": null,
"is_bot": false,
"headline": "flaked",
"author_name": "carlosggarcia",
"author_login": "carlosggarcia",
"committed_at": "2026-05-13T20:49:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2c07958a68085f6c239274d00dcb9287eefff60b",
"body": null,
"is_bot": false,
"headline": "Merge branch 'master' into cell_memory_fix",
"author_name": "Carlos García-García",
"author_login": "carlosggarcia",
"committed_at": "2026-05-13T20:33:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fc4c62b7bc32d97f16a494434cfdc811fe0b4a32",
"body": "* indexing bug fix for multicomponent tracers being calcualted with FKEM non-Limber implementation\n\n* Free allocated tracer collections\n\n* Update environment to load master branch of dark_emulator\n\n* dark_emulator git installation issue\n\n* do not enforce scipy<1.14",
"is_bot": false,
"headline": "Non-Limber memory fix (#1293)",
"author_name": "paulrogozenski",
"author_login": "paulrogozenski",
"committed_at": "2026-05-13T20:24:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "93e8fe88ecafcf47484c89a8075b9dd833a4e965",
"body": "Automatic wheels building for PyPI",
"is_bot": false,
"headline": "Merge pull request #1290 from ggalloni/pypi_wheels",
"author_name": "Carlos García-García",
"author_login": "carlosggarcia",
"committed_at": "2026-05-13T18:23:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "79c7f600e8e6def73691cd65280262423aad9016",
"body": null,
"is_bot": false,
"headline": "fix",
"author_name": "Robert Reischke",
"author_login": null,
"committed_at": "2026-05-11T11:30:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "05b9d79a1509bcdebbee0b0d6bb502ea5662d515",
"body": null,
"is_bot": false,
"headline": "update",
"author_name": "Robert Reischke",
"author_login": null,
"committed_at": "2026-05-11T11:24:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a4e6c1c66df19fd82e06f7e37fd214a4fe9a5334",
"body": null,
"is_bot": false,
"headline": "fixed some potential memory problems",
"author_name": "Robert Reischke",
"author_login": null,
"committed_at": "2026-05-11T11:17:12Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1fb2ac130e79c0e9a2a45fcdb60c968344399ccd",
"body": null,
"is_bot": false,
"headline": "Pin in pip section of `environment.yml`",
"author_name": "Giacomo Galloni",
"author_login": "ggalloni",
"committed_at": "2026-05-10T08:15:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "141a2f51af50aab6f3b51127d96504d42f647947",
"body": null,
"is_bot": false,
"headline": "Pin scipy in `pyproject`",
"author_name": "Giacomo Galloni",
"author_login": "ggalloni",
"committed_at": "2026-05-10T08:12:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9c224c00cb0428d9e4c9d10bc47b598d8ac667bc",
"body": null,
"is_bot": false,
"headline": "Add testpypi path and adapt for trusted publishing",
"author_name": "Giacomo Galloni",
"author_login": "ggalloni",
"committed_at": "2026-05-05T16:53:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "aab0184386f48ecd083bc3405f09c0c872e89588",
"body": null,
"is_bot": false,
"headline": "Drop numpy pin",
"author_name": "Giacomo Galloni",
"author_login": "ggalloni",
"committed_at": "2026-05-05T16:52:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2e6a6e85b013d9353e7380d281ac175a21a86ade",
"body": null,
"is_bot": false,
"headline": "Remove extra deps",
"author_name": "Giacomo Galloni",
"author_login": "ggalloni",
"committed_at": "2026-04-14T13:12:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0f422c1db0309fd23bf469fb0fce1c02f9773f0f",
"body": null,
"is_bot": false,
"headline": "Impose numpy version >=2",
"author_name": "Giacomo Galloni",
"author_login": "ggalloni",
"committed_at": "2026-04-14T12:57:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6cdf42749de054ac13123ecd66855c9e005429fa",
"body": null,
"is_bot": false,
"headline": "Add missing deps",
"author_name": "Giacomo Galloni",
"author_login": "ggalloni",
"committed_at": "2026-04-14T12:51:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3d0b3ab3a63df8cccfbd03e1ad2ec1856f639d3e",
"body": null,
"is_bot": false,
"headline": "Merge branch 'pypi_wheels' of github.com:ggalloni/CCL into pypi_wheels",
"author_name": "Giacomo Galloni",
"author_login": "ggalloni",
"committed_at": "2026-04-14T12:41:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9c136862662e7087cca896c283a5f238485fe136",
"body": null,
"is_bot": false,
"headline": "Test fixes",
"author_name": "Giacomo Galloni",
"author_login": "ggalloni",
"committed_at": "2026-04-14T12:39:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "04d86964488dc3aaa265964319365747238d8558",
"body": null,
"is_bot": false,
"headline": "Bug fix",
"author_name": "Giacomo Galloni",
"author_login": "ggalloni",
"committed_at": "2026-04-14T12:39:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d1efb67741aaad5a6199d6a29194b5fad88c470b",
"body": null,
"is_bot": false,
"headline": "Add matrix wheels to workflow",
"author_name": "Giacomo Galloni",
"author_login": "ggalloni",
"committed_at": "2026-04-14T12:39:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1114eaf215c1149824754c2eeed11e4ff3f04b67",
"body": null,
"is_bot": false,
"headline": "Bug fix",
"author_name": "Giacomo Galloni",
"author_login": "ggalloni",
"committed_at": "2026-04-14T12:38:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8ed47a4ce3b051ed2f89d76d91d9f73169bb391e",
"body": null,
"is_bot": false,
"headline": "Add wheel settings to pyproject",
"author_name": "Giacomo Galloni",
"author_login": "ggalloni",
"committed_at": "2026-04-14T12:38:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "00b0c84ec29a1d7df60cf9d16541f31959e629b3",
"body": null,
"is_bot": false,
"headline": "Fix for correct tags",
"author_name": "Giacomo Galloni",
"author_login": "ggalloni",
"committed_at": "2026-04-14T12:38:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e5f7b7bb1a29bc400de7c2e5d0b471843de6499f",
"body": null,
"is_bot": false,
"headline": "Test fixes",
"author_name": "Giacomo Galloni",
"author_login": "ggalloni",
"committed_at": "2026-04-14T12:10:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "95444b85d50b3b04457d32e44e353cc09a557006",
"body": "* indexing bug fix for multicomponent tracers being calcualted with FKEM non-Limber implementation\n\n* Added interpolation of fft output to create common k-arrays between tracers.\n\n* include interpolation arrays for auto-Limber transition\n\n* increase chi grid sampling\n\n* fix flake8",
"is_bot": false,
"headline": "Issue 1287 fix (#1288)",
"author_name": "paulrogozenski",
"author_login": "paulrogozenski",
"committed_at": "2026-04-08T18:20:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dfcb92d6241d311e457f9a8c92c117a1a4d622eb",
"body": "…M non-Limber implementation (#1286)",
"is_bot": false,
"headline": "indexing bug fix for multicomponent tracers being calcualted with FKE…",
"author_name": "paulrogozenski",
"author_login": "paulrogozenski",
"committed_at": "2026-03-23T21:24:10Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "71df00c3113920fc9ecc70b892a49aa41c92cd2d",
"body": "Fix PyPi",
"is_bot": false,
"headline": "Merge pull request #1284 from LSSTDESC/fix_pypi_whl",
"author_name": "Carlos García-García",
"author_login": "carlosggarcia",
"committed_at": "2026-03-09T16:48:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4b068da43e3d5e789e49532043b013a77b9c9b25",
"body": null,
"is_bot": false,
"headline": "updated comment",
"author_name": "carlosggarcia",
"author_login": "carlosggarcia",
"committed_at": "2026-03-09T16:30:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ea65963025760967466adf3cfcf93755a9865ffe",
"body": null,
"is_bot": false,
"headline": "pypi: don't upload whl for now",
"author_name": "carlosggarcia",
"author_login": "carlosggarcia",
"committed_at": "2026-03-09T16:19:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "14e075260371729304433f02680ac23c102c9f9e",
"body": "FKEM Non-Limber refactor",
"is_bot": false,
"headline": "Merge pull request #1281 from LSSTDESC/FKEM_Refactor",
"author_name": "Carlos García-García",
"author_login": "carlosggarcia",
"committed_at": "2026-03-03T19:42:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4cb35b937b42e7bd5705604fd7755f4747b3fc88",
"body": null,
"is_bot": false,
"headline": "Bug fix",
"author_name": "Giacomo Galloni",
"author_login": "ggalloni",
"committed_at": "2026-03-03T18:04:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "015690f425658f80bd83a79f508f68f7de7ab9a1",
"body": null,
"is_bot": false,
"headline": "Bug fix",
"author_name": "Giacomo Galloni",
"author_login": "ggalloni",
"committed_at": "2026-03-03T17:50:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "27e377acedda78322ebc40eed59f8d23a9647af2",
"body": null,
"is_bot": false,
"headline": "Merge branch 'master' into FKEM_Refactor",
"author_name": "paulrogozenski",
"author_login": "paulrogozenski",
"committed_at": "2026-03-03T17:37:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "612ce710c4ccccf831e3b5865f8470dfa903ce0e",
"body": null,
"is_bot": false,
"headline": "Add matrix wheels to workflow",
"author_name": "Giacomo Galloni",
"author_login": "ggalloni",
"committed_at": "2026-03-03T17:37:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "358ebbb657c34b17aec135c368bba514f9d24ae5",
"body": null,
"is_bot": false,
"headline": "Bug fix",
"author_name": "Giacomo Galloni",
"author_login": "ggalloni",
"committed_at": "2026-03-03T17:37:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "190e9e6e46249033b92fed8827b695b7d7278176",
"body": null,
"is_bot": false,
"headline": "Add wheel settings to pyproject",
"author_name": "Giacomo Galloni",
"author_login": "ggalloni",
"committed_at": "2026-03-03T17:37:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "010373881bacbce650e86345b7d79659070dcade",
"body": null,
"is_bot": false,
"headline": "Fix for correct tags",
"author_name": "Giacomo Galloni",
"author_login": "ggalloni",
"committed_at": "2026-03-03T17:36:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c4bab14b85e31afa04f2a22f47b4c456e6291fd7",
"body": "Improved CI, documentation, fixed MG-related issues",
"is_bot": false,
"headline": "Merge pull request #1279 from LSSTDESC/fixci_setuptools",
"author_name": "Carlos García-García",
"author_login": "carlosggarcia",
"committed_at": "2026-03-03T15:20:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "225142719b4f174389ebd1e06a4481cc55674793",
"body": null,
"is_bot": false,
"headline": "consider transfer functions, etc. when hashing cosmology object",
"author_name": "paulrogozenski",
"author_login": "paulrogozenski",
"committed_at": "2026-02-27T21:46:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "395a676e26ac51b47b9f758d618a1b91e9ea96db",
"body": null,
"is_bot": false,
"headline": "flaked",
"author_name": "carlosggarcia",
"author_login": "carlosggarcia",
"committed_at": "2026-02-27T18:56:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "45f5c79866d8232d6569f8836e33624e7e13eb58",
"body": null,
"is_bot": false,
"headline": "more explicit comment",
"author_name": "carlosggarcia",
"author_login": "carlosggarcia",
"committed_at": "2026-02-27T18:50:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9d860a4249dd6f3d9b804791cb5e65e58aa944f8",
"body": null,
"is_bot": false,
"headline": "Added unit test for fix of issue #1191",
"author_name": "Lhior",
"author_login": "Lhior",
"committed_at": "2026-02-27T18:39:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bfa7b553095090e1ae2e3e1dd035d493c3e4bae5",
"body": null,
"is_bot": false,
"headline": "flake8-ed",
"author_name": "Lhior",
"author_login": "Lhior",
"committed_at": "2026-02-27T18:24:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0853b0574334e183288ba58fba090c6a934c1d22",
"body": null,
"is_bot": false,
"headline": "added railguards to isitgr parameters",
"author_name": "Lhior",
"author_login": "Lhior",
"committed_at": "2026-02-27T18:19:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dd0220f135ce4a9025fbc31394d70f0624d211d7",
"body": null,
"is_bot": false,
"headline": "flak8-ed",
"author_name": "carlosggarcia",
"author_login": "carlosggarcia",
"committed_at": "2026-02-27T16:57:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d6f2541854f55824297a18bb042f66fca5abdd2f",
"body": null,
"is_bot": false,
"headline": "Add ISiTGR benchmark data",
"author_name": "gqcristhian",
"author_login": "gqcristhian",
"committed_at": "2026-02-27T16:40:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d74c606e186230ef9a349148cf26164b9d689475",
"body": null,
"is_bot": false,
"headline": "ignore notebook checkpoints",
"author_name": "gqcristhian",
"author_login": "gqcristhian",
"committed_at": "2026-02-27T16:22:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6882d8b24a6eff0c3e6eb73bdffe9e5c67346a3d",
"body": null,
"is_bot": false,
"headline": "missing checkpoint removed",
"author_name": "gqcristhian",
"author_login": "gqcristhian",
"committed_at": "2026-02-27T16:22:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "56b481e0248bc6af8c11fd8316180f90681a192d",
"body": null,
"is_bot": false,
"headline": "final-final cleaning",
"author_name": "gqcristhian",
"author_login": "gqcristhian",
"committed_at": "2026-02-27T16:22:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a9bc42ab1a367d0cd47ff87995a996ae3055cda3",
"body": null,
"is_bot": false,
"headline": "removing leftover ipynb checkpoints",
"author_name": "gqcristhian",
"author_login": "gqcristhian",
"committed_at": "2026-02-27T16:22:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ce260fca83d5d4ea42b181833608df0a1f4fc12a",
"body": null,
"is_bot": false,
"headline": "last cleaning",
"author_name": "gqcristhian",
"author_login": "gqcristhian",
"committed_at": "2026-02-27T16:22:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0df3bc43222a8037a8fb9855c101aa701d2a0b36",
"body": null,
"is_bot": false,
"headline": "ready to push, files cleaned",
"author_name": "gqcristhian",
"author_login": "gqcristhian",
"committed_at": "2026-02-27T16:22:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "16e9e031816a0d688be92bc778826fbe967ab63d",
"body": "…me stuff)",
"is_bot": false,
"headline": "preferred cristhian version --- not in the CCL format (will remove so…",
"author_name": "gqcristhian",
"author_login": "gqcristhian",
"committed_at": "2026-02-27T16:22:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e325c4583a06a449d636118a0e5c5f6c0e69c31d",
"body": null,
"is_bot": false,
"headline": "My local modifications to CCL",
"author_name": "gqcristhian",
"author_login": "gqcristhian",
"committed_at": "2026-02-27T16:22:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "171f5f1396762429ee9f7cee7f7100dc6af5bfc6",
"body": "Update build, CI and dependencies",
"is_bot": false,
"headline": "Merge pull request #1280 from marcpaterno/fixci_setuptools",
"author_name": "Carlos García-García",
"author_login": "carlosggarcia",
"committed_at": "2026-02-27T16:16:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9509dda50554c858a9d0210b1be5b4ead1d10721",
"body": null,
"is_bot": false,
"headline": "flake8 styling",
"author_name": "paulrogozenski",
"author_login": "paulrogozenski",
"committed_at": "2026-02-25T18:50:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0930241915dbbbe23239bfbe33922d16a8f51f94",
"body": "…d FKEM to cache cosmo object and to test individual tracer combinations for \"auto\" setting instead of total combination.",
"is_bot": false,
"headline": "Placed max cache on fkem integrals stored for memory usage. Refactore…",
"author_name": "paulrogozenski",
"author_login": "paulrogozenski",
"committed_at": "2026-02-25T14:33:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "506b26dc10dd3990b5778cb5bac99a8d000a730b",
"body": null,
"is_bot": false,
"headline": "moved non-limber code into its own directory",
"author_name": "paulrogozenski",
"author_login": "paulrogozenski",
"committed_at": "2026-02-18T14:44:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f0d4849e9566d4930e0d15374bf0c0627ede65d1",
"body": null,
"is_bot": false,
"headline": "moved non-limber code into its own directory",
"author_name": "paulrogozenski",
"author_login": "paulrogozenski",
"committed_at": "2026-02-18T14:43:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1d284988d301655cc39d648bc2a165c050ebe815",
"body": null,
"is_bot": false,
"headline": "flake8ed",
"author_name": "carlosggarcia",
"author_login": "carlosggarcia",
"committed_at": "2026-02-13T20:06:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f48a30176ec64e2e227091bdb664f9ced564c256",
"body": null,
"is_bot": false,
"headline": "bm: updated notebook for nu pk",
"author_name": "carlosggarcia",
"author_login": "carlosggarcia",
"committed_at": "2026-02-13T20:02:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8ae8eb60a177f3724add1e9b5f0925378d02165b",
"body": null,
"is_bot": false,
"headline": "test: updated power_nu test to CLASSv3+",
"author_name": "carlosggarcia",
"author_login": "carlosggarcia",
"committed_at": "2026-02-13T18:31:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1059b652e3f2165a16aa4ea209ec6ac8c63ae19b",
"body": "Consolidate developer documentation into readthedocs source files and\nreference them from CONTRIBUTING.md to reduce duplication. Update\nproject requirements to Python 3.10+ and add missing build dependencies\nto pyproject.toml.\n\nAdd a Makefile to streamline local package build testing and cleaning.\nUpdate CI configuration to test Python 3.10. Standardize commands for\nrunning tests and benchmarks with OMP_NUM_THREADS set to 2.\n\nUpdate environment.yml with version constraints and comments.",
"is_bot": false,
"headline": "Address issues raised in review.",
"author_name": "Marc Paterno",
"author_login": "marcpaterno",
"committed_at": "2026-02-13T02:23:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dc71905f4564cb339204f076eb02d394a7e34b5a",
"body": null,
"is_bot": false,
"headline": "Specify python in the environment",
"author_name": "Marc Paterno",
"author_login": "marcpaterno",
"committed_at": "2026-02-12T06:41:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9c7e35bb64f795346ebed2395292e57dee7b2007",
"body": null,
"is_bot": false,
"headline": "Adjust use of conda channels to address CI failure",
"author_name": "Marc Paterno",
"author_login": "marcpaterno",
"committed_at": "2026-02-12T05:54:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "08d6eb4864497a459fd5c8e2ee2bf0380aa11db1",
"body": "The separate isitgr and classy installation steps in the CI\nworkflow were redundant because both packages are already specified\nin .github/environment.yml. More importantly, the isitgr step was\ndowngrading setuptools from 82.0.0 to <81 based on an outdated\nworkaround for setuptools issue #5174.\n\nThe\n[…]\nith\nisitgr 1.0.5 and classy 3.3.4.0, proving that the setuptools\ndowngrade is unnecessary. The CI now relies entirely on\nenvironment.yml for package versions, matching the working local\nconfiguration.",
"is_bot": false,
"headline": "Remove redundant package install steps",
"author_name": "Marc Paterno",
"author_login": "marcpaterno",
"committed_at": "2026-02-12T02:45:18Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "1aabca36442d26210d246012ac7e22b90cd2ec42",
"body": "Tighten scipy bound and add dependency update instructions\n\nUpdate environment.yml to require scipy < 1.14 to avoid recent\ncompatibility breakages with velocileptors. Remove the obsolete\nchannel_priority line. Add a new \"Updating dependencies\" section to\nCONTRIBUTING.md that documents how to update the conda environment,\nreinstall pip-listed packages, and recreate the test environment for\ncontributors.",
"is_bot": false,
"headline": "Update CI environment and docs",
"author_name": "Marc Paterno",
"author_login": "marcpaterno",
"committed_at": "2026-02-12T02:17:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3e22f5642a4c8bb392895b721fd845fd8f582b33",
"body": null,
"is_bot": false,
"headline": "Avoid use of Anaconda's conda channel",
"author_name": "Marc Paterno",
"author_login": "marcpaterno",
"committed_at": "2026-02-12T01:43:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c450e3c9c96dd0c9f41d507ddcbd7d379754acaf",
"body": null,
"is_bot": false,
"headline": "Update versions of dependencies",
"author_name": "Marc Paterno",
"author_login": "marcpaterno",
"committed_at": "2026-02-12T01:37:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "70b2bde816241c86fe484d2f565c1d173b819f56",
"body": "The main branch does not exist; this project uses the older\nstandard name, master.",
"is_bot": false,
"headline": "Use master not main in CI",
"author_name": "Marc Paterno",
"author_login": "marcpaterno",
"committed_at": "2026-02-12T01:21:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e63906eafb99b90d198bdd4e999b90b36fd4cee9",
"body": "Enable manual triggering of the CI workflow with customizable\nparameters. Developers can now test specific Python versions\nand operating systems without pushing code to the repository.\n\nThe workflow_dispatch event accepts two inputs: python-version\nto test individual versions and os to select ubuntu\n[…]\nspect these inputs.\n\nAdded documentation in CONTRIBUTING.md explaining how to\nmanually trigger workflows via GitHub Web Interface and CLI,\nwith practical use cases for testing specific configurations.",
"is_bot": false,
"headline": "Add workflow_dispatch to CI",
"author_name": "Marc Paterno",
"author_login": "marcpaterno",
"committed_at": "2026-02-12T01:17:00Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "47bb367356fdc632a19de42a0a5507d2ccd76583",
"body": "The CI workflow now tests against Python versions 3.11, 3.12, 3.13,\nand 3.14 explicitly. The setup-miniconda step now uses the\nmatrix-specified Python version, and cache keys for both conda and\npip environments are now versioned by Python version to prevent\ncache conflicts.",
"is_bot": false,
"headline": "Add Python version matrix to CI",
"author_name": "Marc Paterno",
"author_login": "marcpaterno",
"committed_at": "2026-02-12T01:14:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3ba2b3868461c1c267cec3d26ff351b84a9d12f3",
"body": "Add two new steps to the CI workflow to cache pip packages between\nruns. This reduces build time by reusing downloaded packages across\nmultiple CI jobs and re-runs.\n\nThe new steps retrieve the pip cache directory and use GitHub Actions\ncache@v4 to store and restore it, keyed on the environment files and\nsetup.py to ensure cache validity.",
"is_bot": false,
"headline": "Add pip package caching to CI",
"author_name": "Marc Paterno",
"author_login": "marcpaterno",
"committed_at": "2026-02-12T01:08:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "33ce6526ce27eb8f873f2dc11dd25761629d38f0",
"body": "Replace deprecated GitHub Actions versions and update build\nprocesses. Migrate from styfle/cancel-workflow-action to native\nconcurrency feature for canceling redundant builds. Update\ncheckout actions from v2/v3 to v4, setup-python from v2 to v5,\nand cache from v3 to v4. Switch PyPI publishing to tru\n[…]\n with development environment\nsetup guide for both conda and manual setup, testing instructions,\nand debugging guidance. Add .gitignore files to exclude generated\n_version.py and notebook conversions.",
"is_bot": false,
"headline": "Modernize CI workflows and add docs",
"author_name": "Marc Paterno",
"author_login": "marcpaterno",
"committed_at": "2026-02-12T00:42:50Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "b1c9ba23fe3100238d0bbb12a4e377d1cb325e5a",
"body": null,
"is_bot": false,
"headline": "fix typo",
"author_name": "carlosggarcia",
"author_login": "carlosggarcia",
"committed_at": "2026-02-11T21:30:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1e46f3e27695989b719909fe2f668caf32d47a98",
"body": null,
"is_bot": false,
"headline": "new try",
"author_name": "carlosggarcia",
"author_login": "carlosggarcia",
"committed_at": "2026-02-11T21:29:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f8c295349f8ce49f52da6cf2b963bc574454dd90",
"body": null,
"is_bot": false,
"headline": "new try",
"author_name": "carlosggarcia",
"author_login": "carlosggarcia",
"committed_at": "2026-02-11T21:25:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dcf54dd57339d292ca6a4010ec5ca24347a6abc4",
"body": null,
"is_bot": false,
"headline": "ci: fixed yaml",
"author_name": "carlosggarcia",
"author_login": "carlosggarcia",
"committed_at": "2026-02-11T21:22:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2a266657226ccd367bd2933da7fa5025f5252d00",
"body": null,
"is_bot": false,
"headline": "ci: new try",
"author_name": "carlosggarcia",
"author_login": "carlosggarcia",
"committed_at": "2026-02-11T21:16:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b214200c161ac36e6df07e6a7b4a64cfee9313e1",
"body": null,
"is_bot": false,
"headline": "ci: installation in a single line",
"author_name": "carlosggarcia",
"author_login": "carlosggarcia",
"committed_at": "2026-02-11T21:09:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2dd8c8baa01e3075bb7ae3f04ebedf29016c7a3b",
"body": null,
"is_bot": false,
"headline": "use conda-forge to avoid legal issues",
"author_name": "carlosggarcia",
"author_login": "carlosggarcia",
"committed_at": "2026-02-11T21:07:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "151f0dffa21acaa537e46d734d479acf3adb1575",
"body": null,
"is_bot": false,
"headline": "ci: install isitgr separately",
"author_name": "carlosggarcia",
"author_login": "carlosggarcia",
"committed_at": "2026-02-11T21:05:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "06c84d6f73cdeb2c7b0743f2b519a47ef8f5261c",
"body": null,
"is_bot": false,
"headline": "ci: explicitly install setuptools<82 with pip",
"author_name": "carlosggarcia",
"author_login": "carlosggarcia",
"committed_at": "2026-02-11T21:00:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0afa0a1546894341aab6446f856d299fa4daccc0",
"body": null,
"is_bot": false,
"headline": "ci: avoid installing libraries with pip. use conda",
"author_name": "carlosggarcia",
"author_login": "carlosggarcia",
"committed_at": "2026-02-11T20:56:12Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2b88fe01769857137366b0a678dcee4d22d219c6",
"body": null,
"is_bot": false,
"headline": "ci: use setuptools<81",
"author_name": "carlosggarcia",
"author_login": "carlosggarcia",
"committed_at": "2026-02-11T20:44:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "13eb726472293bdab18104622cf2625ff00481df",
"body": null,
"is_bot": false,
"headline": "ci: force setuptools<82",
"author_name": "carlosggarcia",
"author_login": "carlosggarcia",
"committed_at": "2026-02-11T20:08:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7c2424baefe0d1219cc1e72a47e0d0aa55dffb78",
"body": null,
"is_bot": false,
"headline": "Improved vectorization of sums",
"author_name": "paulrogozenski",
"author_login": "paulrogozenski",
"committed_at": "2026-01-30T00:18:20Z",
"body_truncated": false,
"is_coding_agent": false
}
],
"releases_count": 38,
"commits_last_year": 124,
"latest_release_at": "2026-07-24T16:36:16Z",
"latest_release_tag": "v3.3.5",
"releases_from_tags": false,
"days_since_last_push": 0,
"active_weeks_last_year": 20,
"days_since_latest_release": 0,
"mean_days_between_releases": 68
},
"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": [
{
"name": "pyccl",
"exists": true,
"license": "BSD",
"keywords": [
"cosmology",
"astrophysics",
"physics",
"science",
"LSST",
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Science/Research",
"License :: OSI Approved :: BSD License",
"Operating System :: MacOS :: MacOS X",
"Operating System :: POSIX :: Linux",
"Programming Language :: C",
"Programming Language :: Python :: 3",
"Topic :: Scientific/Engineering :: Astronomy",
"Topic :: Scientific/Engineering :: Physics"
],
"ecosystem": "pypi",
"matches_repo": true,
"registry_url": "https://pypi.org/project/pyccl/",
"is_deprecated": false,
"latest_version": "3.3.5",
"repository_url": "https://github.com/LSSTDESC/CCL",
"versions_count": 40,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": null,
"monthly_downloads": 5579,
"first_published_at": "2017-09-05T16:04:13.481277Z",
"latest_published_at": "2026-07-24T21:17:33.513500Z",
"latest_version_yanked": null,
"days_since_latest_publish": 0
}
]
},
"popularity": {
"forks": 84,
"stars": 159,
"watchers": 231,
"fork_history": {
"days": [
{
"date": "2017-07-12",
"count": 1
},
{
"date": "2017-12-04",
"count": 2
},
{
"date": "2018-02-09",
"count": 1
},
{
"date": "2018-03-07",
"count": 1
},
{
"date": "2018-09-14",
"count": 1
},
{
"date": "2018-10-30",
"count": 1
},
{
"date": "2018-11-15",
"count": 1
},
{
"date": "2019-01-30",
"count": 1
},
{
"date": "2019-02-18",
"count": 1
},
{
"date": "2019-04-05",
"count": 1
},
{
"date": "2019-04-17",
"count": 1
},
{
"date": "2019-06-27",
"count": 1
},
{
"date": "2019-07-24",
"count": 1
},
{
"date": "2019-09-03",
"count": 1
},
{
"date": "2019-11-07",
"count": 1
},
{
"date": "2019-11-13",
"count": 1
},
{
"date": "2019-11-19",
"count": 1
},
{
"date": "2019-12-20",
"count": 1
},
{
"date": "2020-03-24",
"count": 1
},
{
"date": "2020-03-29",
"count": 1
},
{
"date": "2020-05-07",
"count": 1
},
{
"date": "2020-07-09",
"count": 1
},
{
"date": "2020-07-11",
"count": 1
},
{
"date": "2020-08-01",
"count": 1
},
{
"date": "2020-09-09",
"count": 1
},
{
"date": "2020-10-17",
"count": 1
},
{
"date": "2021-01-14",
"count": 1
},
{
"date": "2021-01-26",
"count": 1
},
{
"date": "2021-04-07",
"count": 1
},
{
"date": "2021-05-12",
"count": 1
},
{
"date": "2021-07-07",
"count": 1
},
{
"date": "2021-07-20",
"count": 1
},
{
"date": "2021-07-24",
"count": 1
},
{
"date": "2021-09-22",
"count": 1
},
{
"date": "2021-11-08",
"count": 1
},
{
"date": "2022-01-11",
"count": 1
},
{
"date": "2022-01-14",
"count": 1
},
{
"date": "2022-02-02",
"count": 1
},
{
"date": "2022-04-19",
"count": 1
},
{
"date": "2022-08-04",
"count": 1
},
{
"date": "2022-08-05",
"count": 1
},
{
"date": "2022-08-16",
"count": 1
},
{
"date": "2022-09-08",
"count": 1
},
{
"date": "2022-10-05",
"count": 1
},
{
"date": "2023-03-04",
"count": 1
},
{
"date": "2023-03-20",
"count": 1
},
{
"date": "2023-06-25",
"count": 1
},
{
"date": "2023-07-30",
"count": 1
},
{
"date": "2023-08-12",
"count": 1
},
{
"date": "2023-09-06",
"count": 1
},
{
"date": "2023-09-19",
"count": 1
},
{
"date": "2023-09-28",
"count": 1
},
{
"date": "2023-10-10",
"count": 1
},
{
"date": "2023-11-21",
"count": 1
},
{
"date": "2023-12-06",
"count": 1
},
{
"date": "2023-12-21",
"count": 1
},
{
"date": "2024-01-15",
"count": 1
},
{
"date": "2024-03-04",
"count": 1
},
{
"date": "2024-05-24",
"count": 1
},
{
"date": "2024-06-07",
"count": 1
},
{
"date": "2024-10-26",
"count": 1
},
{
"date": "2024-11-04",
"count": 1
},
{
"date": "2024-11-05",
"count": 2
},
{
"date": "2025-01-23",
"count": 1
},
{
"date": "2025-05-15",
"count": 1
},
{
"date": "2025-07-08",
"count": 1
},
{
"date": "2025-08-07",
"count": 1
},
{
"date": "2025-09-11",
"count": 1
},
{
"date": "2025-09-28",
"count": 1
},
{
"date": "2025-11-04",
"count": 1
},
{
"date": "2025-11-11",
"count": 1
},
{
"date": "2026-02-27",
"count": 1
},
{
"date": "2026-03-02",
"count": 1
},
{
"date": "2026-03-03",
"count": 1
},
{
"date": "2026-03-09",
"count": 1
},
{
"date": "2026-04-15",
"count": 1
},
{
"date": "2026-05-05",
"count": 1
},
{
"date": "2026-05-06",
"count": 2
},
{
"date": "2026-06-08",
"count": 1
}
],
"complete": true,
"collected": 82,
"total_forks": 84
},
"star_history": null,
"open_issues_and_prs": 85
},
"ai_readiness": {
"has_nix": false,
"example_dirs": [
"examples",
"notebooks"
],
"has_llms_txt": false,
"has_dockerfile": false,
"has_mcp_signal": false,
"bootstrap_files": [
"Makefile",
"benchmarks/data/codes/CosmicEmuMTII/P_cb/makefile",
"benchmarks/data/codes/CosmicEmuMTII/P_tot/makefile",
"benchmarks/data/codes/CosmicEmuMTIV/P_cb/makefile",
"benchmarks/data/codes/CosmicEmuMTIV/P_tot/makefile",
"benchmarks/data/codes/cl_corr_bm/Makefile",
"doc/0000-ccl_note/Makefile",
"doc/ccl_paper/Makefile",
"readthedocs/Makefile"
],
"api_schema_files": [],
"has_devcontainer": false,
"typecheck_configs": [],
"toolchain_manifests": [],
"largest_source_bytes": 1428745,
"source_files_sampled": 277,
"oversized_source_files": 5,
"agent_instruction_files": [],
"agent_instruction_max_bytes": null
},
"dependencies": {
"manifests": [
"pyproject.toml",
"readthedocs/requirements.txt",
"setup.py"
],
"advisories": {
"error": "No resolved dependencies carried a version and a supported ecosystem",
"scope": "repository_graph",
"source": null,
"findings": [],
"collected": false,
"malicious": [],
"truncated": false,
"by_severity": {},
"advisory_count": 0,
"affected_count": 0,
"assessed_count": 0,
"malicious_count": 0,
"assessed_package": null,
"unassessed_count": 230,
"direct_affected_count": 0
},
"ecosystems": [
"pypi"
],
"dependencies": [
{
"name": "numpy",
"manifest": "pyproject.toml",
"ecosystem": "pypi",
"version_constraint": null
},
{
"name": "packaging",
"manifest": "pyproject.toml",
"ecosystem": "pypi",
"version_constraint": null
},
{
"name": "scipy",
"manifest": "pyproject.toml",
"ecosystem": "pypi",
"version_constraint": null
},
{
"name": "pyyaml",
"manifest": "pyproject.toml",
"ecosystem": "pypi",
"version_constraint": null
}
],
"all_dependencies": {
"error": null,
"source": "github-sbom",
"packages": [
{
"name": "numpy",
"direct": true,
"version": null,
"ecosystem": "pypi"
},
{
"name": "packaging",
"direct": true,
"version": null,
"ecosystem": "pypi"
},
{
"name": "pyyaml",
"direct": true,
"version": null,
"ecosystem": "pypi"
},
{
"name": "scipy",
"direct": true,
"version": null,
"ecosystem": "pypi"
},
{
"name": "10",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "1007",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "101",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "1027",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "1047",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "106",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "1067",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "1087",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "11",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "1107",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "111",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "1127",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "1147",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "116",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "1167",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "1187",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "12",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "1207",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "121",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "1227",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "1247",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "1267",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "127",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "1287",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "13",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "1307",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "1327",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "133",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "1347",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "1367",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "1387",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "139",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "14",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "1407",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "1427",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "1447",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "145",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "1467",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "1487",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "15",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "1507",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "152",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "1527",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "1547",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "1567",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "1587",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "159",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "16",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "1607",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "1627",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "1647",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "166",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "1667",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "1687",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "17",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "1707",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "1727",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "174",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "1747",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "1767",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "1787",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "18",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "1807",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "182",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "1827",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "1847",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "1867",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "1887",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "19",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "1907",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "191",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "1927",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "1947",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "1967",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "1987",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "20",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "200",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2007",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2027",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2047",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2067",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2087",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "21",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "210",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2107",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2127",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2147",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2167",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2187",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "22",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "220",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2207",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2227",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2247",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2267",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2287",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "23",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2307",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "231",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2327",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2347",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2367",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2387",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "24",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2407",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "242",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2427",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2447",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2467",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2487",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "25",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2507",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2527",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "254",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2547",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2567",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2587",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "26",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2607",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2627",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2647",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "266",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2667",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2687",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "27",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2707",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2727",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2747",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2767",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2787",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "279",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "28",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2807",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2827",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2847",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2867",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2887",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "29",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2907",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "292",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2927",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2947",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2967",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "2987",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "3",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "30",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "306",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "31",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "32",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "321",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "33",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "337",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "34",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "35",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "353",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "36",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "37",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "370",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "38",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "388",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "39",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "4",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "40",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "407",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "42",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "427",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "44",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "447",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "46",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "467",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "48",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "487",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "5",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "50",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "507",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "52",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "527",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "54",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "547",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "56",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "567",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "58",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "587",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "6",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "60",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "607",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "627",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "63",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "647",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "66",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "667",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "687",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "69",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "7",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "707",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "72",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "727",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "747",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "75",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "767",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "78",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "787",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "8",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "807",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "81",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "827",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "847",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "85",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "867",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "887",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "89",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "9",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "907",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "927",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "93",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "947",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "967",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "97",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "987",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "docutils",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "setuptools",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "setuptools-scm",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "sphinx",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "sphinx-mdinclude",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "sphinx-rtd-theme",
"direct": false,
"version": null,
"ecosystem": "pypi"
}
],
"collected": true,
"truncated": false,
"total_count": 230,
"direct_count": 4,
"indirect_count": 226
}
},
"maintainership": {
"issues": {
"open_prs": 14,
"merged_prs": 555,
"open_issues": 71,
"closed_ratio": 0.886,
"closed_issues": 553,
"closed_unmerged_prs": 111
},
"bus_factor": 6,
"bot_contributors": 0,
"top_contributors": [
{
"type": "User",
"login": "damonge",
"commits": 515,
"avatar_url": "https://avatars.githubusercontent.com/u/8809493?v=4"
},
{
"type": "User",
"login": "c-d-leonard",
"commits": 347,
"avatar_url": "https://avatars.githubusercontent.com/u/2777707?v=4"
},
{
"type": "User",
"login": "philbull",
"commits": 232,
"avatar_url": "https://avatars.githubusercontent.com/u/710867?v=4"
},
{
"type": "User",
"login": "elisachisari",
"commits": 159,
"avatar_url": "https://avatars.githubusercontent.com/u/9137015?v=4"
},
{
"type": "User",
"login": "EiffL",
"commits": 158,
"avatar_url": "https://avatars.githubusercontent.com/u/861591?v=4"
},
{
"type": "User",
"login": "carlosggarcia",
"commits": 149,
"avatar_url": "https://avatars.githubusercontent.com/u/17812754?v=4"
},
{
"type": "User",
"login": "alexander-mead",
"commits": 112,
"avatar_url": "https://avatars.githubusercontent.com/u/9140961?v=4"
},
{
"type": "User",
"login": "tilmantroester",
"commits": 107,
"avatar_url": "https://avatars.githubusercontent.com/u/26582252?v=4"
},
{
"type": "User",
"login": "jeremyneveu",
"commits": 102,
"avatar_url": "https://avatars.githubusercontent.com/u/20576971?v=4"
},
{
"type": "User",
"login": "elikrause",
"commits": 96,
"avatar_url": "https://avatars.githubusercontent.com/u/9046576?v=4"
}
],
"contributors_sampled": 64,
"top_contributor_share": 0.171
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"ci.yml",
"publish.yml"
],
"has_docs_dir": true,
"linter_configs": [
".flake8"
],
"has_editorconfig": false,
"has_linter_config": true,
"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": null,
"reason": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
},
{
"name": "CI-Tests",
"score": 10,
"reason": "7 out of 7 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": 10,
"reason": "all changesets reviewed",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
},
{
"name": "Contributors",
"score": 10,
"reason": "project has 41 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": "26 commit(s) and 7 issue activity found in the last 90 days -- score normalized to 10",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
},
{
"name": "Packaging",
"score": 10,
"reason": "packaging workflow detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
},
{
"name": "Pinned-Dependencies",
"score": 0,
"reason": "dependency not pinned by hash detected -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
},
{
"name": "SAST",
"score": 0,
"reason": "SAST tool is not run on all commits -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
},
{
"name": "Security-Policy",
"score": 0,
"reason": "security policy file not detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
},
{
"name": "Signed-Releases",
"score": null,
"reason": "no releases found",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
},
{
"name": "Token-Permissions",
"score": 0,
"reason": "detected GitHub workflow tokens with excessive permissions",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
},
{
"name": "Vulnerabilities",
"score": 10,
"reason": "0 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "c2cb4c0037f894ca1a08e70250351c7f68b5a433",
"ran_at": "2026-07-25T06:44:10Z",
"aggregate_score": 5.8,
"scorecard_version": "v5.5.0"
},
"has_codeql_workflow": false,
"has_security_policy": false,
"has_dependabot_config": false
},
"contribution_flow": {
"collected": true,
"ci_last_run_at": "2026-07-24T21:17:38Z",
"oldest_open_prs": [
{
"number": 1128,
"created_at": "2023-10-18T09:38:06Z",
"last_comment_at": "2025-10-09T15:51:16Z",
"last_comment_author": "elisachisari"
},
{
"number": 1134,
"created_at": "2023-11-06T00:23:10Z",
"last_comment_at": "2025-12-10T14:49:49Z",
"last_comment_author": "carlosggarcia"
},
{
"number": 1137,
"created_at": "2023-11-14T16:19:06Z",
"last_comment_at": "2024-12-04T17:30:37Z",
"last_comment_author": "damonge"
},
{
"number": 1222,
"created_at": "2025-01-31T19:02:01Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 1252,
"created_at": "2025-07-07T17:22:47Z",
"last_comment_at": "2026-07-13T16:53:43Z",
"last_comment_author": "sambit-giri"
},
{
"number": 1253,
"created_at": "2025-07-09T00:22:31Z",
"last_comment_at": "2025-07-09T00:35:55Z",
"last_comment_author": "coveralls"
},
{
"number": 1266,
"created_at": "2025-11-28T03:51:46Z",
"last_comment_at": "2026-06-24T20:49:16Z",
"last_comment_author": "carlosggarcia"
},
{
"number": 1277,
"created_at": "2026-01-25T00:05:04Z",
"last_comment_at": "2026-04-15T15:03:09Z",
"last_comment_author": "nikosarcevic"
},
{
"number": 1278,
"created_at": "2026-01-26T07:12:02Z",
"last_comment_at": "2026-01-26T07:22:31Z",
"last_comment_author": "coveralls"
},
{
"number": 1289,
"created_at": "2026-03-28T05:30:51Z",
"last_comment_at": "2026-04-30T20:15:46Z",
"last_comment_author": "carlosggarcia"
},
{
"number": 1291,
"created_at": "2026-05-09T19:41:48Z",
"last_comment_at": "2026-06-15T21:51:43Z",
"last_comment_author": "jemme07"
},
{
"number": 1295,
"created_at": "2026-05-17T13:07:06Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 1296,
"created_at": "2026-05-20T22:41:13Z",
"last_comment_at": "2026-05-22T20:21:04Z",
"last_comment_author": "DhayaaAnbajagane"
},
{
"number": 1298,
"created_at": "2026-06-22T03:20:00Z",
"last_comment_at": null,
"last_comment_author": null
}
],
"last_merged_pr_at": "2026-07-24T16:01:47Z",
"ci_last_conclusion": "SUCCESS",
"oldest_open_issues": [
{
"number": 114,
"created_at": "2017-02-17T23:44:37Z",
"last_comment_at": "2020-01-22T23:47:14Z",
"last_comment_author": "damonge"
},
{
"number": 152,
"created_at": "2017-04-03T05:27:51Z",
"last_comment_at": "2022-08-05T21:38:18Z",
"last_comment_author": "mishakb"
},
{
"number": 215,
"created_at": "2017-07-02T21:47:33Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 219,
"created_at": "2017-07-05T21:03:10Z",
"last_comment_at": "2020-12-04T16:58:55Z",
"last_comment_author": "sukhdeep2"
},
{
"number": 236,
"created_at": "2017-07-13T11:46:52Z",
"last_comment_at": "2021-05-27T09:34:48Z",
"last_comment_author": "c-d-leonard"
},
{
"number": 325,
"created_at": "2018-02-09T21:41:38Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 381,
"created_at": "2018-05-25T00:09:23Z",
"last_comment_at": "2023-03-29T11:53:26Z",
"last_comment_author": "nikfilippas"
},
{
"number": 424,
"created_at": "2018-07-18T17:57:12Z",
"last_comment_at": "2022-08-05T19:05:21Z",
"last_comment_author": "damonge"
},
{
"number": 429,
"created_at": "2018-07-24T21:15:29Z",
"last_comment_at": "2021-05-28T08:47:53Z",
"last_comment_author": "c-d-leonard"
},
{
"number": 492,
"created_at": "2018-10-10T15:36:31Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 499,
"created_at": "2018-10-18T13:07:16Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 588,
"created_at": "2019-03-01T23:21:36Z",
"last_comment_at": "2020-01-23T23:04:54Z",
"last_comment_author": "beckermr"
},
{
"number": 672,
"created_at": "2019-08-19T13:23:00Z",
"last_comment_at": "2020-03-20T13:42:21Z",
"last_comment_author": "c-d-leonard"
},
{
"number": 678,
"created_at": "2019-09-09T14:18:18Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 695,
"created_at": "2019-10-30T15:38:39Z",
"last_comment_at": "2020-03-20T12:57:38Z",
"last_comment_author": "c-d-leonard"
},
{
"number": 708,
"created_at": "2019-11-21T17:30:52Z",
"last_comment_at": "2022-07-06T15:06:29Z",
"last_comment_author": "damonge"
},
{
"number": 710,
"created_at": "2019-11-22T20:07:39Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 729,
"created_at": "2020-01-24T18:16:17Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 752,
"created_at": "2020-04-06T14:41:41Z",
"last_comment_at": "2022-07-30T15:26:45Z",
"last_comment_author": "carlosggarcia"
},
{
"number": 810,
"created_at": "2020-07-24T15:48:27Z",
"last_comment_at": "2023-03-15T14:40:14Z",
"last_comment_author": "mishakb"
}
]
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/LSSTDESC/CCL",
"host": "github.com",
"name": "CCL",
"owner": "LSSTDESC"
},
"metrics": {
"overall": {
"key": "overall",
"band": "good",
"name": "Overall health",
"note": null,
"notes": [],
"value": 77,
"inputs": {
"security": 58,
"vitality": 84,
"community": 66,
"governance": 87,
"engineering": 80
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "good",
"name": "Vitality",
"value": 84,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "good",
"name": "Development activity",
"note": null,
"notes": [],
"value": 78,
"inputs": {
"commits_last_year": 124,
"human_commit_share": 1,
"days_since_last_push": 0,
"active_weeks_last_year": 20
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 0 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "push_recency",
"params": {
"days": 0
}
}
],
"max_points": 36
},
{
"key": "commit_cadence",
"name": "Commit cadence",
"detail": "20/52 weeks with commits",
"points": 13.8,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 20
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "124 commits in the last year",
"points": 18,
"status": "met",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 124
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "26 commit(s) and 7 issue activity found in the last 90 days -- score normalized to 10",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "release_discipline",
"band": "excellent",
"name": "Release discipline",
"note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"openssf_scorecard_signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 92,
"inputs": {
"releases_count": 38,
"latest_release_tag": "v3.3.5",
"releases_from_tags": false,
"days_since_latest_release": 0,
"mean_days_between_releases": 68
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "38 releases published",
"points": 27,
"status": "met",
"details": [
{
"code": "releases_published",
"params": {
"count": 38
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 0 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "release_recency",
"params": {
"days": 0
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~68 days",
"points": 19.8,
"status": "partial",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 68
}
}
],
"max_points": 27
},
{
"key": "openssf_scorecard_signed_releases",
"name": "OpenSSF Scorecard: Signed-Releases",
"detail": "no releases found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 10
}
]
},
{
"key": "abandonment",
"band": "excellent",
"name": "Abandonment",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"cap": null,
"state": "maintained",
"guards": [],
"signals": [],
"red_flag": false,
"multiplier_pct": 100,
"declared_reason": null,
"unverified_reason": null,
"unanswered_open_prs": null,
"unanswered_open_issues": null,
"days_since_last_merged_pr": null,
"days_since_last_human_commit": 0,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "last human commit 0 days ago",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_maintained",
"params": {
"days": 0
}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "moderate",
"name": "Community & Adoption",
"value": 66,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "moderate",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 65,
"inputs": {
"forks": 84,
"stars": 159,
"watchers": 231,
"growth_state": "unverified",
"growth_factor_pct": 100,
"growth_unverified_reason": "no_history"
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "159 stars",
"points": 35.7,
"status": "partial",
"details": [
{
"code": "stars",
"params": {
"count": 159
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "84 forks",
"points": 16,
"status": "partial",
"details": [
{
"code": "forks",
"params": {
"count": 84
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "231 watchers",
"points": 13.1,
"status": "partial",
"details": [
{
"code": "watchers",
"params": {
"count": 231
}
}
],
"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 (BSD-3-Clause)",
"points": 22.5,
"status": "met",
"details": [
{
"code": "license_standard",
"params": {}
},
{
"code": "license_spdx",
"params": {
"spdx": "BSD-3-Clause"
}
}
],
"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
}
]
},
{
"key": "ecosystem_adoption",
"band": "moderate",
"name": "Ecosystem adoption (downloads)",
"note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"registry_dependents"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 62,
"inputs": {
"packages": [
"pyccl"
],
"dependents": null,
"ecosystems": "pypi",
"total_downloads": null,
"monthly_downloads": 5579
},
"components": [
{
"key": "monthly_downloads",
"name": "Monthly downloads",
"detail": "5,579 downloads/month across pypi",
"points": 50,
"status": "partial",
"details": [
{
"code": "downloads_monthly",
"params": {
"count": 5579,
"ecosystems": "pypi"
}
}
],
"max_points": 80
},
{
"key": "registry_dependents",
"name": "Registry dependents",
"detail": "not reported by this ecosystem",
"points": 0,
"status": "excluded",
"details": [
{
"code": "not_reported_by_this_ecosystem",
"params": {}
}
],
"max_points": 20
}
]
}
],
"description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
},
{
"key": "governance",
"band": "excellent",
"name": "Sustainability & Governance",
"value": 87,
"weight": 0.24,
"metrics": [
{
"key": "maintainer_resilience",
"band": "excellent",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 91,
"inputs": {
"bus_factor": 6,
"contributors_sampled": 64,
"top_contributor_share": 0.171
},
"components": [
{
"key": "bus_factor",
"name": "Bus factor",
"detail": "6 contributor(s) cover half of all commits",
"points": 48.6,
"status": "partial",
"details": [
{
"code": "bus_factor",
"params": {
"count": 6
}
}
],
"max_points": 54
},
{
"key": "commit_distribution",
"name": "Commit distribution",
"detail": "top contributor authored 17% of commits",
"points": 18.7,
"status": "partial",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 17
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "64 contributors",
"points": 13.5,
"status": "met",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 64
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 41 contributing companies or organizations",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "excellent",
"name": "Issue & PR responsiveness",
"note": null,
"notes": [],
"value": 88,
"inputs": {
"merged_prs": 555,
"open_issues": 71,
"closed_issues": 553,
"issue_closed_ratio": 0.886,
"closed_unmerged_prs": 111
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "89% of issues closed",
"points": 41.4,
"status": "partial",
"details": [
{
"code": "issues_closed_share",
"params": {
"share": 89
}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "555/666 decided PRs merged",
"points": 31.9,
"status": "partial",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 555,
"decided": 666
}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "all changesets reviewed",
"points": 15,
"status": "met",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "good",
"name": "Ownership & stewardship",
"note": null,
"notes": [],
"value": 72,
"inputs": {
"followers": 229,
"owner_type": "Organization",
"is_verified": null,
"owner_login": "LSSTDESC",
"public_repos": 482,
"account_age_days": 5009
},
"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": "229 followers of LSSTDESC",
"points": 17,
"status": "partial",
"details": [
{
"code": "owner_followers",
"params": {
"count": 229,
"login": "LSSTDESC"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "482 public repos, account ~13 yr old",
"points": 25,
"status": "met",
"details": [
{
"code": "public_repos",
"params": {
"count": 482
}
},
{
"code": "account_age_years",
"params": {
"years": 13
}
}
],
"max_points": 25
}
]
},
{
"key": "package_maintenance",
"band": "excellent",
"name": "Package maintenance",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"packages": [
"pyccl"
],
"ecosystems": "pypi",
"any_deprecated": false,
"min_days_since_publish": 0
},
"components": [
{
"key": "published_resolvable",
"name": "Published & resolvable",
"detail": "1 package(s) on pypi",
"points": 25,
"status": "met",
"details": [
{
"code": "packages_published",
"params": {
"count": 1,
"ecosystems": "pypi"
}
}
],
"max_points": 25
},
{
"key": "publish_recency",
"name": "Publish recency",
"detail": "latest publish 0 days ago",
"points": 35,
"status": "met",
"details": [
{
"code": "publish_recency",
"params": {
"days": 0
}
}
],
"max_points": 35
},
{
"key": "version_history",
"name": "Version history",
"detail": "40 published versions",
"points": 20,
"status": "met",
"details": [
{
"code": "published_versions",
"params": {
"count": 40
}
}
],
"max_points": 20
},
{
"key": "not_deprecated",
"name": "Not deprecated",
"detail": "active, not deprecated or yanked",
"points": 20,
"status": "met",
"details": [
{
"code": "package_not_deprecated",
"params": {}
}
],
"max_points": 20
}
]
}
],
"description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
},
{
"key": "engineering",
"band": "good",
"name": "Engineering Quality",
"value": 80,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "good",
"name": "Engineering practices",
"note": null,
"notes": [],
"value": 84,
"inputs": {
"has_ci": true,
"has_tests": true,
"has_editorconfig": false,
"has_linter_config": true,
"has_precommit_config": false
},
"components": [
{
"key": "ci_workflows",
"name": "CI workflows",
"detail": "2 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 2
}
}
],
"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": ".flake8",
"points": 16,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": ".flake8"
}
}
],
"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": "7 out of 7 merged PRs checked by a CI test -- score normalized to 10",
"points": 20,
"status": "met",
"details": [],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "good",
"name": "Documentation",
"note": null,
"notes": [],
"value": 75,
"inputs": {
"topics": [],
"has_wiki": true,
"homepage": null,
"has_readme": true,
"has_docs_dir": true,
"has_description": true
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 30,
"status": "met",
"details": [],
"max_points": 30
},
{
"key": "documentation_directory",
"name": "Documentation directory",
"detail": null,
"points": 25,
"status": "met",
"details": [],
"max_points": 25
},
{
"key": "documentation_homepage_site",
"name": "Documentation / homepage site",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
},
{
"key": "repository_description",
"name": "Repository description",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "topics",
"name": "Topics",
"detail": 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": "moderate",
"name": "Security",
"value": 58,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "moderate",
"name": "Security posture",
"note": "Excluded from scoring (no data or not applicable): Branch-Protection, Signed-Releases. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"branch_protection",
"signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 58,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 16,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 2,
"scorecard_aggregate": 5.8
},
"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": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 7.5
},
{
"key": "ci_tests",
"name": "CI-Tests",
"detail": "7 out of 7 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": "all changesets reviewed",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 41 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": "26 commit(s) and 7 issue activity found in the last 90 days -- score normalized to 10",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "packaging",
"name": "Packaging",
"detail": "packaging workflow detected",
"points": 5,
"status": "met",
"details": [],
"max_points": 5
},
{
"key": "pinned_dependencies",
"name": "Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "sast",
"name": "SAST",
"detail": "SAST tool is not run on all commits -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "security_policy",
"name": "Security-Policy",
"detail": "security policy file not detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "signed_releases",
"name": "Signed-Releases",
"detail": "no releases found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 7.5
},
{
"key": "token_permissions",
"name": "Token-Permissions",
"detail": "detected GitHub workflow tokens with excessive permissions",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "vulnerabilities",
"name": "Vulnerabilities",
"detail": "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": 13
},
"components": [
{
"key": "policy_exposure_multiplier",
"name": "Policy exposure multiplier",
"detail": "no confirmed policy-scope location match",
"points": 100,
"status": "met",
"details": [
{
"code": "jurisdiction_no_match",
"params": {}
}
],
"max_points": 100
}
]
}
],
"description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
},
{
"key": "ai_readiness",
"band": "moderate",
"name": "AI Readiness",
"value": 51,
"weight": 0,
"metrics": [
{
"key": "ai_agent_context",
"band": "critical",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 18,
"inputs": {
"has_llms_txt": false,
"legible_history_share": 0.34,
"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": "34 of 100 human commits state their intent (structured subject or explanatory body)",
"points": 18.1,
"status": "partial",
"details": [
{
"code": "legible_history",
"params": {
"legible": 34,
"sampled": 100
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "moderate",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 62,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [],
"has_dockerfile": false,
"typed_language": true,
"bootstrap_files": [
"Makefile",
"benchmarks/data/codes/CosmicEmuMTII/P_cb/makefile",
"benchmarks/data/codes/CosmicEmuMTII/P_tot/makefile",
"benchmarks/data/codes/CosmicEmuMTIV/P_cb/makefile",
"benchmarks/data/codes/CosmicEmuMTIV/P_tot/makefile",
"benchmarks/data/codes/cl_corr_bm/Makefile",
"doc/0000-ccl_note/Makefile",
"doc/ccl_paper/Makefile",
"readthedocs/Makefile"
],
"has_devcontainer": false,
"has_linter_config": true,
"typecheck_configs": [],
"agent_commit_share": 0,
"toolchain_manifests": [],
"dependency_bot_commit_share": 0
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": "Makefile, benchmarks/data/codes/CosmicEmuMTII/P_cb/makefile, benchmarks/data/codes/CosmicEmuMTII/P_tot/makefile, benchmarks/data/codes/CosmicEmuMTIV/P_cb/makefile, benchmarks/data/codes/CosmicEmuMTIV/P_tot/makefile, benchmarks/data/codes/cl_corr_bm/Makefile, doc/0000-ccl_note/Makefile, doc/ccl_paper/Makefile, readthedocs/Makefile",
"points": 18,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "Makefile, benchmarks/data/codes/CosmicEmuMTII/P_cb/makefile, benchmarks/data/codes/CosmicEmuMTII/P_tot/makefile, benchmarks/data/codes/CosmicEmuMTIV/P_cb/makefile, benchmarks/data/codes/CosmicEmuMTIV/P_tot/makefile, benchmarks/data/codes/cl_corr_bm/Makefile, doc/0000-ccl_note/Makefile, doc/ccl_paper/Makefile, readthedocs/Makefile"
}
}
],
"max_points": 18
},
{
"key": "automated_tests",
"name": "Automated tests",
"detail": null,
"points": 22,
"status": "met",
"details": [],
"max_points": 22
},
{
"key": "lint_format_config",
"name": "Lint / format config",
"detail": ".flake8",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": ".flake8"
}
}
],
"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": 99,
"inputs": {
"primary_language": "C",
"largest_source_bytes": 1428745,
"source_files_sampled": 277,
"oversized_source_files": 5
},
"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": "5/277 source files over 60KB",
"points": 54,
"status": "partial",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 277,
"oversized": 5
}
}
],
"max_points": 55
}
]
},
{
"key": "ai_interfaces",
"band": "at_risk",
"name": "Machine-readable interfaces",
"note": null,
"notes": [],
"value": 40,
"inputs": {
"example_dirs": [
"examples",
"notebooks"
],
"has_mcp_signal": false,
"api_schema_files": []
},
"components": [
{
"key": "api_schema_openapi_graphql_proto",
"name": "API schema (OpenAPI/GraphQL/proto)",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 40
},
{
"key": "mcp_server",
"name": "MCP server",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 20
},
{
"key": "runnable_examples",
"name": "Runnable examples",
"detail": "examples, notebooks",
"points": 40,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "examples, notebooks"
}
}
],
"max_points": 40
}
]
}
],
"description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
}
],
"metrics_version": "1.13.0"
},
"warnings": [
"Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token",
"deps.dev does not index pypi:pyccl@3.3.5; advisories assessed against the repository dependency graph instead",
"No resolved dependencies carried a version and a supported ecosystem"
],
"report_type": "repository",
"generated_at": "2026-07-25T06:44:39.741488Z",
"schema_version": "0.27.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/l/LSSTDESC/CCL.svg",
"full_name": "LSSTDESC/CCL",
"license_state": "standard",
"license_spdx": "BSD-3-Clause"
}