Skip to content
Dale Glass edited this page Jul 24, 2022 · 3 revisions

Welcome to the Tivoli Merge wiki!

This repository is a clone of the Tivoli Cloud VR project, which shut down and relicensed its code, allowing us to include it into Overte. To avoid polluting the main repo, a good amount of work to vet what's useful and not for Overte will be done here, and Overte will get PRs.

Who can help

Anyone! You should be familiar with the old High Fidelity VR program, or its forks: Vircadia, Overte and Tivoli and have a good understanding of C++ and/or JavaScript.

To tag issues you'll have to be a memeber of the Tivoli Merge team. Just ask to join.

What to merge

We want to merge anything that could be useful to our project -- bug fixes, cool features, cleanup, etc.

What not to merge

  • Code not written by either Caitlyn or Maki. They wrote most of the code. It's not certain yet whether any other contributors agreed to the change of license. So for the time being, we're ignoring the code written by anyone else, unless we have their agreement.
  • Branding. We have our own brand.
  • Support for things we don't use. For instance commits regarding GitLab.
  • Large, complex and fragile features. If something took 50 commits to take shape, we probably don't want it yet. Large changes can be hard to integrate, and hard to debug since we're not the people that wrote them.
  • Code that is not well understood. If nobody knows exactly what a commit is doing, and why the approach taken is a good idea, it shouldn't go in until we figure it out.
  • Bugs and low quality code. Any code taken from here needs to be reviewed.
  • Most debugging code. Additional log statements, temporarily disabled features, experimentally tweaked values to see if something improves.
  • Commits that were reverted later. See the "Blame" column in the issues, which indicates the number of lines from the commit still present in the final code. If the commit was reverted or replaced with something else, it's probably a sign that it's not production ready.

How to evaluate the issues

  1. Open an issue, eg, #1
  2. Examine the associated commit
  3. Tag with a label:
  • "Tivoli: Keep" if it seems like a good idea.
  • "Tivoli: Discard" if not.
  • "Tivoli: Maybe later" if it might come useful later, but we don't need it right now.
  • "Tivoli: Discuss" to mark it as something to be looked at more closely.

How to merge the code into Overte

Familiarity with git and rebasing is highly recommended, but here's a quick-start.

Initial setup:

  1. Fork https://github.com/overte-org/overte into your own account.
  2. git clone it.
  3. git remote add tivoli https://github.com/overte-org/tivolicloud.git
  4. git fetch tivoli

Creating a PR:

  1. git checkout master -- Start from the master branch
  2. git pull -- Make sure it's up to date
  3. git checkout -b cool-tivoli-feature -- create a branch
  4. git cherry-pick cd5ea20cca2b01f7bbe7345f83079c6df1c1d0c2 -- Import a commit from Tivoli. You'll find this command at the bottom of each issue. You can put multiple commits into a single PR.
  5. Resolve conflicts, clean up, test to make sure it works.
  6. git commit -a -- Commit any additional work, write a descriptive message.
  7. git push -- Submit to your own repo, and follow git's instructions to create a PR.

Getting help

  • Come to the Overte meeting on Saturdays
  • Come to the Overte Matrix or Discord