CityRP Documentation Repository

Update Checklist

Last updated

This document outlines the checklist of required items for publishing updates to the master branch. Some items may not be relevant for each update.

Definition

An "update" refers to any change with gamemode impact. Minor documentation changes, code style fixes, or other non-gameplay changes do not require the full checklist.

All Updates

The checklist of required items for publishing any update to master.

  • Testing: Updates must be tested before being merged.
  • Review: Updates must be reviewed before being merged, unless written by dev management or gamemasters.
  • Security Review: Validate that changes do not introduce SQL injection, XSS, or other security vulnerabilities. This should be conducted during development and by the reviewer.
  • Performance Check: Ensure changes do not introduce performance regressions, especially in hot paths (think hooks, networking). This is informal as we don't have the framework in place to do full testing.
  • Maintainability: Ensure code is readable, well-structured, and follows established patterns to facilitate future maintenance and updates.
  • Backwards Compatibility: Verify that changes do not break existing save data, inventory items, or player progress.

Documentation

  • Internal Documentation: Update internal API references, documentation topics and developer guides as needed.
  • Public Documentation: Assist the event/assistant team in creating guides, familiarisation materials, and tutorials for new systems.

Named Updates

The checklist of required items for publishing a named (major) update. Some items may not be relevant for each update.

Approval

Creating and releasing an update as a named update must be pre-approved by development management, as it often requires cross-team coordination (e.g., media for graphics, writing). An update qualifies as a named update if it meets any one of the following criteria:

  • Affects two or more areas of the gamemode, OR
  • Introduces entirely new mechanics that would benefit from describing, detailing and showcasing, OR
  • Combines two or more suggestions to make a pack update, OR
  • Overhauls important parts of the gameplay experience.

Exceptions to these guidelines can be authorised by development management.

Ingame

  • Hints: Add hints to the hints system.

Code

  • Comments: Ensure functions and libraries are commented appropriately.
  • Guidelines: Ensure guidelines are met.
    • If updating old code, the code can be left on old standards.
  • Database Migrations: If database schema changes are required, ensure migrations are tested and documented.

Server Content

  • Team Briefing: If new content is required, ensure team is briefed for a full restart of main.
    • Ideally, upload model content in advance for a clean release.

Testing

  • Content Variation: Test in line with content variation.
    • If non-staff are affected, test with non-staff.

Release

  • Media Content: Prepare media content, screenshots, video if applicable.
    • Liaise with media in advance to prepare content.
    • Ensure a written version of the thread is available for graphics-based threads.
  • Release Thread: Collaborate with media team to prepare the release thread.
  • RP Assistants: Brief RP assistants, allow them to pre-write guides and tutorials.
  • Staff Briefing: Brief staff if staff-relevant changes occur (can be put in a HR ticket).
  • Welcome Menu: Update Welcome Menu.
  • Homepage Banner: Add banner to homepage.
  • Steam Group: Steam Group Message.
  • Scope Limitations: Document any known scope limitations in the GitHub PR or GitHub Issue. Systems should not be releasing with known bugs, but may release with known and accepted scope limitations.

Economy Balance Release Schedule

  • Timed Release: If there will be time-restricted economy-affecting changes (limited stock), pre-post the update thread with a set release time (e.g., 7pm GMT).