Skip to content

Commit f6d0b4b

Browse files
committed
Update guidelines
1 parent 30e9c9f commit f6d0b4b

File tree

3 files changed

+66
-31
lines changed

3 files changed

+66
-31
lines changed

manifest-flags.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,28 @@
22
layout: page
33
title: Mod Manifest Flags
44
---
5+
6+
Flags used in the [manifest](manifest) to indicate various things about mods or mod versions.
7+
8+
## Mod Flags
9+
10+
These flags can be defined on a mod:
11+
12+
- `deprecated` Deprecated (maintainer is gone, users need to migrate)
13+
- `plugin` it needs a -LoadAssembly argument to work and it does not depend on NML
14+
- `file` it does not depend on NML
15+
16+
## Version Flags
17+
18+
Mod versions inherit the flags of their defining mod, and can additionally use these flags:
19+
20+
- Security Vulnerability
21+
- `vulnerability:low` Low
22+
- `vulnerability:medium` Medium
23+
- `vulnerability:high` High
24+
- `vulnerability:critical` Critical
25+
- `broken` This version is broken and doesn't work on any platform.
26+
- `broken:linux-native` Doesn't work on linux native
27+
- `broken:linux-wine` Doesn't work on linux wine/proton
28+
- `broken:windows` Doesn't work on windows
29+
- `prerelease` Mod dev wants to limit distribution

mod-guidelines.md

Lines changed: 41 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,49 +7,77 @@ These guidelines explain what is expected when submitting a new mod version to t
77

88
## Submissions
99

10-
New submissions **must** be submitted as a [new pull request] to the [manifest] in this repository. Be sure to follow the [schema], and to include a correct SHA256 hash of your artifacts. If you need help with your submission, read the [submission tutorial].
10+
New submissions **must** be submitted as a pull request to the [manifest repository]. Important points:
1111

12-
## Obfuscation
12+
If you need help with your submission, read the [submission tutorial].
13+
14+
## General Manifest Requirements
15+
16+
### Schema Correctness
17+
18+
Submissions **must** follow the [schema]. Match your indentation to the existing json (indent using 4 spaces).
19+
20+
You **must** include a correct SHA256 hash of your artifacts.
21+
22+
### Do Not Remove Versions
23+
24+
You **must** not remove old versions of your mod from the manifest. Instead, use the `deprecated` [flag], which will hide it from the mod list and autoupaters. The manifest is designed to store a history of mods: not just current versions. This allows us to flag deprecated mods with additional metadata, for example marking them as having security vulnerabilities.
25+
26+
### Indicate Platform Incompatibilities
27+
28+
If your mod is incompatible with a platform, you **must** indicate that using the appropriate [flag] (for example `broken:linux-native`).
29+
30+
### Version Numbers
31+
32+
Your manifest submission **should** have version numbers that match the NeosMod version. The `AssemblyVersion` and `AssemblyFileVersion` assembly attributes **should** match your mod version.
33+
34+
If you think having to change the version number in three places is a pain, you're right. Luckily, there's a way you can get away with having it in one place, which I've demonstrated in [this mod](https://github.com/zkxs/NeosDesktopToolShortcutRemapper).
35+
36+
### Libraries
37+
38+
Mods **should** avoid repackaging third party libraries into their DLL. Consider adding third-party libraries as an external dependency in the manifest. This allows auditors to review your mod and libraries separately and makes the auditing process much faster.
39+
40+
## Privacy and Security
41+
42+
### Obfuscation
1343

1444
Mods **must not** be obfuscated. We audit mods by inspecting their binaries, which is not feasible for obfuscated mods.
1545

16-
## Transparency
46+
### Transparency
1747

1848
Mods **should** be up-front about what they do. Accurate descriptions, screenshots, etc, are all good to have.
1949

2050
Mods **should** be open-source. While this is not a hard requirement, having up-to-date source code available is helpful for the auditing process.
2151

22-
## Remote Code
52+
### Remote Code
2353

2454
Mods **must not** download or execute remote code. This means the following are forbidden:
2555

2656
- auto updaters
2757
- fetching Neos json/7zbson/etc from a non-neos server (neosdb urls are okay)
2858

29-
## Not Malicious
59+
### Not Malicious
3060

3161
Mods **must not** violate the [Neos guidelines] or the [mod and plugin policy].
3262

3363
- Do not bypass protections and controls within Neos, for example SimpleAvatarProtection, permissions, and bans.
3464
- Do not enable asset theft
3565
- Do not enable harassment
3666

37-
## Telemetry
67+
### Telemetry
3868

3969
Mods **must not** track users, as defined in the *User Data Tracking* section of the [Neos guidelines].
4070

41-
## Performance
42-
43-
Mods **should** avoid performance hits to Neos where possible. While performance is not the primary goal of the audit, if we notice code that is extremely inefficient we may ask you to improve it.
71+
## Optional Stuff
4472

45-
## Libraries
73+
### Performance
4674

47-
Mods **should** avoid repackaging third party libraries into their DLL. Consider adding third-party libraries as an external dependency in the manifest. This allows auditors to review your mod and libraries separately and makes the auditing process much faster.
75+
Mods **should** avoid performance hits to Neos where possible. While performance is not the primary goal of the audit, if we notice code that is extremely inefficient we may ask you to improve it.
4876

4977
<!-- Links -->
50-
[manifest]: https://github.com/neos-modding-group/neos-mod-manifest/blob/master/manifest.json
78+
[manifest repository]: https://github.com/neos-modding-group/neos-mod-manifest
5179
[mod and plugin policy]: https://wiki.neos.com/Mod_%26_Plugin_Policy
5280
[Neos guidelines]: https://docs.google.com/document/d/1G_-PaxSp8rGYeHUIXK-19b2VqOLlpOZ18e7DrOwNjG4/edit
53-
[new pull request]: https://github.com/neos-modding-group/neos-mod-manifest/compare
5481
[schema]: schema
5582
[submission tutorial]: submission-tutorial
83+
[flag]: manifest-flags

schema.md

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -44,21 +44,3 @@ Top-level: `object`
4444
- Filename: `string` (filename to use for the file, if missing extract from the last part of the URL)
4545
- Sha256: `string`
4646
- Install location: `string` (defaults to "/nml_mods")
47-
48-
Flags:
49-
50-
- Mod Flags
51-
- `deprecated` Deprecated (maintainer is gone, users need to migrate)
52-
- `plugin` it needs a -LoadAssembly argument to work and it does not depend on NML
53-
- `file` it does not depend on NML
54-
- Version Flags (mod flags are inherited)
55-
- Security Vulnerability
56-
- `vulnerability:low` Low
57-
- `vulnerability:medium` Medium
58-
- `vulnerability:high` High
59-
- `vulnerability:critical` Critical
60-
- `broken` Broken (different from incompatible, means the version itself is broken by design)
61-
- `broken:linux-native` Doesn't work on linux native
62-
- `broken:linux-wine` Doesn't work on linux wine/proton
63-
- `broken:windows` Doesn't work on windows
64-
- `prerelease` Mod dev wants to limit distribution

0 commit comments

Comments
 (0)