Skip to content

Commit 48f3361

Browse files
committed
README: Bring in lost updates from 6.1 branch
I did a whoopsie when I made this branch, and I started it from an old version of the 6.1 branch, so a bunch of things had to be re-added.
1 parent 762d593 commit 48f3361

1 file changed

Lines changed: 22 additions & 4 deletions

File tree

README.md

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ This repository houses the files that power NetLogo's Extension Manager. If you
1010

1111
Each pull request should have two parts:
1212

13-
1. A `.zip` file added to the `extensions` directory
13+
1. A `.zip` file added to the `extensions` directory.
1414
2. A change to the `libraries.conf` file
1515

16-
For (1), the `.zip` file should have a name that follows the format `<extension name>-<version number>.zip`. The `.zip` *must* contain `<extension name>.jar` and any other supporting files that accompany the extension (e.g. other `.jar` files, `.so` libraries).
16+
For (1), the `.zip` file should have a name that follows the format `<extension name>-<version number>.zip`. The `.zip` *must* contain `<extension codeName>.jar` and any other supporting files that accompany the extension (e.g. other `.jar` files, `.so` libraries). **Make sure your jar files are in the "root" of the `.zip` file, not a subfolder.** If you're using at least version 5.2.3 of [the NetLogo Extension Plugin for sbt](https://github.com/NetLogo/NetLogo-Extension-Plugin), it can generate an appropriate file for you using [the `packageZip` sbt command](https://github.com/NetLogo/NetLogo-Extension-Plugin/blob/master/README.md#zip-package), including adding extra files such as documentation and example models. If you add the `netLogoShortDescription`, `netLogoLongDescription`, and `netLogoHomepage` settings to your build file, a snippet will be generated as the below when you run `packageZip` for easy copy/pasting into the `libraries.conf` file, too.
1717

1818
Regarding (2), if you are adding a new extension, you should make an insertion into `libraries.conf`, in alphabetical order according to the "name" field (e.g. "Fetch" comes after "Dist" and before "GoGo"). The new entry should follow this format:
1919

@@ -28,6 +28,24 @@ Regarding (2), if you are adding a new extension, you should make an insertion i
2828
}
2929
```
3030

31-
All of these fields are mandatory. All values to the right of the colon should be wrapped in single-quotes (i.e. `"value"`). `longDescription` may be wrapped in triple-quotes (i.e. `"""value"""`) in order to hold a multiline string.
31+
All of these fields are mandatory. All values to the right of the colon should be wrapped in single-quotes (i.e. `"value"`). `longDescription` may be wrapped in triple-quotes (i.e. `"""value"""`) in order to hold a multiline string. Some editors also like to insert so-called smart-quotes (`“”`) around text, but our configuration file format requires straight quotes (`""`).
3232

33-
If you are simply uploading a new version (and not an entirely new extension), the only things that you usually need to change in `libraries.conf` are the extension's `version` field, and maybe its documentation link. And, of course, you still need to also include the new `.zip` file (as mentioned in (1)).
33+
Make sure your `codeName` field is unique among extensions in the library already. There are no namespaces or aliasing for NetLogo extensions (yet), so the only way to differentiate them is with unique identifiers when they're added in code. Also, the zip file name must match the `codeName`.
34+
35+
+If you are simply uploading a new version (and not an entirely new extension), the only things that you usually need to change in `libraries.conf` are the extension's `version` field, and maybe its documentation link. And, of course, you still need to also include the new `.zip` file (as mentioned in (1)).
36+
37+
A more detailed explanation of an extension submission workflow using git and GitHub [is available in the wiki](https://github.com/NetLogo/NetLogo-Libraries/wiki/Submission-workflow).
38+
39+
## NetLogo Versions
40+
41+
If your extension uses components from the `org.nlogo.api` namespace to interact with NetLogo models, then the extensions manager will take care of making sure your extension is available only to the appropriate versions of NetLogo.
42+
43+
If you use components outside of that package, you may find that things break for your extension in NetLogo releases where the API version stayed the same. If so you can restrict which specific minimum version of NetLogo your extension supports by adding a `minNetLogoVersion` field to your extension's entry in the `libraries.conf` file. For example: `minNetLogoVersion: "6.2.0"`. In this case your extension will be shown in the extensions manager, but it will prompt the user to upgrade NetLogo before they can install and use it.
44+
45+
## Platforms
46+
47+
NetLogo supports Windows, macOS, and Linux operating systems and we prefer all extensions in the library support those platforms as well. If you have libraries or components that cannot work one or two of the operating systems, you can still self-host your extension and distribute it the old fashioned way, by directing users extract the extension alongside a model or into the `extensions` folder under NetLogo.
48+
49+
## Email submission
50+
51+
If you do not want to use a pull request to add your extension to the library or to have it updated, you can instead email the CCL developer team at feedback@ccl.northwestern.edu. You'll need to provide the same information as in the pull request along with the file package, but we'll take care of getting the repository updated.

0 commit comments

Comments
 (0)