[v1.0.0] DoomerPublish - Easy project publishing and tooling (includes template)

Any utility that assists in the creation of mods, assets, etc, go here. For example: Ultimate Doom Builder, Slade, WadSmoosh, Oblige, etc.
Forum rules
The Projects forums are ONLY for YOUR PROJECTS! If you are asking questions about a project, either find that project's thread, or start a thread in the General section instead.

Got a cool project idea but nothing else? Put it in the project ideas thread instead!

Projects for any Doom-based engine (especially 3DGE) are perfectly acceptable here too.

Please read the full rules for more details.
User avatar
Posts: 75
Joined: Wed Jul 02, 2014 2:44 pm

[v1.0.0] DoomerPublish - Easy project publishing and tooling (includes template)

Post by Fused »

DoomerPublish is a tool that makes it easier for users to develop, test and bundle their projects.

Download latest version
Github repository
Discord server

What is this?
DoomerPublish is a tool that I designed because I personally noticed that I wanted to automate a lot of common tasks that I do with my project.
These are simple things like removing files that do not need to be packed with my pk3, but also more advanced things like generating an ACS file that imitates being a "header" like from C, but for ACS.
I have also created a template project that includes more of these "automations", combined with DoomerPublish to publish my project based on what I am doing.
In short, it makes your life easier.
In order to give a full explanation of the functionalities, a wiki page will be made with release 1.1.0.

Tool Usage
The tool allows a list of arguments that specify what tasks to invoke when it's running. Not specifying one or more argument may cause a task to not run.

Generation options
  • todoAt: Specify absolute path of directory to generate a todo list.
  • decorateSummaryAt: Specify absolute path of directory to generate a decorate summary.
Compiler options
  • compilerRoot: Specify absolute path of directory containing the compiler folders.
  • compileWith: Specify if the project should be compiled (possible values: acc, bcc, gdccacc). Requires option "compilerRoot".
  • defines: Preprocessor defines for the compiler. Unused if the compiler does not support it.
  • engine: Specify the engine to support the tool in compilation (possible values: zdoom, zandronum, eternity). This is currently only relevant for GDCC compilation.
  • noWarnForwardReferences: Specify if the compiler should not warn of forward references. Only used with the GDCC compilers.
  • todoAt: Specify absolute path of directory to generate a todo list.
Task options
  • tempProject: Specify to create a temporary project.
  • publicAcs: Specify to create a public acs source.
  • removeAcs: Specify to remove the acs source.
  • removeUnrelated: Specify to remove unrelated files.
  • packDecorate: Specify to pack decorate into one file.
  • removeEmpty: Specify to remove empty directories.
The full list can be found by passing `--help` when invoking the tool.
The template has a file `publish-template.ps1` with more information on how to invoke this tool, and example code.

Template Usage
The template project is a combination of my tool and multiple Powershell scripts which automate common tasks that you will have during development.
The powershell scripts allow you to easily test, edit and publish your project.
By default, the template project has a base project for three compilers: `acc`, `bcc` and `gdcc-acc`. You can reuse these, or start a project yourself.
The template is ready to be used as-is, but be sure to read `README.md` for prerequisites that must be met if you plan on using any of the scripts out of the box.
The template does not have any compilers by default, and neither does it have the tool. These must be added manually, but explanation is added on obtaining these.
The template has an explanation on how everything works, and abstracts most of the "hard work" away in the scripts folder. You are allowed to modify this project to whatever you wish.

Feature showcase
Generating a public ACS file
This is a file that contains dummy functions and scripts that can be included in the final mod. ACS does not care if you include the real file. If you include this file, you can use all functions that you want to use, and by providing the compiled ACS in the mod's project, Zandronum will work as normal.
  • To add a function to the generated file, put `// @public` above a function or script. You can optionally provide `// @summary <text>` and provide a helpful comment in the generated file.
  • Libdefines are automatically added.
  • GDCC and BCC enums are converted into libdefines.
Generating a TODO list
The generated file will display the todo topic, and also the location of the todo item in your code.
  • The todo list uses todo comments from your ACS and Decorate files. To specify a todo item, put `// @todo <text>` or `// @todo: <text>` in your ACS or Decorate file.
Generating a Decorate summary
The generated summary will summarize all doomednums that exist in your project, in order. The generated summary will also display a list of all known actors in your project, including inherited actor and doomednum if it has one.
Generating a summary using the Floppy Disk Mod, this was the result (warning, it's a lot):

Return to “Creation, Conversion, and Editing”