{"adoption": {"forks": 190, "observed_at": "2026-08-28T04:03:39.404524+00:00", "stars": 1119}, "canonical_url": "https://ross.abutalabs.com/products/sharpmake", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Sharpmake is an open-source C#-based solution for generating project definition files, such as Visual Studio projects and solutions, GNU makefiles, Xcode projects, etc.", "domain": ["developer-tools", "cross-platform"], "enriched": true, "function": ["build-tool", "developer-tools", "configuration-management"], "health_score": 99, "homepage": null, "language": "C#", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["ubisoft/Sharpmake"], "name": "ubisoft/Sharpmake", "platform": ["windows", "cross-platform", "cli", "dotnet"], "pushed_at": "2026-08-18T19:27:07+00:00", "repo": "ubisoft/Sharpmake", "stars": 1119, "tags": ["project-generator", "cmake-alternative", "premake-alternative", "visual-studio", "xcode", "fastbuild", "csharp-scripts", "ubisoft", "game-development", "command-line", "linux", "macos"], "topics": ["ubisoft", "csharp", "visual-studio", "fastbuild", "vcxproj", "csproj", "sln", "bff"], "urls": [], "use_cases": ["generate visual studio solutions and projects from scripts", "generate project files for thousands of configurations quickly", "replace cmake or premake with a faster project generator", "write build project definitions in C# with full IDE tooling", "generate xcode projects and makefiles cross-platform", "manage multi-platform game build configurations"], "what_it_is": "Sharpmake is a C#-based project definition generator that produces Visual Studio solutions and projects, GNU makefiles, Xcode projects, and FastBuild files. Built by Ubisoft for speed and scale, it can generate thousands of project files with many configurations in seconds.", "when_to_avoid": ["you need a full build system rather than a project file generator", "you need built-in console platform support (removed, extension-only)", "your project is small enough that CMake or MSBuild files suffice", "you want a declarative non-programming build configuration language"], "when_to_choose": ["you need to generate very large numbers of project files or configurations fast", "you prefer defining build projects in C# with autocomplete and debugging", "you develop multi-platform games or large C++/C# codebases", "you want a CMake/Premake alternative backed by an active industry user"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/sharpmake", "repo": "ubisoft/Sharpmake", "role": "main", "score": 98}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:39.404524+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:41:26.068991+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "de091b5d1a6ba2a17808db940b93fdbf1a9d48e6fcffb8e6259575f43b0d7155", "fetched_at": "2026-08-28T04:03:39.404524+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ubisoft/Sharpmake"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:39.404524+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:41:26.068991+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "de091b5d1a6ba2a17808db940b93fdbf1a9d48e6fcffb8e6259575f43b0d7155", "fetched_at": "2026-08-28T04:03:39.404524+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ubisoft/Sharpmake"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:41:26.068991+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "de091b5d1a6ba2a17808db940b93fdbf1a9d48e6fcffb8e6259575f43b0d7155", "fetched_at": "2026-08-28T04:03:39.404524+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ubisoft/Sharpmake"}], "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:03:39.404524+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:39.404524+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:39.404524+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:41:26.068991+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "de091b5d1a6ba2a17808db940b93fdbf1a9d48e6fcffb8e6259575f43b0d7155", "fetched_at": "2026-08-28T04:03:39.404524+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ubisoft/Sharpmake"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:39.404524+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:39.404524+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:41:26.068991+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "de091b5d1a6ba2a17808db940b93fdbf1a9d48e6fcffb8e6259575f43b0d7155", "fetched_at": "2026-08-28T04:03:39.404524+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ubisoft/Sharpmake"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:39.404524+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:39.404524+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:39.404524+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:41:26.068991+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "de091b5d1a6ba2a17808db940b93fdbf1a9d48e6fcffb8e6259575f43b0d7155", "fetched_at": "2026-08-28T04:03:39.404524+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ubisoft/Sharpmake"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:39.404524+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:39.404524+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:41:26.068991+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "de091b5d1a6ba2a17808db940b93fdbf1a9d48e6fcffb8e6259575f43b0d7155", "fetched_at": "2026-08-28T04:03:39.404524+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ubisoft/Sharpmake"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:41:26.068991+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "de091b5d1a6ba2a17808db940b93fdbf1a9d48e6fcffb8e6259575f43b0d7155", "fetched_at": "2026-08-28T04:03:39.404524+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ubisoft/Sharpmake"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:41:26.068991+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "de091b5d1a6ba2a17808db940b93fdbf1a9d48e6fcffb8e6259575f43b0d7155", "fetched_at": "2026-08-28T04:03:39.404524+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ubisoft/Sharpmake"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:41:26.068991+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "de091b5d1a6ba2a17808db940b93fdbf1a9d48e6fcffb8e6259575f43b0d7155", "fetched_at": "2026-08-28T04:03:39.404524+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ubisoft/Sharpmake"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 100, "rhythm": 96}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3267, "days_push": 15, "days_rel": 26, "gap_med": 11, "n_releases_24m": 44}, "score": 98, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}