Skip to content
Open
Show file tree
Hide file tree
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
16 changes: 16 additions & 0 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,29 @@
# Contributing Guide

We're open for Pull Requests.
Our endgoal is to bond every community out there so we'd love to get in touch with you and partake in discussions on either [Issues](https://github.com/UltraStar-Deluxe/format/issues), [PR's](https://github.com/UltraStar-Deluxe/format/pulls) or [Discord - Format Related channel](https://discord.gg/tNEXZw2QJX)

## Setup your IDE

If you want to contribute please setup your IDE or Editor correctly.
To do this you'll have to make sure the Editorconfig is used (works per default in VSCode) and that you have `pre-commit` installed so your commits are checked before pushing.

### Install & configure pre-commit (through python)

Please execute the following commands within the repositories root directory.
This will install pre-commit to your system and installs the git hooks which check your changed code on commit if your changes adhere the conventions.

1. `pip install pre-commit`
2. `pre-commit install`

### Linting

We want to ensure a consistent Markdown code style across this repository.
All markdown files will be linted via [`markdownlint-cli2-action`](https://github.com/DavidAnson/markdownlint-cli2-action).
You can run the linter locally by installing [`markdownlint-cli2`](https://github.com/DavidAnson/markdownlint-cli2) and then running

```shell
markdownlint-cli2 "**/*.md" "#docs" "#.github/PULL_REQUEST_TEMPLATE.md"
```

We currently exclude the `docs` folder and the pull request template from the Markdown linting.
1 change: 0 additions & 1 deletion .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ HOW TO WRITE A GOOD PULL REQUEST?

<!-- What inspired you to submit this pull request? -->


### More

- [ ] Added/updated documentation
Expand Down
19 changes: 19 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: Linting
on:
push:
pull_request:

jobs:
markdownlint:
name: Lint Markdown Files
runs-on: ubuntu-latest
steps:
- name: Check out Code
uses: actions/checkout@v4
- name: Run markdownlint-cli2
uses: DavidAnson/markdownlint-cli2-action@v20
with:
globs: |
**/*.md
!.github/PULL_REQUEST_TEMPLATE.md
!docs
16 changes: 16 additions & 0 deletions .markdownlint.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
default: true

# We have long lines due to semantic line breaks.
MD013: false # line-length

# GitHub understands subsequent blockquotes that are only separated by an empty line.
# This is required when using subsequent NOTE/TIP/WARNING blocks.
MD028: false # no-blanks-blockuote

# We want to use GitHub's summary/details blocks.
MD033: # no-inline-html
allowed_elements: [summary, details]

# The PULL_REQUEST_TEMPLATE.md does not meet this rule.
# We exclude linting on that file.
# MD041: false # first-line-h1
10 changes: 10 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,30 @@
# UltraStar Format Specification

This specification contains a set of rules and requirements that dictate what an UltraStar textfile is and how each item should be interpreted.

## The problem

The idea for this specification came up within the [UltraStar* Creators Community Discord](https://discord.gg/tNEXZw2QJX) as we've been roaming free following some guidelines posted at many places on the internet for over a decade.
Many programs (creator software, website hosts and karaoke software) try their best effort to support the respective tags and NoteTypes to support all the features we want. But it's been long enough and we need to standardize things to sustain the future of our precious format.

Currently there are thousands of textfiles laying around unversioned and some with problematic tags which are hard to comprehend or built support for.
There are several communities out there who do not talk to eachother so it's hard to come up with a definitive system. Let's bond together and see if we can make the best out of this format we all love.

## The endgoal

The endgoal for this project would be to:

* [ ] Bring the different communities on par with eachother to increase the quality of the produced textfiles
* [ ] Versionise the format so we can improve and add features to it
* [ ] Give each Tag or NoteType a definition and how it should be working

## Involved parties

Since the text format was introduced a little bit more than a decade ago alot of projects got to know and support it.
We'd like to give these projects a little bit of appreciation by linking to their respective GitHub page or website.

### Karaoke software

* [UltraStar Online](http://ultrastaronline.com/)
* [UltraStar Deluxe](https://github.com/UltraStar-Deluxe/USDX)
* [Performous](https://github.com/performous/performous)
Expand All @@ -28,6 +34,7 @@ We'd like to give these projects a little bit of appreciation by linking to thei
* [UltraStar Play / Melody Mania](https://github.com/UltraStar-Deluxe/Play)

### UltraStar Song Creator software

* [Yass](https://github.com/SarutaSan72/Yass)
* [Yass Reloaded](https://github.com/DoubleDee73/Yass)
* [Composer](https://github.com/performous/composer)
Expand All @@ -36,13 +43,16 @@ We'd like to give these projects a little bit of appreciation by linking to thei
* [UltraSinger](https://github.com/rakuri255/UltraSinger)

### UltraStar Textfiles hosting

* [USDB](https://usdb.animux.de)
* [UltraStar-ES](http://ultrastar-es.org/)

### Management Software

* [USDB Syncer](https://github.com/bohning/usdb_syncer)
* [UltraStar Manager](https://github.com/UltraStar-Deluxe/UltraStar-Manager)

## Public Status Board

Do you wanna take part? Or monitor the progress?
Then check out our [public status and release board](https://github.com/orgs/UltraStar-Deluxe/projects/3/views/1) and [milestones](https://github.com/UltraStar-Deluxe/format/milestones)!
Loading