Skip to content

Commit 2ef5d68

Browse files
committed
Update the submission tutorial
1 parent 24d74a5 commit 2ef5d68

File tree

4 files changed

+116
-12
lines changed

4 files changed

+116
-12
lines changed

auditing-process.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ Anyone! The people auditing mods are volunteers, and all help is appreciated.
1515
- At least one (preferably more) approval from a reviewer is mandatory before merging
1616
- Mod authors cannot approve their own mods
1717

18+
## Guidelines
19+
Submissions must follow all [guidelines].
20+
1821
## Binary Inspection
1922

2023
The mod binary must be inspected in a decompiler for [malicious] code and other disallowed behavior.
@@ -79,6 +82,7 @@ Poorly-known third-party libraries from unknown authors need auditing.
7982
If you see something in a mod you're uncertain about, please don't hesitate to ask for a second opinion. Don't approve a submission unless you're 100% certain it's safe.
8083

8184
<!-- Links -->
85+
[guidelines]: mod-guidelines
8286
[malicious]: mod-guidelines#not-malicious
8387
[path traversal]: https://owasp.org/www-community/attacks/Path_Traversal
8488
[pull requests]: https://github.com/neos-modding-group/neos-mod-manifest/pulls

index.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ title: Neos Mod Loader
66
[NeosModLoader] is a mod loading [plugin] for [NeosVR].
77
It also contains some extra magic to still let you hang out with other people that might not have the plugin, as usually having different plugins means you can't connect to the same sessions.
88

9-
You can find the source code and release builds of it [from Github][NeosModLoader].
9+
You can find the source code and release builds of it [on Github][NeosModLoader].
1010

1111
## Finding mods
1212

@@ -30,5 +30,4 @@ The [mod list] is automatically generated from a machine-readable [mod manifest]
3030
[NeosModLoader]: https://github.com/neos-modding-group/NeosModLoader
3131
[NeosVR]: https://neos.com
3232
[plugin]: https://wiki.neos.com/Plugins
33-
[schema]: schema
3433
[submission tutorial]: submission-tutorial

