Tadukooverse

Official website of Tadukooverse


Project maintained by Tadukooverse Hosted on GitHub Pages — Theme by mattgraham

Contributing to Tadukooverse

Firstly, thanks for taking the time to contribute!

The following is a set of guidelines for contributing to Tadukooverse and its projects, which are hosted in the Tadukooverse Organization on GitHub. These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request.

Table of Contents

Code of Conduct

This project and everyone participating in it is governed by the Tadukooverse Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to tadukooverse@gmail.com.

I Just Have a Question

Note: Please don’t file an issue to ask a question. You’ll get faster results by using the resources below.

We have an official website for Tadukooverse, which includes an FAQ page for frequently asked questions.

If chat is more your speed, you can join the Tadukooverse Discord server:

What Should I Know?

Vision

Our vision is to create efficient free and open source software.

In terms of efficiency, we mean both via code efficiency (/speed) as well as memory efficiency, at least as best we can manage with a garbage collected language such as Java.

In terms of it being free and open source, we mean that anyone can do pretty much whatever they want with it (including producing proprietary software) and can make extensions or modifications based on their needs using the open source code.

Note: We have a Roadmap page that shows what we’re currently doing to work towards our vision.

Main Projects

Note: These projects are in early development, so the information here is subject to change without notice. Also note that these projects are not yet transferred to the Tadukooverse organization, but will be soon.

Tadukoo Util

Tadukoo Util is meant as a collection of utility libraries for very common use. They can be used in conjunction with Tadukoo Engine/Launcher, or can be used separately in other programs if desired. This collection is not meant as a full smorgasbord of all libraries, but is just meant to include the most common libraries to be reused in most projects (e.g. common null-safe string/boolean checks, multimaps, view utilities, etc.)

Tadukoo Engine/Launcher

Tadukoo Engine and Tadukoo Launcher go hand-in-hand. Tadukoo Engine is used as a base for programs made to run in the Tadukoo Launcher. By using the launcher/engine combo instead of having completely standalone programs, any libraries used by multiple programs only need to be stored once and loaded as needed. This saves memory on the host machine by not having a library duplicated within the actual program jars.

Tadukoo Launcher provides a list of programs that are installed or may be downloaded. Once a program is selected, the launcher will download it along with its required libraries. Then the libraries and program will be loaded into memory and launched.

Tadukoo Engine provides the proper interfaces that programs should use to allow the launcheer to connect to and load them. In addition, the engine and launcher come with standard libraries from Tadukoo Util by default so they don’t need to be downloaded separately later.

If you want to read about using the Tadukoo Engine/Launcher or developing programs for it, check out the Tadukoo Engine/Launcher Guide (Coming Soon).

How Can I Contribute?

Reporting Bugs

This section guides you through submitting a bug report. Following these guidelines helps maintainers and the community understand your report, reproduce the behavior, and find related reports.

Before creating bug reports, please check this list as you might find out that you don’t need to create one. When you are creating a bug report, please include as many details as possible. Fill out the required template, the information it asks for helps us resolve issues faster.

Note: If you find a Closed issue that seems like it is the same thing that you’re experiencing, open a new issue and include a link to the original issue in the body of your new one.

Before Submitting a Bug Report

How Do I Submit a (Good) Bug Report?

Bugs are tracked as GitHub issues. After you’ve determined which repository your bug is related to, create an issue on that repository and provide the following information by filling in [the template]((/.github/ISSUE_TEMPLATE/bug-report.md).

Explain the problem and include additional details to help maintainers reproduce the problem:

Provide more context by answering these questions:

Suggesting Enhancements

This section guides you through submitting an enhancement suggestion, including completely new features and minor improvements to existing functionality. Following these guidelines helps maintainers and the community understand your suggestion and find related suggestions.

Before creating enhancement suggestions, please check this list as you might find out that you don’t need to create one. When you are creating an enhancement suggestion, please include as many details as possible. Fill in the template, including the steps that you imagine you would take if the feature you’re requesting existed.

Before Submitting an Enhancement Suggestion

How Do I Submit a (Good) Enhancement Suggestion?

Enhancement suggestions are tracked as GitHub issues. After you’ve determined which repository your enhancement suggestion is related to, create an issue on that repository and provide the following information:

Your First Code Contribution

Unsure where to begin contributing to Tadukooverse? You can start by looking through the beginner and help-wanted issues:

When you start working on an issue, create a new branch off of the release it’s for, named <release branch name>-<issue name> (e.g. v.0.2-Alpha-SNAPSHOT-Tadukoo-Look-&-Feel). For more information about how we use Git branches, check out the Git Branching Guide.

Pull Requests

The process described here has several goals:

Please follow these steps to have your contribution considered by the maintainers:

  1. Follow all instructions in the template
  2. Follow the style guides
  3. After you submit your pull request, verify that all status checks are passing
    <summary>What if the status checks are failing?</summary>If a status check is failing, and you believe that the failure is unrelated to your change, please leave a comment on the pull request explaining why you believe the failure is unrelated. A maintainer will re-run the status check for you. If we conclude that the failure was a false positive, then we will open an issue to track that problem with our status check suite.
    While the prerequisites above must be satisfied prior to having your pull request reviewed, the reviewer(s) may ask you to complete additional design work, tests, or other changes before your pull request can be ultimately accepted.

Style Guides

Java Style Guide

If you use IntelliJ, you can import these Java Code Style settings

If you use Eclipse, you can import these Java Code Style settings.

Javadoc Style Guide

Classes, fields, and methods should all be Javadoc’d so that others can understand what’s going on.

For classes, we do something similar to the following:

/**
 * Custom Cell Renderer used to just have a component draw itself (for use with custom components).
 * This can be used as either a {@link ListCellRenderer} or as a {@link TableCellRenderer}.
 *
 * @author Logan Ferree (Tadukoo)
 * @version 0.1-Alpha
 * @since Pre-Alpha
 */

For fields, we use a single line for the Javadoc, like so:

/** The x position of the Image */

For a method, if you’re simply inheriting the documentation from the method you’re overriding, you can do this on a single line. Otherwise, it should be multiple lines, like the class Javadoc is (but no need for author, version, or since):

/** {@inheritDoc} */

Git Commit Style Guide

Additional Notes

Issue and Pull Request Labels

The following lists the standard labels that typically exist in all repositories of Tadukooverse. If you notice some labels are missing in a particular repository, please open an issue on that repository.

The labels are grouped by purpose, but it’s not required that every issue use a label from every group, and an issue may also have multiple labels from the same group (e.g. Enhancement and New Module may be on the same issue).

Note: We’re currently setting up the contributing guidelines, so this list is likely to change.

Type of Issue

Label name Tadukooverse‑org :mag_right: Description
Bug search Confirmed bugs or reports that are very likely to be bugs
Documentation search Changes to be made to the documentation
Enhancement search Feature requests
New Module search Feature request which might be a good candidate for a new module, instead of extending existing modules
Testing search Changes to be made to test cases (e.g. to cover cases not currently covered)

Issue Category

Label Name Tadukooverse -org :mag_right: Description
Crash search Reports of the software completely crashing
Performance search Related to performance
Security search Related to security
UI search Related to the visual design

Level of Change

Label name Tadukooverse‑org :mag_right: Description
Epic search A large multi-faceted issue - these would likely have a list of smaller issues contributing towards them
Small Change search Represents a minor change that can be completed quickly

Issue State

Label name Tadukooverse‑org :mag_right: Description
Beginner search Less complex issues which would be good first issues to work on for users who want to contribute to Tadukooverse
Blocked search This item is blocked by another issue
Duplicate search Issues which are duplicates of other issues, i.e. they have been reported before
Help Wanted search The Tadukooverse team would appreciate help from the community in resolving these issues
Invalid search Issues which aren’t valid (e.g. user errors)
More Info Needed search More information needs collected for the bug/enhancement
Needs Reproduction search Bugs that haven’t been able to be reliably reproduced yet
Wontfix search The Tadukooverse team has decided not to fix these issues for now, either because they’re working as intended or for some other reason
Wrong Repo search Issues reported to the wrong repository

Operating System

Label Name Tadukooverse -org :mag_right: Description
Android search Related to running on Android
iOS search Related to running on iOS
Linux search Related to running on Linux
Mac search Related to running on Mac
Windows search Related to running on Windows

Pull Request Labels

Label Name Tadukooverse -org :mag_right: Description
Needs Review search Pull Requests that need to be reviewed
Needs Testing search Pull Requests that require manual testing
Requires Changes search Pull Requests that require changes based on review comments
Under Review search Pull Requests that are currently being reviewed
WIP search Pull Requests that are in progress