Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 12 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,24 +23,31 @@ PR with your changes. You can start right away by using the Gitpod online worksp
[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/MovingBlocks/TeraNUI)

In Terasology, you can test easily locally until you're ready for a snapshot or release. To do so, you'll need to re-embed TeraNUI into Terasology as source which has priority over any binary version. You can get the TeraNUI library as source into your local Terasology workspace as follows:

```sh
groovyw lib get TeraNUI
```

This will place the TeraNUI source code into `/libs/TeraNUI`. Please note, that you may need to reload/refresh your gradle workspace in Intellij IDEA.

## 🤖 Maintenance

The main development of TeraNUI happens on the `master` branch, a strong main branch that always has the latest version
of the code. However, we maintain two versions of TeraNUI for [gestalt] v5 and v7, respectively. As the two code lines are nearly identical most changes to either version should be [ported back 🔗](https://docs.microsoft.com/en-us/azure/devops/repos/git/git-branching-guidance?view=azure-devops#port-changes-back-to-the-main-branch) to the other.
of the code.
With TeraNUI v3 we can support both versions of [gestalt] in a single release (v5 and v7, respectively).

We keep _release branches_ for TeraNUI's major versions.
Note that new features will only be implemented for the latest version on `master`.
The following table shows release branches and known projects using them.


| Branch | Version | gestalt | Projects |
| -------------- |:-------:|:-------:| -------- |
| `master` | v2.x | v7 | [DestinationSol] |
| `release/v1.x` | v1.x | v5 | [Terasology]
| `master` | v3.x | \* | Terasology 4.4+ |
| `release/v2.x` | v2.x | v7 | [DestinationSol] |
| `release/v1.x` | v1.x | v5 | [Terasology] prior to 4.4.0 |

Porting changes from one branch to the other should be possible by _cherry picking_ the respective commits as there are
no differences in the code (yet). **Make sure to adjust the version number to the respective branch when porting a change.**
We may port back changes made to the main line of the code to release branches by _cherry picking_ them to the respective branches.

## 🚀 Release Management

Expand All @@ -57,9 +64,6 @@ The exact build steps for this library are defined in the [Jenkinsfile](./Jenkin

🗄 [**Snapshots**][artifactory-nui-snapshot] ▪ [**Releases**][artifactory-nui-release]


> 🚧 TODO: how to consume TeraNUI from the Terasology Artifactory (e.g., gradle dependency snippet)

### Release Process

As releases are automatically triggered from `master` and `release/v{{major-version}}.x` the required steps to make a
Expand Down Expand Up @@ -96,10 +100,6 @@ non-snapshot release for any version is as follows:

> `chore: prepare next snapshot for {{version}}`


> 💚 We try to keep v1 and v2 in sync, thus this relase process should usually be executed for both branches,
> respectively.

## License

This library is licensed under the [Apache 2.0 License](http://www.apache.org/licenses/LICENSE-2.0.html).
Expand Down