Skip to content

Commit 065a2cc

Browse files
committed
document required and optional properties in the tool manifest
1 parent 9188d6a commit 065a2cc

File tree

1 file changed

+34
-18
lines changed

1 file changed

+34
-18
lines changed

docs/start/tool.md

Lines changed: 34 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -31,41 +31,57 @@ Here is an entire manifest file from a HelloWorld tool:
3131
```xml
3232
<?xml version="1.0" encoding="UTF-8"?>
3333
<RenoiseScriptingTool doc_version="0">
34-
<ApiVersion>6</ApiVersion>
34+
<ApiVersion>6.1</ApiVersion>
3535
<Id>com.renoise.HelloWorld</Id>
3636
<Version>1.0</Version>
37-
<Author>your name [your_email@address.com]</Author>
37+
<Author>Your Name [your@email.com]</Author>
3838
<Name>Hello World</Name>
3939
<Category>Tool Development</Category>
4040
<Description>
41-
This tool is for printing "Hello World!" to the terminal when loaded.
41+
This tool is for printing &quot;Hello World!&quot; to the terminal when loaded.
4242
</Description>
43-
<Homepage>http://scripting.renoise.com</Homepage>
43+
<Homepage>http://tools.renoise.com</Homepage>
4444
<Icon>icon.png</Icon>
4545
<Platform>Windows, Mac, Linux</Platform>
4646
</RenoiseScriptingTool>
4747
```
4848

4949
Let's go through what each of these tags mean and what you should put inside them.
50-
* `<?xml>` is the header for the XML file, this will stay the same across all tools
51-
* `<RenoiseScriptionTool doc_version="0">` tells Renoise that this XML describes a tool, this won't change either
52-
* `<ApiVersion>` is the version of the Renoise API your tool is using, this should be `6` for the latest version
53-
* `<Id>` should match the folder name of your tool **exactly** without the `.xrnx` at the end
54-
* `<Version>` is the version of your tool, whenever you release a new update you should increase this. It is best to follow standard [semantic versioning](https://semver.org/) conventions here.
55-
* `<Author>` contains your name and contact information, whenever your tool crashes, this information is going to be provided for the user alongside the crash message, you should use some contact where you can accept possbile bug reports or questions
56-
* `<Name>` the human readable name of your tool, it can be anything you want and you can change it anytime you feel like it
57-
* `<Category>` the category for your tool, which will be used to sort your tool on the [official Tools page](https://www.renoise.com/tools) if you ever decide to submit it there
58-
* `<Description>` a short description of your tool which will be displayed inside the *Tool Browser* in Renoise and on the Tools page
59-
* `<Homepage>` your website's address if you have any, you could also put your forum topic or git repository here if you want
60-
* `<Icon>` the path to an optional icon to your tool
61-
* `<Platform>` a list of platforms your tool supports, as long as you're only using the Renoise API, your tools will be automatically cross-platform, but once you do something OS specific you should communicate that here
50+
51+
`<?xml>` is the header for the XML file, this will stay the same across all tools. `<RenoiseScriptingTool>` tells Renoise that this XML describes a tool. Don't change this.
52+
53+
### Required Properties
54+
55+
* `<ApiVersion>` The version of the Renoise API your tool is using. This should be `6.1` for the latest version.
56+
* `<Id>` Should match the folder name of your tool **exactly** without the `.xrnx` at the end.
57+
* `<Version>` The version of your tool, whenever you release a new update you should increase the version. Note that this is a **number value** and not a semantic version. So `1.02` is a valid version, while `1.0.2` **is not**.
58+
* `<Author>` Your name and contact information. Whenever your tool crashes, this information is going to be provided for the user alongside the crash message, you should use some contact where you can accept possible bug reports or questions.
59+
* `<Name>` Human readable name of your tool, it can be anything you want and you can change it anytime you feel like it.
60+
* `<Category>` Category for your tool, which will be used to categorize your tool on the [official Tools page](https://www.renoise.com/tools) if you ever decide to submit it there
61+
* `<Description>` A short description of your tool which will be displayed inside the *Tool Browser* in Renoise and on the Tools page.
62+
63+
### Optional Properties
64+
65+
* `<Homepage>` Your tool's website address if you have any. You could also put a forum topic or git repository here if you want.
66+
* `<Icon>` A relative path to an optional icon to your tool.
67+
* `<Platform>` List of platforms your tool supports separated by `,`. As long as you're only using the Renoise API, your tool will be automatically cross-platform, but once you do something OS specific you should communicate that here.
68+
69+
### Text Encoding
70+
71+
When writing the XML file in a regular text editor, ensure that text content is encoded correctly. Otherwise, the XML file will be invalid.
72+
73+
- `"` -> `&quot;`
74+
- `'` -> `&apos;`
75+
- `<` -> `&lt;`
76+
- `>` -> `&gt;`
77+
- `&` -> `&amp;`
6278

6379
## main.lua
6480

65-
Now that we have a manifest file, we can get to the exciting part of printing a message to the Renoise console. The contents of the `main.lua` file will just have a single line for now.
81+
Now that we have a manifest file, we can get to the exciting part of printing a message to the Renoise console. The contents of the `main.lua` file will just have a single line for now:
6682

6783
```lua
6884
print("Hello world!")
6985
```
7086

71-
Done! Now that you wrote your first tool you probably want to install and test it.
87+
Done! Now that you wrote your first tool you probably want to install and test it.

0 commit comments

Comments
 (0)