116 | | ==== Add migrate action to port command ==== #migrate |
117 | | |
118 | | Currently, when MacPorts users upgrade to a new OS or hardware they are advised to follow a set of manual [wiki:Migration migration instructions]. These instructions can be challenging for casual users to follow and in some cases more difficult if executed after the OS upgrade or hardware change. |
119 | | |
120 | | The goal of the new port migrates action is to automate the processes described in the migration documentation. The steps to migrate would be roughly: |
121 | | |
122 | | 1. Rebuild MacPorts itself (e.g. by invoking selfupdate) if it has not been rebuilt for the new OS already. MacPorts has a version field compiled in that allows tracking this. |
123 | | 2. Store a copy of all installed ports with their variants so the same exact set can be re-installed. |
124 | | 3. Deactivate all installed ports. |
125 | | 4. Re-install all ports from the stored list of ports. Properly deal with interruptions and resuming so that failures during this procedure can be separately debugged and the migration re-attempted. |
126 | | |
127 | | * Difficulty: Medium |
128 | | * Languages: Tcl, SQL |
129 | | * Potential mentors: pixilla |