I'm currently testing a pre-release build of pesde 0.8.
In pesde 0.8, hook scripts such as roblox_sync_config_generator have been removed.
As a result, users can no longer generate their own default.project.json.
default.project.json is currently excluded and is also automatically omitted when dependencies are installed.
Originally, this was intended to prevent a dependency package's Roblox hierarchy from conflicting with pesde, for example, by accidentally defining a DataModel.
and to avoid requiring every user to write their own default.project.json
However, now that hook scripts are gone, I'm not sure whether default.project.json should still be excluded during dependency installation.
From a Git submodule and Wally perspective, a package's default.project.json describes how that package should appear in Roblox.
It also allows package authors to configure options such as emitLegacyScripts or exclude specific files, making it a useful part of the package itself.
This is especially relevant in pesde 0.8, where includes and build_files have been removed.
When a project containing an installed package is built with Rojo, every file in that package will now be included.
As a result, any files that are not explicitly excluded (such as documentation, .txt, .toml, or .json files) will be exposed as StringValue or ModuleScript, which does not fit well with the Roblox ecosystem.
For packages targeting both Luau and Roblox, there may also be modules that are intended for Luau only and should not be included in the Roblox build. In such cases, package authors may need to use Rojo options such as globIgnorePaths.
Additionally, Rojo has supported syncRules since version 7.5.0.
These rules control how files are transformed during synchronization, and the feature may become even more powerful as Rojo continues to evolve.
syncRules are particularly useful for handling custom file extensions that would otherwise require complex or repetitive Rojo configuration.
For example, if a package wants to distribute a default.project.json that uses syncRules, consumers currently have to duplicate the same configuration in their project's root default.project.json.
Rather than removing the possibility of creating a package that is incompatible with pesde because of an incorrectly written default.project.json, I think it would be better to respect the extensibility that default.project.json provides.
I'm currently testing a pre-release build of pesde 0.8.
In pesde 0.8, hook scripts such as
roblox_sync_config_generatorhave been removed.As a result, users can no longer generate their own
default.project.json.default.project.jsonis currently excluded and is also automatically omitted when dependencies are installed.Originally, this was intended to prevent a dependency package's Roblox hierarchy from conflicting with pesde, for example, by accidentally defining a DataModel.
and to avoid requiring every user to write their own
default.project.jsonHowever, now that hook scripts are gone, I'm not sure whether
default.project.jsonshould still be excluded during dependency installation.From a Git submodule and Wally perspective, a package's
default.project.jsondescribes how that package should appear in Roblox.It also allows package authors to configure options such as
emitLegacyScriptsor exclude specific files, making it a useful part of the package itself.This is especially relevant in pesde 0.8, where
includesandbuild_fileshave been removed.When a project containing an installed package is built with Rojo, every file in that package will now be included.
As a result, any files that are not explicitly excluded (such as documentation,
.txt,.toml, or.jsonfiles) will be exposed asStringValueorModuleScript, which does not fit well with the Roblox ecosystem.For packages targeting both Luau and Roblox, there may also be modules that are intended for Luau only and should not be included in the Roblox build. In such cases, package authors may need to use Rojo options such as
globIgnorePaths.Additionally, Rojo has supported
syncRulessince version 7.5.0.These rules control how files are transformed during synchronization, and the feature may become even more powerful as Rojo continues to evolve.
syncRulesare particularly useful for handling custom file extensions that would otherwise require complex or repetitive Rojo configuration.For example, if a package wants to distribute a
default.project.jsonthat usessyncRules, consumers currently have to duplicate the same configuration in their project's rootdefault.project.json.Rather than removing the possibility of creating a package that is incompatible with pesde because of an incorrectly written
default.project.json, I think it would be better to respect the extensibility thatdefault.project.jsonprovides.