Skip to content

Commit 6444e20

Browse files
authored
Merge pull request #3713 from modelscope/codex/growth-target-strict-20260916
docs: correct strict ecosystem growth target
2 parents 66eb99a + fc98a60 commit 6444e20

3 files changed

Lines changed: 54 additions & 4 deletions

File tree

‎.github/workflows/test-repository-roadmap-docs.yml‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,17 @@ on:
66
- 'docs/repository_roles.md'
77
- 'docs/repository_roles_zh.md'
88
- 'tests/test_repository_roadmap_docs.py'
9+
- 'docs/community_growth_20k.md'
10+
- 'tests/test_growth_target_doc.py'
911
- '.github/workflows/test-repository-roadmap-docs.yml'
1012
push:
1113
branches: [main]
1214
paths:
1315
- 'docs/repository_roles.md'
1416
- 'docs/repository_roles_zh.md'
1517
- 'tests/test_repository_roadmap_docs.py'
18+
- 'docs/community_growth_20k.md'
19+
- 'tests/test_growth_target_doc.py'
1620
- '.github/workflows/test-repository-roadmap-docs.yml'
1721

1822
permissions:
@@ -31,3 +35,4 @@ jobs:
3135
with:
3236
python-version: '3.12'
3337
- run: python tests/test_repository_roadmap_docs.py -v
38+
- run: python tests/test_growth_target_doc.py -v

‎docs/community_growth_20k.md‎

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# FunASR Ecosystem Growth Plan: +20,000 GitHub Stars
22

3-
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.
3+
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.
44

55
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.
66

@@ -15,12 +15,14 @@ This plan focuses on useful adoption work rather than vanity marketing: if more
1515

1616
## North-star metrics
1717

18-
- GitHub stars: +20,000 across the four-repository ecosystem by 2026-09-30
18+
- GitHub stars: more than +20,000 across the four-repository ecosystem by 2026-09-30
1919
- Monthly PyPI downloads: sustained growth after each release
2020
- README quick-start success: first transcription in under 5 minutes
2121
- Deployment success: API server, WebSocket, Docker, and vLLM examples verified on fresh machines
2222
- Community throughput: faster issue triage, more external PRs, more user showcases
2323

24+
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.
25+
2426
## Audience segments
2527

2628
| 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
3436

3537
## Current campaign snapshot
3638

37-
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.
39+
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.
3840

3941
| Repository | Stars | Forks | Open issues | Open PRs | Last push |
4042
|---|---:|---:|---:|---:|---|
@@ -481,4 +483,4 @@ funasr-server --device cuda
481483

482484
## 中文摘要
483485

484-
目标不是单纯“求 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 社区运营。
486+
目标不是单纯“求 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 社区运营。

‎tests/test_growth_target_doc.py‎

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
"""Keep the campaign's strict target distinct from an inclusive increment."""
2+
3+
from pathlib import Path
4+
import re
5+
import unittest
6+
7+
8+
ROOT = Path(__file__).resolve().parents[1]
9+
10+
11+
class GrowthTargetDocTests(unittest.TestCase):
12+
@classmethod
13+
def setUpClass(cls):
14+
cls.text = (ROOT / "docs/community_growth_20k.md").read_text(encoding="utf-8")
15+
16+
def test_strict_target_and_collector_command(self):
17+
intro = self.text.split("\n\n")[1]
18+
self.assertIn("more than 20,000 additional stars", intro)
19+
self.assertIn("at least 51,225 combined stars", intro)
20+
self.assertIn("--ecosystem --baseline-stars 31224 --target-additional-stars 20001", self.text)
21+
self.assertIn("max(0, 51225 - total_stars)", self.text)
22+
self.assertIn("exactly 51,224 does not meet the strict target", self.text)
23+
24+
def test_historical_snapshot_gap_uses_strict_target(self):
25+
snapshot = self.text.split("## Current campaign snapshot", 1)[1].split("\n\n")[1]
26+
total = re.search(r"has ([\d,]+) combined GitHub stars", snapshot)
27+
gap = re.search(r"another ([\d,]+) stars to reach at least ([\d,]+)", snapshot)
28+
self.assertIsNotNone(total)
29+
self.assertIsNotNone(gap)
30+
total_stars = int(total[1].replace(",", ""))
31+
remaining, target = (int(value.replace(",", "")) for value in gap.groups())
32+
self.assertEqual(target, 31224 + 20000 + 1)
33+
self.assertEqual(remaining, max(0, target - total_stars))
34+
35+
def test_metric_and_chinese_summary_agree(self):
36+
self.assertIn("GitHub stars: more than +20,000", self.text)
37+
summary = self.text.split("## \u4e2d\u6587\u6458\u8981", 1)[1]
38+
self.assertIn("\u7d2f\u8ba1\u65b0\u589e\u8d85\u8fc7 20,000 stars", summary)
39+
self.assertIn("51,225", summary)
40+
41+
42+
if __name__ == "__main__":
43+
unittest.main()

0 commit comments

Comments
 (0)