Skip to content

Commit 2180096

Browse files
Initialize MOSAIC catalog structure and contribution workflow
1 parent 906efc7 commit 2180096

23 files changed

Lines changed: 1427 additions & 3 deletions
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
name: Report update
2+
description: Report a broken link or suggest a metadata correction
3+
title: "[Update]: "
4+
labels: ["update"]
5+
body:
6+
- type: input
7+
id: name
8+
attributes:
9+
label: Project name
10+
placeholder: Example Project
11+
validations:
12+
required: true
13+
14+
- type: dropdown
15+
id: update_type
16+
attributes:
17+
label: Update type
18+
options:
19+
- broken link
20+
- metadata correction
21+
- taxonomy correction
22+
- duplicate entry
23+
- archive request
24+
- other
25+
validations:
26+
required: true
27+
28+
- type: textarea
29+
id: current_issue
30+
attributes:
31+
label: What needs to be fixed?
32+
validations:
33+
required: true
34+
35+
- type: textarea
36+
id: proposed_change
37+
attributes:
38+
label: Proposed change
39+
validations:
40+
required: true
Lines changed: 154 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,154 @@
1+
name: Submit project
2+
description: Propose a new project for MOSAIC
3+
title: "[Submit]: "
4+
labels: ["submission"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
Thanks for contributing to MOSAIC.
10+
11+
If a needed domain, type, platform, or status is missing, you can mention it here or propose it in a pull request by editing the relevant file in `taxonomy/`.
12+
13+
- type: input
14+
id: name
15+
attributes:
16+
label: Project name
17+
placeholder: Example Project
18+
validations:
19+
required: true
20+
21+
- type: textarea
22+
id: description
23+
attributes:
24+
label: Description
25+
description: One sentence on what it does. One sentence on why it matters.
26+
placeholder: Example Project is a Python library for .... It matters because ....
27+
validations:
28+
required: true
29+
30+
- type: textarea
31+
id: url
32+
attributes:
33+
label: Public URLs
34+
description: One URL per line
35+
placeholder: |
36+
https://github.com/org/repo
37+
https://huggingface.co/org/model
38+
validations:
39+
required: true
40+
41+
- type: input
42+
id: platform
43+
attributes:
44+
label: Platform values
45+
description: Comma-separated values from taxonomy/platform.json
46+
placeholder: github, huggingface
47+
validations:
48+
required: true
49+
50+
- type: input
51+
id: type
52+
attributes:
53+
label: Type values
54+
description: Comma-separated values from taxonomy/types.json
55+
placeholder: library, toolkit
56+
validations:
57+
required: true
58+
59+
- type: input
60+
id: domain
61+
attributes:
62+
label: Domain values
63+
description: Comma-separated values from taxonomy/domains.json
64+
placeholder: language-culture-heritage
65+
validations:
66+
required: true
67+
68+
- type: input
69+
id: tags
70+
attributes:
71+
label: Tags
72+
description: Comma-separated keywords
73+
placeholder: darija, nlp, open-source
74+
validations:
75+
required: true
76+
77+
- type: input
78+
id: affiliations
79+
attributes:
80+
label: Affiliations
81+
description: Comma-separated organizations
82+
placeholder: Mohammed VI Polytechnic University, MAIR
83+
validations:
84+
required: true
85+
86+
- type: input
87+
id: sub_affiliations
88+
attributes:
89+
label: Sub-affiliations
90+
description: Comma-separated labs, centers, departments, or units
91+
placeholder: College of Computing, Bioinformatics Laboratory
92+
validations:
93+
required: false
94+
95+
- type: input
96+
id: language
97+
attributes:
98+
label: Language
99+
description: Comma-separated programming languages
100+
placeholder: Python, TypeScript
101+
validations:
102+
required: true
103+
104+
- type: input
105+
id: license
106+
attributes:
107+
label: License
108+
placeholder: MIT
109+
validations:
110+
required: false
111+
112+
- type: input
113+
id: doi
114+
attributes:
115+
label: DOI
116+
placeholder: 10.1234/example
117+
validations:
118+
required: false
119+
120+
- type: dropdown
121+
id: status
122+
attributes:
123+
label: Status
124+
options:
125+
- active
126+
- experimental
127+
- maintenance
128+
- inactive
129+
- archived
130+
validations:
131+
required: true
132+
133+
- type: input
134+
id: created_at
135+
attributes:
136+
label: Created at
137+
placeholder: YYYY-MM-DD
138+
validations:
139+
required: true
140+
141+
- type: textarea
142+
id: morocco_connection
143+
attributes:
144+
label: Moroccan connection
145+
description: Briefly explain the Moroccan link
146+
placeholder: Built by Moroccan researchers and used in Moroccan NLP research.
147+
validations:
148+
required: true
149+
150+
- type: textarea
151+
id: missing_taxonomy
152+
attributes:
153+
label: Missing taxonomy value, if any
154+
description: Mention any missing platform, domain, type, or status value you think should be added.

.github/pull_request_template.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
## Summary
2+
3+
Describe what this PR changes.
4+
5+
## Checklist
6+
7+
- [ ] I updated `catalog/mosaic.json` and/or `taxonomy/`
8+
- [ ] I kept the entry factual and non-promotional
9+
- [ ] I checked the taxonomy values
10+
- [ ] I ran `python scripts/validate_catalog.py`
11+
12+
## Notes
13+
14+
Anything reviewers should know.

.github/workflows/mosaic-badge.yml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
name: Update MOSAIC Badge
2+
3+
on:
4+
push:
5+
paths:
6+
- catalog/mosaic.json
7+
workflow_dispatch:
8+
9+
jobs:
10+
update-badge:
11+
runs-on: ubuntu-latest
12+
13+
steps:
14+
- name: Checkout repository
15+
uses: actions/checkout@v4
16+
17+
- name: Set up Python
18+
uses: actions/setup-python@v5
19+
with:
20+
python-version: "3.x"
21+
22+
- name: Update mosaic count badge
23+
run: python scripts/update_mosaic_badge.py
24+
25+
- name: Commit updated badge
26+
uses: stefanzweifel/git-auto-commit-action@v5
27+
with:
28+
commit_message: "chore: update MOSAIC badge"
29+
file_pattern: "catalog/mosaic-badge.json"

.github/workflows/validate.yml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
name: Validate catalog
2+
3+
on:
4+
pull_request:
5+
push:
6+
branches:
7+
- main
8+
- master
9+
10+
jobs:
11+
validate:
12+
runs-on: ubuntu-latest
13+
14+
steps:
15+
- name: Checkout
16+
uses: actions/checkout@v4
17+
18+
- name: Set up Python
19+
uses: actions/setup-python@v5
20+
with:
21+
python-version: "3.11"
22+
23+
- name: Install dependencies
24+
run: |
25+
python -m pip install --upgrade pip
26+
pip install jsonschema
27+
28+
- name: Validate catalog
29+
run: python scripts/validate_catalog.py
30+
31+
- name: Update badge
32+
run: python scripts/update_mosaic_badge.py

.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
__pycache__/
2+
*.pyc
3+
.DS_Store
4+
.venv/
5+
.env

CODE_OF_CONDUCT.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Code of Conduct
2+
3+
## Our standard
4+
5+
We want MOSAIC to be an open, respectful, and useful community resource.
6+
7+
Please:
8+
- be respectful
9+
- be constructive
10+
- be factual
11+
- be welcoming to new contributors
12+
13+
## Unacceptable behavior
14+
15+
Examples include:
16+
- harassment
17+
- personal attacks
18+
- discriminatory language
19+
- intentionally misleading submissions
20+
- spam or promotional abuse
21+
22+
## Enforcement
23+
24+
Maintainers may edit, reject, or remove contributions that do not respect this code of conduct.

0 commit comments

Comments
 (0)