122 lines
4.6 KiB
Markdown
122 lines
4.6 KiB
Markdown
# Delta-V Contributing Guidelines
|
|
|
|
Generally we follow [upstream's PR guidelines](https://docs.spacestation14.com/en/general-development/codebase-info/pull-request-guidelines.html) for code quality and such.
|
|
|
|
Importantly do not make webedits, copied verbatim from above:
|
|
> Do not use GitHub's web editor to create PRs. PRs submitted through the web editor may be closed without review.
|
|
|
|
Upstream is the [space-wizards/space-station-14](https://github.com/space-wizards/space-station-14) repository that wizden runs on.
|
|
|
|
# Content specific to Delta-V
|
|
|
|
In general anything you create from scratch (not modifying something that exists from upstream) should go in a DeltaV subfolder, `_DV`.
|
|
|
|
Examples:
|
|
- `Content.Server/_DV/Chapel/SacrificialAltarSystem.cs`
|
|
- `Resources/Prototypes/_DV/ai_factions.yml`
|
|
- `Resources/Audio/_DV/Items/gavel.ogg`
|
|
- `Resources/Textures/_DV/Icons/cri.rsi`
|
|
- `Resources/Locale/en-US/_DV/shipyard/shipyard-console.ftl`
|
|
- `Resources/ServerInfo/Guidebook/_DV/AlertProcedure.xml`
|
|
Note that guidebooks go in `ServerInfo/Guidebook/_DV` and not `ServerInfo/_DV`!
|
|
|
|
# Changes to upstream files
|
|
|
|
If you make a change to an upstream C# or YAML file **you must add comments on or around the changed lines**.
|
|
The comments should clarify what changed, to make conflict resolution simpler when a file is changed upstream.
|
|
|
|
For YAML specifically, if you add a new component to a prototype add the comment to the `type: ...` line.
|
|
If you just modify some fields of a component, comment the fields instead.
|
|
|
|
For C# files, if you are adding a lot of code try to put it in a partial class when it makes sense.
|
|
|
|
The exception to this is early merging commits that are going to be cherry picked in the future regardless, there's no harm in leaving them as-is.
|
|
|
|
As an aside, fluent (.ftl) files **do not support comments on the same line** as a locale value, so be careful when changing them.
|
|
|
|
## Examples of comments in upstream files
|
|
|
|
A single line comment on a changed yml field:
|
|
```yml
|
|
- type: entity
|
|
parent: BasePDA
|
|
id: SciencePDA
|
|
name: epistemics PDA # DeltaV - Epistemics Department replacing Science
|
|
```
|
|
|
|
A pair of comments enclosing a list of added items to starting gear:
|
|
```yml
|
|
storage:
|
|
back:
|
|
- EmergencyRollerBedSpawnFolded
|
|
# Begin DeltaV additions
|
|
- BodyBagFolded
|
|
- Portafib
|
|
# End DeltaV additions
|
|
```
|
|
|
|
A comment on a new imported namespace:
|
|
```cs
|
|
using Content.Server.Psionics.Glimmer; // DeltaV
|
|
```
|
|
|
|
A pair of comments enclosing a block of added code:
|
|
```cs
|
|
private EntityUid Slice(...)
|
|
{
|
|
...
|
|
|
|
_transform.SetLocalRotation(sliceUid, 0);
|
|
|
|
// DeltaV - start of deep frier stuff
|
|
var slicedEv = new FoodSlicedEvent(user, uid, sliceUid);
|
|
RaiseLocalEvent(uid, ref slicedEv);
|
|
// DeltaV - end of deep frier stuff
|
|
|
|
...
|
|
}
|
|
```
|
|
|
|
# Mapping
|
|
|
|
If you want to make changes to a map, get in touch with its maintainer to make sure you don't both make changes at the same time.
|
|
|
|
Conflicts with maps make PRs mutually exclusive so either your work or the maintainer's work will be lost, communicate to avoid this!
|
|
|
|
Please make a detailed list of **all** changes(even minor changes) with locations when submitting a PR. This helps reviewers hone in on them without having to search an entire map for differences. Ex: [Map Edits](https://github.com/DeltaV-Station/Delta-v/pull/3165)
|
|
|
|
|
|
**Submitting a map PR**
|
|
|
|
Please limit changelogs on map PRs to **significant** map alterations or additions. Minor map edits do not need changelogs.
|
|
Format for map PRs looks like:
|
|
```
|
|
:cl: Yourname
|
|
MAPS: Mapname
|
|
- add: Added fun!
|
|
- remove: Removed fun!
|
|
- tweak: Changed fun!
|
|
- fix: Fixed fun!
|
|
```
|
|
|
|
# Before you submit
|
|
|
|
Double-check your diff on GitHub before submitting: look for unintended commits or changes and remove accidental whitespace or line-ending changes.
|
|
|
|
Additionally for long-lasting PRs, if you see `RobustToolbox` in the changed files you have to revert it, use `git checkout upstream/master RobustToolbox` (replacing `upstream` with the name of your DeltaV-Station/Delta-V remote)
|
|
|
|
# Changelogs
|
|
|
|
By default any changelogs goes in the DeltaV changelog, you can use the DeltaV admin changelog by putting `DELTAVADMIN:` in a line after `:cl:`.
|
|
|
|
Do not use `ADMIN:` as **it will mangle** the upstream admin changelog!
|
|
|
|
# Additional resources
|
|
|
|
If you are new to contributing to SS14 in general, have a look at the [SS14 docs](https://docs.spacestation14.io/) or ask for help in `#contribution-help` on [Discord](https://discord.gg/deltav)!
|
|
|
|
## AI-Generated Content
|
|
Code, sprites and any other AI-generated content is not allowed to be submitted to the repository.
|
|
|
|
Trying to PR AI-generated content may result in you being banned from contributing.
|