Публічний реєстр
Звіт про здоров'я програмного забезпеченнясхема 0.26.0 · метрики 1.13.0 · 2026-07-22 15:27 UTC

JuliaManifolds / Manifolds.jl

Manifolds.jl provides a library of manifolds aiming for an easy-to-use and fast implementation.

JuliaMIT★ 429 зірок⑂ 71 форкз черв. 2019 р.Переглянути на GitHub ↗

JuliaManifolds/Manifolds.jl має індекс здоров’я 74 зі 100, що відповідає смузі «Добрий». Найвищий показник — Vitality (91/100), найнижчий — AI Readiness (29/100). Останнє оновлення — сьогодні. Більшість нещодавньої роботи виконують 2 учасники.

74
загалом / 100
Добрий

Індекс здоров'я програмного забезпечення

Метрики згруповано у зважені категорії на шкалі 1–100. Загальна оцінка починається як їхнє середнє; коли публічні дані активують Політику юрисдикцій високого ризику, рейтинг коригується й отримує верхню межу 49 («Під ризиком»). Готовність до ШІ не входить до індексу.

74
Відмінний85-100Зразковий; відповідає практично всім перевіреним критеріям
Добрий70-84Здоровий; незначні прогалини
Помірний50-69Прийнятний, але з помітними прогалинами; рекомендовано перевірку
У зоні ризику30-49Суттєві слабкі місця; впровадження потребує обережності
Критичний1-29Серйозні проблеми (покинутий, єдиний мейнтейнер, без базової гігієни)
ЖиттєздатністьСпільнота тавпровадженняСталість таврядуванняІнженернаякістьБезпекаГотовність доШІ

Профіль оцінок

Кожна вісь — окрема категорія. Форма важить більше, ніж середнє: здоровий об'єкт заповнює всю фігуру, тоді як профіль із піками та провалами означає, що сила в одному вимірі маскує ризик в іншому.

Власність

Julia ManifoldsОрганізація
62 підписники23 публічні репозиторіїз бер. 2020 р.

За цим репозиторієм стоїть організація — спільна, підзвітна опіка, здатна пережити будь-якого окремого мейнтейнера.

Метрики за категоріями

Життєздатність

Чи живий проєкт — чи пишеться код і чи виходять релізи?

91Відмінний · 22% загального індексу
Як обчислюється оцінка
36/36Свіжість push — останній push 0 дн. тому
22.8/36Ритм комітів — 33/52 тижнів із комітами
16.2/18Обсяг комітів — 62 комітів за останній рік
10/10OpenSSF Scorecard: Maintained — 23 commit(s) and 7 issue activity found in the last 90 days -- score normalized to 10
Використані вхідні дані
commits_last_year62
human_commit_share0,8
days_since_last_push0
active_weeks_last_year33
Як обчислюється оцінка
27/27Випускає релізи — опубліковано 100 релізів
36/36Свіжість релізів — останній реліз 36 дн. тому
27/27Ритм релізів — реліз кожні ~9,6 дн.
0/10OpenSSF Scorecard: Signed-Releases — немає даних
Використані вхідні дані
releases_count100
latest_release_tagv0.11.28
releases_from_tagsні
days_since_latest_release36
mean_days_between_releases9,6
Виключено з оцінювання (немає даних або не застосовно): OpenSSF Scorecard: Signed-Releases. Залишкові ваги перенормовано.

Спільнота та впровадження

Чи має проєкт користувачів, завантаження, увагу та влаштовані умови для контриб’юторів?

66Помірний · 18% загального індексу
Як обчислюється оцінка
42.7/60Зірки — 429 зірок
15.4/25Форки — 71 форків
5.3/15Спостерігачі — 10 спостерігачів
Використані вхідні дані
forks71
stars429
watchers10
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Як обчислюється оцінка
22.5/22.5README
22.5/22.5Ліцензія — визнана ліцензія (MIT)
18/18Настанови CONTRIBUTING
0/13.5Кодекс поведінки
0/7.2Шаблон issue
0/6.3Шаблон PR
Використані вхідні дані
has_readmeтак
has_licenseтак
has_contributingтак
has_issue_templateні
has_code_of_conductні
has_pull_request_templateні

Сталість та врядування

Чи переживе проєкт своїх людей — бас-фактор, реактивність, хто за ним стоїть і як супроводжуються пакети?

69Помірний · 24% загального індексу
Як обчислюється оцінка
25.2/54Бас-фактор — на 2 контриб’ютор(ів) припадає половина всіх комітів
11.3/22.5Розподіл комітів — головний контриб’ютор — автор 50% комітів
13.5/13.5Широта контриб’юторів — 45 контриб’юторів
10/10OpenSSF Scorecard: Contributors — project has 14 contributing companies or organizations
Використані вхідні дані
bus_factor2
contributors_sampled45
top_contributor_share0,499
Як обчислюється оцінка
40.6/46.8Вирішення issue — закрито 87% issue
30.7/38.3Прийняття PR — злито 509/634 вирішених PR
12/15OpenSSF Scorecard: Code-Review — Found 16/18 approved changesets -- score normalized to 8
Використані вхідні дані
merged_prs509
open_issues33
closed_issues217
issue_closed_ratio0,868
closed_unmerged_prs125
Як обчислюється оцінка
30/30Підтримка власника — у власності організації
0/20Верифікований домен
12.9/25Охоплення власника — 62 підписників у JuliaManifolds
22.1/25Послужний список — 23 публічних репозиторіїв, вік облікового запису ~6 р.
Використані вхідні дані
followers62
owner_typeOrganization
is_verified
owner_loginJuliaManifolds
public_repos23
account_age_days2 318

Інженерна якість

Чи наявні базові інженерні практики та документація?

77Добрий · 20% загального індексу
Як обчислюється оцінка
24/24Процеси CI — 8 процес(ів) CI
24/24Наявні тести
0/16Конфігурація лінтера
0/9.6Pre-commit-хуки
0/6.4.editorconfig
20/20OpenSSF Scorecard: CI-Tests — 29 out of 29 merged PRs checked by a CI test -- score normalized to 10
Використані вхідні дані
has_ciтак
has_testsтак
has_editorconfigні
has_linter_configні
has_precommit_configні

Документація

90Відмінний
Як обчислюється оцінка
30/30README
25/25Каталог документації
15/15Сайт документації / домашня сторінка — https://juliamanifolds.github.io/Manifolds.jl
10/10Опис репозиторію
10/10Теми — 2 тем
0/10Wiki
Використані вхідні дані
topicsmanifolds, julia
has_wikiні
homepagehttps://juliamanifolds.github.io/Manifolds.jl
has_readmeтак
has_docs_dirтак
has_descriptionтак

Безпека

Чи міцні видимі практики безпеки й ланцюга постачання, без непослабленої пов’язаності з юрисдикціями високого ризику?

63Помірний · 16% загального індексу

Стан безпеки

63Помірний
Як обчислюється оцінка
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — немає даних
2.5/2.5CI-Tests — 29 out of 29 merged PRs checked by a CI test -- score normalized to 10
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
6/7.5Code-Review — Found 16/18 approved changesets -- score normalized to 8
2.5/2.5Contributors — project has 14 contributing companies or organizations
10/10Dangerous-Workflow — no dangerous workflow patterns detected
7.5/7.5Dependency-Update-Tool — update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5Ліцензія — license file detected
7.5/7.5Maintained — 23 commit(s) and 7 issue activity found in the last 90 days -- score normalized to 10
0/5Packaging — немає даних
0/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
0/5SAST — SAST tool is not run on all commits -- score normalized to 0
0/5Security-Policy — security policy file not detected
0/7.5Signed-Releases — немає даних
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
7.5/7.5Vulnerabilities — 0 existing vulnerabilities detected
Використані вхідні дані
sourceopenssf_scorecard
checks_evaluated15
scorecard_versionv5.5.0
checks_inconclusive3
scorecard_aggregate6,3
Виключено з оцінювання (немає даних або не застосовно): branch_protection, packaging, signed_releases. Залишкові ваги перенормовано.

Готовність до ШІ

Наскільки репозиторій оснащений для розробки та супроводу за участі ШІ-агентів? Незалежний, експериментальний бейдж — вага 0.0, тож він подається окремо і не впливає на загальний індекс здоров'я.

29Критичний · 0% загального індексу
Як обчислюється оцінка
0/45Інструкції для агентів — немає CLAUDE.md / AGENTS.md / правил редактора
0/15Машиночитана документація (llms.txt)
40/40Читабельна історія комітів — намір зазначено у 70 з 80 людських комітів (структурований заголовок або пояснювальний текст)
Використані вхідні дані
has_llms_txtні
legible_history_share0,875
agent_instruction_files
agent_instruction_max_bytes
Як обчислюється оцінка
0/18Розгортання однією командою
22/22Автоматизовані тести
0/11Конфігурація лінтера / форматера
0/11Статична перевірка типів
0/10Відтворюване середовище
2/10Підтверджена практика роботи з агентами — 1 з останніх 100 комітів створено агентом або з його зазначенням
8/8Автоматизоване супроводження — 17 з останніх 100 комітів — автоматичні оновлення залежностей
0/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
Використані вхідні дані
has_nixні
has_testsтак
lockfiles
has_dockerfileні
typed_languageні
bootstrap_files
has_devcontainerні
has_linter_configні
typecheck_configs
agent_commit_share0,01
toolchain_manifests
dependency_bot_commit_share0,17
Як обчислюється оцінка
0/45Типізований код — Julia без конфігурації перевірки типів
0/55Керовані розміри файлів — файлів вихідного коду не виявлено
Використані вхідні дані
primary_languageJulia
largest_source_bytes
source_files_sampled0
oversized_source_files0
Виключено з оцінювання (немає даних або не застосовно): Керовані розміри файлів. Залишкові ваги перенормовано.

Ключові факти

429зірок GitHub
45контриб'юторів
62комітів за останні 12 місяців
0днів від останнього пушу
100релізів
2бас-фактор
33відкритих issue
пакетних екосистем

Попередження щодо збору даних

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token

Докладніше

Історія зірок і форків 0 ★ / 71 ⇿
0Зірки
71Форки
100Релізи

Коли додано кожну зірку й форк — зібрано з GitHub і згруповано за днями. Кумулятивне зростання розміщено просто над денними додаваннями, з яких воно складається, тож їх видно одне проти одного: рівномірне органічне накопичення виглядає зовсім інакше, ніж різкий короткочасний сплеск. Там, де цю різницю можна виміряти, її подано як автентичність росту.

01325385063757132019-072022-122026-06
Мажорні 0Мінорні 3Патчі 97

Кожна точка охоплює 7 днів.

OpenSSF Scorecard 6.3 / 10
6.3сукупно

Незалежна, не прив'язана до інструментів оцінка безпеки від відкритого проєкту OpenSSF Scorecard. Кожна перевірка винагороджує практику безпеки, а не інструмент конкретного постачальника. Перевірки, які Scorecard не зміг визначити, позначено н/д і виключено з оцінки безпеки (вони ніколи не зараховуються як нуль).Scorecard v5.5.0 · 2026-07-22 15:27 UTC

10Binary-Artifactsno binaries found in the repo
н/дBranch-Protectioninternal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md
10CI-Tests29 out of 29 merged PRs checked by a CI test -- score normalized to 10
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
8Code-ReviewFound 16/18 approved changesets -- score normalized to 8
10Contributorsproject has 14 contributing companies or organizations
10Dangerous-Workflowno dangerous workflow patterns detected
10Dependency-Update-Toolupdate tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained23 commit(s) and 7 issue activity found in the last 90 days -- score normalized to 10
н/дPackagingpackaging workflow not detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
0SASTSAST tool is not run on all commits -- score normalized to 0
0Security-Policysecurity policy file not detected
н/дSigned-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
10Vulnerabilities0 existing vulnerabilities detected
Усі залежності 0

