← Back to team overview

kicad-developers team mailing list archive

Re: [patch?] Handling conflict between projname-cache.lib and an updated library

 

Chris,

I committed your patch in the product branch r5623.  Very nice work by
the way.  I have a few minor comments.

* Most of the wxT() and _() macros are missing spaces between the braces
and the string.

* The rescue dialog does not have a default button set so that you can
just hit enter to select the default action.  In this case it should be
the OK button.

* I'm not sure we need a second dialog after the rescue dialog.  It
seems a bit like nagware to me.  If we decide to keep the rescue status
dialog, it needs to be fixed because it has to be expanded (at least on
windows) because it doesn't show anything other than the headers.  Try
using Fit() after populating the control before the dialog is shown.
There are examples of this in other kicad dialogs.

* Everyone please test this thoroughly if you have any old schematics so
we can be sure it's robust enough for the stable release.

Thanks,

Wayne

On 4/12/2015 1:57 PM, Chris Pavlina wrote:
> And, because I'm excessively stupid today, here's a version of the patch
> that I didn't diff incorrectly.
> 
> On Fri, Apr 10, 2015 at 07:15:00PM -0400, Wayne Stambaugh wrote:
>> On 4/8/2015 8:48 PM, Chris Pavlina wrote:
>>> Any more devs have an opinion on this?
>>
>> I've already said it would be a good idea albeit a temporary one for the
>> upcoming stable release.  I just saw another reply to a bug report about
>> someones schematic being incorrect because the library components have
>> changed.  Looking at the changes to the component libraries, it would be
>> my guess that we will have a lot of upset users who have not upgrade
>> from the previous stable release.  Does anyone else have any opinions
>> about this?
>>
>>>
>>> On Mon, Mar 30, 2015 at 02:01:07PM -0400, Wayne Stambaugh wrote:
>>>> On 3/30/2015 1:58 PM, Chris Pavlina wrote:
>>>>>
>>>>> On Mar 30, 2015 1:49 PM, "Wayne Stambaugh" <stambaughw@xxxxxxxxx
>>>>> <mailto:stambaughw@xxxxxxxxx>> wrote:
>>>>>>
>>>>>> Please fix your coding style issues.  I saw:
>>>>>>
>>>>>> if( foo ) bar;
>>>>>>
>>>>>> should be:
>>>>>>
>>>>>> if( foo )
>>>>>>     bar;
>>>>>>
>>>>>> Also, two blank lines between function definitions in cpp files.
>>>>>
>>>>> Oops, missed these bits of the style. Will fix by tomorrow.
>>>>>
>>>>>> In the future, please do not create OnOk()/OnCancel() message
>>>>>> handlers
>>>>>> then call EndModal() in your dialogs.  This is broken by design. 
>>>>>> Your
>>>>>> dialog may not always be modal.  It may be useful to create them as
>>>>>> modeless or quasi-modal so calling EndModal() fail.  I know it is
>>>>>> used
>>>>>> in virtually every dialog in KiCad and it is fundamentally wrong. 
>>>>>> The
>>>>>> wxWidgets developers were kind enough to create all the necessary
>>>>>> plumbing to handle this.  Please read
>>>>>> http://docs.wxwidgets.org/3.0/overview_validator.html and take
>>>>>> look at
>>>>>> common/dialogs/dialog_env_var_config.cpp for tips on transferring
>>>>>> data
>>>>>> to and from the controls using wxDialog.
>>>>>
>>>>> Oh, you'll have to forgive me, I'm a bit new to wx. Not just "in the
>>>>> future", I'll get this fixed as well. Last thing I want to do is add
>>>>> broken code to KiCad. Perhaps I'll help out and start working on
>>>>> fixing
>>>>> some of the existing ones too.
>>>>
>>>> Thanks.  Don't worry about the existing ones until after the stable
>>>> release.  I want to keep focused on that until it's done. 
>>>> Otherwise, we
>>>> will just keep making changes and never get the stable release out the
>>>> door.  I want to let everything stabilize and make sure we get all of
>>>> the bugs fixed.
>>>>
>>>>>
>>>>>> [snip] I need your
>>>>>> assurance that you will see it through to the stable release
>>>>>> before I'm
>>>>>> willing to give it my approval. I would also appreciate if you could
>>>>>> update the Eeschema documentation at
>>>>>> https://github.com/ciampix/kicad-doc or have someone document it for
>>>>>> you.  What say the rest of you?
>>>>>
>>>>> Yup, plan was to see it through. I'll document it as well - just
>>>>> let me
>>>>> get these fixes implemented first.
>>>>
>>>> You've got plenty of time.  The stable release goal is the late
>>>> June/early July time frame.
>>>>
>>>>>
>>>>>> On 3/30/2015 11:43 AM, Chris Pavlina wrote:
>>>>>> > Well, seems I missed the freeze on this one, but I've got a patch,
>>>>>> might
>>>>>> > as well share. Works well for me - comments welcome, of course, and
>>>>>> > ideas for more testcases.
>>>>>> >
>>>>>> > At schematic load, or when the tool is selected from the menu, the
>>>>>> > schematic is analyzed for any problematic components. These are
>>>>>> where
>>>>>> > the component found in the cache has pins moved or changed from
>>>>>> the one
>>>>>> > found in the system libraries. When this happens, the following
>>>>>> dialog
>>>>>> > is displayed:
>>>>>> >
>>>>>> > https://db.tt/qIAesEQv
>>>>>> >
>>>>>> > The user can choose per symbol whether to keep the library
>>>>>> version or
>>>>>> > the cached version.  Any cached components selected for "rescue"
>>>>>> are
>>>>>> > renamed to "$componentname-RESCUE-$projectname" and placed in a
>>>>>> > "$projectname-rescue" library, which is added to the project at
>>>>>> the top
>>>>>> > of the library list.
>>>>>> >
>>>>>> > When the operation is complete, the user is presented with a nice
>>>>>> > summary of the renames done.
>>>>>> >
>>>>>> > Aliases are a tricky case, because the cached and library
>>>>>> components
>>>>>> > don't have to have the same alias list. The simplest way I found to
>>>>>> > handle this was to break apart aliases in the -rescue library: all
>>>>>> > components are stored as single parts with no aliases.
>>>>>> >
>>>>>> > For those who don't want their hands held, there is a "Never Show
>>>>>> Again"
>>>>>> > button.  The setting for this can be reverted by a checkbox in
>>>>>> Component
>>>>>> > Libraries if done by mistake.
>>>>>> >
>>>>>> > --
>>>>>> > Chris
>>>>>> >
>>>>>> > On Mon, Mar 23, 2015 at 01:27:35PM -0400, Wayne Stambaugh wrote:
>>>>>> >> On 3/23/2015 1:16 PM, Chris Pavlina wrote:
>>>>>> >>> On Mon, Mar 23, 2015 at 01:07:33PM -0400, Wayne Stambaugh wrote:
>>>>>> >>>> On 3/23/2015 12:12 PM, Chris Pavlina wrote:
>>>>>> >>>>> I like your idea - I proposed it myself, but it was not well
>>>>>> >>>>> received ;)
>>>>>> >>>>> [[snip]]
>>>>>> >>>>
>>>>>> >>>> Please see the discussion here on why this will not work.
>>>>>> >>>>
>>>>>> >>>> https://bugs.launchpad.net/kicad/+bug/1435338
>>>>>> >>>>
>>>>>> >>>> I see no point in replacing one bug with another bug that
>>>>>> doesn't fix
>>>>>> >>>> the underlying problem.
>>>>>> >>>
>>>>>> >>> Haha, just kidding, I know :)
>>>>>> >>>
>>>>>> >>>> Rather than just copy the cache file, rename all of the
>>>>>> footprints in
>>>>>> >>>> the copied library with a prefix or suffix, i.e. 74LS00 in the
>>>>>> cache
>>>>>> >>>> becomes 74LS00_SCH in the new library.  Then rename all the
>>>>> components
>>>>>> >>>> in the schematic accordingly if the user chooses the new library
>>>>>> >>>> option.
>>>>>> >>>> This way there will be little chance of conflicting component
>>>>> names and
>>>>>> >>>> the library search order is less likely to be an issue.  This
>>>>> gives you
>>>>>> >>>> the best of both worlds.  You keep your existing components
>>>>>> in the
>>>>>> >>>> schematic and you can still use the updated components from the
>>>>>> your
>>>>>> >>>> libraries if you so choose.  Obviously this still wont fix the
>>>>> library
>>>>>> >>>> search ordering issue but it would be a more robust solution.
>>>>>> >>>
>>>>>> >>> Actually, I quite like this idea.
>>>>>> >>
>>>>>> >> I know it's more work but it solves the component name clash
>>>>>> issues and
>>>>>> >> the user will still be able to use their normal libraries.
>>>>>> >>
>>>>>> >>>
>>>>>> >>> _______________________________________________
>>>>>> >>> Mailing list: https://launchpad.net/~kicad-developers
>>>>>> >>> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>>>>> <mailto: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
>>>>> <mailto: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
>>>>> <mailto: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
>>>>> <mailto: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
>>
>>
>> _______________________________________________
>> 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