kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #27116
Re: Current state of ActionPlugin
Ok I understand, but Is it mean that we have to disable python scripting
in all build by default ?
On daily build I manage, its activated by default...
On my side I will modify all plugin I use if the API change. They are
based on a dev branch so I accept that.
An other point is that master branch is a *dev* branch ? So modification
on file format, API... can happen.
Regards,
Le 10/01/2017 à 16:54, Chris Pavlina a écrit :
> What do you do when the internal APIs change and the plugins stop
> working?
>
> I think encouraging people to use this is very dangerous. It is tied so
> much into our internal APIs at the moment. The more people who use it,
> the more everybody is going to scream every single time we change
> anything. We have so much poorly structured code that needs to be
> rewritten - I'm sure a lot of it *will* be when it comes time to remove
> the legacy canvas. If we end up with this many users of the scripting
> API, we will never be able to touch anything again without breaking
> everything.
>
> Wayne, JP: I'm making an appeal to you now to be conservative with
> what you accept for use with the scripting API. This would be a very bad
> point to lock ourselves into having to stabilize it as is. I do not
> think we should be doing this until an interposing layer with a
> formalized, stable API can be created.
>
> On Tue, Jan 10, 2017 at 04:25:10PM +0100, Jean-Samuel Reynaud wrote:
>> Hi,
>>
>> Just from my point of view:
>> We use some python plugin currently and it's not really easy to open
>> each time python console (and remember plugins name, call mode...).
>>
>> I'm agree with you: During devs of scripts it's crashing and my devs
>> have to find the rigth way to process.
>>
>> But this kind of feature can increase number of users/devs of this kind
>> of scripts and raise crash case easily.
>>
>> Regards,
>> Le 10/01/2017 à 16:00, Chris Pavlina a écrit :
>>> Frankly I don't think we should be encouraging users to use the Python
>>> API until it is significantly improved. The issues JP raises make the
>>> API completely unsuitable for plugin use. It's opaque and no users have
>>> any idea how to write robust Python plugins given the current state of
>>> the API.
>>>
>>> On Jan 10, 2017 09:55, "jp charras" <jp.charras@xxxxxxxxxx
>>> <mailto:jp.charras@xxxxxxxxxx>> wrote:
>>>
>>> Le 10/01/2017 à 15:18, Maciej Sumiński a écrit :
>>> > Hi Jean-Samuel,
>>> >
>>> > I think your patch will facilitate use of 3rd party python plugins, as
>>> > the current way of executing commands from the Python shell is not
>>> quite
>>> > user friendly. I vote for merging the patch, but we need to fix some
>>> > code formatting issues first.
>>> >
>>> > Also, I wonder if it would be the right thing to group menu entries by
>>> > their categories to create submenus. It could be a simple way to
>>> > organize the actions provided by python plugins. Just an idea.
>>> >
>>> > Another question is about the following lines:
>>> > + if( IsGalCanvasActive() )
>>> > + {
>>> > + UseGalCanvas( GetGalCanvas() );
>>> > + }
>>> >
>>> > What is exactly the goal here? If it is only about refreshing the
>>> > canvas, then a simple Refresh() call should fix the problem.
>>> >
>>> > Regards,
>>> > Orson
>>> >
>>>
>>> This is a good work.
>>> Thanks Jean-Samuel.
>>>
>>> However, before merging we have to take care of issues which can
>>> easily crash Pcbnew:
>>> Because a python script can modify the board outside the control of
>>> pcbnew edit functions, I am
>>> thinking problems will arise with undo/redo lists (invalid
>>> pointers), ratsnest data and certainly a
>>> few other things.
>>>
>>> Especially for scripts which add or delete items, or change
>>> connectivity.
>>>
>>> Of course, undo/redo lists are alway incorrect after running such
>>> scripts.
>>> This is already a known issue for scripts that are run from the
>>> Pcbnew python console.
>>>
>>> --
>>> Jean-Pierre CHARRAS
>>>
>>> _______________________________________________
>>> Mailing list: https://launchpad.net/~kicad-developers
>>> <https://launchpad.net/~kicad-developers>
>>> Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
>>> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>>> Unsubscribe : https://launchpad.net/~kicad-developers
>>> <https://launchpad.net/~kicad-developers>
>>> More help : https://help.launchpad.net/ListHelp
>>> <https://help.launchpad.net/ListHelp>
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Mailing list: https://launchpad.net/~kicad-developers
>>> Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
>>> Unsubscribe : https://launchpad.net/~kicad-developers
>>> More help : https://help.launchpad.net/ListHelp
>>>
>>
>>
>> _______________________________________________
>> Mailing list: https://launchpad.net/~kicad-developers
>> Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~kicad-developers
>> More help : https://help.launchpad.net/ListHelp
Follow ups
References