SKaiNET is an open-source deep learning framework written in Kotlin, designed with developers in mind to enable the creation modern AI powered applications with ease.
This project follows established development practices for maintaining code quality and release management:
- Branching Model: We use GitFlow as our branching strategy for managing feature development, releases, and hotfixes.
- Versioning: We follow Semantic Versioning (SemVer) for all releases, ensuring predictable version numbering based on the nature of changes.
SKaiNET includes a reflective documentation system that keeps docs in sync with the code. During the build, a KSP processor extracts operator metadata (signatures, parameters, backend availability, implementation status) into a JSON file. A small DocGen tool then converts this JSON into AsciiDoc fragments and pages.
- Source of truth (generated): skainet-lang/skainet-lang-core/build/generated/ksp/metadata/commonMain/resources/operators.json
- Generated docs output: docs/modules/operators/generated/
- Asciidoctor site output: build/docs/asciidoc/ (if you run an Asciidoctor task locally)
Use any of the following Gradle tasks from the project root:
-
Full pipeline (recommended) ./gradlew generateDocs
- Runs KSP to produce operators.json (if needed)
- Generates AsciiDoc files under docs/modules/operators/generated
- Optionally, you can run an Asciidoctor task to build an HTML site locally (output under build/docs/asciidoc)
-
Operators documentation only ./gradlew generateOperatorDocs
- Depends on KSP; runs the built-in generateDocs task and then Asciidoctor
Open the generated AsciiDoc sources in docs/modules/operators/generated with your preferred AsciiDoc viewer. If you build an HTML site locally with Asciidoctor, open build/docs/asciidoc.
We now use the Gradle plugin (buildSrc) only. The former skainet-lang-export-ops module has been removed. All everyday workflows are covered by:
- generateDocs — converts KSP JSON to AsciiDoc
- validateOperatorSchema — validates generated operators.json against the JSON schema
Run from the project root, for example:
- ./gradlew generateDocs
- ./gradlew validateOperatorSchema
This project follows established development practices for maintaining code quality and release management:
- Branching Model: We use GitFlow as our branching strategy for managing feature development, releases, and hotfixes.
- Versioning: We follow Semantic Versioning (SemVer) for all releases, ensuring predictable version numbering based on the nature of changes.