mirror of
https://github.com/modelscope/FunASR.git
synced 2026-10-12 02:19:18 +00:00
Merge pull request #3713 from modelscope/codex/growth-target-strict-20260916
docs: correct strict ecosystem growth target
This commit is contained in:
@@ -6,6 +6,8 @@ on:
|
||||
- 'docs/repository_roles.md'
|
||||
- 'docs/repository_roles_zh.md'
|
||||
- 'tests/test_repository_roadmap_docs.py'
|
||||
- 'docs/community_growth_20k.md'
|
||||
- 'tests/test_growth_target_doc.py'
|
||||
- '.github/workflows/test-repository-roadmap-docs.yml'
|
||||
push:
|
||||
branches: [main]
|
||||
@@ -13,6 +15,8 @@ on:
|
||||
- 'docs/repository_roles.md'
|
||||
- 'docs/repository_roles_zh.md'
|
||||
- 'tests/test_repository_roadmap_docs.py'
|
||||
- 'docs/community_growth_20k.md'
|
||||
- 'tests/test_growth_target_doc.py'
|
||||
- '.github/workflows/test-repository-roadmap-docs.yml'
|
||||
|
||||
permissions:
|
||||
@@ -31,3 +35,4 @@ jobs:
|
||||
with:
|
||||
python-version: '3.12'
|
||||
- run: python tests/test_repository_roadmap_docs.py -v
|
||||
- run: python tests/test_growth_target_doc.py -v
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# FunASR Ecosystem Growth Plan: +20,000 GitHub Stars
|
||||
|
||||
Baseline on 2026-06-27: the FunASR ecosystem repositories had 31,224 combined GitHub stars. The next target is earning 20,000 additional stars across the ecosystem by 2026-09-30, reaching 51,224+ combined stars through better onboarding, stronger proof, and repeatable launches.
|
||||
Baseline on 2026-06-27: the FunASR ecosystem repositories had 31,224 combined GitHub stars. The next target is earning more than 20,000 additional stars across the ecosystem by 2026-09-30, reaching at least 51,225 combined stars through better onboarding, stronger proof, and repeatable launches.
|
||||
|
||||
This plan focuses on useful adoption work rather than vanity marketing: if more users can install, evaluate, deploy, and share FunASR successfully, stars follow naturally.
|
||||
|
||||
@@ -15,12 +15,14 @@ This plan focuses on useful adoption work rather than vanity marketing: if more
|
||||
|
||||
## North-star metrics
|
||||
|
||||
- GitHub stars: +20,000 across the four-repository ecosystem by 2026-09-30
|
||||
- GitHub stars: more than +20,000 across the four-repository ecosystem by 2026-09-30
|
||||
- Monthly PyPI downloads: sustained growth after each release
|
||||
- README quick-start success: first transcription in under 5 minutes
|
||||
- Deployment success: API server, WebSocket, Docker, and vLLM examples verified on fresh machines
|
||||
- Community throughput: faster issue triage, more external PRs, more user showcases
|
||||
|
||||
The strict remaining gap is `max(0, 51225 - total_stars)`; exactly 51,224 does not meet the strict target. The metrics collector accepts an inclusive added-star target, so use `--ecosystem --baseline-stars 31224 --target-additional-stars 20001` for this campaign. Its default of 20,000 measures reaching +20,000, not exceeding it. Historical measurements below retain their original collection dates.
|
||||
|
||||
## Audience segments
|
||||
|
||||
| Audience | What they need | Repository surface that should serve them |
|
||||
@@ -34,7 +36,7 @@ This plan focuses on useful adoption work rather than vanity marketing: if more
|
||||
|
||||
## Current campaign snapshot
|
||||
|
||||
As of 2026-09-05 05:27 UTC, the ecosystem has 37,164 combined GitHub stars, or 5,940 additional stars since the 31,224 baseline. Exceeding the +20,000 target requires another 14,060 stars to reach at least 51,224 by 2026-09-30, or roughly 563 stars/day across the remaining 25 days. The latest verified PyPI cache reports 61,795 downloads over 7 days and 417,279 over 30 days through 2026-09-04; the live PyPI statistics endpoint had a TLS certificate mismatch during collection.
|
||||
As of 2026-09-05 05:27 UTC, the ecosystem has 37,164 combined GitHub stars, or 5,940 additional stars since the 31,224 baseline. Exceeding the +20,000 target requires another 14,061 stars to reach at least 51,225 by 2026-09-30, or roughly 563 stars/day across the remaining 25 days. The latest verified PyPI cache reports 61,795 downloads over 7 days and 417,279 over 30 days through 2026-09-04; the live PyPI statistics endpoint had a TLS certificate mismatch during collection.
|
||||
|
||||
| Repository | Stars | Forks | Open issues | Open PRs | Last push |
|
||||
|---|---:|---:|---:|---:|---|
|
||||
@@ -481,4 +483,4 @@ funasr-server --device cuda
|
||||
|
||||
## 中文摘要
|
||||
|
||||
目标不是单纯“求 Star”,而是让更多用户能更快完成安装、转写、部署和分享。当前增长目标按 FunASR / Fun-ASR / SenseVoice / FunClip 四仓生态统一跟踪:以 2026-06-27 的 31,224 combined stars 为基线,到 2026-09-30 累计新增 20,000 stars。最有效的抓手是:首屏转化、可复现 benchmark、OpenAI 兼容 API/流式/vLLM/Docker 部署闭环、HF/ModelScope/官网同步更新、高星生态集成,以及高效的 issue/PR 社区运营。
|
||||
目标不是单纯“求 Star”,而是让更多用户能更快完成安装、转写、部署和分享。当前增长目标按 FunASR / Fun-ASR / SenseVoice / FunClip 四仓生态统一跟踪:以 2026-06-27 的 31,224 combined stars 为基线,到 2026-09-30 累计新增超过 20,000 stars,即总量至少 51,225。最有效的抓手是:首屏转化、可复现 benchmark、OpenAI 兼容 API/流式/vLLM/Docker 部署闭环、HF/ModelScope/官网同步更新、高星生态集成,以及高效的 issue/PR 社区运营。
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
"""Keep the campaign's strict target distinct from an inclusive increment."""
|
||||
|
||||
from pathlib import Path
|
||||
import re
|
||||
import unittest
|
||||
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
|
||||
|
||||
class GrowthTargetDocTests(unittest.TestCase):
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
cls.text = (ROOT / "docs/community_growth_20k.md").read_text(encoding="utf-8")
|
||||
|
||||
def test_strict_target_and_collector_command(self):
|
||||
intro = self.text.split("\n\n")[1]
|
||||
self.assertIn("more than 20,000 additional stars", intro)
|
||||
self.assertIn("at least 51,225 combined stars", intro)
|
||||
self.assertIn("--ecosystem --baseline-stars 31224 --target-additional-stars 20001", self.text)
|
||||
self.assertIn("max(0, 51225 - total_stars)", self.text)
|
||||
self.assertIn("exactly 51,224 does not meet the strict target", self.text)
|
||||
|
||||
def test_historical_snapshot_gap_uses_strict_target(self):
|
||||
snapshot = self.text.split("## Current campaign snapshot", 1)[1].split("\n\n")[1]
|
||||
total = re.search(r"has ([\d,]+) combined GitHub stars", snapshot)
|
||||
gap = re.search(r"another ([\d,]+) stars to reach at least ([\d,]+)", snapshot)
|
||||
self.assertIsNotNone(total)
|
||||
self.assertIsNotNone(gap)
|
||||
total_stars = int(total[1].replace(",", ""))
|
||||
remaining, target = (int(value.replace(",", "")) for value in gap.groups())
|
||||
self.assertEqual(target, 31224 + 20000 + 1)
|
||||
self.assertEqual(remaining, max(0, target - total_stars))
|
||||
|
||||
def test_metric_and_chinese_summary_agree(self):
|
||||
self.assertIn("GitHub stars: more than +20,000", self.text)
|
||||
summary = self.text.split("## \u4e2d\u6587\u6458\u8981", 1)[1]
|
||||
self.assertIn("\u7d2f\u8ba1\u65b0\u589e\u8d85\u8fc7 20,000 stars", summary)
|
||||
self.assertIn("51,225", summary)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user