Update CONTRIBUTING.md
This commit is contained in:
@@ -7,7 +7,7 @@ Other repositories you can contribute to are the [core OPENRNDR](https://github.
|
|||||||
the [guide](https://github.com/openrndr/openrndr-guide/) and the [template](https://github.com/openrndr/openrndr-template/).
|
the [guide](https://github.com/openrndr/openrndr-guide/) and the [template](https://github.com/openrndr/openrndr-template/).
|
||||||
|
|
||||||
Please read the [general information about contributing to OPENRNDR](https://github.com/openrndr/openrndr/blob/master/CONTRIBUTING.md).
|
Please read the [general information about contributing to OPENRNDR](https://github.com/openrndr/openrndr/blob/master/CONTRIBUTING.md).
|
||||||
This document will focus on specific details about the ORX repository.
|
This document focuses on specific details about the ORX repository.
|
||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
@@ -18,11 +18,48 @@ There are two types of ORX extras:
|
|||||||
Each orx folder contains a `README.md`, a `build.gradle.kts` file and a `src` folder.
|
Each orx folder contains a `README.md`, a `build.gradle.kts` file and a `src` folder.
|
||||||
Please explore several orx directories to get a feel for how they look like.
|
Please explore several orx directories to get a feel for how they look like.
|
||||||
|
|
||||||
Various Gradle tasks take care of updating the README files.
|
Gradle tasks are used to update the list of ORX'es in the root README.md,
|
||||||
|
and to update the list of demos in each ORX'es README.md.
|
||||||
|
|
||||||
## README.md
|
## Folder structure (JVM)
|
||||||
|
|
||||||
Assuming you are creating an orx called `magic`, the readme file should contain the following:
|
```
|
||||||
|
orx-magic/
|
||||||
|
├── README.md
|
||||||
|
├── build.gradle.kts
|
||||||
|
└── src/
|
||||||
|
├── main/
|
||||||
|
│ └── kotlin/
|
||||||
|
│ └── Magic.kt
|
||||||
|
└── demo/
|
||||||
|
└── kotlin/
|
||||||
|
├── DemoFoo01.kt
|
||||||
|
└── DemoBar01.kt
|
||||||
|
```
|
||||||
|
|
||||||
|
## Folder structure (multiplatform)
|
||||||
|
|
||||||
|
```
|
||||||
|
orx-magic/
|
||||||
|
├── README.md
|
||||||
|
├── build.gradle.kts
|
||||||
|
└── src/
|
||||||
|
├── commonMain/kotlin/
|
||||||
|
│ └── Magic.kt
|
||||||
|
├── commonTest/kotlin/
|
||||||
|
├── jsMain/kotlin/
|
||||||
|
├── jsTest/kotlin/
|
||||||
|
├── jvmDemo/kotlin/
|
||||||
|
│ ├── DemoFoo01.kt
|
||||||
|
│ └── DemoBar01.kt
|
||||||
|
├── jvmMain/kotlin/
|
||||||
|
└── jvmTest/kotlin/
|
||||||
|
```
|
||||||
|
Note that inside `src` only `commonMain` is required.
|
||||||
|
|
||||||
|
## ORX README.md
|
||||||
|
|
||||||
|
Assuming you are creating an orx called `magic`, the readme should be formatted as follows:
|
||||||
|
|
||||||
```
|
```
|
||||||
# orx-magic
|
# orx-magic
|
||||||
@@ -31,7 +68,8 @@ One or more lines including a short description to display on the root README.md
|
|||||||
One or more lines including a short description to display on the root README.md.
|
One or more lines including a short description to display on the root README.md.
|
||||||
One or more lines including a short description to display on the root README.md.
|
One or more lines including a short description to display on the root README.md.
|
||||||
|
|
||||||
[Main content describing the usage of orx-magic goes here]
|
Main content describing the usage of orx-magic goes here
|
||||||
|
...
|
||||||
|
|
||||||
<!-- __demos__ -->
|
<!-- __demos__ -->
|
||||||
```
|
```
|
||||||
@@ -50,7 +88,7 @@ One or more lines including a short description to display on the root README.md
|
|||||||
This is specially useful for orx'es that produce graphical output, but less so for orx'es that interface
|
This is specially useful for orx'es that produce graphical output, but less so for orx'es that interface
|
||||||
with hardware (like `orx-midi`).
|
with hardware (like `orx-midi`).
|
||||||
|
|
||||||
## build.gradle.kts
|
## ORX build.gradle.kts
|
||||||
|
|
||||||
ORX `build.gradle.kts` files declare their dependencies and most follow the same structure.
|
ORX `build.gradle.kts` files declare their dependencies and most follow the same structure.
|
||||||
Please explore various build files and find the simplest one that matches your use case.
|
Please explore various build files and find the simplest one that matches your use case.
|
||||||
@@ -67,17 +105,22 @@ See an [example](https://github.com/openrndr/orx/blob/master/orx-jvm/orx-dnk3/bu
|
|||||||
|
|
||||||
### Multiplatform
|
### Multiplatform
|
||||||
|
|
||||||
The multiplatform build files can have 4 blocks: `commonMain`, `commonTest`, `jvmTest` and `jvmDemo`.
|
The multiplatform build files may have blocks like `commonMain`, `commonTest`, `jvmTest`, `jvmDemo`, etc. to specify the dependencies for each case. See an [example](https://github.com/openrndr/orx/blob/master/orx-color/build.gradle.kts).
|
||||||
See an [example](https://github.com/openrndr/orx/blob/master/orx-color/build.gradle.kts).
|
|
||||||
|
|
||||||
## Source folder
|
|
||||||
|
|
||||||
To do.
|
|
||||||
|
|
||||||
## Demos
|
## Demos
|
||||||
|
|
||||||
To do.
|
ORX'es often include a `jvmDemo` folder. This folder should contain small programs demonstrating
|
||||||
|
how the ORX can be used. When the build system runs the
|
||||||
|
[`CollectScreenShots`](buildSrc/src/main/kotlin/CollectScreenShots.kt) task,
|
||||||
|
the `SingleScreenshot()` extension will be injected into each program found inside the `jvmDemo`
|
||||||
|
folder, then executed. A PNG screenshot is saved and pushed into the [`media`](https://github.com/openrndr/orx/tree/media) brach. Finally, links to those PNG images are inserted into the README.md file of each ORX,
|
||||||
|
together with a link to the source code that produced the screenshot.
|
||||||
|
|
||||||
|
This serves two purposes: it can be useful for the user to see images of what the ORX can produce,
|
||||||
|
while it can also be usefu to detect breaking changes (in case the demo fails to run, or produces a
|
||||||
|
blank image).
|
||||||
|
|
||||||
## Gradle tasks
|
## Gradle tasks
|
||||||
|
|
||||||
To do.
|
* `CollectScreenShots`
|
||||||
|
* `buildMainReadme`
|
||||||
|
|||||||
Reference in New Issue
Block a user