Hi Brad, With another week over, I have the following updates to share. These are actually the points from my Notes as I keep going on, so the email might not be well crafted. Thought, would share with you without any delay.
*Week #5-6 (28 Jun - 12 Jul)* Golden lines for the project: 1. A *snapshot* would be a list of install commands that created the current installed state. 2. *Restoring* a snapshot would deactivate the active ports and reproduce the install commands for the selected snapshot. 3. *Migrate* would amount to creating a new snapshot, uninstalling installed ports and reproducing the install commands for the last snapshot. @Brad: Did you miss “uninstalling installed ports” in the second point above? Challenges from the first phase: 1. “variants” - still not discussed by anyone after 2 emails, 1 post and 1 comment on GitHub. -> resolved. 2. I wrote at the end of my first phase that one variant of a port can be active at a time, turns out I was wrong. All thanks to the UI messages and the research. Challenges still to tackle: 1. snapshot needs to store which ports are active as well? 2. refactoring snapshot to use registry::write wrappers and transaction logic. 3. ensuring that active versions are installed after the inactive versions since the output after running `port install vim -huge +tiny`: —— Computing dependencies for vim .. ---> Staging vim into destroot *---> Installing vim @8.0.0596_0+tiny* *---> Deactivating vim @8.0.0596_0+tiny+x11* ---> Cleaning vim *---> Activating vim @8.0.0596_0+tiny* ---> Cleaning vim ---> Updating database of binaries .. shows that installation also activates and we don’t want to activate the ports which were originally inactivated. Agenda for last two weeks: 1. Begin with restore action. 2. Write for uninstalling ports - took the help of reclaim.tcl for this 3. Work on reproducing the install commands for a snapshot 4. Improve the snapshot action as needed for the restore action. Still left from last two weeks: 1. A part to include installation of ports with the help of restore_ports.tcl. Agenda for next two: 1. Finish the restore action by Jul 24. Challenges that might come later: 1. dealing with builds at MP_PREFIX and not at /opt/local. Don’t know now but keep in mind. 2. conflicting ports as Josh said and migration guide says. Important discoveries I made during this period: 1. came to know that the port *vim +tiny+x11* is different from *vim +tiny*, says a lot how ports are variant-bundled. 2. ‘imaged’ is installed but inactive, while ‘installed’ is installed and active. Pondering: 1. Reinstalling the MacPorts/Xcode CL tools for the new platform if it is not built for the new OS already is not something we can help with, right? Work log: https://github.com/macports/macports-base/commits/gsoc17-migrate All reviews and comments are welcome. Regards,
