diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000000..cd6a32d5e9e --- /dev/null +++ b/.editorconfig @@ -0,0 +1,10 @@ +[*] +indent_style = space +indent_size = 2 +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.dm] +indent_style = tab +indent_size = 4 \ No newline at end of file diff --git a/.gitattributes b/.gitattributes index 3158997945b..c3b24c12791 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,10 +1,60 @@ -# dmm map merger hook -# needs additional setup, see tools/mapmerge/install.txt -*.dmm merge=merge-dmm eol=crlf - -# dmi icon merger hook -# needs additional setup, see tools/dmitool/merging.txt -*.dmi merge=merge-dmi - -# force changelog merging to use union -html/changelog.html merge=union +# dmm map merger hook +# needs additional setup, see tools/mapmerge/install.txt +*.dmm merge=merge-dmm eol=crlf + +# dmi icon merger hook +# needs additional setup, see tools/dmitool/merging.txt +*.dmi merge=merge-dmi + +# force changelog merging to use union +html/changelog.html merge=union + +# Enforce Line Endings +* text=auto + +*.ai binary +*.dmi binary +*.exe binary +*.fla binary +*.gif binary +*.jar binary +*.jpg binary +*.mid binary +*.ogg binary +*.pdb binary +*.png binary +*.psd binary +*.s3m binary +*.sav binary +*.so binary +*.svg binary +*.wav binary +*.xcf binary +*.xlsx binary + +*.awk text +*.bat text +*.conf text +*.cpp text +*.cs text +*.css text +*.dm text +*.dmf text +*.dmm text +*.gitkeep text +*.hook text +*.html text +*.java text +*.js text +*.json text +*.log text +*.map text +*.md text +*.php text +*.py text +*.scss text +*.sh text +*.sql text +*.tmpl text +*.txt text +*.vue text \ No newline at end of file diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 4949f485941..0dd0bd0ac02 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -1,5 +1,5 @@ # Licensing -Aurora Station code is licensed under the GNU Affero General Public License version 3, which can be found in full in LICENSE-AGPL3.txt. +Aurora Station code is licensed under the [GNU Affero General Public License version 3](https://www.gnu.org/licenses/agpl-3.0.en.html), which can be found in full in LICENSE-AGPL3.txt. Commits with a git authorship date prior to `1420675200 +0000` (2015/01/08 00:00) are licensed under the GNU General Public License version 3, which can be found in full in LICENSE-GPL3.txt. @@ -9,6 +9,39 @@ All assets including icons and sound are under a [Creative Commons 3.0 BY-SA](ht # Github Standards +### Sub-licensing External Content +**When does this section apply to me?** When you are integrating content that is **not** licensed under [AGPLv3](https://www.gnu.org/licenses/agpl-3.0.en.html) (code) +or [Creative Commons 3.0 BY-SA](https://creativecommons.org/licenses/by-sa/3.0/) (icons and sounds). The most common application here is for icons and sounds gathered +from an external source or repository. + +As a contributor, you must do your utmost to pay respect to international copyright law. This means that, if copying code or content from an external source, you **must** +be aware of what license it is published under. And you must ensure that the conditions of said license are followed when integrating the content into the codebase. (Sometimes +this is not possible, and the content cannot be used.) + +**If you cannot locate or reasonably dicern authorship or the license associated with given content, we ask that you not submit it into a pull request.** + +As a courtesy, attribution of authorship is also encouraged, even if the license of the content does not require this outright. Generally this is done in the PR by declaring +the source of the material, the author(s) (if known), and adding similar attributions to the relevant changelog entry (if applicable). This may be both done in the `author` field +or within the plain text describing the change itself. + +When reading the sub-sections that follow, note that these will be **generalizations**, and the specifics will be dictated by the license itself. + +#### Code +Code from most other open source SS13 code bases is GPLv3 or AGPLv3. This means that it's free to be copied without any additional effort. Though any notes of authorship within +the code files, if presents, must be kept intact. Be wary of **Goon**: their code is licensed under CC-BY-SA-NC and is **not** directly compatible with our codebase's license. +Porting Goon code directly is highly discouraged as a result. + +If the code is external, or licensed under something else (example being the TGS library), then ensure that the copyright notices within the file(s) (if present) are kept intact, +and that a separate license file (if present in/packaged with the original source) is added to the repository. This generally means that you have to put all of the code you are +porting in this manner into a `modules/` sub folder, and stick the license file in there. + +#### Other Assets (Sound, Icons) +If the material is distributed under CC-BY-SA 3.0, then it can go straight into the relevant folders, as long as you attribute the author(s) in the PR and changelog if they can be +identified. + +In any other case, create a subfolder somewhere in the relevant structure, stick the items in there, and provide a copy of the license with the content. Also, ensure that the +license permits the intended use of the content in the appropriate manner. + ### Peer Review All pull requests are subject to peer review prior to being merged. After said reviews, they are given a final once-over by a maintainer and then merged if good. @@ -135,7 +168,7 @@ For reference, here are the standard span classes for user output, and the corre * `` also corresponds to `\red` and is not bold. * `` corresponds to `\blue` and is not bold. -There exist pre-processor macros for using these spans. `span(class, text)` which is the equivilant of typing a string that looks like this: `"[text]"`. +There exist pre-processor macros for using these spans. `span(class, text)` which is the equivalent of typing a string that looks like this: `"[text]"` and macros such as `SPAN_WARNING(text)`, `SPAN_NOTICE(text)`, `SPAN_DANGER(text)`. The stylesheet available for use within DM can be found in `code/stylesheet.dm`. @@ -186,3 +219,24 @@ for (var/client/C in world) All tables for the database should be prefixed according to the following list: * `ss13_` for tables in which ingame data is held. * `discord_` for tables in which BOREALIS data is held. + +# HTML UI Standards + +### UI conversion policy +Due to our current situation with 5 different HTML UI systems we are now enforcing a policy that all new UIs should be made using the VueUi UI system. This policy also applies to editing existing UIs, with the following exceptions: + + 1. Modification is security / severe bug fix. + 0. It is typo fix. + 0. Touched UI file is too large. + 0. VueUi can't accommodate that type of UI. + +### Responsiveness +All new UIs must be responsive, that means that when parameters change in game world, UI data must update as quickly as possible to reflect that change. If change is time dependant, then client side time approximation should be used. + +### Conditional usage policy +If you need to use conditional rendering inside UI, then try to put conditional statements on elements you want to hide, then try using `