Code Monkey home page Code Monkey logo

tnoodle's Introduction

TNoodle Logo

TNoodle

TNoodle is a software suite that contains the official WCA scramble program. It consists of the core scrambling code (primarily written in Java) as well as a UI and server to generate a fully autonomous JAR file

Build Status

WCA Scramble Program

The official scramble program for the World Cube Association has been part of the TNoodle project since January 1, 2013. It will contain the sole official scramble program for the foreseeable future.

All WCA official competitions must always use the current version of the official scramble program. This is available from https://www.worldcubeassociation.org/regulations/scrambles/

Note that only the scramble program part of TNoodle is "official". Other TNoodle projects may be convenient for certain uses (including at official competitions), but do not have any official status.

"Scramble Program" vs. "Scrambler"

Officially, TNoodle-WCA is a scramble program, while a scrambler is a human. It is fine to refer to TNoodle as a "scrambler" colloquially, but please try to use the official convention wherever possible.

Project Details

TNoodle is organised as a multi-project Gradle build. The build files are written in the type-safe Kotlin dialect.

Every sub-project has its individual artifact configuration and build.gradle file. Furthermore, there is a central buildSrc folder, which is automatically sourced by Gradle. It contains common code and shared configuration setups.

Overview

Gradle is served through the use of a Gradle wrapper available as gradlew (UNIX systems) or gradlew.bat (DOS systems) It is recommended to set up an alias to simplify task generation, along the lines of alias gw='./gradlew --parallel'.

Get an overview of the core project tasks by executing

./gradlew tasks

Setup

Gradle automagically handles all dependencies for you. You just need an Internet connection upon your first build run!

WCA Scramble Program

When you're ready to develop, run the following and then visit http://localhost:2014/scramble/

./gradlew :webscrambles:runShadow

To build a distributable/executable .jar file, run:

./gradlew :webscrambles:shadowJar

You can run the .jar from the commandline using: (replace the $VERSION tag accordingly)

java -jar TNoodle-WCA-$VERSION.jar

Important note: You must never use a custom build for any official competitions. Contact the WCA Board and the WRC if you have any questions about this.

Releasing

First make sure that ./gradlew build works.

  • Bump the version number in the root project build.gradle.kts.
  • Verify that all tests succeed by invoking ./gradlew check.
  • Build a release JAR with ./gradlew generateOfficialRelease.

Be aware that this command will invoke all build tests! Especially for the :scrambles project, this can take some ~15 minutes to finish.

Notes

  • Each project is a fully fledged Gradle project (they each have a build.gradle.kts file). Your IDE should be able to import Gradle build structures nowadays. if not, this is a good indicator that your IDE is outdated and should be replaced.

tnoodle's People

Contributors

jfly avatar clementgallet avatar campos20 avatar pedrosino avatar fatboyxpc avatar lgarron avatar viroulep avatar dependabot[bot] avatar cs0x7f avatar mollerz avatar pluscubed avatar shelchang avatar jonatanklosko avatar baiqiang avatar timreyn avatar gyroninja avatar jgouly avatar hanwu85 avatar jpbulman avatar kotarot avatar ligio90 avatar mcccs avatar cubetastic33 avatar jfenn3883 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.