{"adoption": {"forks": 158, "observed_at": "2026-08-28T04:04:05.242962+00:00", "stars": 1236}, "canonical_url": "https://ross.abutalabs.com/products/jreleaser", "card": {"archived": false, "artifact_type": "cli-tool", "description": ":rocket: Release projects quickly and easily with JReleaser", "domain": ["developer-tools", "version-control"], "enriched": true, "function": ["cli", "ci-cd", "deployment", "developer-tools"], "health_score": 100, "homepage": "https://jreleaser.org", "language": "Java", "license": "Apache-2.0", "license_family": "permissive", "maturity": "stable", "member_repos": ["jreleaser/jreleaser"], "name": "jreleaser/jreleaser", "platform": ["jvm", "cli", "cross-platform"], "pushed_at": "2026-08-24T19:22:32+00:00", "repo": "jreleaser/jreleaser", "stars": 1236, "tags": ["release-automation", "changelog-generation", "pgp-signing", "checksums", "maven-plugin", "gradle-plugin", "homebrew", "scoop", "chocolatey", "snapcraft", "release-announcements", "software-distribution", "git-release", "devops", "automation", "command-line", "docker"], "topics": ["java", "release", "maven", "gradle", "ant", "cli", "ci-cd", "hacktoberfest", "csharp", "elixir", "rust", "tool"], "urls": [], "use_cases": ["automate tagging and publishing releases to github or gitlab", "generate a changelog from commits since the last tag", "publish my CLI app to homebrew, scoop, or snapcraft", "sign release artifacts with pgp and create checksums", "announce a new release to mastodon, sdkman, or zulip", "release a java, rust, go, or node project from CI", "upload release artifacts and distributions in one command"], "what_it_is": "JReleaser is a release automation tool that tags and publishes releases to git hosting services like GitHub, GitLab, and Gitea, while generating changelogs, checksums, and PGP signatures for release artifacts. It packages applications for popular packagers (Homebrew, Scoop, Chocolatey, Snapcraft, JBang) and announces releases, running as a CLI, Maven/Gradle plugin, Ant task, JBang integration, or Docker image.", "when_to_avoid": ["your release pipeline has highly custom steps that do not fit JReleaser's conventions", "your build tool or CI already handles simple publishing and you do not need packaging or announcements", "you only need a one-off release and do not want to maintain a configuration file"], "when_to_choose": ["you want end-to-end release automation (tag, changelog, sign, upload, package, announce) driven by convention over configuration", "your project uses Java, Go, Node, Rust, or similar ecosystems and you distribute via Homebrew, Scoop, Snapcraft, and alike", "you prefer running releases from the command line, Maven, Gradle, Ant, or a Docker image without writing custom CI scripts"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/jreleaser", "repo": "jreleaser/jreleaser", "role": "main", "score": 92}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:05.242962+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T08:21:59.335199+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a07f4c8e64aee7e35d09d7d3a61ee48a456ab242116f14b7ab37c3f1669f6dcf", "fetched_at": "2026-08-29T12:21:14.455154+00:00", "kind": "homepage", "missing": false, "url": "https://jreleaser.org"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:05.242962+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T08:21:59.335199+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a07f4c8e64aee7e35d09d7d3a61ee48a456ab242116f14b7ab37c3f1669f6dcf", "fetched_at": "2026-08-29T12:21:14.455154+00:00", "kind": "homepage", "missing": false, "url": "https://jreleaser.org"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T08:21:59.335199+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a07f4c8e64aee7e35d09d7d3a61ee48a456ab242116f14b7ab37c3f1669f6dcf", "fetched_at": "2026-08-29T12:21:14.455154+00:00", "kind": "homepage", "missing": false, "url": "https://jreleaser.org"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:05.242962+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:05.242962+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:05.242962+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T08:21:59.335199+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a07f4c8e64aee7e35d09d7d3a61ee48a456ab242116f14b7ab37c3f1669f6dcf", "fetched_at": "2026-08-29T12:21:14.455154+00:00", "kind": "homepage", "missing": false, "url": "https://jreleaser.org"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:05.242962+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:05.242962+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T08:21:59.335199+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a07f4c8e64aee7e35d09d7d3a61ee48a456ab242116f14b7ab37c3f1669f6dcf", "fetched_at": "2026-08-29T12:21:14.455154+00:00", "kind": "homepage", "missing": false, "url": "https://jreleaser.org"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:05.242962+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:05.242962+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:05.242962+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T08:21:59.335199+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a07f4c8e64aee7e35d09d7d3a61ee48a456ab242116f14b7ab37c3f1669f6dcf", "fetched_at": "2026-08-29T12:21:14.455154+00:00", "kind": "homepage", "missing": false, "url": "https://jreleaser.org"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:05.242962+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:05.242962+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T08:21:59.335199+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a07f4c8e64aee7e35d09d7d3a61ee48a456ab242116f14b7ab37c3f1669f6dcf", "fetched_at": "2026-08-29T12:21:14.455154+00:00", "kind": "homepage", "missing": false, "url": "https://jreleaser.org"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T08:21:59.335199+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a07f4c8e64aee7e35d09d7d3a61ee48a456ab242116f14b7ab37c3f1669f6dcf", "fetched_at": "2026-08-29T12:21:14.455154+00:00", "kind": "homepage", "missing": false, "url": "https://jreleaser.org"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T08:21:59.335199+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a07f4c8e64aee7e35d09d7d3a61ee48a456ab242116f14b7ab37c3f1669f6dcf", "fetched_at": "2026-08-29T12:21:14.455154+00:00", "kind": "homepage", "missing": false, "url": "https://jreleaser.org"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T08:21:59.335199+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a07f4c8e64aee7e35d09d7d3a61ee48a456ab242116f14b7ab37c3f1669f6dcf", "fetched_at": "2026-08-29T12:21:14.455154+00:00", "kind": "homepage", "missing": false, "url": "https://jreleaser.org"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 78}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_readme"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2104, "days_push": 9, "days_rel": 65, "gap_med": 61.0, "n_releases_24m": 11}, "score": 92, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}