kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #27126
Re: Current state of ActionPlugin
Hi all,
So concerning this feature. You prefer to keep it on hold or I create a
patch without the python example (and code formatting fixes ;)
Regards,
Le 10/01/2017 à 18:23, Wayne Stambaugh a écrit :
> Here's my two cents. I share JP and Chris' concerns about developing
> python scripts. As project leader, I can see where a lot of things can
> go seriously wrong. Maybe we should make it clear that there should be
> no expectation from python developers that the api will remain stable
> during development or between stable releases so I'm comfortable
> addressing anyone who makes fuss about api changes. I'm also
> comfortable telling python devs if you break it you get to keep both
> pieces. We are also under no obligation to include python scripts that
> are called by this interface.
>
> That being said, I understand the usefulness of the python scripting. I
> don't want to cut off python developers at the knees because of
> potential issues. I'm OK with this patch as long as we do not include
> any python scripts that get called by this patch. In other words, the
> user bears all responsibility for the performance of their python
> scripts not the kicad project.
>
> On 1/10/2017 10:54 AM, Chris Pavlina wrote:
>> 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
>>
>> _______________________________________________
>> 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
-
Re: Current state of ActionPlugin
From: Wayne Stambaugh, 2017-01-04
-
Re: Current state of ActionPlugin
From: Jean-Samuel Reynaud, 2017-01-09
-
Re: Current state of ActionPlugin
From: Nick Østergaard, 2017-01-09
-
Re: Current state of ActionPlugin
From: Jean-Samuel Reynaud, 2017-01-10
-
Re: Current state of ActionPlugin
From: Maciej Sumiński, 2017-01-10
-
Re: Current state of ActionPlugin
From: jp charras, 2017-01-10
-
Re: Current state of ActionPlugin
From: Chris Pavlina, 2017-01-10
-
Re: Current state of ActionPlugin
From: Jean-Samuel Reynaud, 2017-01-10
-
Re: Current state of ActionPlugin
From: Chris Pavlina, 2017-01-10
-
Re: Current state of ActionPlugin
From: Wayne Stambaugh, 2017-01-10