Configuration_files_upgrades_made_easier

Please check the status of this specification in Launchpad before editing it. If it is Approved, contact the Assignee or another knowledgeable person before making changes.

Summary

When upgrading a package for which you have made changes, intelligently merge old configuration file, with the new one, rather then choosing the old one or the new one.

Release Note

Now, the package manager have been changed so as to intelligently merge the modifications you made to configuration files of previous version of a package, with the new changes made to the default configuration file for the new package. Before, you were been asked if you wanted to keep old configuration file, or use the new version. Now, most of the time, the package manager don't ask you any questions, it just keep your modified values, and add the new keys, values pairs in the configuration file. The only time it does ask you what to do, is when you had modified a key, which now have a new default value different than the default value of the previous version. When this come, it offers you of keeping your modified value, or adopt the new default value.

Rationale

Most administrators knows that it is better to accept new configuration files rather than keep the old version they had modified, because often new options are added in the new version. And then remake the change they want to the default configurations. We believe this is crazy, and that this is caused by the fact that current package manager only offer between the old and the new configuration. We believe that it should be able to add to the old configuration, new key and values pairs, keep the old modifications we had made to the defaults, and when defaults have changes for some of the keys for which we had not the default value, ask us if we want to keep our modified values, or the new default values, and that for each key.

This bug was originally proposed by Timothy Miller in Bug #69412.

Use Cases

Assumptions

Design

Big picture

Design is presently discussed in Configuration_files_upgrades_discussion Feel free to go there and add your comments!

.plist files are described here

More precise picture

Need to clarify big picture a bit before having this section.

Implementation

This section should describe a plan of action (the "how") to implement the changes discussed. Could include subsections like:

UI Changes

Should cover changes required to the UI, or specific UI that is required to implement this

Code Changes

Code changes should include an overview of what needs to change, and in some cases even the specific details.

Migration

Include:

  • data migration, if any
  • redirects from old URLs to new ones, if any
  • how users will be pointed to the new way of doing things, if necessary.

Test/Demo Plan

It's important that we are able to test new features, and demonstrate them to users. Use this section to describe a short plan that anybody can follow that demonstrates the feature is working. This can then be used during CD testing, and to show off after release.

This need not be added or completed until the specification is nearing beta.

Outstanding Issues

This should highlight any issues that should be addressed in further specifications, and not problems with the specification itself; since any specification with problems cannot be approved.

BoF agenda and discussion

Use this section to take notes during the BoF; if you keep it in the approved spec, use it for summarising what was discussed and note any options that were rejected.


CategorySpec CategorySpec

Configuration_files_upgrades_made_easier (last edited 2008-08-06 16:17:40 by localhost)