The CiviCRM core team is currently meeting in San Francisco. We tend to meet 2-3 times a year. These meetings help us crank out a few large projects as a group and also help improve our communication when we return to our respective home bases. The focus of the San Francisco meetup has been on CiviCase, US PIRG projects and a few features from the 2.2 roadmap.
Our group (kurund, yashodha and me) have been working on extending custom groups with two new features. In 2.2 a custom group can be designated to hold multiple values. This allows a contact (or relationship/group/activity) to have a 1 to n relationship with a custom group. One use cases for this is storing educational history of a contact. A custom group with fields: Name of School, Qualification earned and Graduation Date could be designated as multi-valued. A contact could have 0 or more educational records. Viewing this custom group will show all the educational information associated with the contact. On edit, you can modify the existing information and/or choose to add new information. Implementing this at a group level has fairly minimal schema changes and is a good chunk for us to tackle and get working for 2.2.
Kurund is working on building the view/edit/create screens using jQuery. Yashi has been working on database and interface changes needed for custom group settings. I was responsible for the api functions that store/retrieve custom values from the table. I wrote a few unit tests and in the process found a couple of bugs with the current custom data storage. I then extended the parameters and return values to allow for multiple value and wrote a few more unit tests to ensure that this worked in both the old and the new format. The CiviCRM code base is fairly well structured, so we have to make the code changes in just a few places (or so we hope). We are also taking this time to clean and update the custom group/field codebase
Yashi is also working on adding custom group support for specific events pages. Users will be able to create a custom group that extends the object 'Participant' for one specific event. We will generalize this in future releases and add more fields.