Повний розв'язаний набір залежностей із графа залежностей GitHub: 0 прямих і 0 непрямих (транзитивних) пакетів. Транзитивне замикання є повним, коли в репозиторії закомічено lockfile.

РеєстрПакетВерсіяЗв'язок
Сповіщення про залежності не оцінено

Звірка сповіщень не відбулася для цього звіту: No resolved dependencies to assess

Звіт у форматі JSON машиночитний
{
  "data": {
    "repo": {
      "topics": [
        "manifolds",
        "julia"
      ],
      "is_fork": false,
      "size_kb": 77840,
      "has_wiki": false,
      "homepage": "https://juliamanifolds.github.io/Manifolds.jl",
      "languages": {
        "Julia": 1721225
      },
      "pushed_at": "2026-07-21T20:49:22Z",
      "created_at": "2019-06-05T18:27:27Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-22T06:32:45Z",
      "description": "Manifolds.jl provides a library of manifolds aiming for an easy-to-use and fast implementation.",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "master",
      "license_spdx_raw": "MIT",
      "primary_language": "Julia",
      "significant_languages": [
        "Julia"
      ]
    },
    "owner": {
      "blog": null,
      "name": "Julia Manifolds",
      "type": "Organization",
      "login": "JuliaManifolds",
      "company": null,
      "location": null,
      "followers": 62,
      "avatar_url": "https://avatars.githubusercontent.com/u/62259457?v=4",
      "created_at": "2020-03-16T17:59:18Z",
      "is_verified": null,
      "public_repos": 23,
      "account_age_days": 2318
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v0.11.28",
          "kind": "patch",
          "published_at": "2026-06-15T19:00:52Z"
        },
        {
          "tag": "v0.11.27",
          "kind": "patch",
          "published_at": "2026-06-06T20:40:55Z"
        },
        {
          "tag": "v0.11.26",
          "kind": "patch",
          "published_at": "2026-05-24T13:03:08Z"
        },
        {
          "tag": "v0.11.25",
          "kind": "patch",
          "published_at": "2026-05-20T18:32:15Z"
        },
        {
          "tag": "v0.11.24",
          "kind": "patch",
          "published_at": "2026-05-20T07:18:35Z"
        },
        {
          "tag": "v0.11.23",
          "kind": "patch",
          "published_at": "2026-05-02T14:37:12Z"
        },
        {
          "tag": "v0.11.22",
          "kind": "patch",
          "published_at": "2026-04-24T14:56:46Z"
        },
        {
          "tag": "v0.11.20",
          "kind": "patch",
          "published_at": "2026-03-31T16:24:25Z"
        },
        {
          "tag": "v0.11.19",
          "kind": "patch",
          "published_at": "2026-03-22T18:03:44Z"
        },
        {
          "tag": "v0.11.18",
          "kind": "patch",
          "published_at": "2026-03-21T15:25:35Z"
        },
        {
          "tag": "v0.11.17",
          "kind": "patch",
          "published_at": "2026-03-13T16:20:54Z"
        },
        {
          "tag": "v0.11.16",
          "kind": "patch",
          "published_at": "2026-03-11T16:46:31Z"
        },
        {
          "tag": "v0.11.15",
          "kind": "patch",
          "published_at": "2026-03-04T14:46:26Z"
        },
        {
          "tag": "v0.11.14",
          "kind": "patch",
          "published_at": "2026-03-03T21:37:21Z"
        },
        {
          "tag": "v0.11.13",
          "kind": "patch",
          "published_at": "2026-02-24T12:04:46Z"
        },
        {
          "tag": "v0.11.12",
          "kind": "patch",
          "published_at": "2026-02-04T20:00:41Z"
        },
        {
          "tag": "v0.11.11",
          "kind": "patch",
          "published_at": "2026-01-24T20:31:45Z"
        },
        {
          "tag": "v0.11.10",
          "kind": "patch",
          "published_at": "2026-01-08T09:11:46Z"
        },
        {
          "tag": "v0.11.9",
          "kind": "patch",
          "published_at": "2025-12-15T17:59:04Z"
        },
        {
          "tag": "v0.11.8",
          "kind": "patch",
          "published_at": "2025-12-11T16:54:04Z"
        },
        {
          "tag": "v0.11.7",
          "kind": "patch",
          "published_at": "2025-11-27T17:59:40Z"
        },
        {
          "tag": "v0.11.6",
          "kind": "patch",
          "published_at": "2025-11-19T19:56:38Z"
        },
        {
          "tag": "v0.11.5",
          "kind": "patch",
          "published_at": "2025-11-13T18:50:10Z"
        },
        {
          "tag": "v0.11.4",
          "kind": "patch",
          "published_at": "2025-11-08T13:27:26Z"
        },
        {
          "tag": "v0.11.3",
          "kind": "patch",
          "published_at": "2025-11-05T09:32:41Z"
        },
        {
          "tag": "v0.11.2",
          "kind": "patch",
          "published_at": "2025-10-30T08:40:58Z"
        },
        {
          "tag": "v0.11.1",
          "kind": "patch",
          "published_at": "2025-10-24T20:22:39Z"
        },
        {
          "tag": "v0.11.0",
          "kind": "minor",
          "published_at": "2025-10-08T22:42:29Z"
        },
        {
          "tag": "v0.10.23",
          "kind": "patch",
          "published_at": "2025-07-19T10:22:14Z"
        },
        {
          "tag": "v0.10.22",
          "kind": "patch",
          "published_at": "2025-06-25T18:51:06Z"
        },
        {
          "tag": "v0.10.21",
          "kind": "patch",
          "published_at": "2025-06-25T07:36:50Z"
        },
        {
          "tag": "v0.10.20",
          "kind": "patch",
          "published_at": "2025-06-16T17:10:41Z"
        },
        {
          "tag": "v0.10.19",
          "kind": "patch",
          "published_at": "2025-06-14T18:00:49Z"
        },
        {
          "tag": "v0.10.18",
          "kind": "patch",
          "published_at": "2025-05-29T19:35:31Z"
        },
        {
          "tag": "v0.10.17",
          "kind": "patch",
          "published_at": "2025-04-23T13:34:28Z"
        },
        {
          "tag": "v0.10.16",
          "kind": "patch",
          "published_at": "2025-04-08T20:28:43Z"
        },
        {
          "tag": "v0.10.15",
          "kind": "patch",
          "published_at": "2025-03-28T09:32:51Z"
        },
        {
          "tag": "v0.10.14",
          "kind": "patch",
          "published_at": "2025-02-19T09:14:47Z"
        },
        {
          "tag": "v0.10.13",
          "kind": "patch",
          "published_at": "2025-02-10T10:43:54Z"
        },
        {
          "tag": "v0.10.12",
          "kind": "patch",
          "published_at": "2025-01-10T17:37:49Z"
        },
        {
          "tag": "v0.10.11",
          "kind": "patch",
          "published_at": "2025-01-02T11:53:36Z"
        },
        {
          "tag": "v0.10.10",
          "kind": "patch",
          "published_at": "2024-12-20T21:00:07Z"
        },
        {
          "tag": "v0.10.9",
          "kind": "patch",
          "published_at": "2024-12-16T16:57:26Z"
        },
        {
          "tag": "v0.10.8",
          "kind": "patch",
          "published_at": "2024-11-27T20:09:06Z"
        },
        {
          "tag": "v0.10.7",
          "kind": "patch",
          "published_at": "2024-11-16T10:32:31Z"
        },
        {
          "tag": "v0.10.6",
          "kind": "patch",
          "published_at": "2024-11-06T22:18:53Z"
        },
        {
          "tag": "v0.10.5",
          "kind": "patch",
          "published_at": "2024-10-24T12:53:49Z"
        },
        {
          "tag": "v0.10.4",
          "kind": "patch",
          "published_at": "2024-10-21T13:44:02Z"
        },
        {
          "tag": "v0.10.3",
          "kind": "patch",
          "published_at": "2024-10-04T21:57:17Z"
        },
        {
          "tag": "v0.10.2",
          "kind": "patch",
          "published_at": "2024-09-24T12:38:52Z"
        },
        {
          "tag": "v0.10.1",
          "kind": "patch",
          "published_at": "2024-08-30T15:44:00Z"
        },
        {
          "tag": "v0.10.0",
          "kind": "minor",
          "published_at": "2024-08-24T11:58:18Z"
        },
        {
          "tag": "v0.9.20",
          "kind": "patch",
          "published_at": "2024-06-18T16:06:19Z"
        },
        {
          "tag": "v0.9.19",
          "kind": "patch",
          "published_at": "2024-06-12T20:02:41Z"
        },
        {
          "tag": "v0.9.18",
          "kind": "patch",
          "published_at": "2024-05-07T11:49:41Z"
        },
        {
          "tag": "v0.9.17",
          "kind": "patch",
          "published_at": "2024-04-23T21:03:46Z"
        },
        {
          "tag": "v0.9.16",
          "kind": "patch",
          "published_at": "2024-04-01T19:35:54Z"
        },
        {
          "tag": "v0.9.15",
          "kind": "patch",
          "published_at": "2024-03-24T09:55:20Z"
        },
        {
          "tag": "v0.9.14",
          "kind": "patch",
          "published_at": "2024-01-31T16:40:56Z"
        },
        {
          "tag": "v0.9.13",
          "kind": "patch",
          "published_at": "2024-01-25T17:01:06Z"
        },
        {
          "tag": "v0.9.12",
          "kind": "patch",
          "published_at": "2024-01-22T09:16:18Z"
        },
        {
          "tag": "v0.9.11",
          "kind": "patch",
          "published_at": "2023-12-27T21:28:55Z"
        },
        {
          "tag": "v0.9.10",
          "kind": "patch",
          "published_at": "2023-12-27T14:04:13Z"
        },
        {
          "tag": "v0.9.9",
          "kind": "patch",
          "published_at": "2023-12-25T18:10:41Z"
        },
        {
          "tag": "v0.9.8",
          "kind": "patch",
          "published_at": "2023-11-17T17:00:10Z"
        },
        {
          "tag": "v0.9.7",
          "kind": "patch",
          "published_at": "2023-11-15T17:27:30Z"
        },
        {
          "tag": "v0.9.6",
          "kind": "patch",
          "published_at": "2023-11-10T08:08:17Z"
        },
        {
          "tag": "v0.9.5",
          "kind": "patch",
          "published_at": "2023-11-08T20:13:44Z"
        },
        {
          "tag": "v0.9.4",
          "kind": "patch",
          "published_at": "2023-11-07T16:30:55Z"
        },
        {
          "tag": "v0.9.3",
          "kind": "patch",
          "published_at": "2023-10-28T17:38:08Z"
        },
        {
          "tag": "v0.9.2",
          "kind": "patch",
          "published_at": "2023-10-27T11:19:47Z"
        },
        {
          "tag": "v0.9.1",
          "kind": "patch",
          "published_at": "2023-10-25T12:22:34Z"
        },
        {
          "tag": "v0.9.0",
          "kind": "minor",
          "published_at": "2023-10-23T19:40:40Z"
        },
        {
          "tag": "v0.8.81",
          "kind": "patch",
          "published_at": "2023-10-18T08:23:19Z"
        },
        {
          "tag": "v0.8.80",
          "kind": "patch",
          "published_at": "2023-10-08T17:24:22Z"
        },
        {
          "tag": "v0.8.79",
          "kind": "patch",
          "published_at": "2023-09-26T21:02:15Z"
        },
        {
          "tag": "v0.8.78",
          "kind": "patch",
          "published_at": "2023-09-24T12:56:55Z"
        },
        {
          "tag": "v0.8.77",
          "kind": "patch",
          "published_at": "2023-09-20T09:30:57Z"
        },
        {
          "tag": "v0.8.76",
          "kind": "patch",
          "published_at": "2023-09-07T17:33:21Z"
        },
        {
          "tag": "v0.8.75",
          "kind": "patch",
          "published_at": "2023-08-30T16:43:13Z"
        },
        {
          "tag": "v0.8.74",
          "kind": "patch",
          "published_at": "2023-07-12T11:55:20Z"
        },
        {
          "tag": "v0.8.73",
          "kind": "patch",
          "published_at": "2023-07-07T21:11:15Z"
        },
        {
          "tag": "v0.8.72",
          "kind": "patch",
          "published_at": "2023-06-26T14:55:31Z"
        },
        {
          "tag": "v0.8.71",
          "kind": "patch",
          "published_at": "2023-06-25T13:15:14Z"
        },
        {
          "tag": "v0.8.70",
          "kind": "patch",
          "published_at": "2023-06-14T10:08:54Z"
        },
        {
          "tag": "v0.8.69",
          "kind": "patch",
          "published_at": "2023-06-04T15:33:48Z"
        },
        {
          "tag": "v0.8.68",
          "kind": "patch",
          "published_at": "2023-05-30T19:25:21Z"
        },
        {
          "tag": "v0.8.67",
          "kind": "patch",
          "published_at": "2023-05-30T13:09:33Z"
        },
        {
          "tag": "v0.8.66",
          "kind": "patch",
          "published_at": "2023-05-29T15:18:13Z"
        },
        {
          "tag": "v0.8.65",
          "kind": "patch",
          "published_at": "2023-05-24T14:56:04Z"
        },
        {
          "tag": "v0.8.64",
          "kind": "patch",
          "published_at": "2023-05-23T13:21:02Z"
        },
        {
          "tag": "v0.8.63",
          "kind": "patch",
          "published_at": "2023-05-22T12:11:39Z"
        },
        {
          "tag": "v0.8.62",
          "kind": "patch",
          "published_at": "2023-05-21T18:30:33Z"
        },
        {
          "tag": "v0.8.61",
          "kind": "patch",
          "published_at": "2023-05-17T20:12:03Z"
        },
        {
          "tag": "v0.8.60",
          "kind": "patch",
          "published_at": "2023-05-11T11:32:43Z"
        },
        {
          "tag": "v0.8.59",
          "kind": "patch",
          "published_at": "2023-05-05T16:01:31Z"
        },
        {
          "tag": "v0.8.58",
          "kind": "patch",
          "published_at": "2023-04-28T14:25:34Z"
        },
        {
          "tag": "v0.8.57",
          "kind": "patch",
          "published_at": "2023-04-13T06:47:10Z"
        },
        {
          "tag": "v0.8.56",
          "kind": "patch",
          "published_at": "2023-04-04T08:59:37Z"
        },
        {
          "tag": "v0.8.55",
          "kind": "patch",
          "published_at": "2023-04-03T19:53:38Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "1672e29ac7f48d55dadc01af09eb335edc1d120d",
          "body": "Bumps [tarides/changelog-check-action](https://github.com/tarides/changelog-check-action) from 3 to 4.\n- [Release notes](https://github.com/tarides/changelog-check-action/releases)\n- [Commits](https://github.com/tarides/changelog-check-action/compare/v3...v4)\n\n---\nupdated-dependencies:\n- dependency-\n[…]\nirect:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump tarides/changelog-check-action from 3 to 4 (#918)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-17T06:06:55Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "4870dd786e8c666fe3301dcadda46b99c80e37ef",
          "body": "* Use direct SciML owner imports in extensions\n\n* Document SciML extension import changes\n\nCo-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>",
          "is_bot": false,
          "headline": "Use direct SciML owner imports in extensions (#916)",
          "author_name": "Christopher Rackauckas",
          "author_login": "ChrisRackauckas",
          "committed_at": "2026-07-08T18:53:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "28215109e40378710bf806e6516db8164a120988",
          "body": "Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.47.2 to 1.48.0.\n- [Release notes](https://github.com/crate-ci/typos/releases)\n- [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/crate-ci/typos/compare/v1.47.2...v1.48.0)\n\n---\nupdat\n[…]\nirect:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump crate-ci/typos from 1.47.2 to 1.48.0 (#914)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-03T06:31:03Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "3beaa149fcbfe8a5096f99370549a453d9c652a5",
          "body": "* Remove PythonPlot from docs\n\n* Remove the sphere plotting example due to its inconcistencies with how surfaces and wires are mapped in Plots.jl – refer to ManifoldMakie instead.\n\n---------\n\nCo-authored-by: Ronny Bergmann <git@ronnybergmann.net>",
          "is_bot": false,
          "headline": "Remove PythonPlot from docs (#913)",
          "author_name": "Mateusz Baran",
          "author_login": "mateuszbaran",
          "committed_at": "2026-06-30T10:06:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5aa726a45e99f4a2a0249d9171460aa51cfcd6fe",
          "body": "* Just test Recipes with GR and remove the Python test dependency.\n* Bump dependent action versions (superseeds #908 and #910)",
          "is_bot": false,
          "headline": "Remove PythonPlot from test dependencies, bump dependencies (#912)",
          "author_name": "Ronny Bergmann",
          "author_login": "kellertuer",
          "committed_at": "2026-06-29T08:35:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "87bb18eced9452a72ccbfdf183b8181c6883413c",
          "body": "…ic/change_representer to all general unitary matrices (#907)\n\n* Add orthonormal coordinates on UnitaryMatrices and extend change_metric/change_representer to all general unitary matrices\n\n* bump quarto version?",
          "is_bot": false,
          "headline": "Add orthonormal coordinates on UnitaryMatrices and extend change_metr…",
          "author_name": "Mateusz Baran",
          "author_login": "mateuszbaran",
          "committed_at": "2026-06-15T17:32:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ecc05c234610fa0c5325f3ae9abe921a086cad8c",
          "body": "Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 6 to 7.\n- [Release notes](https://github.com/codecov/codecov-action/releases)\n- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/codecov/codecov-action/compare/v\n[…]\nirect:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump codecov/codecov-action from 6 to 7 (#905)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-11T22:02:02Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6cf09a85143870f554dc22c86066ccf0fa9d883e",
          "body": "* Improve documentation, add get_vector/get_coordinates for an ONB on Grassmann.\n* Bump version and add a news entry.\n* add a test.\n\n---------\n\nCo-authored-by: Mateusz Baran <mateuszbaran89@gmail.com>",
          "is_bot": false,
          "headline": "An ONB for Tangent spaces on Grassmann in Stiefel Representation. (#904)",
          "author_name": "Ronny Bergmann",
          "author_login": "kellertuer",
          "committed_at": "2026-06-06T19:42:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cf5c92c5286f7e72b0f16800098cb81f481a653b",
          "body": "Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.46.2 to 1.47.2.\n- [Release notes](https://github.com/crate-ci/typos/releases)\n- [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/crate-ci/typos/compare/v1.46.2...v1.47.2)\n\n---\nupdat\n[…]\nirect:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump crate-ci/typos from 1.46.2 to 1.47.2 (#903)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-04T21:54:26Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5bb7aa22befc376cacfdd7d719d2201c4f2203fe",
          "body": "* Fix two small typos.\n* ignore patch versions of typos to havce a bit less updates, but still get more important ones.",
          "is_bot": false,
          "headline": "Fix two small typos. (#899)",
          "author_name": "Ronny Bergmann",
          "author_login": "kellertuer",
          "committed_at": "2026-05-27T16:32:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "89289d53850da3efafca69bd7de431348575a09a",
          "body": null,
          "is_bot": false,
          "headline": "bump version",
          "author_name": "Mateusz Baran",
          "author_login": "mateuszbaran",
          "committed_at": "2026-05-24T11:57:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1eec75f6d87c1efa8a10190f86cb38968c7e9686",
          "body": "* update the function vector_transport_to\n\n* Fix PR number in NEWS\n\n* update the function of vector_transport_to\n\n* fix the reviewed changes; add comments\n\n* formatting Runic\n\n* return back to lambda\n\n* formatting\n\n* formatting\n\n* formatting\n\n* last formatting\n\n* Update src/manifolds/Segre.jl\n\nCo-au\n[…]\nauthored-by: Mateusz Baran <mateuszbaran89@gmail.com>\n\n* Apply suggestion from @mateuszbaran\n\n* Apply suggestion from @mateuszbaran\n\n---------\n\nCo-authored-by: Mateusz Baran <mateuszbaran89@gmail.com>",
          "is_bot": false,
          "headline": "Update Segre projection transport documentation (#898)",
          "author_name": "Se Eun Choi",
          "author_login": "sChoiKr",
          "committed_at": "2026-05-24T09:07:14Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "de442380fa50b0a38202a5cc055e5a22a36d7e1f",
          "body": "Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.46.1 to 1.46.2.\n- [Release notes](https://github.com/crate-ci/typos/releases)\n- [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/crate-ci/typos/compare/v1.46.1...v1.46.2)\n\n---\nupdat\n[…]\nirect:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump crate-ci/typos from 1.46.1 to 1.46.2 (#896)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-22T07:53:06Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6a1451527336d8e9dc4ebacfc18578dd2f7f6b09",
          "body": "* Add some exports, allocating levi-civita, fix bug in christoffel symbol\n* Bump news and project\n* fix reference value\n* Add test for allocating levi-civita\n* 0.11.24 was tagged, so let's bump to 0.11.25\n---------\nCo-authored-by: hijk <hijk@hijks-MacBook-Pro.local>\nCo-authored-by: Mateusz Baran <mateuszbaran89@gmail.com>\nCo-authored-by: Ronny Bergmann <git@ronnybergmann.net>",
          "is_bot": false,
          "headline": "Allocating Levi-Civita, Christoffel symbol bugfix (#895)",
          "author_name": "hajg-ijk",
          "author_login": "hajg-ijk",
          "committed_at": "2026-05-20T14:33:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "caa14d0e29e05faeb34c95c8385c54f93d66cf6f",
          "body": "* Add projection transport for Segre\n\n* add vector transport to function\n\n* Apply suggestion from @kellertuer\n\nCo-authored-by: Ronny Bergmann <git@ronnybergmann.net>\n\n* add math formulation\n\n* Add changelog entry\n\n* Edit changelog entry, remove empty lines on docstr\n\n* Add tests for Segre projection\n[…]\ns from code review\n\nCo-authored-by: Mateusz Baran <mateuszbaran89@gmail.com>\n\n---------\n\nCo-authored-by: Ronny Bergmann <git@ronnybergmann.net>\nCo-authored-by: Mateusz Baran <mateuszbaran89@gmail.com>",
          "is_bot": false,
          "headline": "Add projection transport for Segre (#893)",
          "author_name": "Se Eun Choi",
          "author_login": "sChoiKr",
          "committed_at": "2026-05-19T16:23:33Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5f6c8be1cd26e91e37bf5bc29f945c384ab01daf",
          "body": "Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.46.0 to 1.46.1.\n- [Release notes](https://github.com/crate-ci/typos/releases)\n- [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/crate-ci/typos/compare/v1.46.0...v1.46.1)\n\n---\nupdat\n[…]\nirect:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump crate-ci/typos from 1.46.0 to 1.46.1 (#894)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-15T06:00:45Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "9c7a89aa740178fdbe7d5d3a9950160ce49303ae",
          "body": "…(#890)\n\n* Bump the all-julia-packages group across 1 directory with 14 updates\n\nUpdates the requirements on [Statistics](https://github.com/JuliaStats/Statistics.jl), [Tullio](https://github.com/mcabbott/Tullio.jl), [ForwardDiff](https://github.com/JuliaDiff/ForwardDiff.jl), [FiniteDifferences](htt\n[…]\n--------\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: Ronny Bergmann <git@ronnybergmann.net>",
          "is_bot": true,
          "headline": "Bump the all-julia-packages group across 1 directory with 14 updates …",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-05T09:36:30Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b89d4f8e24601a5a81081b80410e11930bacf46d",
          "body": "* Re-enable adaptive in embedded_torus BVP test now that BVP MIRK 1.17 is out\n\nSciML/BoundaryValueDiffEq.jl#484 (UndefRefError in MIRK adaptive mesh\nrefinement on nonlinear BVPs under the SciMLBase 3 / RAT 4 stack) is\nfixed in `BoundaryValueDiffEqMIRK` 1.17.0 (registered today, May 1).\nVerified loca\n[…]\n: Chris Rackauckas <accounts@chrisrackauckas.com>\n\n---------\n\nCo-authored-by: ChrisRackauckas-Claude <accounts@chrisrackauckas.com>\nCo-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Re-enable adaptive in embedded_torus BVP test (BVP MIRK 1.17) (#891)",
          "author_name": "Chris Rackauckas - Beep Boop Edition",
          "author_login": "ChrisRackauckas-Claude",
          "committed_at": "2026-05-02T13:02:03Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "ae605eb0c177c035052c166ce997e51c0a9f838f",
          "body": "* Fix ManifoldsBoundaryValueDiffEqExt resolver bug\n\nThe extension previously triggered on `BoundaryValueDiffEq`, the\nmeta-package that pulls in every BVP solver subpackage. When users in\nSciML/DifferentialEquations.jl#1136 added `OptimizationOptimJL`, an\nolder `OptimizationBase` was forced, which tr\n[…]\nthe linked comment can both come out once #484 lands.\n\nCo-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>\n\n---------\n\nCo-authored-by: ChrisRackauckas-Claude <accounts@chrisrackauckas.com>",
          "is_bot": false,
          "headline": "Fix ManifoldsBoundaryValueDiffEqExt resolver / precompile failure (#887)",
          "author_name": "Chris Rackauckas - Beep Boop Edition",
          "author_login": "ChrisRackauckas-Claude",
          "committed_at": "2026-05-01T13:48:35Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "16a6970f620ffcbeafb8a5870cb5b4abd6cd4c1b",
          "body": "Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.45.1 to 1.46.0.\n- [Release notes](https://github.com/crate-ci/typos/releases)\n- [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/crate-ci/typos/compare/v1.45.1...v1.46.0)\n\n---\nupdat\n[…]\nirect:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump crate-ci/typos from 1.45.1 to 1.46.0 (#888)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-01T06:13:53Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "22b90b712d81777c5b48137fa2cf3cfc67dfbaab",
          "body": "* Improve performance of embed for FixedRankMatrices\n* Add changes to NEWS.md\n* Bump version in Project.toml to 0.11.22\n* Fix reference to pr in NEWS.md\n\n---------\n\nCo-authored-by: Ronny Bergmann <git@ronnybergmann.net>",
          "is_bot": false,
          "headline": "Improve performance of embed for FixedRankMatrices (fixes #884) (#885)",
          "author_name": "Nikolas Klug",
          "author_login": "NKlug",
          "committed_at": "2026-04-24T13:11:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0821225451580304e8090bada331dff973286956",
          "body": "…ository. (#886)\n\n* Add the AI comment already written for Manopt.jl also here.\n* Add news entry,\n* Fix a typo.",
          "is_bot": false,
          "headline": "Add a paragraph to the contributing.md about using AI within this rep…",
          "author_name": "Ronny Bergmann",
          "author_login": "kellertuer",
          "committed_at": "2026-04-24T11:14:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "956a872ebc47906b2b4a8900301d9d06c5aa638f",
          "body": "Bumps [julia-actions/setup-julia](https://github.com/julia-actions/setup-julia) from 2 to 3.\n- [Release notes](https://github.com/julia-actions/setup-julia/releases)\n- [Commits](https://github.com/julia-actions/setup-julia/compare/v2...v3)\n\n---\nupdated-dependencies:\n- dependency-name: julia-actions/\n[…]\nirect:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump julia-actions/setup-julia from 2 to 3 (#883)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-04-24T07:44:18Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "3ba936a2c72827dfa478a72d9010ee6c8bda6b02",
          "body": "Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.45.0 to 1.45.1.\n- [Release notes](https://github.com/crate-ci/typos/releases)\n- [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/crate-ci/typos/compare/v1.45.0...v1.45.1)\n\n---\nupdat\n[…]\nirect:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump crate-ci/typos from 1.45.0 to 1.45.1 (#882)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-04-17T04:44:45Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0dd163cd365884142720dfa6213b7ea5cdb7da07",
          "body": "Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.44.0 to 1.45.0.\n- [Release notes](https://github.com/crate-ci/typos/releases)\n- [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/crate-ci/typos/compare/v1.44.0...v1.45.0)\n\n---\nupdat\n[…]\nirect:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump crate-ci/typos from 1.44.0 to 1.45.0 (#879)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-04-04T23:34:47Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1bda31e270fd27be353f36d862a5fabefbf86bc5",
          "body": "* Introduce Workspace stuff.\n* Add a dependency I missed.",
          "is_bot": false,
          "headline": "Introduce Workspace for the Project.toml (#878)",
          "author_name": "Ronny Bergmann",
          "author_login": "kellertuer",
          "committed_at": "2026-04-04T23:32:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ddea89ce0865195a7a1266ba1109880c2f0c6f04",
          "body": "… (#847)\n\n* move test to test-suite as a better fitting name, remove old circle test\n\n* add spellcheck here as well\n\n* Move determinant one matrices.\n\n* Typed the same letter at home like at work, here git tells me it is a different letter?!\n\n* Fix another symbol that is wrong on the other machine b\n[…]\nis should be enough, hopefully\n\n* MH...\n\n---------\n\nCo-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>\nCo-authored-by: Mateusz Baran <mateuszbaran89@gmail.com>",
          "is_bot": false,
          "headline": "🦺 Moving to the new Test suite (refactoring tests, Chapter MCCXXVIII)…",
          "author_name": "Ronny Bergmann",
          "author_login": "kellertuer",
          "committed_at": "2026-03-31T14:31:15Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "759dd54cd61a09bb8fbc04a551200bfee95bd5bb",
          "body": null,
          "is_bot": false,
          "headline": "Fix bug in get_vectors on Stiefel (#872)",
          "author_name": "Mateusz Baran",
          "author_login": "mateuszbaran",
          "committed_at": "2026-03-31T08:26:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "26e13cad3ebd351d9622f6314a96b21f8cd431ec",
          "body": "Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 5 to 6.\n- [Release notes](https://github.com/codecov/codecov-action/releases)\n- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/codecov/codecov-action/compare/v\n[…]\nirect:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump codecov/codecov-action from 5 to 6 (#873)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-03-30T23:54:47Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1e0e28d2eaad10ef433aab1bb4347a7011c2e3f6",
          "body": "…k. (#869)\n\n* Add human-readable citation and links, move BibLaTeX to a folded block.\n* Add news entry.\n* fix ambiguities\n* one more fix\n\n---------\n\nCo-authored-by: Mateusz Baran <mateuszbaran89@gmail.com>",
          "is_bot": false,
          "headline": "Add human-readable citation and links, move BibLaTeX to a folded bloc…",
          "author_name": "Ronny Bergmann",
          "author_login": "kellertuer",
          "committed_at": "2026-03-23T20:52:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c5b174411a0bcbcfcfabb0028e4bf62ae24b2b04",
          "body": "* Tucker manifold fixes\n\n* more tests",
          "is_bot": false,
          "headline": "Tucker manifold fixes (#867)",
          "author_name": "Mateusz Baran",
          "author_login": "mateuszbaran",
          "committed_at": "2026-03-22T16:00:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8ca32b9d3f811962fdf29a792c39c4cd86861e59",
          "body": "* Added rand for Tucker\n\n* simplify the code a bit",
          "is_bot": false,
          "headline": "Added rand for Tucker (#866)",
          "author_name": "Mateusz Baran",
          "author_login": "mateuszbaran",
          "committed_at": "2026-03-21T13:07:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0a35da2e6709aba42887cc1b1e5686d8784636d9",
          "body": null,
          "is_bot": false,
          "headline": "Fix polar retraction on UnitaryMatrices (#864)",
          "author_name": "Mateusz Baran",
          "author_login": "mateuszbaran",
          "committed_at": "2026-03-13T13:46:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c234cae6d495a1a21a45866184c65207484b550b",
          "body": null,
          "is_bot": false,
          "headline": "Fix embed! on Segre (#863)",
          "author_name": "Mateusz Baran",
          "author_login": "mateuszbaran",
          "committed_at": "2026-03-11T12:53:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "965a9fea50a0cc1584666d041b718424dccefe86",
          "body": "Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.42.0 to 1.44.0.\n- [Release notes](https://github.com/crate-ci/typos/releases)\n- [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/crate-ci/typos/compare/v1.42.0...v1.44.0)\n\n---\nupdat\n[…]\nirect:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump crate-ci/typos from 1.42.0 to 1.44.0 (#860)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-03-10T01:44:27Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "53ba0ff24239110a4eca4877b028738970ec3aaf",
          "body": "Bumps [julia-actions/cache](https://github.com/julia-actions/cache) from 2 to 3.\n- [Release notes](https://github.com/julia-actions/cache/releases)\n- [Commits](https://github.com/julia-actions/cache/compare/v2...v3)\n\n---\nupdated-dependencies:\n- dependency-name: julia-actions/cache\n  dependency-versi\n[…]\nirect:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump julia-actions/cache from 2 to 3 (#861)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-03-10T01:44:19Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e4907e08523e613722923d9d4ff4392431f155f7",
          "body": null,
          "is_bot": false,
          "headline": "Runic, News, and bump version. (#859)",
          "author_name": "Ronny Bergmann",
          "author_login": "kellertuer",
          "committed_at": "2026-03-04T13:27:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "84758c9b3e07e472261c42a0cbb205a5642ed08b",
          "body": "…existing compat) (#850)\n\nCo-authored-by: Ronny Bergmann <git@ronnybergmann.net>",
          "is_bot": true,
          "headline": "CompatHelper: bump compat for NonlinearSolve in [extras] to 4, (keep …",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-03-04T07:51:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "239d8b6ce4043d09253ef0787348fbef7a747303",
          "body": "* Step I: Code infrastructure and documentation\n* Literature and starts implementation\n* Fix a few typos.\n* remove styles since we do no longer run vale. Fix a few typos towards Typos.\n* Fix a few typos and use the chance to also set up typos here.\n* Move Stiefel to the new test scheme.\n* fix some U\n[…]\ncode.\n* Fix a few typos, enable more tests.\n* test_coverage++ and fix a bug in the test suite.\n* Fix Stiefel tests.\n* Bump version.\n\n---------\n\nCo-authored-by: Mateusz Baran <mateuszbaran89@gmail.com>",
          "is_bot": false,
          "headline": "Add the new polar light retraction (#858)",
          "author_name": "Ronny Bergmann",
          "author_login": "kellertuer",
          "committed_at": "2026-03-03T15:08:07Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6c0b98449da806149e96a83a006dee99f41d588e",
          "body": "…… (#857)\n\n* Improve GPU compatibility of UnitaryMatrices rand! and QR retraction methods\n\n* fix QR retraction\n\n* fix codecov upload maybe?",
          "is_bot": false,
          "headline": "Improve GPU compatibility of UnitaryMatrices rand! and QR retraction …",
          "author_name": "Mateusz Baran",
          "author_login": "mateuszbaran",
          "committed_at": "2026-02-24T08:51:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "da714af0847568a1e369d146eb500d198d5a84ce",
          "body": "* Port more metric functions to the new style\n\n* improve docs\n\n* Fix docs\n\n* Move to Tullio, improve docs a bit\n\n* fix test\n\n* deprecation warnings\n\n* improve coverage\n\n* fix docs\n\n* we shouldn't need IJulia for tutorials; also, add a missing space\n\n* one more project file to remove IJulia from\n\n* relax one test a bit",
          "is_bot": false,
          "headline": "Port more metric functions to the new style (#849)",
          "author_name": "Mateusz Baran",
          "author_login": "mateuszbaran",
          "committed_at": "2026-02-04T15:55:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "adcd5f14d483899d7b238e73487035b8ed42d00c",
          "body": "…#854)",
          "is_bot": false,
          "headline": "Make Hyperrectangle a component manifold with r-norm and r-distance (…",
          "author_name": "Mateusz Baran",
          "author_login": "mateuszbaran",
          "committed_at": "2026-01-24T19:26:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "542848828b3d0b383624dce4ed80a3cba3ada6aa",
          "body": "…fold (#853)",
          "is_bot": false,
          "headline": "Add change_representer and change_metric functions for Rotations mani…",
          "author_name": "Mateusz Baran",
          "author_login": "mateuszbaran",
          "committed_at": "2026-01-07T16:42:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b6c7a0ddeb8c5b764aa5d1c56e315343c94fda42",
          "body": "Bumps [actions/cache](https://github.com/actions/cache) from 4 to 5.\n- [Release notes](https://github.com/actions/cache/releases)\n- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)\n- [Commits](https://github.com/actions/cache/compare/v4...v5)\n\n---\nupdated-dependencies:\n- dependenc\n[…]\nirect:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump actions/cache from 4 to 5 (#852)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2025-12-16T06:03:19Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d5d00cf1dd5b12ca7c49272c69ad50231e0dcb36",
          "body": "* Fix project for tangent vectors on Hyperrectangle\n\n* fix\n\n* fix test and import DefaultMetric",
          "is_bot": false,
          "headline": "Fix project for tangent vectors on Hyperrectangle (#851)",
          "author_name": "Mateusz Baran",
          "author_login": "mateuszbaran",
          "committed_at": "2025-12-15T16:14:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fba9ba085a85e9edbe4ed59b29262bd33009e38d",
          "body": "* Move MetricManifold and ConnectionManifold to ManifoldsBase.jl\n\n* the 6 new ambiguities are caused by MetricManifold being moved to ManifoldsBase (they didn't count in that check before)\n\n* things moved to ManifoldsBase need to be extrefed\n\n* try extref maybe?\n\n* relax one test\n\n* try fixing some extrefs\n\n* try more fixes",
          "is_bot": false,
          "headline": "Move MetricManifold and ConnectionManifold to ManifoldsBase.jl (#848)",
          "author_name": "Mateusz Baran",
          "author_login": "mateuszbaran",
          "committed_at": "2025-12-11T12:52:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a83f55a2048e5e30dc0520b523b436057632371c",
          "body": "… package tutorials, (keep existing compat) (#846)\n\nCo-authored-by: CompatHelper Julia <compathelper_noreply@julialang.org>",
          "is_bot": true,
          "headline": "CompatHelper: add new compat entry for CairoMakie at version 0.15 for…",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2025-11-28T08:38:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f2960430d512c9679effd390dec3bb878f9ad579",
          "body": "* start working on the new code and example\n\n* move some parts to Manifolds.jl\n\n* new notebook\n\n* add tutorial to menu\n\n* runs formatter.\n\n* fix some tests\n\n* fix docstring ref\n\n* bump version, add news\n\n* resolve ambiguity\n\n* switch to CairoMakie\n\n* try fixing some math\n\n* one more test\n\n* more cur\n[…]\n stuff\n\n* tweak the plot\n\n* improve the new tutorial\n\n* one more test\n\n* minor updates to the tutorial\n\n* bump MatrixEquations compat\n\n---------\n\nCo-authored-by: Ronny Bergmann <git@ronnybergmann.net>",
          "is_bot": false,
          "headline": "⚫ (#845)",
          "author_name": "Mateusz Baran",
          "author_login": "mateuszbaran",
          "committed_at": "2025-11-27T16:36:42Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e5e578250529c57a281ba8e91aafc96042dac19a",
          "body": "* Draft an idea for test_ functions\n* Towards a test suite\n* add test_log\n* start a test suite similar to the one for LieGroups.jl\n* Improve a bit of usability.\n* Add news entry.\n* add a test for manifold_dimension.\n* add expected types.\n* add all functions as a todo list.\n* reintroduce old parts.\n* add a test function vor every function from the API\n* Update NEWS.md\n* News.md date and bump version.\n\n---------\n\nCo-authored-by: Mateusz Baran <mateuszbaran89@gmail.com>",
          "is_bot": false,
          "headline": "Towards a Test submodule (refactoring tests, Chapter MCLXVII) (#839)",
          "author_name": "Ronny Bergmann",
          "author_login": "kellertuer",
          "committed_at": "2025-11-27T14:18:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "48166c60440ec45844b3da3f6900b9efb8f8a364",
          "body": "Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.\n- [Release notes](https://github.com/actions/checkout/releases)\n- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/actions/checkout/compare/v5...v6)\n\n---\nupdated-dependenc\n[…]\nirect:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump actions/checkout from 5 to 6 (#844)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2025-11-25T06:58:48Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f18687f83f47414778d68d4e282b037243247a41",
          "body": "* Safer Hyperrectangle rand and check_point\n\n* add a test\n\n* address review",
          "is_bot": false,
          "headline": "Safer Hyperrectangle rand and check_point (#842)",
          "author_name": "Mateusz Baran",
          "author_login": "mateuszbaran",
          "committed_at": "2025-11-19T17:57:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bf70d69242d5d051e59504b442ed9724aa96d720",
          "body": "* add rand! for SkewHermitianMatrices\n* add test\n* format\n* bump version and add NEWS entry",
          "is_bot": false,
          "headline": "Add `rand!` for `SkewHermitianMatrices` (#841)",
          "author_name": "Joshua Lampert",
          "author_login": "JoshuaLampert",
          "committed_at": "2025-11-13T17:30:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6af98af3d921dd70d9ffbddde8ceef3bfe15ce61",
          "body": "* Shorter random tangent vectors on Hyperbolic manifold\n\n* address review",
          "is_bot": false,
          "headline": "Shorter random tangent vectors on Hyperbolic manifold (#840)",
          "author_name": "Mateusz Baran",
          "author_login": "mateuszbaran",
          "committed_at": "2025-11-07T20:20:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c666d2f2e232a94786ac40955f09548586d7aaa3",
          "body": "* Fix a bug.\n* fix a few tests.\n* fix a few more bugs.\n* fix Segre\n\n---------\n\nCo-authored-by: Mateusz Baran <mateuszbaran89@gmail.com>",
          "is_bot": false,
          "headline": "Fix get_embedding to only use a type (#838)",
          "author_name": "Ronny Bergmann",
          "author_login": "kellertuer",
          "committed_at": "2025-11-05T08:22:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ed663146039429701e50b767fe7efba6ff8113e7",
          "body": "…(#837)\n\n* Numerically stabilize the exponential map on the sphere.\n* Add a test.\n* Bump version.",
          "is_bot": false,
          "headline": "Use a stabilized variant of the exponential map on abstract spheres. …",
          "author_name": "Ronny Bergmann",
          "author_login": "kellertuer",
          "committed_at": "2025-10-30T07:50:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c13646fddfd52199ae705d93d18958c844efafe3",
          "body": "* Fix contributing.md to mention runic.\n\n* add news entry.",
          "is_bot": false,
          "headline": "Fix contributing.md to state runic as formatter. (#836)",
          "author_name": "Ronny Bergmann",
          "author_login": "kellertuer",
          "committed_at": "2025-10-29T15:35:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7ef7913195b132e83ffb8906ca89885ec0571953",
          "body": "…nsport on the `MetricManifold` decorator (#835)\n\n* fix a few metric manifold passthroughs.\n* Update src/manifolds/MetricManifold.jl\n* Fix a typo.\n* Fix another typo.\n* remove a few former function exports.\n* Fix another typo.\n* remove the duplication, we already have `is_default_metric`.\n* being a \n[…]\ninor issues\n* reactivate a more strict test\n* Delete an empty docs page.\n* fix two further links.\n* Simplify intro metric manifold.\n\n---------\n\nCo-authored-by: Mateusz Baran <mateuszbaran89@gmail.com>",
          "is_bot": false,
          "headline": "Fix passthroughs for retractions, inverse retractions, and vector tra…",
          "author_name": "Ronny Bergmann",
          "author_login": "kellertuer",
          "committed_at": "2025-10-24T19:19:58Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "89453904dc4870d171d588aec2219cd12d2c0f2a",
          "body": "* Be more precise when extending functions that were not importet.\n* bump docs julia version.",
          "is_bot": false,
          "headline": "Be more precise when extending functions that were not imported. (#833)",
          "author_name": "Ronny Bergmann",
          "author_login": "kellertuer",
          "committed_at": "2025-10-09T10:42:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "80c8df678ce21ea505a558410e10bf09d746f44e",
          "body": "* Setup runic.\n\n* Trait removal pt.1: IsQuotientManifold\n\n* Removing Traits Part II: IsDefaultMetric -> default_metric(M)\n\n* Removing IsEmbeddedManifold\n\n* Some further to removing the `DefaultMetric` trait.\n\n* Fix some more metric functions.\n\n* A few further fixes.\n\n* Fix basis and exp_fused!-passd\n[…]\n more tests\n\n* Adress points from review.\n\n---------\n\nCo-authored-by: Ronny Bergmann <git@ronnybergmann.net>\nCo-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "An attempt to remove traits (#826)",
          "author_name": "Mateusz Baran",
          "author_login": "mateuszbaran",
          "committed_at": "2025-10-08T19:40:41Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "90c20d7a86c69eb87f195e4c94960c0c82b9904f",
          "body": "MacOS ARM does not have x86 so you're doing bad things here https://github.com/JuliaLang/julia/issues/55878 and https://github.com/julia-actions/setup-julia/pull/300",
          "is_bot": false,
          "headline": "Remove incorrect architecture choice in ci.yml (#832)",
          "author_name": "Christopher Rackauckas",
          "author_login": "ChrisRackauckas",
          "committed_at": "2025-10-03T04:51:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5f309f750c0538685a8eaa2c606c5fa8235c4127",
          "body": null,
          "is_bot": false,
          "headline": "Setup runic. (#825)",
          "author_name": "Ronny Bergmann",
          "author_login": "kellertuer",
          "committed_at": "2025-09-10T19:32:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a4834aedcc7f7d74b981a3f8dd2e819536040300",
          "body": "Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.\n- [Release notes](https://github.com/actions/checkout/releases)\n- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/actions/checkout/compare/v4...v5)\n\n---\nupdated-dependenc\n[…]\nirect:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump actions/checkout from 4 to 5 (#827)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2025-08-12T08:51:42Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "db305e085ae5608310c10a6d19e3524a118b6e81",
          "body": null,
          "is_bot": false,
          "headline": "Update NEWS.md",
          "author_name": "Ronny Bergmann",
          "author_login": "kellertuer",
          "committed_at": "2025-07-19T09:57:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e70f5e242b80a6b41e581be70f1d813340b1607a",
          "body": null,
          "is_bot": false,
          "headline": "fix a link (#824)",
          "author_name": "Ronny Bergmann",
          "author_login": "kellertuer",
          "committed_at": "2025-07-19T07:47:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9cc37787aaf67130dfd29ceeda757749e2068510",
          "body": null,
          "is_bot": false,
          "headline": "Fix a small bug and bump version (#822)",
          "author_name": "Ronny Bergmann",
          "author_login": "kellertuer",
          "committed_at": "2025-07-17T11:36:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "453e6367c1eecc8b309c05234b88ca332fc4e943",
          "body": "* Mark a ManifoldDiff test broken and document why.\n* Update test/differentiation.jl",
          "is_bot": false,
          "headline": "Mark a ManifoldDiff test broken and document why. (#821)",
          "author_name": "Ronny Bergmann",
          "author_login": "kellertuer",
          "committed_at": "2025-07-05T12:36:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0dad9d1976dd08969e116e07cb69d7805c45266d",
          "body": null,
          "is_bot": false,
          "headline": "Fix a few typos. (#820)",
          "author_name": "Ronny Bergmann",
          "author_login": "kellertuer",
          "committed_at": "2025-07-04T16:31:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "11bad8ff02204be0f123236277da82207bb9579e",
          "body": null,
          "is_bot": false,
          "headline": "Next part of ForwardDiff.jl v1 compatibility (#819)",
          "author_name": "Mateusz Baran",
          "author_login": "mateuszbaran",
          "committed_at": "2025-06-25T16:51:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "588251af629b0cbd4a2b586703645876b0bfb822",
          "body": "* Compatibility with ForwardDiff.jl v1\n\n* add test dependency\n\n* typo",
          "is_bot": false,
          "headline": "Compatibility with ForwardDiff.jl v1 (#818)",
          "author_name": "Mateusz Baran",
          "author_login": "mateuszbaran",
          "committed_at": "2025-06-24T18:41:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "892c0d254b635b0bbec32ee948ab258ac8c4528a",
          "body": null,
          "is_bot": false,
          "headline": "Fix in-place exp! for GeneralLinear (#816)",
          "author_name": "Mateusz Baran",
          "author_login": "mateuszbaran",
          "committed_at": "2025-06-16T14:15:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ac0e966dd35bc48eece34e4a11d4b52e66bf4974",
          "body": "* riemannian_gradient for ProductManifold\n\n* set date",
          "is_bot": false,
          "headline": "riemannian_gradient for ProductManifold (#815)",
          "author_name": "Mateusz Baran",
          "author_login": "mateuszbaran",
          "committed_at": "2025-06-14T16:14:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f6d82c147facc4d3ca7db5f23412992a032c65e4",
          "body": "* fix embed and project for tangent vectors.\n* Fix docs and tests.\n* News and bump version.\n* undo a test mod.\n* fix tests.\n* add a small hack to test embed!\n\n(the test suite should make this obsolete again).\n\n* Implement `riemannian_gradient`\n* add tests and specialise the allocating variant as well.\n* Runs formatter.",
          "is_bot": false,
          "headline": "Fix project and embedd of tangent vectors for General Linear (#814)",
          "author_name": "Ronny Bergmann",
          "author_login": "kellertuer",
          "committed_at": "2025-06-13T10:20:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "31c3239bf070ce6df943289643e47c791caadfd5",
          "body": null,
          "is_bot": false,
          "headline": "Removed expicit complex conjugate in Stiefel.jl documentation (#812)",
          "author_name": "Ole Gunnar Røsholt Hovland",
          "author_login": "elorannug",
          "committed_at": "2025-06-04T06:32:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "24c40b0d178c2b3821c6f1921d4c54a19742037d",
          "body": "* Fix `riemannian_gradient` on Fixed Rank,\n* Bump version.",
          "is_bot": false,
          "headline": "Fix `riemannian_gradient` on Fixed Rank, (#810)",
          "author_name": "Ronny Bergmann",
          "author_login": "kellertuer",
          "committed_at": "2025-05-29T18:02:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0a5aaf031d5cbd10971f397ff906c40d99c2c113",
          "body": "* extend about.md\n* fix two typos.",
          "is_bot": false,
          "headline": "Extend about.md to add FlowFusion.jl (#807)",
          "author_name": "Ronny Bergmann",
          "author_login": "kellertuer",
          "committed_at": "2025-05-16T05:54:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d3298b4d23f80184de1560ad5931e939dc909fc9",
          "body": "…Point` (#806)\n\n* fix supertype.\n* fix also Stiefel Tangent vector\n* Fix exports.\n* Move pre to nightly workflow that is allowed to fail.\n* fix nightly names",
          "is_bot": false,
          "headline": "fix supertype of a few tangent vectors that were `<: AbstractManifold…",
          "author_name": "Ronny Bergmann",
          "author_login": "kellertuer",
          "committed_at": "2025-05-12T16:21:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d55acb407b44298ed077a4edb2d9c875474538fb",
          "body": "bump version.",
          "is_bot": false,
          "headline": "Update Project.toml",
          "author_name": "Ronny Bergmann",
          "author_login": "kellertuer",
          "committed_at": "2025-04-23T13:11:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "05edbffa5ea5e5e5bc1b38f776349b4e2cddf72e",
          "body": "* Start deprecations.\n* Further work on deprecations\n* Resolve a deprecation warning with qr.\n* Unify deprecation warnings for Lie groups to always mention which name a function is moved to if the name does change.\n* add more warnings.\n* Make validation group work standalone.\n* Add a note.\n\n---------\n\nCo-authored-by: Mateusz Baran <mateuszbaran89@gmail.com>",
          "is_bot": false,
          "headline": "Deprecate GroupManifold functions in favour of LieGroups.jl (#776)",
          "author_name": "Ronny Bergmann",
          "author_login": "kellertuer",
          "committed_at": "2025-04-23T12:14:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fac64a54dbd3724c01c24f9f140caef525e1da43",
          "body": "…… (#805)\n\n* `get_vector` on `Circle` no longer returns `SArray` when no static arrays are passed as arguments\n\n* add a test",
          "is_bot": false,
          "headline": "`get_vector` on `Circle` no longer returns `SArray` when no static ar…",
          "author_name": "Mateusz Baran",
          "author_login": "mateuszbaran",
          "committed_at": "2025-04-08T11:25:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6c3b00f14be0a0efc756a4a4bf895b93045f690b",
          "body": "* fix a misleading error message.\n* add news entry\n* add docs section to shape space.\n* add projection methods as well.\n* Also fix the number entry.\n\n---------\n\nCo-authored-by: Mateusz Baran <mateuszbaran89@gmail.com>",
          "is_bot": false,
          "headline": "fix a misleading error message. (#803)",
          "author_name": "Ronny Bergmann",
          "author_login": "kellertuer",
          "committed_at": "2025-03-31T17:56:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "33cebc4780b0eb1c60bcdd0930a8883bba623732",
          "body": null,
          "is_bot": false,
          "headline": "Combine all compat updates into one commit. (#802)",
          "author_name": "Ronny Bergmann",
          "author_login": "kellertuer",
          "committed_at": "2025-03-29T06:17:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8348292ca26fe7c8b2950dc97086ab84a77cb60c",
          "body": "* extend `rand!` to to the complex circle.\n* add changelog entry\n* bump version.",
          "is_bot": false,
          "headline": "Fix `rand!` on complex circle (#789)",
          "author_name": "Ronny Bergmann",
          "author_login": "kellertuer",
          "committed_at": "2025-03-28T07:58:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2223cc0362541a85d5484937b55f9c42d59840f0",
          "body": "Tiny typos. Check please.",
          "is_bot": false,
          "headline": "Update HyperbolicHyperboloid.jl (#790)",
          "author_name": "Marcelo Hartmann",
          "author_login": "mahaa2",
          "committed_at": "2025-03-28T05:44:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4a937fd9ef9d40523ce9402708fce5413bcac7af",
          "body": "* Add a manifold for matrices of determinant one\n* unifies naming, add entry for the internal renaming.\n* improve coverage\n* add CompatHelper for docs and tutorials\n* bump docs compat\n\n---------\n\nCo-authored-by: Mateusz Baran <mateuszbaran89@gmail.com>",
          "is_bot": false,
          "headline": "Add matrices of determinant one (#788)",
          "author_name": "Ronny Bergmann",
          "author_login": "kellertuer",
          "committed_at": "2025-03-28T05:02:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5460a45177a97f4454b89de3c1b3785a0826dbab",
          "body": "* Typos Orthogonal and Unitary matrices\n* Update docs/src/manifolds/generalunitary.md\n* Fix a link\n\n---------\n\nCo-authored-by: plc99 <107413934+plc99@users.noreply.github.com>\nCo-authored-by: Roland Herzog <roland.herzog@iwr.uni-heidelberg.de>\nCo-authored-by: plc99 <paula_conrad@hotmail.de>",
          "is_bot": false,
          "headline": "Fixes a few typos (#787)",
          "author_name": "Ronny Bergmann",
          "author_login": "kellertuer",
          "committed_at": "2025-03-11T10:48:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b7519ec00b430da34fc560ef25d02aa64a0494eb",
          "body": "…sting compat) (#763)\n\nCo-authored-by: CompatHelper Julia <compathelper_noreply@julialang.org>",
          "is_bot": true,
          "headline": "CompatHelper: bump compat for Colors in [weakdeps] to 0.13, (keep exi…",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2025-02-20T19:41:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8877139fcf20ec850bfac6107c9c2d4c0ec79ab3",
          "body": "* Improved implementation of PT on Rotations(3)\n\n* rename according to suggestion",
          "is_bot": false,
          "headline": "Improved implementation of PT on Rotations(3) (#785)",
          "author_name": "Mateusz Baran",
          "author_login": "mateuszbaran",
          "committed_at": "2025-02-18T19:24:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6e4244367fade0f9d6406cdcf8ea5263eb03c5c9",
          "body": null,
          "is_bot": false,
          "headline": "Doc fix (#784)",
          "author_name": "Ben Murrell",
          "author_login": "murrellb",
          "committed_at": "2025-02-11T16:47:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6d0b94b81f9d0907c8e73594dc6dc832d215e211",
          "body": "* Adapt new function names and naming scheme.\n* Already remove two fallbacks on hat, that cause ambiguities on Groups.\n* mostly convert to retraction_fused\n* Adapt to removal of the _along methods.\n* more retraction fixes\n* fix ODE retraction\n* nicer compat.\n* rename exp_t -> exp_fused\n* Fix most fu\n[…]\n towards code coverage.\n* Add references.\n* Remove old code, that is no longer necessary, since we are on 1.10 at least & code cov.\n\n---------\n\nCo-authored-by: Mateusz Baran <mateuszbaran89@gmail.com>",
          "is_bot": false,
          "headline": "Adapt to ManifoldsBase 1.0 (#781)",
          "author_name": "Ronny Bergmann",
          "author_login": "kellertuer",
          "committed_at": "2025-02-10T09:43:16Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0c2a7b7a435c552379b3393dccce3de6fa514bfe",
          "body": "* Bases for CholeskySpace and LogCholesky metric\r\n\r\n* add tests and address review\r\n\r\n* rename function",
          "is_bot": false,
          "headline": "Bases for CholeskySpace and LogCholesky metric (#780)",
          "author_name": "Mateusz Baran",
          "author_login": "mateuszbaran",
          "committed_at": "2025-01-10T14:41:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ca9e634f5d33607d33f69cf026a1a3d402cbf46c",
          "body": "…n complex Euclidean (#779)",
          "is_bot": false,
          "headline": "Improve performance of get_vector and get_coordinates in some cases o…",
          "author_name": "Mateusz Baran",
          "author_login": "mateuszbaran",
          "committed_at": "2025-01-10T09:31:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2b13e39469dc1a9514aba8a0fef8f6df9522940e",
          "body": "* Bases and rand for InvertibleMatrices and HeisenbergMatrices\r\n\r\n* improve coverage\r\n\r\n* improve coverage",
          "is_bot": false,
          "headline": "Bases and rand for InvertibleMatrices and HeisenbergMatrices (#777)",
          "author_name": "Mateusz Baran",
          "author_login": "mateuszbaran",
          "committed_at": "2025-01-02T08:13:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b52472bc116987e93b10f58b5e0599db4534728e",
          "body": "Update code coverage badge. The URL seems to have changed.",
          "is_bot": false,
          "headline": "Update README.md",
          "author_name": "Ronny Bergmann",
          "author_login": "kellertuer",
          "committed_at": "2024-12-20T22:15:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b257573ebc38026e95b8cc07cc24f137d990f412",
          "body": "accidentially confused versions, bump before registration of 0.10.10",
          "is_bot": false,
          "headline": "Update Project.toml",
          "author_name": "Ronny Bergmann",
          "author_login": "kellertuer",
          "committed_at": "2024-12-20T19:34:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0f933c1bb94464f8a0f7a5c7ee51ee0359ebfe29",
          "body": "Detangle Changelog",
          "is_bot": false,
          "headline": "Update NEWS.md",
          "author_name": "Ronny Bergmann",
          "author_login": "kellertuer",
          "committed_at": "2024-12-20T19:33:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f03ac74bcbdf81cd80d63cf58f53d2c27982f726",
          "body": "* add Segre and warped Segre manifold\n* added formulas to Segre manifold documentation\n* Setup docs, fix a few type errors, runs formatter.\n* Add link to Segre.\n---------\n\nCo-authored-by: Simon Jacobsson <simon.jacobsson@kuleuven.be>\nCo-authored-by: Ronny Bergmann <git@ronnybergmann.net>",
          "is_bot": false,
          "headline": "add segre and warped segre manifold (#755)",
          "author_name": "Simon Jacobsson",
          "author_login": "sjacobsson",
          "committed_at": "2024-12-20T19:27:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "80541bb5711052d4d1276f5888817c8ddcc1fbff",
          "body": null,
          "is_bot": false,
          "headline": "forgot to bump version",
          "author_name": "Mateusz Baran",
          "author_login": "mateuszbaran",
          "committed_at": "2024-12-16T16:30:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c1409181d7c72a1529b5d34133f4b231f41066c1",
          "body": "* Heisenberg matrices\r\n\r\n* add docs page\r\n\r\n* more testing and addressing review",
          "is_bot": false,
          "headline": "Heisenberg matrices (#775)",
          "author_name": "Mateusz Baran",
          "author_login": "mateuszbaran",
          "committed_at": "2024-12-16T13:33:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b62ce1946cdcd1a7402cbc2459091d6570c474ad",
          "body": "* Improve docs.\n* Remove artificial prefix emojis for Wikipedia.\n* also remove the manual 🔗 prefix from earlier.\n* A few improvements on the about page.\n* finish extending docs.\n* Forgot to add a link.\n* Ah, relative links.\n* fix a typo in a filename.\n* Update docs/src/misc/about.md\n\n---------\n\nCo-authored-by: Mateusz Baran <mateuszbaran89@gmail.com>",
          "is_bot": false,
          "headline": "Improve docs (#774)",
          "author_name": "Ronny Bergmann",
          "author_login": "kellertuer",
          "committed_at": "2024-12-10T20:24:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "66be9ccaa540f56746a8e1c134dd45be4a72e990",
          "body": "* Upgrade to next ManifoldsDiff with DI integration\r\n\r\n* Custom ManifoldsDiff in CI\r\n\r\n* Upgrade Julia compat to 1.10\r\n\r\n* Bump Julia compat to 1.10\r\n\r\n* Remove backends\r\n\r\n* Remove Requires\r\n\r\n* Remove Requires\r\n\r\n* Remove access to FDM method\r\n\r\n* Format\r\n\r\n* Remove Pkg tricks\r\n\r\n* Changelog",
          "is_bot": false,
          "headline": "Upgrade to ManifoldDiff v0.4 (#771)",
          "author_name": "Guillaume Dalle",
          "author_login": "gdalle",
          "committed_at": "2024-11-27T19:24:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 100,
      "commits_last_year": 62,
      "latest_release_at": "2026-06-15T19:00:52Z",
      "latest_release_tag": "v0.11.28",
      "releases_from_tags": false,
      "days_since_last_push": 0,
      "active_weeks_last_year": 33,
      "days_since_latest_release": 36,
      "mean_days_between_releases": 9.6
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": true,
      "health_percentage": 50,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": []
    },
    "popularity": {
      "forks": 71,
      "stars": 429,
      "watchers": 10,
      "fork_history": {
        "days": [
          {
            "date": "2019-07-02",
            "count": 1
          },
          {
            "date": "2019-08-15",
            "count": 1
          },
          {
            "date": "2019-09-19",
            "count": 1
          },
          {
            "date": "2019-11-25",
            "count": 1
          },
          {
            "date": "2019-11-29",
            "count": 1
          },
          {
            "date": "2019-12-02",
            "count": 1
          },
          {
            "date": "2019-12-04",
            "count": 1
          },
          {
            "date": "2019-12-06",
            "count": 1
          },
          {
            "date": "2020-03-31",
            "count": 1
          },
          {
            "date": "2020-04-11",
            "count": 1
          },
          {
            "date": "2020-04-23",
            "count": 1
          },
          {
            "date": "2020-05-16",
            "count": 1
          },
          {
            "date": "2020-06-20",
            "count": 1
          },
          {
            "date": "2020-07-05",
            "count": 1
          },
          {
            "date": "2020-08-15",
            "count": 1
          },
          {
            "date": "2020-10-27",
            "count": 1
          },
          {
            "date": "2020-11-27",
            "count": 2
          },
          {
            "date": "2021-03-20",
            "count": 1
          },
          {
            "date": "2021-05-04",
            "count": 1
          },
          {
            "date": "2021-05-27",
            "count": 1
          },
          {
            "date": "2021-06-01",
            "count": 1
          },
          {
            "date": "2021-06-04",
            "count": 1
          },
          {
            "date": "2021-07-18",
            "count": 1
          },
          {
            "date": "2021-09-21",
            "count": 1
          },
          {
            "date": "2021-10-06",
            "count": 1
          },
          {
            "date": "2021-10-19",
            "count": 1
          },
          {
            "date": "2022-01-13",
            "count": 1
          },
          {
            "date": "2022-01-21",
            "count": 1
          },
          {
            "date": "2022-02-07",
            "count": 1
          },
          {
            "date": "2022-05-02",
            "count": 1
          },
          {
            "date": "2022-06-02",
            "count": 1
          },
          {
            "date": "2022-08-02",
            "count": 1
          },
          {
            "date": "2022-09-09",
            "count": 1
          },
          {
            "date": "2022-09-19",
            "count": 1
          },
          {
            "date": "2022-09-27",
            "count": 1
          },
          {
            "date": "2022-10-16",
            "count": 1
          },
          {
            "date": "2022-10-20",
            "count": 1
          },
          {
            "date": "2022-11-04",
            "count": 1
          },
          {
            "date": "2022-11-22",
            "count": 1
          },
          {
            "date": "2022-11-23",
            "count": 1
          },
          {
            "date": "2023-01-13",
            "count": 1
          },
          {
            "date": "2023-05-10",
            "count": 1
          },
          {
            "date": "2023-05-25",
            "count": 1
          },
          {
            "date": "2023-09-28",
            "count": 2
          },
          {
            "date": "2023-10-08",
            "count": 1
          },
          {
            "date": "2023-10-10",
            "count": 1
          },
          {
            "date": "2023-11-13",
            "count": 1
          },
          {
            "date": "2024-09-12",
            "count": 1
          },
          {
            "date": "2024-09-25",
            "count": 1
          },
          {
            "date": "2024-10-23",
            "count": 1
          },
          {
            "date": "2024-11-24",
            "count": 1
          },
          {
            "date": "2025-02-11",
            "count": 2
          },
          {
            "date": "2025-02-12",
            "count": 1
          },
          {
            "date": "2025-03-25",
            "count": 1
          },
          {
            "date": "2025-04-09",
            "count": 1
          },
          {
            "date": "2025-06-03",
            "count": 1
          },
          {
            "date": "2025-06-09",
            "count": 1
          },
          {
            "date": "2025-07-04",
            "count": 1
          },
          {
            "date": "2025-10-03",
            "count": 1
          },
          {
            "date": "2025-11-24",
            "count": 1
          },
          {
            "date": "2026-02-16",
            "count": 1
          },
          {
            "date": "2026-04-05",
            "count": 1
          },
          {
            "date": "2026-04-24",
            "count": 1
          },
          {
            "date": "2026-04-30",
            "count": 1
          },
          {
            "date": "2026-05-05",
            "count": 1
          },
          {
            "date": "2026-05-27",
            "count": 1
          },
          {
            "date": "2026-05-28",
            "count": 1
          },
          {
            "date": "2026-07-01",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 71,
        "total_forks": 71
      },
      "star_history": null,
      "open_issues_and_prs": 39
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [],
      "largest_source_bytes": null,
      "source_files_sampled": 0,
      "oversized_source_files": 0,
      "agent_instruction_files": [],
      "agent_instruction_max_bytes": null
    },
    "dependencies": {
      "manifests": [],
      "advisories": {
        "error": "No resolved dependencies to assess",
        "scope": "repository_graph",
        "source": null,
        "findings": [],
        "collected": false,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 0,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [],
      "dependencies": [],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [],
        "collected": true,
        "truncated": false,
        "total_count": 0,
        "direct_count": 0,
        "indirect_count": 0
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 6,
        "merged_prs": 509,
        "open_issues": 33,
        "closed_ratio": 0.868,
        "closed_issues": 217,
        "closed_unmerged_prs": 125
      },
      "bus_factor": 2,
      "bot_contributors": 2,
      "top_contributors": [
        {
          "type": "User",
          "login": "kellertuer",
          "commits": 1004,
          "avatar_url": "https://avatars.githubusercontent.com/u/115566?v=4"
        },
        {
          "type": "User",
          "login": "mateuszbaran",
          "commits": 699,
          "avatar_url": "https://avatars.githubusercontent.com/u/2551062?v=4"
        },
        {
          "type": "User",
          "login": "sethaxen",
          "commits": 192,
          "avatar_url": "https://avatars.githubusercontent.com/u/8673634?v=4"
        },
        {
          "type": "User",
          "login": "r-dornig",
          "commits": 49,
          "avatar_url": "https://avatars.githubusercontent.com/u/63016651?v=4"
        },
        {
          "type": "User",
          "login": "olivierverdier",
          "commits": 8,
          "avatar_url": "https://avatars.githubusercontent.com/u/198281?v=4"
        },
        {
          "type": "User",
          "login": "pkofod",
          "commits": 7,
          "avatar_url": "https://avatars.githubusercontent.com/u/8431156?v=4"
        },
        {
          "type": "User",
          "login": "antoine-levitt",
          "commits": 4,
          "avatar_url": "https://avatars.githubusercontent.com/u/88065?v=4"
        },
        {
          "type": "User",
          "login": "hajg-ijk",
          "commits": 3,
          "avatar_url": "https://avatars.githubusercontent.com/u/112711660?v=4"
        },
        {
          "type": "User",
          "login": "sjacobsson",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/47160031?v=4"
        },
        {
          "type": "User",
          "login": "dehann",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/6412556?v=4"
        }
      ],
      "contributors_sampled": 45,
      "top_contributor_share": 0.499
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "TagBot.yml",
        "changelog.yml",
        "ci.yml",
        "clear_preview.yml",
        "documenter.yml",
        "format.yml",
        "nightly.yml",
        "spell_check.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [],
      "has_editorconfig": false,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": null,
            "reason": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 10,
            "reason": "29 out of 29 merged PRs checked by a CI test -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 8,
            "reason": "Found 16/18 approved changesets -- score normalized to 8",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 10,
            "reason": "project has 14 contributing companies or organizations",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 10,
            "reason": "update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "23 commit(s) and 7 issue activity found in the last 90 days -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": null,
            "reason": "packaging workflow not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 0,
            "reason": "dependency not pinned by hash detected -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 0,
            "reason": "SAST tool is not run on all commits -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 0,
            "reason": "security policy file not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": null,
            "reason": "no releases found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 10,
            "reason": "0 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "1672e29ac7f48d55dadc01af09eb335edc1d120d",
        "ran_at": "2026-07-22T15:27:14Z",
        "aggregate_score": 6.3,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": false,
      "has_dependabot_config": true
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-22T08:42:28Z",
      "oldest_open_prs": [
        {
          "number": 594,
          "created_at": "2023-04-28T07:45:11Z",
          "last_comment_at": "2024-01-03T15:10:15Z",
          "last_comment_author": "kellertuer"
        },
        {
          "number": 813,
          "created_at": "2025-06-04T20:04:33Z",
          "last_comment_at": "2025-06-09T15:17:39Z",
          "last_comment_author": "mateuszbaran"
        },
        {
          "number": 901,
          "created_at": "2026-05-28T19:22:32Z",
          "last_comment_at": "2026-05-29T06:18:16Z",
          "last_comment_author": "kellertuer"
        },
        {
          "number": 909,
          "created_at": "2026-06-22T09:42:37Z",
          "last_comment_at": "2026-07-22T08:42:15Z",
          "last_comment_author": "kellertuer"
        },
        {
          "number": 915,
          "created_at": "2026-07-06T08:46:14Z",
          "last_comment_at": "2026-07-07T16:27:01Z",
          "last_comment_author": "kellertuer"
        },
        {
          "number": 917,
          "created_at": "2026-07-13T10:58:39Z",
          "last_comment_at": "2026-07-13T12:56:43Z",
          "last_comment_author": "mateuszbaran"
        }
      ],
      "last_merged_pr_at": "2026-07-17T06:06:55Z",
      "ci_last_conclusion": "SKIPPED",
      "oldest_open_issues": [
        {
          "number": 57,
          "created_at": "2019-12-08T00:21:10Z",
          "last_comment_at": "2021-08-09T21:12:14Z",
          "last_comment_author": "sethaxen"
        },
        {
          "number": 67,
          "created_at": "2019-12-20T17:48:22Z",
          "last_comment_at": "2020-07-27T11:49:28Z",
          "last_comment_author": "kellertuer"
        },
        {
          "number": 95,
          "created_at": "2020-01-17T00:50:55Z",
          "last_comment_at": "2020-01-22T12:15:14Z",
          "last_comment_author": "mateuszbaran"
        },
        {
          "number": 118,
          "created_at": "2020-02-20T07:43:33Z",
          "last_comment_at": "2025-10-27T10:44:16Z",
          "last_comment_author": "mateuszbaran"
        },
        {
          "number": 152,
          "created_at": "2020-04-08T19:37:09Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 178,
          "created_at": "2020-04-28T21:26:48Z",
          "last_comment_at": "2020-11-28T11:52:25Z",
          "last_comment_author": "kellertuer"
        },
        {
          "number": 228,
          "created_at": "2020-10-02T12:16:24Z",
          "last_comment_at": "2020-10-16T20:43:06Z",
          "last_comment_author": "sethaxen"
        },
        {
          "number": 261,
          "created_at": "2020-11-19T10:52:55Z",
          "last_comment_at": "2024-07-15T16:23:31Z",
          "last_comment_author": "kellertuer"
        },
        {
          "number": 357,
          "created_at": "2021-05-07T19:51:35Z",
          "last_comment_at": "2023-05-29T19:23:25Z",
          "last_comment_author": "mateuszbaran"
        },
        {
          "number": 422,
          "created_at": "2021-09-08T10:06:19Z",
          "last_comment_at": "2021-09-08T16:20:14Z",
          "last_comment_author": "kellertuer"
        },
        {
          "number": 438,
          "created_at": "2021-10-11T07:34:13Z",
          "last_comment_at": "2023-05-29T19:21:09Z",
          "last_comment_author": "kellertuer"
        },
        {
          "number": 470,
          "created_at": "2022-04-23T12:02:25Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 480,
          "created_at": "2022-05-25T15:05:34Z",
          "last_comment_at": "2022-07-06T19:50:30Z",
          "last_comment_author": "kellertuer"
        },
        {
          "number": 522,
          "created_at": "2022-08-12T16:46:26Z",
          "last_comment_at": "2022-08-15T07:06:32Z",
          "last_comment_author": "kellertuer"
        },
        {
          "number": 551,
          "created_at": "2022-11-09T10:45:14Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 616,
          "created_at": "2023-05-24T19:30:37Z",
          "last_comment_at": "2023-05-24T19:51:03Z",
          "last_comment_author": "mateuszbaran"
        },
        {
          "number": 633,
          "created_at": "2023-06-21T07:34:14Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 643,
          "created_at": "2023-08-11T13:44:07Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 690,
          "created_at": "2023-11-30T10:03:01Z",
          "last_comment_at": "2024-01-19T06:07:01Z",
          "last_comment_author": "dehann"
        },
        {
          "number": 698,
          "created_at": "2023-12-29T09:49:00Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/JuliaManifolds/Manifolds.jl",
    "host": "github.com",
    "name": "Manifolds.jl",
    "owner": "JuliaManifolds"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "good",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 74,
      "inputs": {
        "security": 63,
        "vitality": 91,
        "community": 66,
        "governance": 69,
        "engineering": 77
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "excellent",
        "name": "Vitality",
        "value": 91,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "excellent",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "commits_last_year": 62,
              "human_commit_share": 0.8,
              "days_since_last_push": 0,
              "active_weeks_last_year": 33
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 0 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "33/52 weeks with commits",
                "points": 22.8,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 33
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "62 commits in the last year",
                "points": 16.2,
                "status": "partial",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 62
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "23 commit(s) and 7 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "releases_count": 100,
              "latest_release_tag": "v0.11.28",
              "releases_from_tags": false,
              "days_since_latest_release": 36,
              "mean_days_between_releases": 9.6
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "100 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 100
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 36 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 36
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~9.6 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 9.6
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "maintained",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": null,
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": 13,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 13 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 13
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "moderate",
        "name": "Community & Adoption",
        "value": 66,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "moderate",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 63,
            "inputs": {
              "forks": 71,
              "stars": 429,
              "watchers": 10,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "429 stars",
                "points": 42.7,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 429
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "71 forks",
                "points": 15.4,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 71
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "10 watchers",
                "points": 5.3,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 10
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "good",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 70,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": true,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "has_pull_request_template": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (MIT)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "MIT"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 18,
                "status": "met",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.3
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "moderate",
        "name": "Sustainability & Governance",
        "value": 69,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "moderate",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 60,
            "inputs": {
              "bus_factor": 2,
              "contributors_sampled": 45,
              "top_contributor_share": 0.499
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "2 contributor(s) cover half of all commits",
                "points": 25.2,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 50% of commits",
                "points": 11.3,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 50
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "45 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 45
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 14 contributing companies or organizations",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "good",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 83,
            "inputs": {
              "merged_prs": 509,
              "open_issues": 33,
              "closed_issues": 217,
              "issue_closed_ratio": 0.868,
              "closed_unmerged_prs": 125
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "87% of issues closed",
                "points": 40.6,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 87
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "509/634 decided PRs merged",
                "points": 30.7,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 509,
                      "decided": 634
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 16/18 approved changesets -- score normalized to 8",
                "points": 12,
                "status": "partial",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "moderate",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 65,
            "inputs": {
              "followers": 62,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "JuliaManifolds",
              "public_repos": 23,
              "account_age_days": 2318
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "organization-owned",
                "points": 30,
                "status": "met",
                "details": [
                  {
                    "code": "owner_organization",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "62 followers of JuliaManifolds",
                "points": 12.9,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 62,
                      "login": "JuliaManifolds"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "23 public repos, account ~6 yr old",
                "points": 22.1,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 23
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 6
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "good",
        "name": "Engineering Quality",
        "value": 77,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "moderate",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 68,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": false,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "8 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 8
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "29 out of 29 merged PRs checked by a CI test -- score normalized to 10",
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "excellent",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "topics": [
                "manifolds",
                "julia"
              ],
              "has_wiki": false,
              "homepage": "https://juliamanifolds.github.io/Manifolds.jl",
              "has_readme": true,
              "has_docs_dir": true,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 25,
                "status": "met",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": "https://juliamanifolds.github.io/Manifolds.jl",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": "2 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "moderate",
        "name": "Security",
        "value": 63,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "moderate",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Branch-Protection, Packaging, Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "branch_protection",
                    "packaging",
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 63,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 15,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 3,
              "scorecard_aggregate": 6.3
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "29 out of 29 merged PRs checked by a CI test -- score normalized to 10",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 16/18 approved changesets -- score normalized to 8",
                "points": 6,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 14 contributing companies or organizations",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "update tool detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "23 commit(s) and 7 issue activity found in the last 90 days -- score normalized to 10",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow not detected",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is not run on all commits -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file not detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "0 existing vulnerabilities detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "excellent",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "review_only_matches": 0,
              "assessed_self_published_locations": 9
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "critical",
        "name": "AI Readiness",
        "value": 29,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "at_risk",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.875,
              "agent_instruction_files": [],
              "agent_instruction_max_bytes": null
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "no CLAUDE.md / AGENTS.md / editor rules",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_instructions",
                    "params": {}
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "70 of 80 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 70,
                      "sampled": 80
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "at_risk",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 32,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [],
              "has_dockerfile": false,
              "typed_language": false,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [],
              "agent_commit_share": 0.01,
              "toolchain_manifests": [],
              "dependency_bot_commit_share": 0.17
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "1 of the last 100 commits agent-authored or agent-credited",
                "points": 2,
                "status": "partial",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 1,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "17 of the last 100 commits are automated dependency updates",
                "points": 8,
                "status": "met",
                "details": [
                  {
                    "code": "dependency_bot_commits",
                    "params": {
                      "count": 17,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "critical",
            "name": "Code legibility for models",
            "note": "Excluded from scoring (no data or not applicable): Manageable file sizes. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "manageable_file_sizes"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 1,
            "inputs": {
              "primary_language": "Julia",
              "largest_source_bytes": null,
              "source_files_sampled": 0,
              "oversized_source_files": 0
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "Julia without a type-check config",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_typecheck_config_language",
                    "params": {
                      "language": "Julia"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "no source files detected",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_source_files",
                    "params": {}
                  }
                ],
                "max_points": 55
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-22T15:27:45.021736Z",
  "schema_version": "0.26.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/j/JuliaManifolds/Manifolds.jl.svg",
  "full_name": "JuliaManifolds/Manifolds.jl",
  "license_state": "standard",
  "license_spdx": "MIT"
}

Оцінки — це сигнали, а не гарантії. Вони відображають публічно видимі практики на GitHub — це не аудит коду й не гарантія безпеки.

Відсутні дані виключаються, а ваги перенормовуються — нуль за відсутність ніколи не ставиться. Методологія версіонована й відкрита: метрики v1.13.0, схема v0.26.0 — повна методологія · вікі метрик.

Як окремий результат виглядає на тлі всього реєстру: сукупна статистика.