Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
0d2648f
chore: Ruby 3.3+ floor, modern GHA, gemspec hygiene
ronaldtse Jul 28, 2026
205638e
docs: add SECURITY.md
ronaldtse Jul 29, 2026
83b1b3c
chore(python): add pyproject.toml + ruff config; autofix imports
ronaldtse Jul 29, 2026
2c99fe9
chore(python): add pyproject.toml + ruff config; autofix 245 violations
ronaldtse Jul 29, 2026
e3c15aa
docs: add CONTRIBUTING.md
ronaldtse Jul 29, 2026
f6dfd07
docs: add CI badge
ronaldtse Jul 29, 2026
6320ec9
docs: add CHANGELOG.md
ronaldtse Jul 29, 2026
b811fe2
ci: add CodeQL workflow for Ruby
ronaldtse Jul 29, 2026
e8ecb93
feat(arabic): Day 1 SOTA sprint — modern encoder + Muon + trie decoder
ronaldtse Aug 7, 2026
69170bb
feat(modal): wire huggingface secret into fetch_data for Sadeed HF do…
ronaldtse Aug 7, 2026
9c1f394
fix: MuonAdamWHybrid scheduler/GradScaler + server-side sota_pipeline
ronaldtse Aug 7, 2026
0a0b267
fix(modal): cap sota_pipeline timeout at Modal max 24h
ronaldtse Aug 7, 2026
b5aedda
fix(modal): commit datasets volume after fetch_data so pretrain can s…
ronaldtse Aug 7, 2026
f6f5768
feat(scripts): status.py — pull all 5 progress signals into one report
ronaldtse Aug 7, 2026
6cd8a72
fix(scripts): parse modal app list table correctly
ronaldtse Aug 7, 2026
5beef45
feat(hebrew): apply DS4/K3 modern stack — mHC + AttnRes + Muon + max_…
ronaldtse Aug 7, 2026
b369dfc
fix(modal): --force wipes old run-001 dirs and old artifacts so resum…
ronaldtse Aug 7, 2026
902f117
fix(modal): commit volume after force-wipe so next container sees cle…
ronaldtse Aug 7, 2026
b259a85
fix: shrink arabic_pro to 6L/512d (40M) + guard force-wipe by task
ronaldtse Aug 7, 2026
30e0573
fix(modal): key stage status by (task, stage) so parallel pipelines d…
ronaldtse Aug 7, 2026
d47682f
feat(scripts): status.py filters stages by task prefix for parallel p…
ronaldtse Aug 7, 2026
8402a3d
feat: modern SOTA training stack for Arabic + Hebrew diacritization
ronaldtse Aug 14, 2026
f0b7392
docs: publish results, papers, and TODO.publish execution log
ronaldtse Aug 14, 2026
a14cb27
docs: TODO.runtime-arch — training-to-usage pipeline work orders + ag…
ronaldtse Aug 15, 2026
7435f00
docs(research): RL with verifiable rewards — GLM-5.3 playbook applied
ronaldtse Aug 16, 2026
4237ea1
feat: Arabic ByT5-base trainer with per-save volume commits
ronaldtse Aug 16, 2026
09df024
feat: RAFT verifiable-reward RL + frozen private dev for Arabic
ronaldtse Aug 16, 2026
333f6b9
feat: haraqat error analyzer (word-final vs internal, confusion pairs)
ronaldtse Aug 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
10 changes: 10 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
version: 2
updates:
- package-ecosystem: github-actions
directory: "/"
schedule:
interval: weekly
- package-ecosystem: bundler
directory: "/"
schedule:
interval: weekly
27 changes: 27 additions & 0 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: codeql

on:
push:
branches: [main]
pull_request:
schedule:
- cron: "0 0 * * 0" # weekly

permissions:
actions: read
contents: read
security-events: write

jobs:
analyze:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
language: [ruby]
steps:
- uses: actions/checkout@v7
- uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
- uses: github/codeql-action/analyze@v3
110 changes: 58 additions & 52 deletions .github/workflows/python-arabic.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,76 +6,82 @@
pull_request:

jobs:
lint:
runs-on: ubuntu-latest
continue-on-error: true # 36 pre-existing violations; see TODO.complete/08-ruff-rababa-python.md
steps:
- uses: actions/checkout@v7
- uses: actions/setup-python@v7
with:
python-version: "3.11"
- run: pip install ruff
- run: ruff check python/
- run: ruff format --check python/

infer:

Check warning

Code scanning / CodeQL

Workflow does not contain permissions Medium

Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {contents: read}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ['3.6', '3.7', '3.8', '3.9']
python-version: ["3.9"]

steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- uses: actions/checkout@v7
- uses: actions/setup-python@v7
with:
python-version: ${{ matrix.python-version }}
cache: pip
cache-dependency-path: python/arabic/requirements.txt

- uses: actions/cache@v2
with:
path: ${{ env.pythonLocation }}
key: ${{ env.pythonLocation }}-${{ hashFiles('python/arabic/setup.py') }}-${{ hashFiles('python/arabic/requirements.txt') }}
- name: Install requirements
working-directory: ./python/arabic
run: |
pip install --upgrade --upgrade-strategy eager -r requirements.txt -e .

- name: Install requirements
working-directory: ./python/arabic
run: |
pip install --upgrade --upgrade-strategy eager -r requirements.txt -e .
- name: Download PyTorch model
working-directory: ./python/arabic
run: |
curl -sSL https://github.com/secryst/rababa-models/releases/download/0.1/2000000-snapshot.pt \
-o log_dir/CA_MSA.base.cbhg/models/2000000-snapshot.pt

