iitc-project / ingress-intel-total-conversion

ingress.com/intel total conversion user script with some new features. Should allow easier extension of the intel map.
http://iitc.jonatkins.com/
ISC License
991 stars 552 forks source link

Plugin API formilization #206

Open Hobadee opened 11 years ago

Hobadee commented 11 years ago

As this project grows, plugins will become harder to manage. As such, a more formalized API for them should be set.

A simple "registerPlugin()" function which returns an object with the plugin name, version, and initializing function would go a long way. If something like this was implemented, users could list currently installed plugins and check for updates, and other plugins could search for conflicts or requirements to enable or disable additional functionality. A function like this could also be easily extended in the future without breaking backwards compatibility.

Edit: I know this would require a decent sized overhaul to properly implement this, but it's better than requiring a massive overhaul later.

jonatkins commented 11 years ago

I'd been thinking an overhaul in this area would be a good idea too. Haven't had a chance to think about precise specifics yet though.

Hobadee commented 11 years ago

I've been thinking about this more recently. I think IITC has now reached a point where a single conversion won't be possible. Instead, I recommend an upgrade path. A new API should be designed and formalized. It should then be implemented along-side the existing plugin method. Plugins can then slowly convert to the new API without breaking anything. Once all plugins are changed over, the old interface can be deprecated.

vita10gy commented 11 years ago

To what ends? Couldn't a lot of our woes be solved with a bit of documentation?