Preferences revamp?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Preferences revamp?

Chris Muller-4
The discussion of Preferences came up in our board meeting last week.
Clearly, Preferences is something that serves Squeak and our
community, due to the amazing range of system configurability they
provide, allowing the system to be tailored to any user-style and
purpose.

However, I feel that the Preferences framework itself does not do
everything I want it to do.  These are the minimum requirements I
think our Preferences system should be able to do:

     1)  it must have a first-class model (which it already does)
     Preferences and Preference.  All of the following requirements must be
     able to be satisfied by talking strictly to this model, (no required
     browsers or sends to outside classes) with uniform API usage
     regardless whether the underlying implementation (Pragma or
     otherwise).
     2)  Answer a collection of all Preference objects representing the
     current system settings.
     3)  Ability to access any single Preference object by its Symbolic
     name.  (We want to maintain the standard Smalltalk "senders" being
     able to easily find users of preferences by their name).
     4)  Ability to ask any Preference its default value, without resetting
     its current value.
     5)  Ability to reset any Preference to its default value, another
     fixed value, or cycle from its current value to its next value.
     6)  Answer a collection of Preference objects representing the default
     system settings, without changing any current Preference settings.
     7)  Answer a collection of the diff between (2) and (6), above,
          without changing the current value of any preferences.
     7.5) Ability for a Preference to answer literal structure (key->value)
     that can be used as input for requirement 7.6.
     7.6) Ability to construct or set a particular Preference to value from
     a libteral specification.
     NOTE:  7.5 and 7.6 are to support ReleaseBuilder
     defaultValueTableForCurrentRelease.
     8)  Ability to Save / Load entire sets of preferences.  But it must be
     a _Logical_ representation of the value so it will work for all future
     Squeaks.
     9)  (Nice-to-have --->) Ability to Save / Load partial sets of
     preferences, leaving remaining preferences unchanged.
      10) Last but not least:  External applications must be able to
     seamlessly and dynamically extend the system with their own
Preference objects and
     have all the above requirements satisfied for them.

Maybe its just because I'm an old-school Smalltalker who prefers to do
everything in objects; but I just have this feeling that the Pragma
implementation we have been using, in spite of its complexity, is
really limiting us, certainly in terms of my above requirements
wishlist, right?  Like, #7, for example...

OTOH, one thing that became very clear from working on the Theme ideas
with Karl and Marcel, is that that is very related to Preferences, and
behaves very much like a preferences system.  I believe it could be
used for the non-visual preferences, too..

Reply | Threaded
Open this post in threaded view
|

Re: Preferences revamp?

marcel.taeumel
Just one addtion: Backwards compatibility is a must-have here. :-)

Best,
Marcel
Reply | Threaded
Open this post in threaded view
|

Re: Preferences revamp?

Hannes Hirzel
+1

regarding point 9:  should be possible .


And http://wiki.squeak.org/squeak/518

     "How to lockdown an image for release"

should be reviewed / and if necessary updated.

--Hannes

On 3/7/16, marcel.taeumel <[hidden email]> wrote:

> Just one addtion: Backwards compatibility is a must-have here. :-)
>
> Best,
> Marcel
>
>
>
> --
> View this message in context:
> http://forum.world.st/Preferences-revamp-tp4882849p4883105.html
> Sent from the Squeak - Dev mailing list archive at Nabble.com.
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Preferences revamp?

Karl Ramberg
I would really like to be able to manage my preferences with monticello versioning.
It would be easier to keep images in sync and have other benefits.

We could for for example have a source.squeak.org/preferences repository.

Best,
Karl


On Tue, Mar 8, 2016 at 8:06 AM, H. Hirzel <[hidden email]> wrote:
+1

regarding point 9:  should be possible .


And http://wiki.squeak.org/squeak/518

     "How to lockdown an image for release"

should be reviewed / and if necessary updated.

--Hannes

On 3/7/16, marcel.taeumel <[hidden email]> wrote:
> Just one addtion: Backwards compatibility is a must-have here. :-)
>
> Best,
> Marcel
>
>
>
> --
> View this message in context:
> http://forum.world.st/Preferences-revamp-tp4882849p4883105.html
> Sent from the Squeak - Dev mailing list archive at Nabble.com.
>
>




Reply | Threaded
Open this post in threaded view
|

Re: Preferences revamp?

Chris Muller-3
> I would really like to be able to manage my preferences with monticello
> versioning.
> It would be easier to keep images in sync and have other benefits.

You mean you aren't _already_ doing that?  How do you configure your
applications?

I wrote a configuration method to set my app's preferences and version
it with the app code itself..

Reply | Threaded
Open this post in threaded view
|

Re: Preferences revamp?

Karl Ramberg
Do you save the preferences from the PreferenceBrowser and manage them with Monticello ?

Best,
Karl

On Wed, Mar 9, 2016 at 4:39 PM, Chris Muller <[hidden email]> wrote:
> I would really like to be able to manage my preferences with monticello
> versioning.
> It would be easier to keep images in sync and have other benefits.

You mean you aren't _already_ doing that?  How do you configure your
applications?

I wrote a configuration method to set my app's preferences and version
it with the app code itself..




Reply | Threaded
Open this post in threaded view
|

Re: Preferences revamp?

Chris Muller-3
> Do you save the preferences from the PreferenceBrowser and manage them with
> Monticello ?

I write the code which sets the prefs.  To generate the code from a
button in the preferences browser, we should get requirements 7, 7.5
and 7.6 working.  Its what we've been wanting to do with our releases
for years.  We just need to do it..