← Back to team overview

kicad-developers team mailing list archive

Re: Plot and drill file generation via scripts

 

I haven't even had time to read what Lorenzo is thinking yet.  And as I said, I would not
do anything this big without talking to the key share holders, excuse me, lead developers,
JP and Wayne.

So at some point, providing I can catch up in time to satisfy you, by me executing those
steps, that would be something I can do, yes, provide you with a quote.

The consultative decision process, ahem, involves consultation.  And believe it or not,
consulting your patch would be on that list also.  I haven't even looked at it yet.

But then, yes, the functionality is needed, and I am delighted you are open to funding the
balance of work, and providing a portion of it possibly, as already written.

Thanks for asking.

Dick




On 05/03/2013 04:23 PM, Adam Wolf wrote:
> Hi Dick,
> 
> I appreciate the 1187 commits.  If I didn't, I would have simply
> created another PPA and maintained a testing branch, selling this
> functionality to board houses.
> 
> Can you tell me (privately if need be) how much Wayne and Layne would
> have to pay to have you implement enough of your desired changes so
> something providing this functionality is acceptable and can be
> committed in core?
> 
> Adam Wolf
> Wayne and Layne, LLC
> 
> On Fri, May 3, 2013 at 4:05 PM, Dick Hollenbeck <dick@xxxxxxxxxxx> wrote:
>> On 05/03/2013 03:07 PM, Adam Wolf wrote:
>>> Hi folks,
>>>
>>> Can I selfishly suggest something?
>>>
>>> Since Dick has a plan for where this goes and how the future interface
>>> works, can we do the minor changes in my patch so that folks that
>>> choose to use the experimental Python features can get to the drill
>>> calls?
>>>
>>> I tried to propose a solution to create drill and plot files from the
>>> command line that has (hopefully) minimal changes to Kicad.  If the
>>> team agrees that those minimal changes probably won't hurt anyone, is
>>> it ok that they get committed?  I like Dick's vision and how nicely it
>>> aligns with the dll/dso future.
>>
>>
>> You can push to your own branch, and they can get it from there.
>>
>> We're having a discussion now.
>>
>> (I'm beginning to wonder if open source software development is a spectator sport after
>> all.  This is why a lot of stuff happens off list.)
>>
>> This is a reasonably significant architectural decision, and having folks become dependent
>> on some temporary feature is not prudent, and I don't want it to lock us in to honour some
>> previous API, or form of obligations.
>>
>> So I think its best that the testing branch be done correctly.  I would want to consult
>> with Jean-Pierre and Wayne, probably in private.
>>
>>
>> The GPL says you get to use my code.  It does not say I have to accept yours.  The process
>> here is not democratic.  It is evolution by consultation.
>>
>> Folks are free to publish their own branches, and you can vote on those branches.  In
>> branch testing, I am a key shareholder, and I have trusted people that I consult to make
>> important decisions.
>>
>>
>> $ bzr log | grep 'ickelbeck\|ollenbeck' | wc -l
>> 1187
>>
>> The 1187 commits.... should mean something to you and should explain why every now and
>> then I perk up and assert more control.  Actually I am in control *all* the time, it only
>> looks like I am not, because the consultative decision process is happening without you
>> knowing it apparently.  This is not to say I have to or want to control everything,
>> precisely not.  But exposing APIs means people become dependent on them, that is a form of
>> an obligation.  Obligations are somewhat binding, so I perk up.  Other stuff is not as
>> important.
>>
>> So no, we're not committing your patch.  At least not at this time.  But I said that in so
>> many words yesterday.
>>
>>
>> Dick
>>
>>
>>
>>
>>>
>>> Adam Wolf
>>> Wayne and Layne, LlC
>>>
>>> On Fri, May 3, 2013 at 2:45 PM, Dick Hollenbeck <dick@xxxxxxxxxxx> wrote:
>>>> On 05/03/2013 02:23 PM, Lorenzo Marcantonio wrote:
>>>>> On Fri, May 03, 2013 at 02:02:01PM -0500, Dick Hollenbeck wrote:
>>>>>> What about what I think Lorenzo?  Is that important to you in any way?
>>>>>
>>>>> I reread this:
>>>>> https://lists.launchpad.net/kicad-developers/msg07515.html
>>>>> (is this what you were talking about, right?)
>>>>>
>>>>> Quote your message:
>>>>>
>>>>>> We also talked about moving the non-UI member functions that are now in
>>>>>> PCB_BASE_FRAME, PCB_EDIT_FRAME, into a class which is purely for
>>>>>> significant actions but with NO UI, like plotting, annotating, etc.  The
>>>>>> UI portion (meaning the preceding dialog invocation) would stay out of
>>>>>> this class.  conceptually lets call this class BOARD_ACTIONS.  All the
>>>>>> functions in BOARD_ACTIONS take enough parameters to operation *without
>>>>>> any UI*, by definition.
>>>>>
>>>>> Well, what I call 'procedural code' could be fit inside your
>>>>> BOARD_ACTION stuff. In substance I completely agree with your plan.
>>>>> The whole print controller is more or less 'a piece' of the board
>>>>> action. Since it's somewhat hypotetical I'd say that the plot
>>>>> controllers and the drill controllers are part of the board actions
>>>>> interface (not necessarily everything should be put in one class)
>>>>
>>>>
>>>> If they are not in one class, this makes the mix-in tougher back up at the PCB_BASE_FRAME.
>>>> You end up with 2,3,4 classes, each holding a BOARD*, and each being mixed in via multiple
>>>> inheritance?  Instead of one class.
>>>>
>>>> In that posting, which was nearly a year ago, I said I had been thinking about it for over
>>>> a year.  When you add that up, this is two years, at least.
>>>>
>>>>
>>>>>
>>>>> In the message before I intended to say that probably there is no need
>>>>> to 'deeply integrate' it with the frame since most probably it could
>>>>> live by itself (a BOARD* probably would be sufficient for doing the
>>>>> work).
>>>>
>>>> I am thinking that multiple inheritance at the FRAME level is one line of code to do the
>>>> mixin.  And yes, of course it can live detached as well.  One class, two living
>>>> environments.  If instantiated stand alone, then it is an interface for python.  If
>>>> instantiated as part of frame, it augments a frame.
>>>>
>>>> Since it is ONLY actions, i.e. procedural calls, then the integration happens in the
>>>> frame, no that is already done.  Just move *procedural* functions into BOARD_ACTIONS, no
>>>> event handling, no dialogs, no UI.
>>>>
>>>> What am I missing?
>>>>
>>>> The dialogs can stuff something like the PLUGIN PROPERTIES object, which could be renamed
>>>> to say, OPTIONS.  Then OPTIONS can be passed to some of the functions in BOARD_ACTIONS.
>>>> Or python can stuff OPTIONS, and do the same.
>>>>
>>>> This has been my vision for 2 years.  Just saying you don't like it or that it is not
>>>> necessary, is actually an insufficient argument.  Will it work, and what is better if
>>>> anything, and why?
>>>>
>>>>
>>>> Dick
>>>>
>>>>
>>>>
>>>> I was referring to the following paragraphs where you say:
>>>>>
>>>>>> BOARD_ACTIONS could then be transported into two realms:
>>>>>>
>>>>>> a) back into PCB_*_FRAME by multiple inheritance, so you are back to
>>>>>> where you started from with respect to PCB_EDIT_FRAME.
>>>>>>
>>>>>> b) into the top of a scripting entry point DLL/DSO.
>>>>>
>>>>> Since these are 'new' interfaces and not adaptations they can simply use
>>>>> the public interfaces without needing to be mixed in.
>>>>>
>>>>> So, two use cases
>>>>> 1) Plot from UI: PCB_FRAME creates the dialog, dialog uses a controller,
>>>>> controller does stuff using the board public interface
>>>>>
>>>>> 2) Plot from script: python creates the controller with a board,
>>>>> controller does stuff using the board public interface
>>>>>
>>>>> I guess it can't be neater than that...
>>>>>
>>>>> In short, I substantially agree with your whole idea. Otherwise I don't
>>>>> get what is different in your plan.
>>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> 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