How to transition PPA users from one PPA to another?

I need to transition existing users from one PPA(s) to different PPA, so this is a question how to automate the transition with as little impact on the users as possible.

More precisely:

I have PPAs for PHP 5.5 and PHP 5.6 that use old style PHP packaging that was used pre-Xenial and they have a quite a lot of users.

Now I made a new PPA that includes PHP 5.5, PHP 5.6 and PHP 7.0 and I would the users of old PPAs to switch to this new PPA. I have a couple of ideas how to do this general, but I would like to have more input from the Ask Ubuntu community.

Please contribute your thoughts via comments, direct edits to the answers below or add your own suggestion.


Option 3 -- Automatically add the new PPA

This is like 2, but php5-common would automatically add the new PPA, so the new packages would be available after next apt-get update run. Optionally there could be a Debconf question whether the users wants the PPA added automatically or they will do so themselves.

  • Pros:
    1. One single repository to handle
    2. No automatic transition
    3. Users can prepare their transition plan
    4. Packages are ready to be installed right away
    5. Adding PPA from same namespace might work flawlessly
  • Cons:
    1. Some users will miss the announcement no matter how hard you try
    2. Adding extra PPA automatically seems like security risk
    3. Adding extra PPA from different namespace needs dropping extra GPG keys in /etc/apt/trusted.gpg.d/ and that also seems like security risk

Option 2 -- Make a deprecation plan and inform the users prominently

  • Pros:
    1. One single repository to handle
    2. No automatic transition
    3. Users can prepare their transition plan
  • Cons:
    1. Some users will miss the announcement no matter how hard you try
    2. There will be people how will say: "Please, don't do that"
    3. No automatic transition

Option 1 -- Do nothing

  • Pros:
    1. Users are happy
  • Cons:
    1. Every duplicate source package has to have two versions of the build script
    2. Overloaded and unhappy PPA maintainer

Option 4 -- Fully automated transition

This is like Option 3, but adds dummy packages that will replace the old php5* and pull the new php5.6*

  • Pros (includes Pros from Option 3):
    1. If everything works like expected, it might be the best option, as the users will have the new packages without any work at their side
  • Cons (includes Cons from Option 3):
    1. The switch will remove changes people have made to the old configuration files or the transition will need some complex maintainer scripts to shuffle the old configuration around to the new locations
    2. The dummy package will need to carry at least some configuration to setup of FPM socket and old names to not break compatibility with old setups (use update-alternatives to setup /usr/bin/php5 to point at /usr/bin/php5.6)