Skip to content

Add namespacing / organization rules to PR guidelines #7

@mqole

Description

@mqole

I'll probably write up something for this, but we should come to a consensus on how these ought to be standardized, and it will be easier to have the discussion preserved on github.

Terkala mentioned in syndicate-ss14/macrocosm#5 that it wasn't worth namespacing Content.Server/_MACRO/Salvage/SalvageRuinGenerator.cs as a _MACRO file, because:

it would lead to times when people try to import the salvage magnet system to something else, and they'd end up only half-importing the stuff the magnet needs to work and breaking things.'

Similarly, the accent trait components and systems in syndicate-ss14/macrocosm#3 are namespaced as namespace Content.Server.Speech.naaa rather than namespace Content.Server._MACRO.Speech.naaa. The non-speech systems are namespaced with _MACRO.

I have no strong opinion on what the best option here is, personally. I like the idea of namespacing all our files with _MACRO for consistency's sake, but if doing so would have a noticeable impact on development as terkala mentioned, it might need some clarification as to how and why we namespace files with _MACRO or not.

Tacking on organization rules about folders and such because I feel it is a similar enough conversation. My big question there is whether we want to follow the upstream folder conventions (pictured below) or use a single folder to package each major feature- for example, below is PR 3's current (upstream) folder structure:

Image

An alternative to this would be having all the apid files in an 'apid' folder, all the decapoid files in a 'decapoid' folder, which may then contain the conventional upstream subfolders (or not...?)

Would love to hear thoughts on this from all corners. Will give this issue a little while for discussion and then open a PR when enough people weigh in. PR will subsequently go up for review / voting as normal.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions