├── .github ├── ISSUE_TEMPLATE │ └── proposal.yml ├── pr-badge.yml ├── scripts │ ├── deno.json │ └── transform-message.ts ├── settings.yml └── workflows │ └── Lark-notification.yml ├── Charter.md └── README.md /.github/ISSUE_TEMPLATE/proposal.yml: -------------------------------------------------------------------------------- 1 | name: 工作提案 2 | description: 较为成型的一项工作提议(尚不成熟的想法先在 Discussion 板块发帖) 3 | labels: 4 | - s0-strawman 5 | body: 6 | - type: input 7 | attributes: 8 | label: 实施周期 9 | validations: 10 | required: true 11 | - type: input 12 | attributes: 13 | label: 工作/项目组 14 | - type: input 15 | attributes: 16 | label: 相关个人 17 | description: 示例:@GitHub_ID x N 18 | validations: 19 | required: true 20 | - type: textarea 21 | attributes: 22 | label: 涉及物资 23 | value: |- 24 | 示例: 25 | - [x] 现有物料、资金 26 | - [ ] 待募集物料、资金 27 | - type: textarea 28 | attributes: 29 | label: 方案详情 30 | validations: 31 | required: true 32 | - type: markdown 33 | attributes: 34 | value: >- 35 | This template was generated with 36 | [Issue Forms Creator](https://issue-forms-creator.netlify.app) 37 | -------------------------------------------------------------------------------- /.github/pr-badge.yml: -------------------------------------------------------------------------------- 1 | - icon: visualstudio 2 | label: "GitHub.dev" 3 | message: "PR-$prNumber" 4 | color: "blue" 5 | url: "https://github.dev/$owner/$repo/pull/$prNumber" 6 | 7 | - icon: github 8 | label: "GitHub codespaces" 9 | message: "PR-$prNumber" 10 | color: "black" 11 | url: "https://codespaces.new/$owner/$repo/pull/$prNumber" 12 | 13 | - icon: git 14 | label: "GitPod.io" 15 | message: "PR-$prNumber" 16 | color: "orange" 17 | url: "https://gitpod.io/?autostart=true#https://github.com/$owner/$repo/pull/$prNumber" 18 | -------------------------------------------------------------------------------- /.github/scripts/deno.json: -------------------------------------------------------------------------------- 1 | { 2 | "nodeModulesDir": "none" 3 | } 4 | -------------------------------------------------------------------------------- /.github/scripts/transform-message.ts: -------------------------------------------------------------------------------- 1 | import { components } from "npm:@octokit/openapi-types"; 2 | import { stdin } from "npm:zx"; 3 | 4 | type GitHubSchema = components["schemas"]; 5 | 6 | interface GitHubAction 7 | extends Record<"event_name" | "actor" | "server_url" | "repository", string> { 8 | action?: string; 9 | ref?: string; 10 | ref_name?: string; 11 | event: { 12 | head_commit?: GitHubSchema["git-commit"]; 13 | issue?: GitHubSchema["webhook-issues-opened"]["issue"]; 14 | pull_request?: GitHubSchema["pull-request"]; 15 | discussion?: GitHubSchema["discussion"]; 16 | comment?: GitHubSchema["issue-comment"]; 17 | release?: GitHubSchema["release"]; 18 | }; 19 | } 20 | 21 | // Helper functions 22 | const getActionText = (action?: string) => 23 | action === "closed" ? "关闭" : action?.includes("open") ? "打开" : "编辑"; 24 | 25 | const createLink = (href: string, text = href) => ({ tag: "a", href, text }); 26 | 27 | const createText = (text: string) => ({ tag: "text", text }); 28 | 29 | // 新增辅助函数 30 | const createUserLink = (user?: { login: string; html_url: string }) => 31 | user ? createLink(user.html_url, user.login) : createText("无"); 32 | 33 | const createContentItem = ( 34 | label: string, 35 | value?: string | { tag: string; text: string } 36 | ) => 37 | [ 38 | createText(label), 39 | typeof value === "string" 40 | ? createText(value || "无") 41 | : value || createText("无"), 42 | ] as [object, object]; 43 | 44 | type EventHandler = ( 45 | event: GitHubAction, 46 | actionText: string 47 | ) => { 48 | title: string; 49 | content: [object, object][]; 50 | }; 51 | 52 | // Event handlers 53 | const eventHandlers: Record = { 54 | push: ({ 55 | event: { head_commit }, 56 | ref, 57 | ref_name, 58 | server_url, 59 | repository, 60 | actor, 61 | }) => ({ 62 | title: "GitHub 代码提交", 63 | content: [ 64 | [createText("提交链接:"), createLink(head_commit!.url)], 65 | [ 66 | createText("代码分支:"), 67 | createLink(`${server_url}/${repository}/tree/${ref_name}`, ref), 68 | ], 69 | [createText("提交作者:"), createLink(`${server_url}/${actor}`, actor)], 70 | [createText("提交信息:"), createText(head_commit!.message)], 71 | ], 72 | }), 73 | 74 | issues: ({ event: { issue } }, actionText) => ({ 75 | title: `GitHub issue ${actionText}:${issue?.title}`, 76 | content: [ 77 | [createText("链接:"), createLink(issue!.html_url)], 78 | [ 79 | createText("作者:"), 80 | createLink(issue?.user?.html_url, issue?.user?.login), 81 | ], 82 | [ 83 | createText("指派:"), 84 | issue?.assignee 85 | ? createLink(issue.assignee.html_url, issue.assignee.login) 86 | : createText("无"), 87 | ], 88 | [ 89 | createText("标签:"), 90 | createText(issue?.labels?.map(({ name }) => name).join(", ") || "无"), 91 | ], 92 | [createText("里程碑:"), createText(issue?.milestone?.title || "无")], 93 | [createText("描述:"), createText(issue?.body || "无")], 94 | ], 95 | }), 96 | 97 | pull_request: ({ event: { pull_request } }, actionText) => ({ 98 | title: `GitHub PR ${actionText}:${pull_request?.title}`, 99 | content: [ 100 | [createText("链接:"), createLink(pull_request!.html_url)], 101 | [ 102 | createText("作者:"), 103 | createLink(pull_request?.user.html_url, pull_request?.user.login), 104 | ], 105 | [ 106 | createText("指派:"), 107 | pull_request?.assignee 108 | ? createLink( 109 | pull_request.assignee.html_url, 110 | pull_request.assignee.login 111 | ) 112 | : createText("无"), 113 | ], 114 | [ 115 | createText("标签:"), 116 | createText( 117 | pull_request?.labels?.map(({ name }) => name).join(", ") || "无" 118 | ), 119 | ], 120 | [ 121 | createText("里程碑:"), 122 | createText(pull_request?.milestone?.title || "无"), 123 | ], 124 | [createText("描述:"), createText(pull_request?.body || "无描述")], 125 | ], 126 | }), 127 | 128 | comment: ({ event: { comment, issue, discussion } }, actionText) => ({ 129 | title: `GitHub 帖子评论:${issue?.title || discussion?.title || "未知帖子"}`, 130 | content: [ 131 | createContentItem("链接:", comment?.html_url), 132 | createContentItem( 133 | "作者:", 134 | comment?.user ? createUserLink(comment.user) : createText("无") 135 | ) as [any, any], 136 | createContentItem("描述:", comment?.body || "无描述"), 137 | ], 138 | }), 139 | 140 | release: ({ event: { release } }) => ({ 141 | title: `GitHub Release 发布:${release!.name || release!.tag_name}`, 142 | content: [ 143 | createContentItem("链接:", release!.html_url), 144 | createContentItem( 145 | "作者:", 146 | release!.author && createUserLink(release.author) 147 | ), 148 | createContentItem("描述:", release!.body), 149 | ], 150 | }), 151 | }; 152 | 153 | // Main processor 154 | const processEvent = (event: GitHubAction) => { 155 | const { event_name, action } = event; 156 | const actionText = getActionText(action); 157 | const handler = eventHandlers[event_name]; 158 | 159 | if (!handler) { 160 | throw new Error(`No handler found for event: ${event_name}`); 161 | } 162 | 163 | try { 164 | return handler(event, actionText); 165 | } catch (cause) { 166 | throw new Error(`Error processing ${event_name} event: ${cause.message}`, { 167 | cause, 168 | }); 169 | } 170 | }; 171 | 172 | // Main execution:Processing GitHub Events and Outputting Results 173 | const event = JSON.parse((await stdin()) || "{}") as GitHubAction; 174 | const zh_cn = processEvent(event); 175 | 176 | if (zh_cn) { 177 | console.log(JSON.stringify({ post: { zh_cn } })); 178 | } else { 179 | throw new Error( 180 | `Unsupported ${event.event_name} event & ${event.action} action` 181 | ); 182 | } 183 | -------------------------------------------------------------------------------- /.github/settings.yml: -------------------------------------------------------------------------------- 1 | # These settings are synced to GitHub by https://probot.github.io/apps/settings/ 2 | 3 | repository: 4 | allow_merge_commit: false 5 | 6 | delete_branch_on_merge: true 7 | 8 | enable_vulnerability_alerts: true 9 | 10 | labels: 11 | - name: bug 12 | color: "#d73a4a" 13 | description: Something isn't working 14 | 15 | - name: documentation 16 | color: "#0075ca" 17 | description: Improvements or additions to documentation 18 | 19 | - name: duplicate 20 | color: "#cfd3d7" 21 | description: This issue or pull request already exists 22 | 23 | - name: enhancement 24 | color: "#a2eeef" 25 | description: Some improvements 26 | 27 | - name: feature 28 | color: "#16b33f" 29 | description: New feature or request 30 | 31 | - name: good first issue 32 | color: "#7057ff" 33 | description: Good for newcomers 34 | 35 | - name: help wanted 36 | color: "#008672" 37 | description: Extra attention is needed 38 | 39 | - name: invalid 40 | color: "#e4e669" 41 | description: This doesn't seem right 42 | 43 | - name: question 44 | color: "#d876e3" 45 | description: Further information is requested 46 | 47 | - name: wontfix 48 | color: "#ffffff" 49 | description: This will not be worked on 50 | 51 | - name: s0-strawman 52 | color: "#fbca04" 53 | description: "Stage 0: a free-form way of submitting ideas." 54 | 55 | - name: s1-proposal 56 | color: "#0a045e" 57 | description: "Stage 1: a formal proposal." 58 | 59 | - name: s2-draft 60 | color: "#6e5bbf" 61 | description: "Stage 2: a first version of what will be in the specification." 62 | 63 | - name: s3-candidate 64 | color: "#5dea98" 65 | description: "Stage 3: the proposal is mostly finished and now needs feedback from implementations." 66 | 67 | - name: s4-finished 68 | color: "#0052cc" 69 | description: "Stage 4: The proposal is ready to be included in the standard." 70 | 71 | branches: 72 | - name: main 73 | # https://docs.github.com/en/rest/reference/repos#update-branch-protection 74 | protection: 75 | # Required. Require at least one approving review on a pull request, before merging. Set to null to disable. 76 | required_pull_request_reviews: 77 | # The number of approvals required. (1-6) 78 | required_approving_review_count: 1 79 | # Dismiss approved reviews automatically when a new commit is pushed. 80 | dismiss_stale_reviews: true 81 | # Blocks merge until code owners have reviewed. 82 | require_code_owner_reviews: true 83 | # Specify which users and teams can dismiss pull request reviews. 84 | # Pass an empty dismissal_restrictions object to disable. 85 | # User and team dismissal_restrictions are only available for organization-owned repositories. 86 | # Omit this parameter for personal repositories. 87 | dismissal_restrictions: 88 | # users: [] 89 | # teams: [] 90 | # Required. Require status checks to pass before merging. Set to null to disable 91 | required_status_checks: 92 | # Required. Require branches to be up to date before merging. 93 | strict: true 94 | # Required. The list of status checks to require in order to merge into this branch 95 | contexts: [] 96 | # Required. Enforce all configured restrictions for administrators. 97 | # Set to true to enforce required status checks for repository administrators. 98 | # Set to null to disable. 99 | enforce_admins: true 100 | # Prevent merge commits from being pushed to matching branches 101 | required_linear_history: true 102 | # Required. Restrict who can push to this branch. 103 | # Team and user restrictions are only available for organization-owned repositories. 104 | # Set to null to disable. 105 | restrictions: null 106 | -------------------------------------------------------------------------------- /.github/workflows/Lark-notification.yml: -------------------------------------------------------------------------------- 1 | name: Lark notification 2 | 3 | # https://docs.github.com/en/actions/writing-workflows/choosing-when-your-workflow-runs/events-that-trigger-workflows 4 | on: 5 | push: 6 | issues: 7 | pull_request: 8 | types: 9 | - opened 10 | - reopened 11 | - closed 12 | - edited 13 | - assigned 14 | - unassigned 15 | - labeled 16 | - unlabeled 17 | discussion: 18 | issue_comment: 19 | discussion_comment: 20 | release: 21 | types: 22 | - published 23 | 24 | jobs: 25 | send-Lark-message: 26 | runs-on: ubuntu-latest 27 | steps: 28 | - uses: actions/checkout@v4 29 | 30 | - uses: denoland/setup-deno@v2 31 | with: 32 | deno-version: v2.x 33 | 34 | - name: Event Message serialization 35 | id: message 36 | run: | 37 | YAML=$(echo '${{ toJSON(github) }}' | deno --allow-all .github/scripts/transform-message.ts) 38 | { 39 | echo 'content<> $GITHUB_OUTPUT 43 | 44 | - name: Send message to Lark 45 | uses: foxundermoon/feishu-action@v2 46 | if: ${{ contains(steps.message.outputs.content, ':') }} 47 | with: 48 | url: ${{ secrets.LARK_CHATBOT_HOOK_URL }} 49 | msg_type: post 50 | content: | 51 | ${{ steps.message.outputs.content }} 52 | -------------------------------------------------------------------------------- /Charter.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 开源社章程 3 | date: 2014-10-16 4 | updated: 2025-02-27 21:22:00 5 | categories: 6 | - Profile 7 | --- 8 | 9 | ## 第一章 总则 10 | 11 | - 第一条 开源社是由志愿贡献于开源事业的个人志愿者,依 “贡献、共识、共治” 原则所组成的开源社区。 12 | 13 | - 第二条 开源社的英文名称为“KAIYUANSHE”,官方网站地址为: https://kaiyuanshe.cn 。 14 | 15 | - 第三条 开源社的愿景为:立足中国、贡献全球,推动开源成为新时代的生活方式。 16 | 17 | - 第四条 开源社的使命为:开源治理、国际接轨、社区发展、项目孵化,携手国内外社区、基金会、高校、企业和政府等,共创健康可持续发展的开源生态体系。 18 | 19 | - 第五条 开源社的宗旨为:推广开源精神,凝聚众人向善之力,汇聚众人向善之智,开放协作、互惠共赢,为这个世界变得更好做出贡献。(引自开源社《开源人宣言》) 20 | 21 | - 第六条 开源社的理念为:作为 Open Source Initiative(OSI)在中国的首个成员,认同 OSI 对于开源的定义,并鼓励更多的中国开发者与中国企业,了解、认同并选用符合 OSI 定义的开源许可协议。 22 | 23 | - 第七条 开源社遵守国家法律法规和社会公序良俗,遵循国家有关方针政策。 24 | 25 | ## 第二章 业务范围 26 | 27 | - 第八条 开源社开展的业务,包括但不限于: 28 | 29 | - (一)组织开源相关会议、沙龙、工作坊等各类活动; 30 | 31 | - (二)运营线上媒体平台,传播开源相关文化知识资讯; 32 | 33 | - (三)开展开源相关内容翻译、报告编写等研究工作; 34 | 35 | - (四)开发运维开源相关工具平台等线上基础设施; 36 | 37 | - (五)联络合作不同类型、领域的各类开源社区/组织; 38 | 39 | - (六)对接海内外开源社区/组织,开展国际交流合作; 40 | 41 | - (七)面向高校、企业、社区等进行开源分享、培训; 42 | 43 | - (八)为项目、社区提供开发、咨询、运营等支持; 44 | 45 | - (九)设计开源相关的纪念品、文化艺术创意作品等; 46 | 47 | - (十)探索推动开源理念和模式在更广泛领域的运用; 48 | 49 | - (十一)其他开源相关的工作。 50 | 51 | ## 第三章 成员 52 | 53 | - 第九条 开源社成员包括社区成员、正式成员等各类个人志愿者。 54 | 55 | - 第十条 所有对开源感兴趣,并已经加入开源社工作组或项目组,做出具体贡献的个人志愿者,经过至少两名开源社正式成员的推荐(两位正式成员的推荐语,皆需明确地说明被推荐人对开源以及开源社的具体贡献事迹,作为正式成员投票的参考依据),可以申请成为开源社的正式成员。 56 | 57 | - 第十一条 社区成员可以以个人身份申请成为开源社正式成员,经 60% 以上的正式成员投票,且候选人获得的赞成票超过反对票,即通过选举成为开源社正式成员。 58 | 59 | - 第十二条 正式成员的权利如下: 60 | 61 | - (一)享有“开源社正式成员”的称号; 62 | 63 | - (二)享有在开源社官网正式成员名单中进行展示的权利; 64 | 65 | - (三)可申请获得开源社的官方邮箱账号; 66 | 67 | - (四)可申请获得开源社名片,并印制在开源社所担任的志愿者职衔(如组长、副组长、秘书、正式成员等); 68 | 69 | - (五)享有开源社正式成员提名/推荐权以及选举权; 70 | 71 | - (六)享有开源社理事等志愿者职衔的提名/推荐权、选举权以及被选举权; 72 | 73 | - (七)享有对开源社事务的建议权; 74 | 75 | - (八)可申请免费或优惠参加开源社各种线上线下活动,将视预算及申请人状况等条件进行审核; 76 | 77 | - (九)可申请获得参加开源社线下活动、代表开源社参加国际开源大会的相关必要差旅补助,将视预算及申请人状况等条件进行审核; 78 | 79 | - (十)可申请协助推广正式成员所在社区或组织与开源相关的文章以及活动等; 80 | 81 | - (十一)可自愿放弃作为开源社正式成员的身份及权利。 82 | 83 | - 第十三条 正式成员的义务如下: 84 | 85 | - (一)理解并认同开源社愿景; 86 | 87 | - (二)支持并践行开源社“开源治理、国际接轨、社区发展、项目孵化”的核心使命; 88 | 89 | - (三)理解并认同开源社“贡献、共识、共治”的原则及《开源人宣言》; 90 | 91 | - (四)理解并拥护开源社的章程; 92 | 93 | - (五)选择至少一个工作组或项目组加入,并做出相应贡献; 94 | 95 | - (六)积极参与正式成员纳新投票及理事选举投票等开源社重要活动; 96 | 97 | - (七)积极参与开源社线上线下活动、推广宣传及相关的开源项目。 98 | 99 | ## 第四章 治理机构 100 | 101 | - 第十四条 开源社的治理机构包括正式成员大会、理事会、顾问委员会、法律咨询委员会,理事会下设执行委员会和项目委员会。 102 | 103 | - 第十五条 开源社的最高权力机构是正式成员大会,正式成员大会的职权是: 104 | 105 | - (一)制定和修改章程,并授权理事会起草章程草案; 106 | 107 | - (二)选举和罢免理事; 108 | 109 | - (三)由理事会决定在正式成员大会进行表决的其他重大事项。 110 | 111 | - 第十六条 正式成员大会每届一年。正式成员大会须有 2/3 以上的正式成员出席方能召开。理事选举须经到会正式成员所投有效赞成票数量大于零方能生效,理事候选人按有效赞成票数由高至低排序,位列应选人数范围内者当选。制定和修改章程以及罢免理事须经全体正式成员 2/3 以上表决通过方能生效。其他决议须经到会正式成员半数以上表决通过方能生效。 112 | 113 | - 第十七条 开源社设立理事会,代表所有正式成员利益作出决策,对正式成员大会负责。执行委员会以及项目委员会在理事会的领导下,开展日常工作。开源社执行委员会下辖数目不定的工作组,分别在某一特定领域开展工作;项目委员会下辖数目不定的项目组,分别在某一特定项目开展工作。 114 | 115 | - 第十八条 根据开源社的规模,理事会成员的数量为至多七位,如有缺额不予增补,在开源社之外的同一组织(志愿者除外)任职的理事比例不能超过 30%。理事会内设理事长一名、副理事长和理事若干。理事会成员每届任期一年,理事长连任不得超过两届。所有正式成员都可提名或自荐理事候选人,均享有理事的选举权和被选举权。 116 | 117 | - 第十九条 理事会可行使如下职权: 118 | 119 | - (一)执行正式成员大会的决议; 120 | 121 | - (二)筹备召开正式成员大会; 122 | 123 | - (三)选举和罢免理事长、副理事长; 124 | 125 | - (四)提议罢免理事,并向正式成员大会提请表决; 126 | 127 | - (五)选举和罢免执行委员会执行长,以及项目委员会主席; 128 | 129 | - (六)决定和解除执行委员会副执行长、工作组组长及副组长的任命; 130 | 131 | - (七)决定和解除项目委员会副主席、项目组组长及副组长的任命; 132 | 133 | - (八)决定正式成员退出的相关规范及事宜; 134 | 135 | - (九)起草章程草案; 136 | 137 | - (十)决定其他重要的内部管理制度; 138 | 139 | - (十一)决定工作组和项目组等机构的设立和终止; 140 | 141 | - (十二)领导开源社各机构开展工作; 142 | 143 | - (十三)批准开源社年度财务预(决)算,协调资金筹措、使用等; 144 | 145 | - (十四)决定其他重大事项。 146 | 147 | - 第二十条 理事会会议每月至少举行一次,召开的时间和地点由理事长决定,理事会会议也可通过音频或视频电话会议等方式在线举行。理事会会议须有 2/3 以上理事会成员出席方能召开,理事会决议须经到会理事半数以上表决通过方能生效。当理事会投票出现平票情况时,由理事长行使最终决定权,其意见为最终决议。 148 | 149 | 下列特别重大事项的决议,须经全体理事的 2/3 以上表决通过方能生效: 150 | 151 | - (一)提议罢免理事; 152 | 153 | - (二)起草章程草案; 154 | 155 | - (三)已通过的理事会决议的取消或修改; 156 | 157 | - (四)经全体理事的 2/3 以上表决通过所确认的其他特别重大事项。 158 | 159 | - 第二十一条 执行委员会是开源社日常执行与办事机构,实行执行长负责制。内设执行长一名,副执行长、工作组组长和副组长若干,每届任期一年。执行长对理事会负责。副执行长、工作组组长和副组长由执行长提名。 160 | 161 | - 第二十二条 执行委员会可行使如下职权: 162 | 163 | - (一)执行理事会决议,全权负责开源社日常事务; 164 | 165 | - (二)负责向理事会作年度工作总结报告,编制年度工作计划、财务预算和决算方案; 166 | 167 | - (三)负责受理加入开源社的申请,对其资格进行审查; 168 | 169 | - (四)负责开源社正式成员的协调工作。 170 | 171 | - 第二十三条 项目委员会是开源社项目的日常管理机构,实行项目委员会主席负责制。内设项目委员会主席一名,副主席、项目组组长和副组长若干,每届任期一年。项目委员会主席对理事会负责。副主席、项目组组长和副组长由项目委员会主席提名。 172 | 173 | - 第二十四条 项目委员会可行使如下职权: 174 | 175 | - (一)执行理事会针对项目的各项决议; 176 | 177 | - (二)负责受理开源社项目的申请,由项目委员会成员投票表决,批准项目的设立、加入或拒绝; 178 | 179 | - (三)负责协调开源社资源,促进各个项目的健康发展。 180 | 181 | - 第二十五条 工作组负责特定领域的日常工作;项目组围绕重大项目、专题、课题成立。每个工作组或项目组设组长一人,副组长、组员若干,其中组长应是开源社正式成员。工作组或项目组的数量不限。 182 | 183 | - 第二十六条 工作组或项目组的发起由正式成员提议,并说明该工作组或项目组的目标、职责范围以及工作计划,经理事会批准,正式设立。工作组以及项目组应定期提交工作报告。理事会负责评审各个工作组以及项目组的工作,并决定其工作是否继续开展。 184 | 185 | ## 第五章 资产管理和使用 186 | 187 | - 第二十七条 开源社的主要经费来源: 188 | 189 | - (一)在业务范围内开展活动和服务的收入; 190 | 191 | - (二)捐赠; 192 | 193 | - (三)资助; 194 | 195 | - (四)利息; 196 | 197 | - (五)其他合法收入。 198 | 199 | - 第二十八条 开源社的经费用于本章程规定的业务范围和事业的发展,以及日常运转的维持,不得在成员中分配,任何单位、个人不得侵占、私分和挪用。 200 | 201 | - 第二十九条 开源社委托醒源(上海)信息科技有限公司负责相关财务管理,定期公布财务报告,接受成员监督。 202 | 203 | ## 第六章 附则 204 | 205 | - 第三十条 对本章程的修改,须经理事会表决通过后,报请正式成员大会审议,经正式成员大会表决通过后生效。 206 | 207 | - 第三十一条 本章程的解释权属理事会。 208 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # KaiYuanShe - RFC 2 | 3 | 开源社工作提案、决议库 4 | 5 | [![Lark notification](https://github.com/kaiyuanshe/RFC/actions/workflows/Lark-notification.yml/badge.svg)][1] 6 | 7 | ## Quick start 快速入门 8 | 9 | 以下每项开头有数字标记、末尾有图标的,为**每个成员主导各自工作议案的基本流程**: 10 | 11 | - 1️⃣ Discussion 讨论 12 | - [历史](https://github.com/kaiyuanshe/RFC/discussions) 13 | - [开聊](https://github.com/kaiyuanshe/RFC/discussions/new)💬 14 | - [会议](https://github.com/kaiyuanshe/RFC/discussions/categories/meeting) 15 | - 2️⃣ Issue 提案 16 | - [列表](https://github.com/kaiyuanshe/RFC/issues?q=) 17 | - [提交](https://github.com/kaiyuanshe/RFC/issues/new/choose)🚀 18 | - Project 计划 19 | - [历年工作](https://github.com/kaiyuanshe/RFC/projects) 20 | - [本年进度](https://github.com/orgs/kaiyuanshe/projects/15)🔥 21 | - 3️⃣ Pull request 决议 22 | - [存档](https://github.com/kaiyuanshe/RFC/pulls) 23 | - [撰写](https://github.com/kaiyuanshe/RFC/new/main)📝 24 | - [Contributor 贡献者](https://github.com/kaiyuanshe/RFC/graphs/contributors) 25 | 26 | [1]: https://github.com/kaiyuanshe/RFC/actions/workflows/Lark-notification.yml 27 | --------------------------------------------------------------------------------