Skip to content

Development and contribution

Original source is MIT; dependencies, models, and media retain their terms. Chinese is the default with matching English website pages. Code/identifiers keep their real names and historical measurements retain evidence.

Clients

git clone --recurse-submodules https://github.com/NorthBoundWisdom/sonafolio.git
cd sonafolio
python3 configs/setup_local_app.py
python3 configs/ios_workflow.py build --platform mac --scheme Audio2TextApp --configuration debug --distribution ad-hoc
python3 configs/ios_workflow.py build --platform ios --scheme Audio2Text-iOS --configuration debug

Mac output is build/app/SonaFolio.app; iOS validates the simulator. Qt uses your SDK/CMake:

python3 configs/source_roots.py init-seeds --quiet
python3 configs/source_roots.py materialize --quiet
python3 configs/qt_workflow.py config --configuration Release --qt-prefix <Qt-prefix>
python3 configs/qt_workflow.py smoke --configuration Release

Use actual local SDK paths without committing them. Backend promotion needs gates/semantic review, not only compilation.

Qt controls come from the GeoControls revision pinned in source_roots.lock.jsonc.in, materialized by FreeCM under ignored build/. The window, buttons, fields, menus, popups, scroll bars and split view use shared controls. Qt packages include its MIT license. Existing local locks need the template’s GeoControls entries before initialization.

Checks and documentation

python -m ruff check .
python -m mypy
python -m pytest
python configs/check_docs.py
python configs/check_repository_language.py

Use the managed environment. Client READMEs describe Swift/Qt checks.

Website sources are in website/, output in build/website/. Chinese pages keep existing URLs, with index.en.md-style English companions built under en/. Translate all pages together; missing pairs fail documentation validation. Top header links retain the corresponding page. Strict builds/resources/policies precede Pages publication, and generated files, weights, recordings, keys, and libraries stay out of Git.

Engineering references

Research preserves original text/measurements. Package capabilities follow their release, and translated docs do not establish broader ASR validation.