diff --git a/README.md b/README.md index 4f699da..ec8d0b2 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,46 @@ # roblox-project-template -A template for Roblox projects using rojo, darklua, jecs and sapphire. +An opinionated template for Roblox projects. + +# Usage + +## Forgejo + +Create a secret on the repository called `githubtoken` and set it to a GitHub PAT which can read all public repositories. +This is necessary so that actions pulling releases from GitHub can do it without ratelimits. + +Available on [my Forgejo instance](https://git.devmarked.win/marked/roblox-project-template). + +## GitHub + +Rename `.forgejo` to `.github` and change all instances of `${{ secrets.githubtoken }}` to `${{ secrets.GITHUB_TOKEN }}`. + +You may also migrate all steps to `ubuntu-latest` from `ghcr.io/catthehacker/ubuntu:act-22-04` running on docker. + +Available as a [read-only fork](https://github.com/Mark-Marks/roblox-project-template). + +# Features + +- Forgejo actions, compatible with GitHub actions with a few changes. + - [CI](/.forgejo/workflows/ci.yml) to analyze, lint and style check your code. +- [rokit](https://github.com/rojo-rbx/rokit), a toolchain manager. +- [darklua](https://github.com/seaofvoices/darklua), a Lua(u) code transformer, here used to provide string requires. +- [Rojo](https://github.com/rojo-rbx/rojo), a code syncing tool. +- [Lune](https://github.com/lune-org/lune), a Luau runtime and a multitude of scripts for it. + - [dev.luau](/.lune/dev.luau) to generate the sourcemap, transform the code with darklua, serve it with Rojo, automatically install packages, compile your networking and provide an easy way to commit & push code. + - [analyze.luau](/.lune/analyze.luau) to analyze your code with luau-lsp. + - [build.luau](/.lune/build.luau) to transform your code with darklua and build it with Rojo. + - [check.luau](/.lune/check.luau) to run StyLua, selene and luau-lsp on your code at once. + - [install-packages.luau](/.lune/install-packages.luau) to install packages. Kept in case of needing to switch to wally. +- [StyLua](https://github.com/JohnnyMorganz/stylua), an opinionated Luau formatter. +- [selene](https://github.com/kampfkarren/selene), a Lua(u) linter. +- [pesde](https://github.com/daimond113/pesde), a modern package manager for Luau and Roblox. +- [luau-lsp](https://github.com/JohnnyMorganz/luau-lsp), a language server implementation for Luau. +- [blink](https://github.com/1Axen/blink), an IDL compiler for Roblox buffer networking. +- [zed](https://github.com/zed-industries/zed) configuration for optimal experience during development. +- [sapphire](https://github.com/Mark-Marks/sapphire), a Roblox framework. + - [sapphire-data](https://github.com/Mark-Marks/sapphire/tree/main/crates/sapphire-data), providing a datastore wrapper. + - [sapphire-jecs](https://github.com/Mark-Marks/sapphire/tree/main/crates/sapphire-jecs), providing a jecs scheduler and utilities. + - [sapphire-lifecycles](https://github.com/Mark-Marks/sapphire/tree/main/crates/sapphire-lifecycles), providing extra lifecycles. + - [sapphire-logging](https://github.com/Mark-Marks/sapphire/tree/main/crates/sapphire-logging), providing a logger. +