README ====== This is a template project structure for a JOSM plugin. Layout ====== +--- src source of your plugin |- images images your plugin needs |- resources resources your plugin needs build.number the build number, maintained by the build script LICENSE license file README README for your plugin README.template this file Build ===== A JOSM plugin is built as a single jar. We use ant to build. See build.xml in this directory and update the plugin specific properties in the configuration section. Maintaining versions ==================== There are two versions maintained with each plugin: 1) the main version You have to manually set the plugins main version in the build script. Set the property plugin.main.version in build.xml accordingly. 2) the build version The build version is unique for every build of the plugin. It is equal to the SVN revision of the file 'build.number'. The build script automatically increments the the build number and checks 'build.number' back in. Thus, the SVN revision for build.number is incremented on every build. Both the main version and the build version are included in properties of the plugins manifest: Plugin-Version the build version Plugin-Mainversion the main version JOSM automatically detects whether a plugin needs to be upgraded. It compares the build version of the currently installed plugin jar with the build version of the plugin jar in the SVN. The main version is irrelevant for this process. Making your plugin available to JOSM users =========================================== When a plugin jar is checked into SVN a script updates the plugins list on the JOSM wiki: http://josm.openstreetmap.de/wiki/Plugins JOSM retrieves the list of available plugins and their build versions from this list. commit publish read meta data meta data Build ==> SVN =======> JOSM Wiki <======= JOSM ^ ================================== fetch current plugin jar Note that you have to manually publish (commit) your plugin jar. There is no nightly build in place. Everything else (pulishing meta data, updating plugins in the client) is then handled by automatic processes. See also ======== * Developing Plugins http://josm.openstreetmap.de/wiki/DevelopingPlugins * List of JOSM Plugins http://josm.openstreetmap.de/wiki/Plugins