Dalamud
Dalamud copied to clipboard
DIP17/DalamudPackager: update to generate JSON + archives from csproj
This issue assumes https://github.com/goatcorp/DIPs/pull/38 is merged.
All plugin developers will be required to make DalamudPackager the final step of their build process, and to move their existing pluginname.json
metadata into the project, like so:
<ProjectExtensions>
<DalamudPlugin>
<ApiLevel>6</ApiLevel>
<Author>Ottermandias</Author>
<Name>GatherBuddy</Name>
<Punchline>Simplify Gathering and Fishing.</Punchline>
<Description>Adds commands to simplify gathering by finding nodes and fish and their locations via item name and a UI to keep track of special uptime and weather conditions.</Description>
<IconUrl>https://raw.githubusercontent.com/Ottermandias/GatherBuddy/main/images/icon.png</IconUrl>
<Tags>
<Tag>Gathering</Tag>
<Tag>Fishing</Tag>
<Tag>Miner</Tag>
<Tag>Botanist</Tag>
<Tag>Weather</Tag>
<Tag>Alarms</Tag>
<Tag>Timer</Tag>
</Tags>
<Hidden>False</Hidden>
</DalamudPlugin>
</ProjectExtensions>
DalamudPackager will then read these properties, as well as additional properties from the csproj
and other sources, and produce a plugin.json
which it then combines with the plugin itself to produce a $pluginname.zip
.
This $pluginname.zip
can then be consumed by both Dalamud (see #868) and published to the DalamudPlugins repo. It contains everything required to load the plugin, which should simplify both development and deployment.
DalamudPackager already produces a zip; the primary changes will be to make the zip the primary mode of output, and for the packager itself to generate the JSON, instead of the developer.