manifest-pr.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
---
2+
layout: page
3+
title: Manifest PR Guide
4+
---
5+
6+
## General Tips
7+
8+
- Don't insert your mod at the very end of the file, as you'll have to add a comma to the mod preceding you which can confuse git. Instead, put new mods at the top of the file (or anywhere really).
9+
- Try not to move things around unnecessarily, as it will generate a larger diff and make reviewing your PR harder.
10+
- Take care not to mess up the indentation. While it may not seem like a big deal, not enforcing consistent indentation would result in absolute chaos.
11+
- For security reasons the automatic checks won't run on your first PR until a contributor manually triggers them. Your subsequent PRs will benefit from automatic whitespace and schema validation checks.
12+
13+
## Creating a PR
14+
15+
There are multiple ways to make a GitHub PR. We'll cover a few approaches.
16+
17+
### GitHub Web UI
18+
19+
Pros:
20+
21+
- You don't need to install any software
22+
- Requires the least git knowledge of any method
23+
24+
Cons:
25+
26+
- The web editor isn't very good
27+
- No schema validation
28+
- No automatic indentation fixer
29+
30+
Simply edit manifest.json via the [GitHub Web Editor](https://github.com/neos-modding-group/neos-mod-manifest/edit/master/manifest.json).
31+
32+
### Local Text Editor (Like Visual Studio Code)
33+
34+
Pros:
35+
36+
- Can validate json schema
37+
- Can fix bad indentation
38+
- There are some very good text editors available
39+
40+
Cons:
41+
42+
- Requires some git know-how
43+
- Requires you to install software
44+
45+
Teaching git is out of scope of this document, but it really is worth learning. Perhaps take a look at the [Git website](https://git-scm.com/).
46+
47+
1. Install [Visual Studio Code](https://code.visualstudio.com/)
48+
2. [Fork](https://github.com/neos-modding-group/neos-mod-manifest/fork) the manifest
49+
3. [Clone](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository) your manifest fork ([git clone docs](https://git-scm.com/docs/git-clone))
50+
4. `git remote add upstream [email protected]:neos-modding-group/neos-mod-manifest.git`
51+
5. `git fetch upstream`
52+
6. `git checkout upstream/master`
53+
7. `git branch my-new-branch-name` ([git branch docs](https://git-scm.com/docs/git-branch))
54+
8. Edit the manifest in VSC, enjoying its built-in JSON schema validator
55+
9. `git add manifest.json` ([git add docs](https://git-scm.com/docs/git-add))
56+
10. `git commit -m 'Add MyMod to the manifest'` ([git commit docs](https://git-scm.com/docs/git-commit))
57+
11. `git push` ([git push docs](https://git-scm.com/docs/git-push))
58+
12. Head back to the [manifest repo](https://github.com/neos-modding-group/neos-mod-manifest), where you should now see a button to open a PR. If not, you can manually [create a pull request from a fork](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork).
59+
60+
Repeat from step 5 for subsequent PRs.

submission-tutorial.md

Lines changed: 51 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,30 @@ layout: page
33
title: Submission Tutorial
44
---
55

6-
Create a new pull request adding a new mod definition to the [manifest]. (If you're new to GitHub, they have a simple [web editor][github web pull request] for pull requests). An example mod definition is provided below. Note that comments are not allowed in JSON and are only provided here for your reference.
6+
## How to Make a Submission
7+
8+
Create a new pull request to [manifest.json] adding your new mod. Once your pull request is created, community members will review your submission as per the [mod auditing process].
9+
10+
If you're new to git or GitHub, take a look at the [Manifest PR Guide](manifest-pr).
11+
12+
## Requirements
13+
14+
A full list of submission requirements is available [here][mod submission guidelines], but here are the important ones for submitting your first mod:
15+
16+
- Follow the [schema]. We have automatic validation on GitHub PRs to check this.
17+
- Don't ruin the whitespace (indent using four spaces!) We have automatic validation on GitHub PRs to check this.
18+
- Include a valid SHA-256 hash for your mod. If you don't have a SHA-256 tool on your PC, a [web tool like this][sha256 online] may help.
19+
- Don't remove existing manifest entries. Deprecate them instead using the `deprecated` [flag].
20+
- Pick a category from the [category list][categories]. If you're uncertain, check how [other mods][mod list] are categorized.
21+
22+
23+
An example mod definition is provided below. Note that comments are not allowed in JSON and are only provided here for your reference.
724

825
```js
926
"dev.zkxs.examplemod": { // GUID for your mod. This MUST be unique.
1027
"name": "Example Mod", // Your mod's name
1128
"description": "Doesn't do anything", // Short description of your mod's functionality
12-
"category": "For Mod Developers", // The category that best fits your mod.
29+
"category": "Misc", // The category that best fits your mod.
1330
"website": "https://github.com/zkxs/ExampleMod", // your mod's homepage
1431
"sourceLocation": "https://github.com/zkxs/ExampleMod", // where your source code is hosted
1532
"authors": { // note that you can have more than one author!
@@ -31,20 +48,44 @@ Create a new pull request adding a new mod definition to the [manifest]. (If you
3148
}
3249
```
3350

34-
If you're trying to figure out how to get the sha256 hash, a [web tool like this][sha256 online] may help.
35-
36-
Some of these fields are optional, and some rarely-used fields are omitted from this example. Consult the [schema] for more details.
51+
Here is the same JSON again, but this time ready for copy/pasting into the manifest. Just update the fields to match your mod.
52+
```json
53+
"dev.zkxs.examplemod": {
54+
"name": "Example Mod",
55+
"description": "Doesn't do anything",
56+
"category": "Misc",
57+
"website": "https://github.com/zkxs/ExampleMod",
58+
"sourceLocation": "https://github.com/zkxs/ExampleMod",
59+
"authors": {
60+
"runtime": {
61+
"url": "https://github.com/zkxs"
62+
}
63+
},
64+
"versions": {
65+
"1.1.0": {
66+
"releaseUrl": "https://github.com/zkxs/ExampleMod/releases/tag/1.1.0.0",
67+
"artifacts": [
68+
{
69+
"url": "https://github.com/zkxs/ExampleMod/releases/download/1.1.0.0/ExampleMod.dll",
70+
"sha256": "4d7aee0c357c6683bc6d046b1961ed1ce21bbbd23f120b8dc7b1553db01d7174"
71+
}
72+
]
73+
}
74+
}
75+
},
76+
```
3777

38-
Once your pull request is created, community members will review your submission as per the [mod auditing process].
78+
Note that some of these fields are optional, and some rarely-used fields are omitted from this example. Consult the [schema] for more details.
3979

40-
## Choosing a Category
80+
## Additional Help
4181

42-
Take a look at the [category list][categories] and check how [other mods][mod list] are categoriezed.
82+
If you need additional help, you can ask the [#mod-manifest channel in our Discord].
4383

4484
<!-- Links -->
85+
[#mod-manifest channel in our Discord]: https://discord.gg/YUPK8UsBy4
4586
[categories]: categories
46-
[github web pull request]: https://github.com/neos-modding-group/neos-mod-manifest/edit/master/manifest.json
47-
[manifest]: https://github.com/neos-modding-group/neos-mod-manifest/blob/master/manifest.json
87+
[flag]: manifest-flags
88+
[manifest.json]: https://github.com/neos-modding-group/neos-mod-manifest/blob/master/manifest.json
4889
[mod auditing process]: auditing-process
4990
[mod list]: mods
5091
[mod submission guidelines]: mod-guidelines

0 commit comments

Comments
 (0)