Skip to content

Publishing Packages

Configuration

Before you can publish a package, you must configure the required fields in your pesde.toml file.

includes

The includes field is a list of globs that should be included in the package.

includes = [
"pesde.toml",
"README.md",
"LICENSE",
"src/**/*.luau",
]

target

The target field defines the environment where the package can be run.

Here, you must also specify the lib and/or bin fields to indicate the path of the exported library or binary.

[target]
environment = "luau"
lib = "init.luau"

Roblox

bin is not supported in Roblox packages. You must also specify a list of build_files. These are the files that should be synced into Roblox. They are passed to the roblox_sync_config_generator script.

[target]
environment = "roblox"
lib = "src/init.luau"
build_files = ["src"]

Authentication

Before you can publish a package, you must authenticate with your GitHub account.

Terminal window
pesde auth login

You will be given a code and prompted to open the GitHub authentication page in your browser. You must enter the code to authenticate.

Publishing

To publish a package, run the following command:

Terminal window
pesde publish

You will be prompted to confirm the package details before publishing.

Once a package is published, others will be able to install it. You may not remove a package once it has been published. You may not publish a package with an already existing version.

Multi-target Packages

You may publish packages under the same name and version but with different targets. This allows you to publish a package that can be used in multiple environments.

For example, you may publish a package that can be used in both Roblox and Luau environments by publishing two versions of the package, one for each environment.

Documentation

The README.md file in the root of the package will be displayed on the pesde registry website.

You can include a docs directory in the package containing markdown files and they will be available on the pesde registry website. You can see an example in pesde/hello.

Customizing the sidebar

You can include frontmatter with a sidebar_position to customize the order of the pages on the sidebar.

docs/getting-started.md
---
sidebar_position: 2
---
# Getting Started
Lorem ipsum odor amet, consectetuer adipiscing elit. Eleifend consectetur id
consequat conubia fames curae?

You can have directories in the docs directory to create nested pages. These will show up as collapsible sections in the sidebar. You can include a _category_.json file inside the nested directories to customize the label and the ordering in the sidebar.

docs/guides/_category_.json
{
"label": "Guides",
"position": 3
}