- name: Download PyTorch model
working-directory: ./python/arabic
run: |
curl -sSL https://github.com/secryst/rababa-models/releases/download/0.1/2000000-snapshot.pt \
-o log_dir/CA_MSA.base.cbhg/models/2000000-snapshot.pt

- name: Run diacriticization
working-directory: ./python/arabic
run: |
python diacritize.py --model_kind "cbhg" --config config/cbhg.yml --text 'قطر'
- name: Run diacriticization
working-directory: ./python/arabic
run: |
python diacritize.py --model_kind "cbhg" --config config/cbhg.yml --text 'قطر'

train:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ['3.6', '3.7', '3.8', '3.9']
python-version: ["3.9"]

steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}

- uses: actions/cache@v2
with:
path: ${{ env.pythonLocation }}
key: ${{ env.pythonLocation }}-${{ hashFiles('python/setup.py') }}-${{ hashFiles('python/requirements.txt') }}
- uses: actions/checkout@v7
- uses: actions/setup-python@v7
with:
python-version: ${{ matrix.python-version }}
cache: pip
cache-dependency-path: python/arabic/requirements.txt

- name: Install requirements
working-directory: ./python/arabic
run: |
pip install --upgrade --upgrade-strategy eager -r requirements.txt -e .
- name: Install requirements
working-directory: ./python/arabic
run: |
pip install --upgrade --upgrade-strategy eager -r requirements.txt -e .

- name: Prepare dataset
working-directory: ./python/arabic
run: |
mkdir -p data/CA_MSA
touch data/CA_MSA/{eval,train,test}.csv
cd data
curl -sSL https://github.com/interscript/rababa-tashkeela/archive/refs/tags/v1.0.zip -o tashkeela.zip
unzip tashkeela.zip
for d in `ls rababa-tashkeela-1.0/tashkeela_val/*`; do cat $d >> CA_MSA/eval.csv; done
for d in `ls rababa-tashkeela-1.0/tashkeela_train/*`; do cat $d >> CA_MSA/train.csv; done
for d in `ls rababa-tashkeela-1.0/tashkeela_test/*`; do cat $d >> CA_MSA/test.csv; done
- name: Prepare dataset
working-directory: ./python/arabic
run: |
mkdir -p data/CA_MSA
touch data/CA_MSA/{eval,train,test}.csv
cd data
curl -sSL https://github.com/interscript/rababa-tashkeela/archive/refs/tags/v1.0.zip -o tashkeela.zip
unzip tashkeela.zip
for d in `ls rababa-tashkeela-1.0/tashkeela_val/*`; do cat $d >> CA_MSA/eval.csv; done
for d in `ls rababa-tashkeela-1.0/tashkeela_train/*`; do cat $d >> CA_MSA/train.csv; done
for d in `ls rababa-tashkeela-1.0/tashkeela_test/*`; do cat $d >> CA_MSA/test.csv; done

- name: Try training (WIP)
working-directory: ./python/arabic
run: |
python train.py --model "cbhg" --config config/test_cbhg.yml
- name: Try training (WIP)
working-directory: ./python/arabic
run: |
python train.py --model "cbhg" --config config/test_cbhg.yml
20 changes: 8 additions & 12 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@ jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v7

- uses: actions/setup-ruby@v1
- uses: ruby/setup-ruby@v1
with:
ruby-version: '2.7'
architecture: 'x64'
ruby-version: '3.3'
bundler-cache: true

- run: bundle install --jobs 4 --retry 3

Expand All @@ -23,14 +23,10 @@ jobs:

- name: Publish to rubygems.org
env:
RUBYGEMS_API_KEY: ${{secrets.INTERSCRIPT_RUBYGEMS_API_KEY}}
RUBYGEMS_API_KEY: ${{ secrets.INTERSCRIPT_RUBYGEMS_API_KEY }}
run: |
gem install gem-release
touch ~/.gem/credentials
cat > ~/.gem/credentials << EOF
---
:rubygems_api_key: ${RUBYGEMS_API_KEY}
EOF
mkdir -p ~/.gem
printf -- "---\n:rubygems_api_key: %s\n" "$RUBYGEMS_API_KEY" > ~/.gem/credentials
chmod 0600 ~/.gem/credentials
git status
gem install gem-release
gem release
24 changes: 11 additions & 13 deletions .github/workflows/ruby.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,21 +11,19 @@ jobs:
strategy:
fail-fast: false
matrix:
ruby-version: ['2.6', '2.7', '3.0', '3.1', '3.2']
ruby-version: ["3.3", "3.4"]

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v7

- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby-version }}
bundler-cache: true
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby-version }}
bundler-cache: true

- name: Run rake
run: |
bundle exec rake
- name: Run rake
run: bundle exec rake

- name: Run standardrb (use bundle exec standardrb --fix)
run: |
bundle exec standardrb
- name: Run standardrb
run: bundle exec standardrb
29 changes: 29 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,32 @@ Gemfile.lock

.eggs
__pycache__

# Python training artifacts — never commit
python/log_dir/
python/data/
python/models/
python/__pycache__/
**/__pycache__/
*.pyc
*.pyo
*.onnx
*.pt

# Editor
.idea/
.vscode/

# Data caches and artifacts — fetched/cloned at build time
data/
models/
runs/
.arwiki-repo/
.hebrew-distilled-repo/
.hewiki-repo/
.sefaria-repo/
.tashkeela-repo/
.tashkeela-full-repo/
.venv-dictabert/
*.bak
python/arabic/util/constants_[A-Z]*.py
Loading
Loading