Skip to content

synodic.core

A collection of various roles to support Synodic core functionality

Health score

70 / 100

Good

Healthy, with room to improve.

How bands are set →

  1. Excellent
  2. Good (this collection)
  3. Fair
  4. Poor
  5. Not scored

Observed 7 of 8 signal groups.

Four are needed before a score is published.

4 needed

Category subscores

Security
100%
Trust
60%
Quality
57%
Maintenance
55%
ansible-core compatibility
100%
Every signal we evaluated for this collection
Signals we could observe
security.dependency_boundednessPassedno dependencies declared1 / 1Published artifact
trust.link_claimsPartly met2 of 4 link URLs declared0.6 / 1Published artifact
quality.docsPartly metreadme, 0 doc files1.5 / 3Published artifact
quality.changelogPartly metCHANGELOG.md only, 0 fragments0.9 / 2Published artifact
quality.license_qualityPartly metlicense file declared, no SPDX id0.45 / 1Published artifact
quality.testsPartly metroles-only: 0 unit, 0 integration, 0 sanity, 1 molecule1.8 / 3Published artifact
quality.ciPartly met2 workflow files, 0 other CI files1.6 / 2Published artifact
maintenance.release_recencyPartly metlast release 412 days ago1.8 / 3Galaxy index
maintenance.changelog_recencyPartly met0 unreleased changelog fragments0.4 / 1Published artifact
compat.requires_ansiblePassed>=2.18.03 / 3Published artifact
Signals we could not observeNot observed — these are left out of the score rather than counted against it.
trust.ansible_membershipNot observednot shipped in the ansible packageexcluded from this scoreansible-build-data
compat.membership_currencyNot observednot shipped in the ansible packageexcluded from this scoreansible-build-data

No repository evidence yet. ansible.care has not read any collection's Git repository, so every signal above was proved from a published artifact or from Ansible’s own build data. Tests and CI in particular can be proved present this way but never proved absent — so when we cannot see them, we leave them out of the score rather than counting them against you.

What is costing points

Each of these is a signal we observed and could not fully credit.

  • quality.changelog

    Ship a `changelogs/changelog.yaml` — the structured form `antsibull-changelog` generates and the `ansible` package consumes — rather than only a hand-maintained `CHANGELOG.md`, and write a fragment into `changelogs/fragments/` as each change lands rather than reconstructing release notes at release time. Both have to be inside the published tarball to be observable: a changelog that lives only in your Git repository is one we cannot read. This is the single highest-leverage change for most collections, because the same missing file is what holds down both changelog rules in this rubric. If you already publish `changelog.yaml` with fragments, this rule is answered.

  • quality.docs

    Ship your README and your `docs/` directory INSIDE the published tarball, not only in your Git repository — we do not read repositories at all yet, so a file that exists only there is a file we cannot see. If your `build_ignore` excludes `docs/`, that exclusion is why we observed nothing. Beyond the README this rule counts documentation FILES, so splitting a long README into per-module and per-role pages is what moves it; adding filler pages to raise a count would satisfy the arithmetic and help nobody.

  • maintenance.release_recency

    Cut a release to Galaxy. This is the heaviest single rule in the rubric because a release is the one unambiguous, publisher-controlled act of maintenance we can observe without reading your repository — which is also its limitation, and worth saying plainly: a collection under active development that rarely releases is under-credited here, and that is a gap in what we can see rather than a judgement about the work. If your collection is finished rather than abandoned, there is nothing here you should change on our account.

  • quality.license_quality

    Declare a machine-readable SPDX identifier in `galaxy.yml`’s `license` field rather than relying on a `LICENSE` file alone: an identifier is what a consuming organisation’s policy tooling reads without a human opening the file. A `LICENSES/` directory following REUSE ranks above a bare root licence file and below the identifier. One exception worth stating: we record the identifier you publish rather than validating it against the SPDX list, so a wrong identifier will earn these marks and mislead your users at the same time — if no SPDX identifier fits your licence, publish the file instead.

  • trust.link_claims

    Declare the link fields your collection actually has in `galaxy.yml` — `repository`, `documentation`, `homepage` and `issues` — and correct any we reported as unparseable, which is usually a stray character rather than a wrong address. This is a metadata edit: we never fetch what is behind these URLs, so nothing about your hosting is being graded. Do not invent a URL to fill a field — a scaffolding placeholder left where it was born is shown on your page as the placeholder it is, and an honestly empty field reads better than a link that goes nowhere.

What would strengthen this score

These signals can only add points in the current scoring version — they are never counted against you.

  • quality.tests

    Publish your test evidence inside the artifact: `molecule/` scenarios for a role collection, and `tests/unit/`, `tests/integration/` and `tests/sanity/` for a plugin collection. Ansible’s own packaging documentation suggests excluding `tests/` through `build_ignore`, so if you follow that advice we simply cannot see them — their absence from your tarball is a limit on what we read and never a claim that you have no tests. In this scoring version this rule can only add points: when we observe no test evidence the rule leaves your calculation entirely rather than scoring zero, so publishing tests can raise your score and withholding them cannot lower it.

  • quality.ci

    Publish your CI configuration inside the artifact. `.github/workflows/` is what we count most precisely, and other CI config files earn partial credit when your automation runs somewhere we cannot enumerate as exactly. `build_ignore` commonly strips `.github/`, again on the packaging documentation’s own advice, so an absence here is a gap in what we could read rather than a statement that your collection has no CI. In this scoring version this rule can only add points: an unobserved CI signal leaves your calculation rather than scoring zero, so this is worth doing for the credit and never to avoid a deduction.

DocumentationNot declared.
HomepageNot declared.

Authors

  • Asher Norland <asher.norland@synodic.com>