How to Contribute
How to report problems and send changes to Plugify and its documentation.
Plugify is developed in the open on GitHub, in the untrustedmodders organization. Bug reports, fixes, new features and documentation improvements are welcome.
Where things live
Each part is its own repository:
| Part | Repository |
|---|---|
Core and the plug test application | plugify |
| Language modules | plugify-module-<language>, for example plugify-module-cpp |
| Template for a new language module | plugify-module-template |
| Game server hosts | plugify-source2-launcher, plugify-metamod-loader |
| Base plugins | plugify-plugin-<name>, for example plugify-plugin-s2sdk |
| This website | untrustedmodders.github.io |
Open issues and pull requests in the repository the change belongs to.
Reporting a problem
Search the existing issues first. A good report is:
- reproducible: the steps that lead to the problem;
- specific: the versions of the core, the modules and the host, and the platform;
- one problem per issue.
For a crash or a plugin that does not start, add the report the core logs after loading and, if you have it, the stack trace.
Sending a change
Discuss larger changes first
Open an issue or ask on Discord before starting something big, so the work is not duplicated.
Fork and create a branch
Commit with Conventional Commits
The repositories use Conventional Commits: the commit message starts with a type such as feat:, fix:, docs: or chore:. Releases and changelogs are made from these messages by release-please.
Open a pull request
Describe what changed and why, and link the issue it fixes. Keep pull requests small: they are easier to review.
Before sending code, build it, run it in plug and follow the code style.
Documentation
This website
The site is built with Nuxt and the shadcn-docs-nuxt theme. Pages are Markdown files in content/ (English) and content/ru/ (Russian); every English page has a Russian page at the same path with the same structure.
npm run check validates the manifest examples against the Plugify schemas, checks that the English and Russian pages match, builds the site and checks the internal links. Run it before opening a pull request.
API reference of the core
The headers of the core are documented with Doxygen comments. To build the reference locally:
It is written to build/docs/html. A change to the comments in the headers is all that is needed; the generated HTML is not committed.
Code of conduct
Be respectful in issues, pull requests and on Discord. The core repository has a code of conduct.