Summer of Code 2017
This page is dedicated to the projects accepted into Google SoC 2017, here's a list of accepted projects:
Project | Student | Mentor |
Adding migration action to port command | Umesh Singla | Bradley Giesbrecht |
Bot and CI for macports-ports | Zero King | Mojca Miklavec, Clemens Lang |
Adding migration action to port command
A MacPorts installation is designed to work with a particular OS and a particular hardware architecture. After major system changes like an OS upgrade or hardware change, currently, MacPorts users have to follow a set of manual migration instructions to ensure a smooth transition. The purpose of this project is to automate the processes described in the migration documentation so that following the migration steps is no longer challenging for casual users or for anyone. The migration tool would install a new port command and using PortIndex, it would uninstall and reinstall the requested ports with variants.
Project on Google's SoC Dashboard (Login required)
How to use:
- NOTE 1: Make sure to take a backup of your requested ports and all ports first in a file.
- NOTE 2: It'd be better to keep the interactive mode on, so you know what's going on from time to time.
There is a problem with restoring build dependencies at the moment, so it sometimes asks to continue.
Run sudo port migrate
after upgrading your system. It will create a snapshot of your ports first, and restore the active ports then. If there is a need to update macports, it will fail and notify. Try to follow the notes output at the end of its command.
You can also use:
sudo port snapshot --note "some optional note"
to create a snapshot yourself and later restore it using sudo port restore --snapshot-id X
.
At any point, if the restore fails and you need to do some manual changes in the registry, you can simply start the restore again afterward, using the same command as above.
Bot and CI for macports-ports
Right now PRs have to be manually tested by commiters and some commiters aren't aware of new PRs at all. Also, certain information like whether the PR is submitted by the port maintainer have to be checked manually.
l2dy plans to implement a bot in Go dealing with PRs for macports-ports and utilize Travis CI to test commits and PRs.