I think everyone knows by now that debugging a Python Addin tool is a major pain. You have to make your changes, rebuild the addin, reinstall it and restart ArcGIS. I suppose it wouldnt be quite so bad if there was a way to get ArcGIS to initialize significantly faster.
Alas, I'd like to know if anyone has had any success using an open source CI tool to build and test Python Addins or if anyone has any ideas as to how it could work.
I was talking to one of Esri's Python folks at the DevSummt last month and asked about Python Addins for ArcGIS Pro, ie. where are they? His response to me - which really took me off guard - was that they are waiting to see if there is any actual demand for Python Addins in Pro. I don't know if that is the actual stance Esri is taking but man, just a couple of years ago Esri was preaching Python like never before and at DevSummit they integrated Anacondas and iPython Notebooks, so to skip over Python Addins in Pro was really a shock to me. Like, no UI bindings for Python in Pro? What they heck is the point of developing in Python for Pro then if everything has to go into a Python or custom toolbox? Why not take the plunge and just go with .NET?
I suspect the demand is overrated and many workflows don't 'need' click-and-do functionality, for example. I imagine it differentiating the need versus nice functionality. Even their click-and-drag example, I find a bit slim, since I would want to have full control over the area of interest bounds. I can seem situations where it might not be critical or important, but is it just convenient or a necessity.
The documentation in the link makes an attempt to explain this, but I still see the desire by some to go this route as a first go at creating tools rather than something to work towards based on no other recourse in their workflow. It would be nice if one example was chosen/produced and options presented in the help files or in a developer document somewhere.
If it is required to make a customization that performs an action in response to an event, or requires the use of the mouse to interact with the display, you should consider making an add-in. An example is a tool that requires the user to click and drag a rectangle over a map to define an area of interest. Another example is an application extension that saves the map document automatically anytime a layer is added or removed from the table of contents.