JOSM enhancements vs. separate plugin

Michael Zangl openstreetmap at michaelzangl.de
Wed May 9 12:50:56 UTC 2018


Hi,

About your concrete example: There are several questions to think of:

* Is your functionality a generic task? (in your case, this would be 
something like "create a convex hull")

* Is that functionality required by a lot of users?

* Is your functionality approved by the community? Or will there be 
objections? In your case, you should especially mind if your plugin 
creates "correct" results and if it can be applied by a unexperienced 
user without creating incorrect data.

* Does it integrate into JOSM in an intuitive way? We try not to add 
more buttons to the main menu. A nice example is the reworked download 
dialog last year: It added some overpass download features while at the 
same time making the UI easier to understand.


So if there is a place where this feature could be included that does 
not interfere with other functionality (e.g. in a preset, ...) and is 
universally usable, it can/should be included in core. In your case, the 
script is so special that it may be very useful for other people doing 
exactly the task you do, but not for the general audience of JOSM. This 
is why a plugin is best in this case.


There are several more reasons why we add a functionality to core. They 
include:

* It is a function that allows basic access to the Openstreetmap data. 
Like the notes layer: There are probably relatively few people using it 
and it would be easy to extract to a plugin, but it is a traditional 
feature of the OSM website.

* It is a function that many other plugins / workflows may depend on. 
Like downloading Data using Overpass.

* It is a feature that is used by JOSM internally and where providing it 
for the user just means an other button, but not maintaining more code. 
Like the Join overlapping Areas tool.

* The author of that functionality had core commit access and just was 
too lazy to write a plugin for it. One example I did are the color 
filters on imagery layers (mainly because they required core 
modifications any way and were much easier to integrate that way).


Michael


On 09.05.2018 07:25, Jiri Hubacek wrote:
> Dear JOSM devs,
>
> I would like to ask question about the JOSM enhancements. Where is the
> line between functionality acceptable upstream and the feature that
> should be in separate plugin?
>
> The concrete example - I wrote some script for automatic creation of
> residential area around the selected buildings. I rewrote it to Java to
> be able to push it upstream but it looked too specific to be included in
> "Tools" menu. So I created the plugin (mapathoner). Are there any
> guidelines for these decisions?
>
> Thanks,
> jiri
>




More information about the josm-dev mailing list