PaperMC / PaperMC/Velocity

Use YAML for Velocity config

Open
#414 9 comments 5 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

type: feature
Dominant language
Java
Stars
2.3k
Forks
959
Avg merge
5d 10h
Merged PRs (30d)
2

Description

Note: This issue is VERY early, and any code snippets shown are hypothetical, subject to change, and aren't guaranteed to work without other code modification (where applicable).

As the title states, this issue proposes the use of YAML over HOCON as the transition to completely use Configurate begins. While many may prefer the use of HOCON over the use of YAML, HOCON is currently limited on how sorting is done (by hashcode (thanks zml)). I believe that it is critical we maintain the order of config options to ease confusion on server admin/owner(s) and keep the same clean appearance that we are all used to.

I have experimented with both options, links to each are below, and believe that YAML is the best option on the market at the time of writing. With that being said, there is always the possibility of advancements in HOCON that will allow us to control the order of the config. Along with this, I do plan on writing an example converter for converting the TOML to YAML if necessary.

YAML
HOCON

(comments are currently missing, but can be added as progression is made)
YAML Config
HOCON Config

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No source files, tests, or entry points are named. Start by locating Velocity's current HOCON and Configurate handling, then review the linked YAML and HOCON examples. Done would require an agreed migration scope and implementation plan, including whether a TOML-to-YAML converter is needed.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, yaml
Domain
backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.