← Back to team overview

kicad-developers team mailing list archive

Re: New settings framework merged


Hi Jon,

Great work, I like this framework much better.

I noticed that there was a change in behavior of how action plugin settings
are stored.
Previously it was an ordered map of (plugin path) -> (visible/hidden)
Now it's an ordered array of only visible plugin paths.

This has 2 effects:
1. Configured order of hidden plugins is lost which means every time one
wants to enable it, they are forced to bubble sort their list again.
2. Plugins that have button enabled by default (i.e. corresponding property
in python is set) are shown no matter what the user chooses.

While first is inconvenience, second is definitely a bug.
I think we need to restore previous behavior. In terms of json
representation probably ordered array of {path : visibility} tuples will
work best.


On Wed, Feb 19, 2020 at 8:57 PM Jon Evans <jon@xxxxxxxxxxxxx> wrote:

> Hi everyone who uses nightly builds of KiCad!
> For those who don’t follow GitLab that closely, the new settings system
> got merged today.
> This brings a few user-facing changes that you should be aware of:
> First, user settings are now stored in versioned subfolders of the KiCad
> config path.  The major and minor versions are used, so currently this
> means “5.99”.  When you first launch KiCad, you’ll see a window asking you
> where to get the settings from. It will default to using your current KiCad
> installation, but you can manually pick a different path to migrate from.
> Your settings will be automatically upgraded as you use KiCad the first
> time.  All of your settings should be preserved: please report any problems
> you notice so that I can investigate.
> There is no backwards-compatibility for settings.  Any settings changes
> you make after migrating your settings to the new system will only apply to
> newer versions of KiCad.  You can continue to run older versions of KiCad
> on your system, and they will continue to use the old settings files.
> If you have been using the KICAD_CONFIG_HOME environment variable to allow
> running multiple versions of KiCad on the same machine, this technique is
> still allowed but should no longer be necessary.  If this variable is set,
> it will determine the base path for settings (there will still be
> version-specific directories created within that base path).  I recommend
> that you clear this variable before launching KiCad after this change, and
> then when you see the dialog asking where to import settings from, choose
> the appropriate path (either the default, or wherever you had set
> KICAD_CONFIG_HOME to depending on where you’d like to import from).
> Second, settings are now stored in JSON format.  This mostly will only
> impact people who are used to manually editing settings files.  I think the
> most common reason people do this is to apply color themes.  A real color
> theme system is also coming in the V6 development cycle!  For the moment,
> this change will break the ability to paste in color settings you find from
> other people until those themes are updated to the new format.  I’ll assist
> in making a migration script so that those of you who have repositories of
> colors (such as https://github.com/pointhi/kicad-color-schemes) can make
> versions of these themes that work with the new system.
> For the moment, this change only impacts system settings.  A similar
> change is coming that will impact project settings (i.e. those that are
> currently stored in the KiCad project file and design files).  I’ll make
> another announcement when that change is ready with more details.
> If you are paranoid, it might be good to back up your settings files
> before updating KiCad.  As always, please report any issues on GitLab so
> that we can investigate and solve them as soon as possible.
> Best,
> Jon
> _______________________________________________
> 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