{"id":912,"name":"MESSAGEix","description":"A versatile, dynamic systems-optimization modeling framework developed by the IIASA Energy, Climate, and Environment (ECE) Program since the 1980s.","url":"https://github.com/iiasa/message_ix","last_synced_at":"2026-04-17T07:02:53.031Z","repository":{"id":39422375,"uuid":"113015968","full_name":"iiasa/message_ix","owner":"iiasa","description":"The integrated assessment and energy systems model MESSAGEix","archived":false,"fork":false,"pushed_at":"2025-10-27T09:45:13.000Z","size":14596,"stargazers_count":138,"open_issues_count":134,"forks_count":166,"subscribers_count":14,"default_branch":"main","last_synced_at":"2025-10-29T08:14:11.084Z","etag":null,"topics":["energy-system","gams","integrated-assessment","integrated-assessment-model","open-source","strategic-planning"],"latest_commit_sha":null,"homepage":"https://docs.messageix.org","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iiasa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":".github/SECURITY.md","support":"SUPPORT.md","governance":"GOVERNANCE.md","roadmap":null,"authors":"AUTHORS.md","dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2017-12-04T08:29:06.000Z","updated_at":"2025-10-27T09:45:15.000Z","dependencies_parsed_at":"2023-09-21T19:45:35.882Z","dependency_job_id":"17ba0d8b-59f7-4964-a864-68a87f41787d","html_url":"https://github.com/iiasa/message_ix","commit_stats":{"total_commits":1531,"total_committers":25,"mean_commits":61.24,"dds":0.4990202482037883,"last_synced_commit":"9d9f5bde160d66ce227b44197e0c6faab888df2d"},"previous_names":[],"tags_count":33,"template":false,"template_full_name":null,"purl":"pkg:github/iiasa/message_ix","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iiasa","download_url":"https://codeload.github.com/iiasa/message_ix/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/sbom","scorecard":{"id":483230,"data":{"date":"2025-08-11","repo":{"name":"github.com/iiasa/message_ix","commit":"00bec749fa445e5801b05e35c51b6c44467d9715"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.4,"checks":[{"name":"Maintained","score":10,"reason":"30 commit(s) and 6 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: .github/SECURITY.md:1","Info: Found linked content: .github/SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: .github/SECURITY.md:1","Info: Found text in security policy: .github/SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Dangerous-Workflow","score":0,"reason":"dangerous workflow patterns detected","details":["Warn: untrusted code checkout '${{ github.event_name != 'pull_request_target' \u0026\u0026 github.ref || github.event.pull_request.head.sha }}': .github/workflows/pytest.yaml:93","Warn: untrusted code checkout '${{ github.event_name != 'pull_request_target' \u0026\u0026 github.ref || github.event.pull_request.head.sha }}': .github/workflows/pytest.yaml:169","Warn: untrusted code checkout '${{ github.event_name != 'pull_request_target' \u0026\u0026 github.ref || github.event.pull_request.head.sha }}': .github/workflows/pytest.yaml:242"],"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":10,"reason":"all changesets reviewed","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/conda.yaml:1","Info: topLevel 'contents' permission set to 'read': .github/workflows/nightly.yaml:29","Warn: no topLevel permission defined: .github/workflows/publish.yaml:1","Warn: no topLevel permission defined: .github/workflows/pytest.yaml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/conda.yaml:32: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/conda.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/conda.yaml:43: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/conda.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/conda.yaml:64: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/conda.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/conda.yaml:72: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/conda.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/nightly.yaml:37: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/nightly.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/nightly.yaml:45: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/nightly.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/nightly.yaml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/nightly.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/nightly.yaml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/nightly.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/publish.yaml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/publish.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pytest.yaml:94: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/pytest.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pytest.yaml:103: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/pytest.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pytest.yaml:109: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/pytest.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pytest.yaml:115: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/pytest.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pytest.yaml:121: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/pytest.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pytest.yaml:129: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/pytest.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pytest.yaml:149: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/pytest.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pytest.yaml:170: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/pytest.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pytest.yaml:176: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/pytest.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pytest.yaml:184: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/pytest.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pytest.yaml:193: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/pytest.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pytest.yaml:199: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/pytest.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pytest.yaml:209: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/pytest.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pytest.yaml:232: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/pytest.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pytest.yaml:242: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/pytest.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pytest.yaml:245: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/pytest.yaml/main?enable=pin","Warn: containerImage not pinned by hash: Dockerfile:2","Info:   0 out of  11 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of  14 third-party GitHubAction dependencies pinned","Info:   0 out of   1 containerImage dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":1,"reason":"branch protection is not maximal on development and all release branches","details":["Warn: branch protection not enabled for branch 'install-model'","Info: 'allow deletion' disabled on branch 'main'","Info: 'force pushes' disabled on branch 'main'","Warn: 'branch protection settings apply to administrators' is disabled on branch 'main'","Warn: 'stale review dismissal' is disabled on branch 'main'","Warn: required approving review count is 1 on branch 'main'","Warn: codeowners review is not required on branch 'main'","Warn: 'last push approval' is disabled on branch 'main'","Info: 'up-to-date branches' is required to merge on branch 'main'","Info: status check found to merge onto on branch 'main'","Info: PRs are required in order to make changes on branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":10,"reason":"SAST tool is run on all commits","details":["Info: all commits (30) are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-19T17:08:05.913Z","repository_id":39422375,"created_at":"2025-08-19T17:08:05.913Z","updated_at":"2025-08-19T17:08:05.913Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281877901,"owners_count":26577139,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-30T02:00:06.501Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"owner":{"login":"iiasa","name":"IIASA","uuid":"15230149","kind":"organization","description":"International Institute for Applied Systems Analysis","email":"github-owners@iiasa.ac.at","website":"https://www.iiasa.ac.at","location":"Laxenburg, Austria","twitter":"IIASAVienna","company":null,"icon_url":"https://avatars.githubusercontent.com/u/15230149?v=4","repositories_count":128,"last_synced_at":"2024-04-16T01:17:07.573Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/iiasa","funding_links":[],"total_stars":510,"followers":116,"following":0,"created_at":"2022-11-11T19:41:36.337Z","updated_at":"2024-04-16T01:17:55.524Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iiasa","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iiasa/repositories"},"packages":[{"id":5299203,"name":"message-ix","ecosystem":"conda","description":null,"homepage":"https://github.com/iiasa/message_ix","licenses":"Apache-2.0","normalized_licenses":["Apache-2.0"],"repository_url":"https://github.com/iiasa/message_ix","keywords_array":[],"namespace":null,"versions_count":10,"first_release_published_at":"2018-11-21T14:19:11.000Z","latest_release_published_at":"2022-08-18T13:52:18.000Z","latest_release_number":"3.6.0","last_synced_at":"2025-10-01T07:56:25.146Z","created_at":"2022-10-03T16:05:59.087Z","updated_at":"2025-10-29T13:05:18.864Z","registry_url":"https://anaconda.org/conda-forge/message-ix","install_command":"conda install -c conda-forge message-ix","documentation_url":null,"metadata":{},"repo_metadata":{"id":39422375,"uuid":"113015968","full_name":"iiasa/message_ix","owner":"iiasa","description":"The integrated assessment and energy systems model MESSAGEix","archived":false,"fork":false,"pushed_at":"2025-10-27T09:45:13.000Z","size":14596,"stargazers_count":138,"open_issues_count":134,"forks_count":166,"subscribers_count":14,"default_branch":"main","last_synced_at":"2025-10-29T08:14:11.084Z","etag":null,"topics":["energy-system","gams","integrated-assessment","integrated-assessment-model","open-source","strategic-planning"],"latest_commit_sha":null,"homepage":"https://docs.messageix.org","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iiasa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":".github/SECURITY.md","support":"SUPPORT.md","governance":"GOVERNANCE.md","roadmap":null,"authors":"AUTHORS.md","dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2017-12-04T08:29:06.000Z","updated_at":"2025-10-27T09:45:15.000Z","dependencies_parsed_at":"2023-09-21T19:45:35.882Z","dependency_job_id":"17ba0d8b-59f7-4964-a864-68a87f41787d","html_url":"https://github.com/iiasa/message_ix","commit_stats":{"total_commits":1531,"total_committers":25,"mean_commits":61.24,"dds":0.4990202482037883,"last_synced_commit":"9d9f5bde160d66ce227b44197e0c6faab888df2d"},"previous_names":[],"tags_count":33,"template":false,"template_full_name":null,"purl":"pkg:github/iiasa/message_ix","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iiasa","download_url":"https://codeload.github.com/iiasa/message_ix/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/sbom","scorecard":{"id":483230,"data":{"date":"2025-08-11","repo":{"name":"github.com/iiasa/message_ix","commit":"00bec749fa445e5801b05e35c51b6c44467d9715"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.4,"checks":[{"name":"Maintained","score":10,"reason":"30 commit(s) and 6 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: .github/SECURITY.md:1","Info: Found linked content: .github/SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: .github/SECURITY.md:1","Info: Found text in security policy: .github/SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Dangerous-Workflow","score":0,"reason":"dangerous workflow patterns detected","details":["Warn: untrusted code checkout '${{ github.event_name != 'pull_request_target' \u0026\u0026 github.ref || github.event.pull_request.head.sha }}': .github/workflows/pytest.yaml:93","Warn: untrusted code checkout '${{ github.event_name != 'pull_request_target' \u0026\u0026 github.ref || github.event.pull_request.head.sha }}': .github/workflows/pytest.yaml:169","Warn: untrusted code checkout '${{ github.event_name != 'pull_request_target' \u0026\u0026 github.ref || github.event.pull_request.head.sha }}': .github/workflows/pytest.yaml:242"],"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":10,"reason":"all changesets reviewed","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/conda.yaml:1","Info: topLevel 'contents' permission set to 'read': .github/workflows/nightly.yaml:29","Warn: no topLevel permission defined: .github/workflows/publish.yaml:1","Warn: no topLevel permission defined: .github/workflows/pytest.yaml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/conda.yaml:32: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/conda.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/conda.yaml:43: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/conda.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/conda.yaml:64: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/conda.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/conda.yaml:72: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/conda.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/nightly.yaml:37: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/nightly.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/nightly.yaml:45: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/nightly.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/nightly.yaml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/nightly.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/nightly.yaml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/nightly.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/publish.yaml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/publish.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pytest.yaml:94: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/pytest.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pytest.yaml:103: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/pytest.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pytest.yaml:109: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/pytest.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pytest.yaml:115: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/pytest.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pytest.yaml:121: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/pytest.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pytest.yaml:129: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/pytest.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pytest.yaml:149: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/pytest.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pytest.yaml:170: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/pytest.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pytest.yaml:176: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/pytest.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pytest.yaml:184: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/pytest.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pytest.yaml:193: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/pytest.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pytest.yaml:199: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/pytest.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pytest.yaml:209: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/pytest.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pytest.yaml:232: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/pytest.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pytest.yaml:242: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/pytest.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pytest.yaml:245: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/pytest.yaml/main?enable=pin","Warn: containerImage not pinned by hash: Dockerfile:2","Info:   0 out of  11 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of  14 third-party GitHubAction dependencies pinned","Info:   0 out of   1 containerImage dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":1,"reason":"branch protection is not maximal on development and all release branches","details":["Warn: branch protection not enabled for branch 'install-model'","Info: 'allow deletion' disabled on branch 'main'","Info: 'force pushes' disabled on branch 'main'","Warn: 'branch protection settings apply to administrators' is disabled on branch 'main'","Warn: 'stale review dismissal' is disabled on branch 'main'","Warn: required approving review count is 1 on branch 'main'","Warn: codeowners review is not required on branch 'main'","Warn: 'last push approval' is disabled on branch 'main'","Info: 'up-to-date branches' is required to merge on branch 'main'","Info: status check found to merge onto on branch 'main'","Info: PRs are required in order to make changes on branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":10,"reason":"SAST tool is run on all commits","details":["Info: all commits (30) are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-19T17:08:05.913Z","repository_id":39422375,"created_at":"2025-08-19T17:08:05.913Z","updated_at":"2025-08-19T17:08:05.913Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281625333,"owners_count":26533369,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-29T02:00:06.901Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"tags":[]},"repo_metadata_updated_at":"2025-10-29T13:05:18.863Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":1,"rankings":{"downloads":null,"dependent_repos_count":24.102820064886448,"dependent_packages_count":51.53980534065386,"stargazers_count":34.499625655103564,"forks_count":15.622660344397305,"docker_downloads_count":null,"average":31.441227851260294},"purl":"pkg:conda/message-ix?repository_url=https://conda-forge.org","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/conda/message-ix","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/conda/message-ix","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/conda/message-ix/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-10-29T08:09:15.599Z","issues_count":353,"pull_requests_count":613,"avg_time_to_close_issue":23927640.85775862,"avg_time_to_close_pull_request":3065783.5208711433,"issues_closed_count":232,"pull_requests_closed_count":551,"pull_request_authors_count":33,"issue_authors_count":61,"avg_comments_per_issue":2.3371104815864023,"avg_comments_per_pull_request":3.040783034257749,"merged_pull_requests_count":435,"bot_issues_count":0,"bot_pull_requests_count":56,"past_year_issues_count":23,"past_year_pull_requests_count":115,"past_year_avg_time_to_close_issue":1818028.0,"past_year_avg_time_to_close_pull_request":809510.1590909091,"past_year_issues_closed_count":5,"past_year_pull_requests_closed_count":88,"past_year_pull_request_authors_count":8,"past_year_issue_authors_count":7,"past_year_avg_comments_per_issue":0.8260869565217391,"past_year_avg_comments_per_pull_request":2.3391304347826085,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":24,"past_year_merged_pull_requests_count":79,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/issues","maintainers":[{"login":"khaeru","count":217,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/khaeru"},{"login":"glatterf42","count":101,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/glatterf42"},{"login":"gidden","count":98,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/gidden"},{"login":"danielhuppmann","count":34,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/danielhuppmann"},{"login":"byersiiasa","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/byersiiasa"}],"active_maintainers":[{"login":"khaeru","count":46,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/khaeru"},{"login":"glatterf42","count":35,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/glatterf42"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/message-ix/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/message-ix/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/message-ix/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/message-ix/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/message-ix/codemeta","maintainers":[],"registry":{"name":"conda-forge.org","url":"https://conda-forge.org","ecosystem":"conda","default":false,"packages_count":20636,"maintainers_count":0,"namespaces_count":0,"keywords_count":13539,"github":"conda-forge","metadata":{"kind":"conda-forge","key":"CondaForge","api":"https://conda.anaconda.org"},"icon_url":"https://github.com/conda-forge.png","created_at":"2022-10-03T15:37:08.743Z","updated_at":"2025-10-30T15:32:42.079Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/namespaces"}},{"id":2799621,"name":"message-ix","ecosystem":"pypi","description":"The MESSAGEix integrated assessment model framework","homepage":null,"licenses":"apache-2.0","normalized_licenses":["Apache-2.0"],"repository_url":"https://github.com/iiasa/message_ix","keywords_array":[],"namespace":null,"versions_count":22,"first_release_published_at":"2019-06-25T13:04:44.000Z","latest_release_published_at":"2025-06-03T11:45:37.000Z","latest_release_number":"3.11.1","last_synced_at":"2025-10-29T20:06:47.175Z","created_at":"2022-04-10T11:35:02.214Z","updated_at":"2025-10-29T20:06:47.175Z","registry_url":"https://pypi.org/project/message-ix/","install_command":"pip install message-ix --index-url https://pypi.org/simple","documentation_url":"https://docs.messageix.org","metadata":{"funding":null,"documentation":"https://docs.messageix.org","classifiers":["Development Status :: 5 - Production/Stable","Intended Audience :: Developers","Intended Audience :: Science/Research","Natural Language :: English","Operating System :: OS Independent","Programming Language :: Python","Programming Language :: Python :: 3","Programming Language :: Python :: 3.10","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.12","Programming Language :: Python :: 3.13","Programming Language :: Python :: 3.9","Programming Language :: R","Topic :: Scientific/Engineering","Topic :: Scientific/Engineering :: Information Analysis"],"normalized_name":"message-ix","project_status":null},"repo_metadata":{"id":39422375,"uuid":"113015968","full_name":"iiasa/message_ix","owner":"iiasa","description":"The integrated assessment and energy systems model MESSAGEix","archived":false,"fork":false,"pushed_at":"2024-10-15T11:34:20.000Z","size":12210,"stargazers_count":121,"open_issues_count":135,"forks_count":153,"subscribers_count":15,"default_branch":"main","last_synced_at":"2024-10-29T21:01:47.827Z","etag":null,"topics":["energy-system","gams","integrated-assessment","integrated-assessment-model","open-source","strategic-planning"],"latest_commit_sha":null,"homepage":"https://docs.messageix.org","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iiasa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.md","dei":null}},"created_at":"2017-12-04T08:29:06.000Z","updated_at":"2024-10-27T17:12:13.000Z","dependencies_parsed_at":"2023-09-21T19:45:35.882Z","dependency_job_id":"17ba0d8b-59f7-4964-a864-68a87f41787d","html_url":"https://github.com/iiasa/message_ix","commit_stats":{"total_commits":1448,"total_committers":25,"mean_commits":57.92,"dds":"0.47859116022099446","last_synced_commit":"f09e8e20ca9f4bbb11d226872f16a4ab1ebd000c"},"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iiasa","download_url":"https://codeload.github.com/iiasa/message_ix/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222132604,"owners_count":16936614,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"iiasa","name":"IIASA","uuid":"15230149","kind":"organization","description":"International Institute for Applied Systems Analysis","email":"github-owners@iiasa.ac.at","website":"https://www.iiasa.ac.at","location":"Laxenburg, Austria","twitter":"IIASAVienna","company":null,"icon_url":"https://avatars.githubusercontent.com/u/15230149?v=4","repositories_count":128,"last_synced_at":"2024-04-16T01:17:07.573Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/iiasa","funding_links":[],"total_stars":510,"followers":116,"following":0,"created_at":"2022-11-11T19:41:36.337Z","updated_at":"2024-04-16T01:17:55.524Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iiasa","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iiasa/repositories"},"tags":[{"name":"v3.8.0","sha":"f2bd0888fa3aa642db8dd0d113f4765aa55bb54b","kind":"commit","published_at":"2024-01-12T09:25:00.000Z","download_url":"https://codeload.github.com/iiasa/message_ix/tar.gz/v3.8.0","html_url":"https://github.com/iiasa/message_ix/releases/tag/v3.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags/v3.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags/v3.8.0/manifests"},{"name":"v3.8.0rc1","sha":"45240a680b4bf13ff742275be0528bd4c8098a97","kind":"commit","published_at":"2024-01-12T09:03:22.000Z","download_url":"https://codeload.github.com/iiasa/message_ix/tar.gz/v3.8.0rc1","html_url":"https://github.com/iiasa/message_ix/releases/tag/v3.8.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags/v3.8.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags/v3.8.0rc1/manifests"},{"name":"v3.7.0","sha":"6bfc29e62376e84dfcdd309bf7a849f271df0d6e","kind":"commit","published_at":"2023-05-17T09:55:12.000Z","download_url":"https://codeload.github.com/iiasa/message_ix/tar.gz/v3.7.0","html_url":"https://github.com/iiasa/message_ix/releases/tag/v3.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags/v3.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags/v3.7.0/manifests"},{"name":"v3.7.0rc2","sha":"84d75ed2aa48ed2f39a1b915ed89e1d00ee36d17","kind":"commit","published_at":"2023-05-17T08:05:25.000Z","download_url":"https://codeload.github.com/iiasa/message_ix/tar.gz/v3.7.0rc2","html_url":"https://github.com/iiasa/message_ix/releases/tag/v3.7.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags/v3.7.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags/v3.7.0rc2/manifests"},{"name":"v3.7.0rc1","sha":"666d089e38cc8050a398aebdaf91cb466e1a14af","kind":"commit","published_at":"2023-05-16T12:29:38.000Z","download_url":"https://codeload.github.com/iiasa/message_ix/tar.gz/v3.7.0rc1","html_url":"https://github.com/iiasa/message_ix/releases/tag/v3.7.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags/v3.7.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags/v3.7.0rc1/manifests"},{"name":"v3.6.0","sha":"0c6f0759d86de002b65739e476c3e319840b5c20","kind":"commit","published_at":"2022-08-18T06:13:30.000Z","download_url":"https://codeload.github.com/iiasa/message_ix/tar.gz/v3.6.0","html_url":"https://github.com/iiasa/message_ix/releases/tag/v3.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags/v3.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags/v3.6.0/manifests"},{"name":"v3.6.0rc1","sha":"bef17844a7e91af1b4c45d926fe666dfe7f91f81","kind":"commit","published_at":"2022-08-17T21:04:41.000Z","download_url":"https://codeload.github.com/iiasa/message_ix/tar.gz/v3.6.0rc1","html_url":"https://github.com/iiasa/message_ix/releases/tag/v3.6.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags/v3.6.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags/v3.6.0rc1/manifests"},{"name":"v3.5.0","sha":"b572ccee45c293a88f1f2acf91a0811d50cf6593","kind":"commit","published_at":"2022-05-06T09:40:13.000Z","download_url":"https://codeload.github.com/iiasa/message_ix/tar.gz/v3.5.0","html_url":"https://github.com/iiasa/message_ix/releases/tag/v3.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags/v3.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags/v3.5.0/manifests"},{"name":"v3.5.0rc1","sha":"b5a8aa7ad0f46d6fa174836f03feba962ce87627","kind":"commit","published_at":"2022-05-06T09:10:07.000Z","download_url":"https://codeload.github.com/iiasa/message_ix/tar.gz/v3.5.0rc1","html_url":"https://github.com/iiasa/message_ix/releases/tag/v3.5.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags/v3.5.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags/v3.5.0rc1/manifests"},{"name":"v3.4.0","sha":"a2a30edf02749518d3ae441fccecd6342df8799f","kind":"commit","published_at":"2022-01-27T14:50:15.000Z","download_url":"https://codeload.github.com/iiasa/message_ix/tar.gz/v3.4.0","html_url":"https://github.com/iiasa/message_ix/releases/tag/v3.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags/v3.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags/v3.4.0/manifests"},{"name":"v3.4.0rc2","sha":"c7127ce9ad225964253caeec246843aa077f20f4","kind":"commit","published_at":"2022-01-27T12:57:43.000Z","download_url":"https://codeload.github.com/iiasa/message_ix/tar.gz/v3.4.0rc2","html_url":"https://github.com/iiasa/message_ix/releases/tag/v3.4.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags/v3.4.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags/v3.4.0rc2/manifests"},{"name":"v3.4.0rc1","sha":"c2672f1d0d00db4aaf296fbedb4c5ea62d2e2d0f","kind":"commit","published_at":"2022-01-27T07:01:00.000Z","download_url":"https://codeload.github.com/iiasa/message_ix/tar.gz/v3.4.0rc1","html_url":"https://github.com/iiasa/message_ix/releases/tag/v3.4.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags/v3.4.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags/v3.4.0rc1/manifests"},{"name":"v3.3.0","sha":"d52370b52185fc2e5e6fb0e024ce9cef0dde852a","kind":"commit","published_at":"2021-05-28T11:26:56.000Z","download_url":"https://codeload.github.com/iiasa/message_ix/tar.gz/v3.3.0","html_url":"https://github.com/iiasa/message_ix/releases/tag/v3.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags/v3.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags/v3.3.0/manifests"},{"name":"v3.3.0rc1","sha":"d52370b52185fc2e5e6fb0e024ce9cef0dde852a","kind":"commit","published_at":"2021-05-28T11:26:56.000Z","download_url":"https://codeload.github.com/iiasa/message_ix/tar.gz/v3.3.0rc1","html_url":"https://github.com/iiasa/message_ix/releases/tag/v3.3.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags/v3.3.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags/v3.3.0rc1/manifests"},{"name":"v3.3.0a0","sha":"946635ebe4aafc1d2b58128116bcd2d293c1f56b","kind":"commit","published_at":"2021-04-18T22:48:39.000Z","download_url":"https://codeload.github.com/iiasa/message_ix/tar.gz/v3.3.0a0","html_url":"https://github.com/iiasa/message_ix/releases/tag/v3.3.0a0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags/v3.3.0a0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags/v3.3.0a0/manifests"},{"name":"v3.2.0","sha":"11057176e422791b07f4d92c4e0ced92025b2385","kind":"commit","published_at":"2021-01-24T18:23:03.000Z","download_url":"https://codeload.github.com/iiasa/message_ix/tar.gz/v3.2.0","html_url":"https://github.com/iiasa/message_ix/releases/tag/v3.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags/v3.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags/v3.2.0/manifests"},{"name":"v3.1.0","sha":"ee0287ac19f24cb3298a23837f46256b023a81fd","kind":"commit","published_at":"2020-08-28T11:01:39.000Z","download_url":"https://codeload.github.com/iiasa/message_ix/tar.gz/v3.1.0","html_url":"https://github.com/iiasa/message_ix/releases/tag/v3.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags/v3.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags/v3.1.0/manifests"},{"name":"v3.0.1","sha":"6010085ab92da1c69e8044b9390a90af8458b45f","kind":"commit","published_at":"2020-06-07T15:04:23.000Z","download_url":"https://codeload.github.com/iiasa/message_ix/tar.gz/v3.0.1","html_url":"https://github.com/iiasa/message_ix/releases/tag/v3.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags/v3.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags/v3.0.1/manifests"},{"name":"v3.0.0","sha":"6c75f042efe5ffd25acaf144eb56e4e1d13370c4","kind":"commit","published_at":"2020-06-07T14:33:35.000Z","download_url":"https://codeload.github.com/iiasa/message_ix/tar.gz/v3.0.0","html_url":"https://github.com/iiasa/message_ix/releases/tag/v3.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags/v3.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags/v3.0.0/manifests"},{"name":"v2.0.0","sha":"3d899bdcddb062bd8c8f44d1cbdb5d9495e0b6bc","kind":"commit","published_at":"2020-01-14T13:15:51.000Z","download_url":"https://codeload.github.com/iiasa/message_ix/tar.gz/v2.0.0","html_url":"https://github.com/iiasa/message_ix/releases/tag/v2.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags/v2.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags/v2.0.0/manifests"},{"name":"v1.2.0","sha":"a8a522fef6dc73bd1c7df21da01cff205d12bcc9","kind":"commit","published_at":"2019-06-25T13:03:01.000Z","download_url":"https://codeload.github.com/iiasa/message_ix/tar.gz/v1.2.0","html_url":"https://github.com/iiasa/message_ix/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"26cc08f31e2741d2fd60f3493264e654987cc6b1","kind":"commit","published_at":"2018-11-21T11:29:23.000Z","download_url":"https://codeload.github.com/iiasa/message_ix/tar.gz/v1.1.0","html_url":"https://github.com/iiasa/message_ix/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"5bfbdf3ac6b761a364fdfc4d53308f49f82e70c6","kind":"commit","published_at":"2018-06-05T15:09:41.000Z","download_url":"https://codeload.github.com/iiasa/message_ix/tar.gz/v1.0.0","html_url":"https://github.com/iiasa/message_ix/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags/v1.0.0/manifests"},{"name":"v1.0.0-prerelease","sha":"c852da76ff14841b2654ca69abf8bad854ae2b64","kind":"commit","published_at":"2018-05-19T07:13:15.000Z","download_url":"https://codeload.github.com/iiasa/message_ix/tar.gz/v1.0.0-prerelease","html_url":"https://github.com/iiasa/message_ix/releases/tag/v1.0.0-prerelease","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags/v1.0.0-prerelease","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags/v1.0.0-prerelease/manifests"}]},"repo_metadata_updated_at":"2024-10-29T23:42:00.328Z","dependent_packages_count":1,"downloads":2470,"downloads_period":"last-month","dependent_repos_count":1,"rankings":{"downloads":14.40902534317893,"dependent_repos_count":21.63438025370625,"dependent_packages_count":4.7464847929084515,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":13.596630129931212},"purl":"pkg:pypi/message-ix","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/message-ix","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/pypi/message-ix","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/message-ix/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2024-10-29T20:03:21.033Z","issues_count":337,"pull_requests_count":458,"avg_time_to_close_issue":15100080.960526315,"avg_time_to_close_pull_request":2859404.5854800935,"issues_closed_count":228,"pull_requests_closed_count":427,"pull_request_authors_count":30,"issue_authors_count":59,"avg_comments_per_issue":2.5341246290801185,"avg_comments_per_pull_request":3.2336244541484715,"merged_pull_requests_count":328,"bot_issues_count":0,"bot_pull_requests_count":22,"past_year_issues_count":45,"past_year_pull_requests_count":67,"past_year_avg_time_to_close_issue":3531714.576923077,"past_year_avg_time_to_close_pull_request":579912.5185185185,"past_year_issues_closed_count":26,"past_year_pull_requests_closed_count":54,"past_year_pull_request_authors_count":8,"past_year_issue_authors_count":12,"past_year_avg_comments_per_issue":2.466666666666667,"past_year_avg_comments_per_pull_request":2.5074626865671643,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":19,"past_year_merged_pull_requests_count":49,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/issues","maintainers":[{"login":"khaeru","count":167,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/khaeru"},{"login":"gidden","count":94,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/gidden"},{"login":"glatterf42","count":54,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/glatterf42"},{"login":"danielhuppmann","count":34,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/danielhuppmann"},{"login":"byersiiasa","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/byersiiasa"}],"active_maintainers":[{"login":"glatterf42","count":47,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/glatterf42"},{"login":"khaeru","count":13,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/khaeru"},{"login":"gidden","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/gidden"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/message-ix/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/message-ix/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/message-ix/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/message-ix/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/message-ix/codemeta","maintainers":[{"uuid":"Matthew.Gidden","login":"Matthew.Gidden","name":null,"email":null,"url":null,"packages_count":6,"html_url":"https://pypi.org/user/Matthew.Gidden/","role":null,"created_at":"2023-02-07T07:43:58.940Z","updated_at":"2023-02-07T07:43:58.940Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/Matthew.Gidden/packages"},{"uuid":"khaeru","login":"khaeru","name":null,"email":null,"url":null,"packages_count":11,"html_url":"https://pypi.org/user/khaeru/","role":null,"created_at":"2023-02-07T07:43:58.742Z","updated_at":"2023-02-07T07:43:58.742Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/khaeru/packages"},{"uuid":"glatterf42","login":"glatterf42","name":null,"email":null,"url":null,"packages_count":6,"html_url":"https://pypi.org/user/glatterf42/","role":null,"created_at":"2023-04-04T10:23:23.042Z","updated_at":"2023-04-04T10:23:23.042Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/glatterf42/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":745764,"maintainers_count":316548,"namespaces_count":0,"keywords_count":245871,"github":"pypi","metadata":{"funded_packages_count":52290},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2025-10-29T05:45:24.783Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/namespaces"}},{"id":11733140,"name":"github.com/iiasa/message_ix","ecosystem":"go","description":null,"homepage":null,"licenses":"apache-2.0","normalized_licenses":["Apache-2.0"],"repository_url":"https://github.com/iiasa/message_ix","keywords_array":[],"namespace":null,"versions_count":19,"first_release_published_at":"2018-05-19T07:13:15.000Z","latest_release_published_at":"2025-06-03T11:44:29.000Z","latest_release_number":"v3.11.1+incompatible","last_synced_at":"2025-10-29T20:06:47.857Z","created_at":"2025-06-05T11:14:37.196Z","updated_at":"2025-10-29T20:06:47.857Z","registry_url":"https://pkg.go.dev/github.com/iiasa/message_ix","install_command":"go get github.com/iiasa/message_ix","documentation_url":"https://pkg.go.dev/github.com/iiasa/message_ix#section-documentation","metadata":{},"repo_metadata":{"id":39422375,"uuid":"113015968","full_name":"iiasa/message_ix","owner":"iiasa","description":"The integrated assessment and energy systems model MESSAGEix","archived":false,"fork":false,"pushed_at":"2025-10-27T09:45:13.000Z","size":14596,"stargazers_count":138,"open_issues_count":134,"forks_count":166,"subscribers_count":14,"default_branch":"main","last_synced_at":"2025-10-29T08:14:11.084Z","etag":null,"topics":["energy-system","gams","integrated-assessment","integrated-assessment-model","open-source","strategic-planning"],"latest_commit_sha":null,"homepage":"https://docs.messageix.org","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iiasa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":".github/SECURITY.md","support":"SUPPORT.md","governance":"GOVERNANCE.md","roadmap":null,"authors":"AUTHORS.md","dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2017-12-04T08:29:06.000Z","updated_at":"2025-10-27T09:45:15.000Z","dependencies_parsed_at":"2023-09-21T19:45:35.882Z","dependency_job_id":"17ba0d8b-59f7-4964-a864-68a87f41787d","html_url":"https://github.com/iiasa/message_ix","commit_stats":{"total_commits":1531,"total_committers":25,"mean_commits":61.24,"dds":0.4990202482037883,"last_synced_commit":"9d9f5bde160d66ce227b44197e0c6faab888df2d"},"previous_names":[],"tags_count":33,"template":false,"template_full_name":null,"purl":"pkg:github/iiasa/message_ix","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iiasa","download_url":"https://codeload.github.com/iiasa/message_ix/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/sbom","scorecard":{"id":483230,"data":{"date":"2025-08-11","repo":{"name":"github.com/iiasa/message_ix","commit":"00bec749fa445e5801b05e35c51b6c44467d9715"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.4,"checks":[{"name":"Maintained","score":10,"reason":"30 commit(s) and 6 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: .github/SECURITY.md:1","Info: Found linked content: .github/SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: .github/SECURITY.md:1","Info: Found text in security policy: .github/SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Dangerous-Workflow","score":0,"reason":"dangerous workflow patterns detected","details":["Warn: untrusted code checkout '${{ github.event_name != 'pull_request_target' \u0026\u0026 github.ref || github.event.pull_request.head.sha }}': .github/workflows/pytest.yaml:93","Warn: untrusted code checkout '${{ github.event_name != 'pull_request_target' \u0026\u0026 github.ref || github.event.pull_request.head.sha }}': .github/workflows/pytest.yaml:169","Warn: untrusted code checkout '${{ github.event_name != 'pull_request_target' \u0026\u0026 github.ref || github.event.pull_request.head.sha }}': .github/workflows/pytest.yaml:242"],"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":10,"reason":"all changesets reviewed","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/conda.yaml:1","Info: topLevel 'contents' permission set to 'read': .github/workflows/nightly.yaml:29","Warn: no topLevel permission defined: .github/workflows/publish.yaml:1","Warn: no topLevel permission defined: .github/workflows/pytest.yaml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/conda.yaml:32: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/conda.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/conda.yaml:43: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/conda.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/conda.yaml:64: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/conda.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/conda.yaml:72: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/conda.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/nightly.yaml:37: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/nightly.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/nightly.yaml:45: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/nightly.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/nightly.yaml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/nightly.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/nightly.yaml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/nightly.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/publish.yaml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/publish.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pytest.yaml:94: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/pytest.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pytest.yaml:103: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/pytest.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pytest.yaml:109: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/pytest.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pytest.yaml:115: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/pytest.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pytest.yaml:121: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/pytest.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pytest.yaml:129: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/pytest.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pytest.yaml:149: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/pytest.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pytest.yaml:170: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/pytest.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pytest.yaml:176: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/pytest.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pytest.yaml:184: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/pytest.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pytest.yaml:193: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/pytest.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pytest.yaml:199: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/pytest.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pytest.yaml:209: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/pytest.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pytest.yaml:232: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/pytest.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pytest.yaml:242: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/pytest.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pytest.yaml:245: update your workflow using https://app.stepsecurity.io/secureworkflow/iiasa/message_ix/pytest.yaml/main?enable=pin","Warn: containerImage not pinned by hash: Dockerfile:2","Info:   0 out of  11 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of  14 third-party GitHubAction dependencies pinned","Info:   0 out of   1 containerImage dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":1,"reason":"branch protection is not maximal on development and all release branches","details":["Warn: branch protection not enabled for branch 'install-model'","Info: 'allow deletion' disabled on branch 'main'","Info: 'force pushes' disabled on branch 'main'","Warn: 'branch protection settings apply to administrators' is disabled on branch 'main'","Warn: 'stale review dismissal' is disabled on branch 'main'","Warn: required approving review count is 1 on branch 'main'","Warn: codeowners review is not required on branch 'main'","Warn: 'last push approval' is disabled on branch 'main'","Info: 'up-to-date branches' is required to merge on branch 'main'","Info: status check found to merge onto on branch 'main'","Info: PRs are required in order to make changes on branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":10,"reason":"SAST tool is run on all commits","details":["Info: all commits (30) are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-19T17:08:05.913Z","repository_id":39422375,"created_at":"2025-08-19T17:08:05.913Z","updated_at":"2025-08-19T17:08:05.913Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281625333,"owners_count":26533369,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-29T02:00:06.901Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"iiasa","name":"IIASA","uuid":"15230149","kind":"organization","description":"International Institute for Applied Systems Analysis","email":"github-owners@iiasa.ac.at","website":"https://www.iiasa.ac.at","location":"Laxenburg, Austria","twitter":"IIASAVienna","company":null,"icon_url":"https://avatars.githubusercontent.com/u/15230149?v=4","repositories_count":128,"last_synced_at":"2024-04-16T01:17:07.573Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/iiasa","funding_links":[],"total_stars":510,"followers":116,"following":0,"created_at":"2022-11-11T19:41:36.337Z","updated_at":"2024-04-16T01:17:55.524Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iiasa","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iiasa/repositories"},"tags":[]},"repo_metadata_updated_at":"2025-10-29T13:05:18.861Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":5.757538697138725,"dependent_packages_count":5.395053785167736,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":5.57629624115323},"purl":"pkg:golang/github.com/iiasa/message_ix","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/go/github.com/iiasa/message_ix","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/go/github.com/iiasa/message_ix","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/go/github.com/iiasa/message_ix/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-10-29T08:09:15.599Z","issues_count":353,"pull_requests_count":613,"avg_time_to_close_issue":23927640.85775862,"avg_time_to_close_pull_request":3065783.5208711433,"issues_closed_count":232,"pull_requests_closed_count":551,"pull_request_authors_count":33,"issue_authors_count":61,"avg_comments_per_issue":2.3371104815864023,"avg_comments_per_pull_request":3.040783034257749,"merged_pull_requests_count":435,"bot_issues_count":0,"bot_pull_requests_count":56,"past_year_issues_count":23,"past_year_pull_requests_count":115,"past_year_avg_time_to_close_issue":1818028.0,"past_year_avg_time_to_close_pull_request":809510.1590909091,"past_year_issues_closed_count":5,"past_year_pull_requests_closed_count":88,"past_year_pull_request_authors_count":8,"past_year_issue_authors_count":7,"past_year_avg_comments_per_issue":0.8260869565217391,"past_year_avg_comments_per_pull_request":2.3391304347826085,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":24,"past_year_merged_pull_requests_count":79,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/issues","maintainers":[{"login":"khaeru","count":217,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/khaeru"},{"login":"glatterf42","count":101,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/glatterf42"},{"login":"gidden","count":98,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/gidden"},{"login":"danielhuppmann","count":34,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/danielhuppmann"},{"login":"byersiiasa","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/byersiiasa"}],"active_maintainers":[{"login":"khaeru","count":46,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/khaeru"},{"login":"glatterf42","count":35,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/glatterf42"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fiiasa%2Fmessage_ix/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fiiasa%2Fmessage_ix/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fiiasa%2Fmessage_ix/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fiiasa%2Fmessage_ix/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fiiasa%2Fmessage_ix/codemeta","maintainers":[],"registry":{"name":"proxy.golang.org","url":"https://proxy.golang.org","ecosystem":"go","default":true,"packages_count":1982391,"maintainers_count":0,"namespaces_count":748632,"keywords_count":111330,"github":"golang","metadata":{"funded_packages_count":52718},"icon_url":"https://github.com/golang.png","created_at":"2022-04-04T15:19:22.939Z","updated_at":"2025-10-30T05:50:02.839Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/namespaces"}}],"commits":{"id":32535,"full_name":"iiasa/message_ix","default_branch":"main","total_commits":1797,"total_committers":30,"total_bot_commits":34,"total_bot_committers":1,"mean_commits":59.9,"dds":0.4869226488592098,"past_year_total_commits":267,"past_year_total_committers":13,"past_year_total_bot_commits":12,"past_year_total_bot_committers":1,"past_year_mean_commits":20.53846153846154,"past_year_dds":0.41947565543071164,"last_synced_at":"2025-10-29T04:57:28.404Z","last_synced_commit":"f97e386d55e22d21d4e25a20698e7ebd40d097b9","created_at":"2023-03-07T16:49:25.958Z","updated_at":"2025-10-29T04:56:30.931Z","committers":[{"name":"Paul Natsuo Kishimoto","email":"mail@paul.kishimoto.name","login":"khaeru","count":922},{"name":"Fridolin Glatter","email":"glatter@iiasa.ac.at","login":"glatterf42","count":220},{"name":"Laura Wienpahl","email":"57132039+LauWien","login":"LauWien","count":130},{"name":"Ben","email":"behnam.zakeri@live.com","login":"behnam-zakeri","count":121},{"name":"Francesco Lovat","email":"franlovat@gmail.com","login":"francescolovat","count":102},{"name":"FRICKO Oliver","email":"fricko@iiasa.ac.at","login":"OFR-IIASA","count":72},{"name":"Matthew Gidden","email":"matthew.gidden@gmail.com","login":"gidden","count":48},{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":34},{"name":"Marek Makowski","email":"marek@iiasa.ac.at","login":"marek-iiasa","count":28},{"name":"GamzeUnlu95","email":"gamze199556@gmail.com","login":"GamzeUnlu95","count":23},{"name":"Unknown","email":"krey@iiasa.ac.at","login":"volker-krey","count":23},{"name":"Daniel Huppmann","email":"dh@dergelbesalon.at","login":"danielhuppmann","count":23},{"name":"adrivinca","email":"adrivinca@yahoo.it","login":"adrivinca","count":12},{"name":"MiguelPobleteCazenave","email":"poblete@iiasa.ac.at","login":"MiguelPobleteCazenave","count":6},{"name":"Jihoon","email":"grcosmos@gmail.com","login":"Jihoon","count":6},{"name":"behnam2015","email":"30926636+behnam2015","login":"behnam2015","count":4},{"name":"Jarmo Kikstra","email":"46967503+jkikstra","login":"jkikstra","count":4},{"name":"Measrainsey Meng","email":"measrainsey@pm.me","login":"measrainsey","count":3},{"name":"Clara","email":"clara.orthofer@tum.de","login":"ClaraLuisa","count":2},{"name":"Florian Maczek","email":"maczek@iiasa.ac.at","login":"macflo8","count":2},{"name":"Thomas Zipperle","email":"tzipperle","login":"tzipperle","count":2},{"name":"tyler-lc","email":"lucasamassima@gmail.com","login":"Tyler-lc","count":2},{"name":"JU Yiyi","email":"juyiyi@iiasa.ac.at","login":"yiyi1991","count":1},{"name":"Maik Budzinski","email":"56820857+mabudz","login":"mabudz","count":1},{"name":"Nikolay Kushin","email":"zikolach@gmail.com","login":"zikolach","count":1},{"name":"Peter Kolp","email":"peterkolp","login":"peterkolp","count":1},{"name":"amastrucci","email":"mastrucc@iiasa.ac.at","login":"amastrucci","count":1},{"name":"daymontas1","email":"53146798+daymontas1","login":"daymontas1","count":1},{"name":"fonfon","email":"blubb@fonfon.at","login":"fonfon","count":1},{"name":"lumbric","email":"lumbric@gmail.com","login":"lumbric","count":1}],"past_year_committers":[{"name":"Paul Natsuo Kishimoto","email":"mail@paul.kishimoto.name","login":"khaeru","count":155},{"name":"Fridolin Glatter","email":"glatter@iiasa.ac.at","login":"glatterf42","count":61},{"name":"GamzeUnlu95","email":"gamze199556@gmail.com","login":"GamzeUnlu95","count":14},{"name":"Unknown","email":"krey@iiasa.ac.at","login":"volker-krey","count":13},{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":12},{"name":"Jihoon","email":"min@iiasa.ac.at","login":"Jihoon","count":3},{"name":"tyler-lc","email":"lucasamassima@gmail.com","login":"Tyler-lc","count":2},{"name":"Florian Maczek","email":"maczek@iiasa.ac.at","login":"macflo8","count":2},{"name":"daymontas1","email":"53146798+daymontas1","login":"daymontas1","count":1},{"name":"adrivinca","email":"adrivinca@yahoo.it","login":"adrivinca","count":1},{"name":"Maik Budzinski","email":"56820857+mabudz","login":"mabudz","count":1},{"name":"JU Yiyi","email":"juyiyi@iiasa.ac.at","login":"yiyi1991","count":1},{"name":"FRICKO Oliver","email":"fricko@iiasa.ac.at","login":"OFR-IIASA","count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-10-29T00:00:18.766Z","repositories_count":6089222,"commits_count":922496108,"contributors_count":35988113,"owners_count":1109497,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"iiasa/message_ix","html_url":"https://github.com/iiasa/message_ix","last_synced_at":"2025-10-29T08:09:15.599Z","status":"active","issues_count":353,"pull_requests_count":613,"avg_time_to_close_issue":23927640.85775862,"avg_time_to_close_pull_request":3065783.5208711433,"issues_closed_count":232,"pull_requests_closed_count":551,"pull_request_authors_count":33,"issue_authors_count":61,"avg_comments_per_issue":2.3371104815864023,"avg_comments_per_pull_request":3.040783034257749,"merged_pull_requests_count":435,"bot_issues_count":0,"bot_pull_requests_count":56,"past_year_issues_count":23,"past_year_pull_requests_count":115,"past_year_avg_time_to_close_issue":1818028.0,"past_year_avg_time_to_close_pull_request":809510.1590909091,"past_year_issues_closed_count":5,"past_year_pull_requests_closed_count":88,"past_year_pull_request_authors_count":8,"past_year_issue_authors_count":7,"past_year_avg_comments_per_issue":0.8260869565217391,"past_year_avg_comments_per_pull_request":2.3391304347826085,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":24,"past_year_merged_pull_requests_count":79,"created_at":"2023-05-09T10:37:30.968Z","updated_at":"2025-10-29T08:09:15.599Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/iiasa%2Fmessage_ix/issues","issue_labels_count":{"docs":66,"enh":63,"bug":46,"ci":31,"macro":16,"gams":15,"discuss":15,"question":15,"good first issue":14,"help wanted":14,"awaiting info":13,"timeslice":13,"reporting":9,"duplicate":5,"invalid":3,"R":2,"dependencies":2,"tutorials":2},"pull_request_labels_count":{"ci":121,"docs":110,"enh":93,"dependencies":61,"bug":48,"reporting":25,"python":19,"timeslice":11,"macro":11,"safe to test":10,"gams":8,"tutorials":7,"IXMP4Backend":5,"discuss":3,"p:Spigot":2,"R":1,"awaiting info":1},"issue_author_associations_count":{"CONTRIBUTOR":144,"MEMBER":113,"NONE":96},"pull_request_author_associations_count":{"MEMBER":340,"CONTRIBUTOR":244,"NONE":29},"issue_authors":{"khaeru":59,"OFR-IIASA":47,"LauWien":25,"gidden":23,"glatterf42":21,"behnam-zakeri":19,"ClaraLuisa":13,"danielhuppmann":12,"volker-krey":12,"PelinaP":8,"meng25meng":8,"zsalimian":8,"DIUANA":7,"Jihoon":7,"aaronliuqy":6,"francescolovat":6,"fkanyako":5,"Wegatriespython":4,"marek-iiasa":4,"Tyler-lc":3,"jkikstra":3,"macflo8":3,"tzipperle":2,"fwitte":2,"MESSAGEix-SK-Woo":2,"Chocooto":2,"github-wbx":2,"sajid209":2,"adrivinca":2,"SongminYu":2,"byersiiasa":2,"Robinson950619":2,"Anurag94-cool":2,"ypwong22":1,"AnnaSpedo":1,"alexanderkell":1,"bassamjaved":1,"MiguelPobleteCazenave":1,"alexkoberle":1,"rp9823":1,"kor-GEMS":1,"filofossati":1,"criscfer":1,"vruijven":1,"JulianHunt4":1,"guofei2016":1,"brendandanaher":1,"mohammadamint":1,"sinahp1372":1,"maximikos":1,"Pfyuan77":1,"manoharpotli":1,"awais307":1,"sharijide":1,"ayeletdavidovitch":1,"Ruslana22":1,"BinghaoHe":1,"DrUkachi":1,"shabdaly":1,"shreeyashn20":1,"MarekMakowski":1},"pull_request_authors":{"khaeru":158,"glatterf42":97,"gidden":75,"dependabot[bot]":56,"OFR-IIASA":47,"behnam-zakeri":30,"LauWien":30,"danielhuppmann":22,"ywpratama":14,"volker-krey":13,"ClaraLuisa":12,"francescolovat":11,"macflo8":7,"adrivinca":5,"GamzeUnlu95":5,"Jihoon":4,"jkikstra":4,"zikolach":3,"MiguelPobleteCazenave":3,"mabudz":2,"daymontas1":2,"JamesFrierson1":2,"tzipperle":1,"peterkolp":1,"Mahmoud-Emad":1,"amastrucci":1,"Wegatriespython":1,"byersiiasa":1,"bintangby":1,"TrellixVulnTeam":1,"fonfon":1,"lumbric":1,"fwitte":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-10-29T00:00:18.463Z","repositories_count":11242444,"issues_count":34943166,"pull_requests_count":113347232,"authors_count":11042040,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{"gams":7,"bug":5,"enh":3,"help wanted":3,"docs":2,"ci":2,"reporting":2,"macro":1,"good first issue":1,"dependencies":1,"discuss":1},"past_year_pull_request_labels_count":{"ci":38,"dependencies":24,"enh":16,"docs":16,"bug":13,"python":10,"safe to test":8,"gams":8,"IXMP4Backend":5,"tutorials":3,"macro":2,"reporting":2},"past_year_issue_author_associations_count":{"MEMBER":10,"NONE":9,"CONTRIBUTOR":4},"past_year_pull_request_author_associations_count":{"MEMBER":71,"CONTRIBUTOR":29,"NONE":15},"past_year_issue_authors":{"khaeru":9,"Wegatriespython":4,"OFR-IIASA":3,"Tyler-lc":3,"macflo8":2,"criscfer":1,"glatterf42":1},"past_year_pull_request_authors":{"khaeru":37,"glatterf42":34,"dependabot[bot]":24,"macflo8":7,"ywpratama":7,"OFR-IIASA":4,"Wegatriespython":1,"Mahmoud-Emad":1},"maintainers":[{"login":"khaeru","count":217,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/khaeru"},{"login":"glatterf42","count":101,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/glatterf42"},{"login":"gidden","count":98,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/gidden"},{"login":"danielhuppmann","count":34,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/danielhuppmann"},{"login":"byersiiasa","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/byersiiasa"}],"active_maintainers":[{"login":"khaeru","count":46,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/khaeru"},{"login":"glatterf42","count":35,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/glatterf42"}]},"events":{"total":{"CreateEvent":58,"ReleaseEvent":2,"IssuesEvent":38,"WatchEvent":19,"DeleteEvent":41,"IssueCommentEvent":233,"PushEvent":214,"PullRequestReviewCommentEvent":28,"PullRequestReviewEvent":55,"PullRequestEvent":101,"ForkEvent":15},"last_year":{"CreateEvent":58,"ReleaseEvent":2,"IssuesEvent":37,"WatchEvent":18,"DeleteEvent":41,"IssueCommentEvent":230,"PushEvent":214,"PullRequestReviewCommentEvent":28,"PullRequestReviewEvent":55,"PullRequestEvent":101,"ForkEvent":15}},"keywords":["energy-system","gams","integrated-assessment","integrated-assessment-model","open-source","strategic-planning"],"dependencies":[{"ecosystem":"pypi","filepath":"ci/rtd-requirements.txt","sha":null,"kind":"manifest","created_at":"2022-09-02T08:15:34.773Z","updated_at":"2022-09-02T08:15:34.773Z","repository_link":"https://github.com/iiasa/message_ix/blob/main/ci/rtd-requirements.txt","dependencies":[{"id":3588998655,"package_name":"ixmp","ecosystem":"pypi","requirements":"main","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/conda.yaml","sha":null,"kind":"manifest","created_at":"2023-02-17T05:01:18.586Z","updated_at":"2023-02-17T05:01:18.586Z","repository_link":"https://github.com/iiasa/message_ix/blob/main/.github/workflows/conda.yaml","dependencies":[{"id":7733744330,"package_name":"actions/cache","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":7733744333,"package_name":"iiasa/actions/setup-conda","ecosystem":"actions","requirements":"main","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/nightly.yaml","sha":null,"kind":"manifest","created_at":"2023-02-17T05:01:18.622Z","updated_at":"2023-02-17T05:01:18.622Z","repository_link":"https://github.com/iiasa/message_ix/blob/main/.github/workflows/nightly.yaml","dependencies":[{"id":7733744595,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":7733744596,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":7733744597,"package_name":"actions/cache","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":7733744598,"package_name":"iiasa/actions/setup-gams","ecosystem":"actions","requirements":"main","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/pytest.yaml","sha":null,"kind":"manifest","created_at":"2023-02-17T05:01:18.725Z","updated_at":"2023-02-17T05:01:18.725Z","repository_link":"https://github.com/iiasa/message_ix/blob/main/.github/workflows/pytest.yaml","dependencies":[{"id":7733744762,"package_name":"styfle/cancel-workflow-action","ecosystem":"actions","requirements":"0.11.0","direct":true,"kind":"composite","optional":false},{"id":7733744763,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":7733744764,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":7733744765,"package_name":"ts-graphviz/setup-graphviz","ecosystem":"actions","requirements":"v1.2.0","direct":true,"kind":"composite","optional":false},{"id":7733744769,"package_name":"r-lib/actions/setup-r","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7733744770,"package_name":"actions/cache","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":7733744771,"package_name":"iiasa/actions/setup-gams","ecosystem":"actions","requirements":"main","direct":true,"kind":"composite","optional":false},{"id":7733744772,"package_name":"codecov/codecov-action","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"docker","filepath":"Dockerfile","sha":null,"kind":"manifest","created_at":"2023-02-17T05:01:18.770Z","updated_at":"2023-02-17T05:01:18.770Z","repository_link":"https://github.com/iiasa/message_ix/blob/main/Dockerfile","dependencies":[{"id":7733744842,"package_name":"${base_image}","ecosystem":"docker","requirements":"latest","direct":true,"kind":"build","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/lint.yaml","sha":null,"kind":"manifest","created_at":"2023-09-21T19:45:32.962Z","updated_at":"2023-09-21T19:45:32.962Z","repository_link":"https://github.com/iiasa/message_ix/blob/main/.github/workflows/lint.yaml","dependencies":[]},{"ecosystem":"actions","filepath":".github/workflows/publish.yaml","sha":null,"kind":"manifest","created_at":"2023-09-21T19:45:33.196Z","updated_at":"2023-09-21T19:45:33.196Z","repository_link":"https://github.com/iiasa/message_ix/blob/main/.github/workflows/publish.yaml","dependencies":[]},{"ecosystem":"pypi","filepath":"doc/requirements.in","sha":null,"kind":"manifest","created_at":"2023-09-21T19:45:34.280Z","updated_at":"2023-09-21T19:45:34.280Z","repository_link":"https://github.com/iiasa/message_ix/blob/main/doc/requirements.in","dependencies":[{"id":13856864338,"package_name":"gitpython","ecosystem":"pypi","requirements":"==3.1.34","direct":true,"kind":"runtime","optional":false},{"id":13856864339,"package_name":"numpydoc","ecosystem":"pypi","requirements":"==1.5.0","direct":true,"kind":"runtime","optional":false},{"id":13856864340,"package_name":"sphinx","ecosystem":"pypi","requirements":"==6.2.1","direct":true,"kind":"runtime","optional":false},{"id":13856864341,"package_name":"sphinx-rtd-theme","ecosystem":"pypi","requirements":"==1.2.2","direct":true,"kind":"runtime","optional":false},{"id":13856864342,"package_name":"sphinxcontrib-bibtex","ecosystem":"pypi","requirements":"==2.5.0","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"doc/requirements.txt","sha":null,"kind":"lockfile","created_at":"2023-09-21T19:45:34.760Z","updated_at":"2023-09-21T19:45:34.760Z","repository_link":"https://github.com/iiasa/message_ix/blob/main/doc/requirements.txt","dependencies":[{"id":13856864442,"package_name":"alabaster","ecosystem":"pypi","requirements":"==0.7.13","direct":false,"kind":"runtime","optional":false},{"id":13856864443,"package_name":"babel","ecosystem":"pypi","requirements":"==2.12.1","direct":false,"kind":"runtime","optional":false},{"id":13856864444,"package_name":"certifi","ecosystem":"pypi","requirements":"==2023.7.22","direct":false,"kind":"runtime","optional":false},{"id":13856864445,"package_name":"charset-normalizer","ecosystem":"pypi","requirements":"==3.2.0","direct":false,"kind":"runtime","optional":false},{"id":13856864446,"package_name":"docutils","ecosystem":"pypi","requirements":"==0.18.1","direct":false,"kind":"runtime","optional":false},{"id":13856864447,"package_name":"gitdb","ecosystem":"pypi","requirements":"==4.0.10","direct":false,"kind":"runtime","optional":false},{"id":13856864448,"package_name":"gitpython","ecosystem":"pypi","requirements":"==3.1.34","direct":false,"kind":"runtime","optional":false},{"id":13856864449,"package_name":"idna","ecosystem":"pypi","requirements":"==3.4","direct":false,"kind":"runtime","optional":false},{"id":13856864450,"package_name":"imagesize","ecosystem":"pypi","requirements":"==1.4.1","direct":false,"kind":"runtime","optional":false},{"id":13856864451,"package_name":"jinja2","ecosystem":"pypi","requirements":"==3.1.2","direct":false,"kind":"runtime","optional":false},{"id":13856864452,"package_name":"latexcodec","ecosystem":"pypi","requirements":"==2.0.1","direct":false,"kind":"runtime","optional":false},{"id":13856864453,"package_name":"markupsafe","ecosystem":"pypi","requirements":"==2.1.3","direct":false,"kind":"runtime","optional":false},{"id":13856864454,"package_name":"numpydoc","ecosystem":"pypi","requirements":"==1.5.0","direct":false,"kind":"runtime","optional":false},{"id":13856864455,"package_name":"packaging","ecosystem":"pypi","requirements":"==23.1","direct":false,"kind":"runtime","optional":false},{"id":13856864456,"package_name":"pybtex","ecosystem":"pypi","requirements":"==0.24.0","direct":false,"kind":"runtime","optional":false},{"id":13856864457,"package_name":"pybtex-docutils","ecosystem":"pypi","requirements":"==1.0.2","direct":false,"kind":"runtime","optional":false},{"id":13856864458,"package_name":"pygments","ecosystem":"pypi","requirements":"==2.16.1","direct":false,"kind":"runtime","optional":false},{"id":13856864459,"package_name":"pyyaml","ecosystem":"pypi","requirements":"==6.0.1","direct":false,"kind":"runtime","optional":false},{"id":13856864460,"package_name":"requests","ecosystem":"pypi","requirements":"==2.31.0","direct":false,"kind":"runtime","optional":false},{"id":13856864461,"package_name":"six","ecosystem":"pypi","requirements":"==1.16.0","direct":false,"kind":"runtime","optional":false},{"id":13856864462,"package_name":"smmap","ecosystem":"pypi","requirements":"==5.0.0","direct":false,"kind":"runtime","optional":false},{"id":13856864463,"package_name":"snowballstemmer","ecosystem":"pypi","requirements":"==2.2.0","direct":false,"kind":"runtime","optional":false},{"id":13856864464,"package_name":"sphinx","ecosystem":"pypi","requirements":"==6.2.1","direct":false,"kind":"runtime","optional":false},{"id":13856864465,"package_name":"sphinx-rtd-theme","ecosystem":"pypi","requirements":"==1.2.2","direct":false,"kind":"runtime","optional":false},{"id":13856864466,"package_name":"sphinxcontrib-applehelp","ecosystem":"pypi","requirements":"==1.0.4","direct":false,"kind":"runtime","optional":false},{"id":13856864467,"package_name":"sphinxcontrib-bibtex","ecosystem":"pypi","requirements":"==2.5.0","direct":false,"kind":"runtime","optional":false},{"id":13856864468,"package_name":"sphinxcontrib-devhelp","ecosystem":"pypi","requirements":"==1.0.2","direct":false,"kind":"runtime","optional":false},{"id":13856864470,"package_name":"sphinxcontrib-htmlhelp","ecosystem":"pypi","requirements":"==2.0.1","direct":false,"kind":"runtime","optional":false},{"id":13856864471,"package_name":"sphinxcontrib-jquery","ecosystem":"pypi","requirements":"==4.1","direct":false,"kind":"runtime","optional":false},{"id":13856864473,"package_name":"sphinxcontrib-jsmath","ecosystem":"pypi","requirements":"==1.0.1","direct":false,"kind":"runtime","optional":false},{"id":13856864475,"package_name":"sphinxcontrib-qthelp","ecosystem":"pypi","requirements":"==1.0.3","direct":false,"kind":"runtime","optional":false},{"id":13856864477,"package_name":"sphinxcontrib-serializinghtml","ecosystem":"pypi","requirements":"==1.1.5","direct":false,"kind":"runtime","optional":false},{"id":13856864479,"package_name":"urllib3","ecosystem":"pypi","requirements":"==2.0.4","direct":false,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"pyproject.toml","sha":null,"kind":"manifest","created_at":"2023-09-21T19:45:35.130Z","updated_at":"2023-09-21T19:45:35.130Z","repository_link":"https://github.com/iiasa/message_ix/blob/main/pyproject.toml","dependencies":[{"id":13856864609,"package_name":"click","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":13856864610,"package_name":"ixmp","ecosystem":"pypi","requirements":"\u003e= 3.7.0","direct":true,"kind":"runtime","optional":false},{"id":13856864613,"package_name":"genno","ecosystem":"pypi","requirements":"[pyam] \u003e= 1.18.1","direct":true,"kind":"runtime","optional":false},{"id":13856864614,"package_name":"numpy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":13856864615,"package_name":"pandas","ecosystem":"pypi","requirements":"\u003e= 1.2","direct":true,"kind":"runtime","optional":false},{"id":13856864616,"package_name":"PyYAML","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":13856864617,"package_name":"scipy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]}],"score":16.82139908176264,"created_at":"2023-09-11T11:54:36.320Z","updated_at":"2026-04-17T07:02:53.070Z","avatar_url":"https://github.com/iiasa.png","language":"Jupyter Notebook","category":"Climate Change","sub_category":"Integrated Assessment and Climate Policy","monthly_downloads":2470,"total_dependent_repos":2,"total_dependent_packages":1,"readme":"# The MESSAGEix framework\n\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.4005684.svg)](https://doi.org/10.5281/zenodo.4005684)\n[![PyPI version](https://img.shields.io/pypi/v/message_ix.svg)](https://pypi.python.org/pypi/message_ix/)\n[![Anaconda version](https://img.shields.io/conda/vn/conda-forge/message-ix)](https://anaconda.org/conda-forge/message-ix)\n[![Documentation build](https://readthedocs.com/projects/iiasa-energy-program-message-ix/badge/?version=stable)](https://docs.messageix.org/en/stable/)\n[![Build status](https://github.com/iiasa/message_ix/actions/workflows/pytest.yaml/badge.svg)](https://github.com/iiasa/message_ix/actions/workflows/pytest.yaml)\n[![Test coverage](https://codecov.io/gh/iiasa/message_ix/branch/main/graph/badge.svg)](https://codecov.io/gh/iiasa/message_ix)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](CODE_OF_CONDUCT.md)\n\n\nMESSAGEix is a versatile, dynamic, model framework for energy-engineering-economy-environment (E4) systems research.\n\n**MESSAGE** (without “…ix”) is a specific formulation of a generic linear programming (LP) optimization model for strategic energy planning and integrated assessment of E4 systems, developed by the IIASA Energy, Climate, and Environment (ECE) Program since the 1980s.\nTo incorporate feedback between prices and demand levels for energy and commodities, the LP model can optionally be linked to the economic general equilibrium (GE) **MACRO** model.\n\nThe `message_ix` Python package—also fully usable from R—includes:\n\n- Implementations of MESSAGE, MACRO, and their linkage, in GAMS,\n- Application programming interfaces (APIs) and tools for model building and scientific programming,\n- Extensive documentation and a complete test suite.\n\nThe framework is built on IIASA's [*ix* modeling platform (`ixmp`)](https://github.com/iiasa/ixmp), which provides data warehouse features for numerical scenario analysis.\n\n## Documentation\n\nComplete documentation of the framework is available at **https://docs.messageix.org**.\nThis includes:\n\n- **Installation** and recommended pre-requisite learning.\n  See [‘Getting started’](https://docs.messageix.org/en/stable/#getting-started), or the file [`INSTALL.rst`](INSTALL.rst).\n- **Tutorials** that introduce and demonstrate core features of the model framework using simple, single-country models, for both independent and classroom learning.\n  See [‘Tutorials’](https://docs.messageix.org/en/stable/tutorials.html) or the file  [`tutorial/README.rst`](tutorial/README.rst).\n- The [**Python and R APIs**](https://docs.messageix.org/en/stable/api.html).\n- The complete [**mathematical formulation**](https://docs.messageix.org/#mathematical-specification) of MESSAGE and MACRO, created automatically from inline comments in the GAMS source code.\n- How to **cite MESSAGEix when using it in published scientific work.**\n  See [‘User guidelines and notice’](https://docs.messageix.org/en/stable/notice.html) or the file [`NOTICE.rst`](NOTICE.rst).\n\nOther forms of documentation:\n\n- The online documentation is built automatically from the contents of the\n[`message_ix` GitHub repository](https://github.com/iiasa/message_ix).\n- Documentation for the ‘latest’ or ‘stable’ release is shown by default.\n- Use the chooser to access the [‘latest’ version](https://docs.messageix.org/en/latest/), corresponding to the ``main`` branch and including the latest development code; or to access docs for a specific release, e.g. `v3.2.0`.\n- For offline use, the documentation can be built from the source code.\n  See the file [`doc/README.rst`](doc/README.rst)\n\n## Commitment to our Community\n\n- We aim to create a community that is welcoming to everyone.\n  Please respect our [Code of Conduct](CODE_OF_CONDUCT.md) at all times when interacting with `message_ix` and the community.\n- We warmly welcome all contributions to our community. Please take a look at our [guidelines for contributing to development](https://docs.messageix.org/en/latest/contributing.html).\n- If you are looking to understand how the `message_ix` team operates and how we decide what to do with your contributions, please read our [governance guidelines](GOVERNANCE.md).\n- We highly value code security.\n  To learn more about our security practice and advice, please visit our [security policy](.github/SECURITY.md).\n- We strive to entertain a welcoming and inclusive community.\n  If you struggle to use `message_ix`, please check our [guidelines for getting support](SUPPORT.md).\n- We also:\n  - Host an annual [MESSAGEix Community Meeting](https://iiasa.ac.at/search?search_api_fulltext=MESSAGEix+Community+Meeting).\n  - Publish, at least once per year, a community newsletter.\n    You are cordially invited to subscribe by filling [this form](https://iiasa.ac.at/signup) and ticking the box for “MESSAGEix Community”.\n\n\n## License\n\nCopyright © 2018–2025 IIASA Energy, Climate, and Environment (ECE) Program\n\nThe MESSAGEix framework is licensed under the Apache License, Version 2.0 (the \"License\"); you may not use the files in this repository except in compliance with the License. You may obtain a copy of the License in [`LICENSE`](LICENSE) or at \u003chttp://www.apache.org/licenses/LICENSE-2.0\u003e.\n\nIn addition and per good scientific practice, you **must** cite the appropriate publications when you use MESSAGEix in scientific work.\nAgain, see [‘User guidelines and notice’](https://docs.messageix.org/en/stable/notice.html) or the file [`NOTICE.rst`](NOTICE.rst).\n","funding_links":[],"readme_doi_urls":["https://doi.org/10.5281/zenodo.4005684"],"works":{"https://doi.org/10.5281/zenodo.4005684":null},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["data-warehouse","modeling-tool","energy-systems","iamc-format","integrated-assessment-scenarios","macro-energy","scenario-data","timeseries-format","energy-system-modelling","optimisation"],"project_url":"https://ost.ecosyste.ms/api/v1/projects/912","html_url":"https://ost.ecosyste.ms/projects/912"}