In May 2020, we started developing an improved development workflow for contributors. When Luvbunny wanted to contribute his code to the CityRP 2 core,
he couldn't just do it because he (and other contributors) had to rely on core developers, to get their code up and running on the beta server.
They had to request files from a core developer whom would send them those files via Discord/E-Mail, just to receive them back after the contributors made their changes. The core developer would then commit those changed files to the beta repository. A very painful process which ultimately blocked and delayed the process of getting contributions into the core.
Well, no more.
Our new contributor workflow offers a much better and self-reliant development experience.
Similar to our core repository cityrp2, we also have the cityrp2-contrib repo.
The cityrp2-contrib repo contains a branch for each of our lua contributors,
where they can commit their own addons, plugins, items and/or edits to existing core files, that a core developer can place there.
The only requirement is that the file and folder structure resembles our core structure, as for example: addons/my-addon or gamemodes/plugins/my-plugin.
Each commit will create or extend a PR/MR (pull-request/merge-request) in the core cityrp2 repository, where core developers will be notified and can review the changes and eventually push them onto the beta server with a simple click of a button.
The best feature:
Contributors and core developers can assist one another!
Let's say Contributor John_Doe is working on adding new market items.
He would get his own branch where he can work on his code independently.
At some point he might need help from another contributor or core developer
and he reaches out for help.
Contributor Jane_Doe can now pull John_Does's branch and make edits.
She commits those changes back into John's branch, that will trigger the
PR/MR process (as described above).
The reviewers (core developers) can now see that Jane commited the latest
changes on behalf of John and his branch.
To sum it all up:
- Contributors get their own branch in the cityrp2-contrib repository (incl. their own description).
- Contributors can work independently on their code.
- Contributors can get assistance from other contribs/developers.
- Core Developers can review the code and merge them automatically.
- No more file sending back and forth via external services.
- More comfort for contributors and core developers.
We will constantly improve this workflow, i.e. allowing auto merge on the beta server for trusted contributors, also booting a sandboxed environment (server= for the contributor.
Become a contributor today and help us improve Limelight CityRP!
A special thanks goes out to Luvbunny, whom has experienced the old rusty and hard way of contributing code to us. We are still working on getting his great contribution shipped and would like to thank him for pressuring us into improving the workflow, back in 2020.