mirror of
https://github.com/meshtastic/Meshtastic-Android.git
synced 2026-10-03 09:04:32 -04:00
docs: publish channels: main
This commit is contained in:
1 parent
a3f8c4957d
commit
215b4f47fd
6 files changed
+32
-26
No files matched your search
@@ -10,6 +10,7 @@
|
||||
│ ├── connections/
|
||||
│ ├── map/
|
||||
│ ├── map-maplibre/
|
||||
│ ├── map-terrain/
|
||||
│ ├── node/
|
||||
│ ├── settings/
|
||||
│ ├── firmware/
|
||||
@@ -52,11 +53,11 @@
|
||||
├── specs/ # Feature specifications
|
||||
└── .github/workflows/ # CI/CD workflows
|
||||
</code></pre></div></div> <h2 id="namespacing-convention"> <a href="#namespacing-convention" class="anchor-heading" aria-labelledby="namespacing-convention"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Namespacing Convention </h2> <p>All Kotlin packages follow the pattern:</p> <div class="language-text highlighter-rouge"><div class="highlight"><pre class="highlight"><code>org.meshtastic.{layer}.{module}.{subpackage}
|
||||
</code></pre></div></div> <p>Examples:</p> <ul> <li><code class="language-plaintext highlighter-rouge">org.meshtastic.core.navigation</code> — core navigation module</li> <li><code class="language-plaintext highlighter-rouge">org.meshtastic.feature.docs.ui</code> — docs feature UI package</li> <li><code class="language-plaintext highlighter-rouge">org.meshtastic.app.di</code> — app DI configuration</li> </ul> <h2 id="build-system"> <a href="#build-system" class="anchor-heading" aria-labelledby="build-system"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Build System </h2> <h3 id="gradle-kotlin-dsl"> <a href="#gradle-kotlin-dsl" class="anchor-heading" aria-labelledby="gradle-kotlin-dsl"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Gradle Kotlin DSL </h3> <p>All build files use Kotlin DSL (<code class="language-plaintext highlighter-rouge">.gradle.kts</code>). Configuration:</p> <ul> <li><strong>Version catalog:</strong> <code class="language-plaintext highlighter-rouge">gradle/libs.versions.toml</code></li> <li><strong>Convention plugins:</strong> <code class="language-plaintext highlighter-rouge">build-logic/convention/</code></li> <li><strong>Settings:</strong> <code class="language-plaintext highlighter-rouge">settings.gradle.kts</code></li> </ul> <h3 id="convention-plugins"> <a href="#convention-plugins" class="anchor-heading" aria-labelledby="convention-plugins"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Convention Plugins </h3> <p>Located in <code class="language-plaintext highlighter-rouge">build-logic/convention/src/main/kotlin/</code>. The full set is registered in <code class="language-plaintext highlighter-rouge">build-logic/convention/build.gradle.kts</code>; these are the ones a module build applies most often:</p> <div class="table-wrapper"><table> <thead> <tr> <th>Plugin</th> <th>Purpose</th> </tr> </thead> <tbody> <tr> <td><code class="language-plaintext highlighter-rouge">meshtastic.kmp.feature</code></td> <td>Standard feature module setup</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge">meshtastic.kmp.library</code></td> <td>Shared KMP library module</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge">meshtastic.kmp.library.compose</code></td> <td>KMP library that also ships Compose UI</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge">meshtastic.kmp.jvm.android</code></td> <td>JVM + Android target configuration</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge">meshtastic.koin</code></td> <td>Koin Annotations + K2 compiler plugin</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge">meshtastic.kotlinx.serialization</code></td> <td>Serialization plugin setup</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge">meshtastic.android.room</code></td> <td>Room KMP setup and schema location</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge">meshtastic.android.screenshot</code></td> <td>Compose Preview screenshot testing</td> </tr> </tbody> </table></div> <p>The rest cover the application and library variants, lint, detekt, spotless, Dokka, Kover, AboutLibraries, analytics, secrets, the docs tasks and the root aggregate — read the <code class="language-plaintext highlighter-rouge">register(…)</code> block rather than assuming a plugin does or does not exist.</p> <h3 id="build-variants-android"> <a href="#build-variants-android" class="anchor-heading" aria-labelledby="build-variants-android"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Build Variants (Android) </h3> <div class="table-wrapper"><table> <thead> <tr> <th>Flavor</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><code class="language-plaintext highlighter-rouge">google</code></td> <td>Google Play distribution; includes proprietary APIs</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge">fdroid</code></td> <td>F-Droid distribution; FOSS-only dependencies</td> </tr> </tbody> </table></div> <h3 id="key-gradle-tasks"> <a href="#key-gradle-tasks" class="anchor-heading" aria-labelledby="key-gradle-tasks"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Key Gradle Tasks </h3> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># Compile check across all KMP targets</span>
|
||||
</code></pre></div></div> <p>Examples:</p> <ul> <li><code class="language-plaintext highlighter-rouge">org.meshtastic.core.navigation</code> — core navigation module</li> <li><code class="language-plaintext highlighter-rouge">org.meshtastic.feature.docs.ui</code> — docs feature UI package</li> <li><code class="language-plaintext highlighter-rouge">org.meshtastic.app.di</code> — app DI configuration</li> </ul> <h2 id="build-system"> <a href="#build-system" class="anchor-heading" aria-labelledby="build-system"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Build System </h2> <h3 id="gradle-kotlin-dsl"> <a href="#gradle-kotlin-dsl" class="anchor-heading" aria-labelledby="gradle-kotlin-dsl"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Gradle Kotlin DSL </h3> <p>All build files use Kotlin DSL (<code class="language-plaintext highlighter-rouge">.gradle.kts</code>). Configuration:</p> <ul> <li><strong>Version catalog:</strong> <code class="language-plaintext highlighter-rouge">gradle/libs.versions.toml</code></li> <li><strong>Convention plugins:</strong> <code class="language-plaintext highlighter-rouge">build-logic/convention/</code></li> <li><strong>Settings:</strong> <code class="language-plaintext highlighter-rouge">settings.gradle.kts</code></li> </ul> <h3 id="convention-plugins"> <a href="#convention-plugins" class="anchor-heading" aria-labelledby="convention-plugins"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Convention Plugins </h3> <p>Located in <code class="language-plaintext highlighter-rouge">build-logic/convention/src/main/kotlin/</code>. The full set is registered in <code class="language-plaintext highlighter-rouge">build-logic/convention/build.gradle.kts</code>; these are the ones a module build applies most often:</p> <div class="table-wrapper"><table> <thead> <tr> <th>Plugin</th> <th>Purpose</th> </tr> </thead> <tbody> <tr> <td><code class="language-plaintext highlighter-rouge">meshtastic.kmp.feature</code></td> <td>Standard feature module setup</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge">meshtastic.kmp.library</code></td> <td>Shared KMP library module</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge">meshtastic.kmp.library.compose</code></td> <td>KMP library that also ships Compose UI</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge">meshtastic.kmp.jvm.android</code></td> <td>Adds the <code class="language-plaintext highlighter-rouge">jvmAndroidMain</code> source set shared by the Android and desktop JVM targets</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge">meshtastic.koin</code></td> <td>Koin Annotations + K2 compiler plugin</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge">meshtastic.kotlinx.serialization</code></td> <td>Serialization plugin setup</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge">meshtastic.android.room</code></td> <td>Room KMP setup and schema location</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge">meshtastic.android.screenshot</code></td> <td>Compose Preview screenshot testing</td> </tr> </tbody> </table></div> <p>The rest cover the application and library variants, lint, detekt, spotless, Dokka, Kover, AboutLibraries, analytics, secrets, the docs tasks and the root aggregate — read the <code class="language-plaintext highlighter-rouge">register(…)</code> block rather than assuming a plugin does or does not exist.</p> <h3 id="build-variants-android"> <a href="#build-variants-android" class="anchor-heading" aria-labelledby="build-variants-android"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Build Variants (Android) </h3> <div class="table-wrapper"><table> <thead> <tr> <th>Flavor</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><code class="language-plaintext highlighter-rouge">google</code></td> <td>Google Play distribution; includes proprietary APIs</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge">fdroid</code></td> <td>F-Droid distribution; FOSS-only dependencies</td> </tr> </tbody> </table></div> <h3 id="key-gradle-tasks"> <a href="#key-gradle-tasks" class="anchor-heading" aria-labelledby="key-gradle-tasks"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Key Gradle Tasks </h3> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># Compile check of every KMP module for JVM and iosSimulatorArm64 (excludes :desktopApp)</span>
|
||||
./gradlew kmpSmokeCompile
|
||||
|
||||
<span class="c"># Run all tests</span>
|
||||
./gradlew allTests
|
||||
<span class="c"># Run all tests: allTests covers KMP modules, test covers Android/JVM-only modules; run both</span>
|
||||
./gradlew <span class="nb">test </span>allTests
|
||||
|
||||
<span class="c"># Code quality</span>
|
||||
./gradlew spotlessCheck detekt
|
||||
|
||||
Reference in new issue
Block a user