Name

Questions

MacPorts is a ports collection and packaging system for OS X.
Created in 2002 as DarwinPorts, we have an ever-growing collection
of ports (currently over 22000), many of which accept multiple
configuration variants. MacPorts itself works on both PowerPC and
Intel Macs, running OS X 10.4 through 10.12, and many ports support
a similar breadth of systems. As one of the primary means of
building and installing open source software on OS X, MacPorts is an
important interface between OS X and the rest of the open source
world.

Why is your organization applying to participate in Google Summer of Code 2014? What do you hope to gain by participating?

Boosted by the success of the projects done in 2011 and 2014, we're
eager to add new features and increase the user-friendliness of MacPorts.
We're hoping to attract new developers that will stay with the project
and work on new features and necessary refactoring of our code.
Big goals this year are improving the dependency calculation and
making the Xcode dependency optional.

If you answered “yes” to the question above, please summarize your involvement and the successes and challenges of your participation. Please also list your pass/fail rate for each year.

MacPorts has participated multiple times since 2007. Most of our
students completed their projects successfully, and we greatly
appreciate those contributions. We had previous GSoC students coming
back as mentors in the following years; for example, our backup
administrator was a student for our organization back in GSoC 2011.

2007: 2 pass / 1 fail

2008: 2 pass / 2 fail

2009: 2 pass / 0 fail

2010: 3 pass / 0 fail

2011: 3 pass / 0 fail

2013: 1 pass / 0 fail

2014: 3 pass / 0 fail

2015: 2 pass / 1 fail

If your organization has not previously participated in Google Summer of Code, have you applied in the past? If so, for what year(s)?

not applicable

What Open Source Initiative approved license(s) does your project use?

What criteria did you use to select the mentors? Please be as specific as possible.

Criteria for mentors is based on visible experience in the MacPorts
internals. Since Tcl is likely to be new territory for newcomers, having
mentors that know their way around is key to successfully planning our
projects and guiding students to completion.

Rainer was previously a GSoC mentor, and as a MacPorts manager he brings
great experience in our base code. Clemens was a GSoC student, and after
completion of his project has stayed with us and worked extensively on
MacPorts base. He can also be helpful in getting newcomers setup for
developing in Tcl, since he went through it! Clemens assumed the backup
administrator role when I moved from mentor to admin last year, and
we’ve kept that structure this year. Lawrence is also contributing
greatly to our base code, specifically ensuring packages are built with
compilers they “support”. This is very helpful as some packages still
don’t build right on Clang, or have legacy issues with old Apple GCC.
His efforts allow MacPorts to switch out compilers based on their
version for a given package.

All these mentors fill our desire to have people knowledgeable of
navigating our base code, which uses Tcl.

What is your plan for dealing with disappearing students? Please be as specific as possible.

We require contact information from our students as part of the
application. Students will report their progress to their mentor at
least once a week, via whichever communication medium works best for
both. We know from past experiences that a student can disappear
without notice, but if this happens we will not let them pass the
midterm or final evaluation. We will make this clear from the start,
and students will be urged to maintain regular communication.

What is your plan for dealing with disappearing mentors? Please be as specific as possible.

Our mentors from the past years will be available to assist new mentors’
introduction to the program and ensure that mentors know what is
expected from them.

A disappearing mentor has occurred once, when we also had a disappearing
student. When the mentor disappeared, another mentor—who soon after
became a MacPorts manager—stepped in to cover.

We’ve made it a rule that mentors will communicate among each other
about progress and problems of their students, allowing for a clean
failover to another mentor. This also helps with setting expectations
and making evaluations.

Projects will usually have multiple mentors, to provide redundancy if
one disappears. If a student cannot reach any of their mentors, they
should contact an organization administrator, who will have more contact
information. If that fails, they should post to the development mailing
list, to send others after myself and the backup admin.

What steps will you take to encourage students to interact with your project's community before, during and after the program?

We like to make contact with our students even before they submit their
application, via IRC or on our mailing list. During the application
phase we will refine and discuss proposals with other developers. In the
program, students participate in our normal development process: They
get their own Subversion branch to work on, all their commits are
publicly viewable, and any member of the MacPorts community can provide
feedback by replying to the commit system’s emails. We also like
students to post status reports to the public development mailing list
as they reach specific milestones. By requiring communication with
people other than their mentors, we encourage them to work in the spirit
of open source development.

As we let students work as one of the project’s developers, we look
forward to their continued development of MacPorts after GSoC concludes.
Like any other developer, they will get regular commit privileges to
help the project as they see fit; this also provides an introduction to
future work. Multiple students have returned as mentors in the following
years, demonstrating the effectiveness of this method.

Are you a new organization who has a Googler or other organization to vouch for you? If so, please list their name(s) here.

not applicable

Are you an established or larger organization who would like to vouch for a new organization applying this year? If so, please list their name(s) here.

not applicable

What will you do to encourage that your accepted students stick with the project after Google Summer of Code concludes?

We keep all students’ work in our source repository, and rebase it
often so it’s ready to be integrated. Seeing a student’s code “go
live” and get used by the project is the single best incentive. We
also plan to keep in contact with the student to see if there are
additional areas of MacPorts that might interest them for long-term
involvement.

Is there anything else we should know or you'd like to tell us that doesn't fit anywhere else on the application?