Hello everyone, a lot of time has passed since I last posted a status report here and I apologize for that.
Composite ForeignKeys were a fairly simple thing to implement with all the required parts already in place. There is one edge case that I'd like to handle, where Django would detect attempts to traverse a composite ForeignKey with select_related while deferring a subset of its backing fields and raise an error. Other than that, the feature only needs people to try it out now. As for the other big thing I've been spending my time on during that time, I was merging Andrew's migration code into my branch. Certain parts of migrations need a little bit of tweaking to support virtual fields. I fixed all regressions caught by the test suite, but there are a lot of weird corner cases when it comes to virtual fields and migrations we're already aware of where the code will just fail. This is an area which will require a lot of polish, so we concentrated on fixing it for simple (non-composite) ForeignKeys first, the rest can come later. I guess this is pretty much it for this year's Sumer of Code. To recap, I managed to implement the core of the project and a few little extra features as well. Unfortunately, I didn't manage to write GenericForeignKey and inspectdb support, which is unfortunate, but a rather large item popped up which wasn't taken into account in my proposal, that is the migrations merge. All in all, I think the project can be considered a success, although there are still a lot of wrinkles to be ironed out. Of course, I intend to stick around and get it to a mergeable state and eventually get around to the features I didn't manage to pull off yet. The current state of the code is that it doesn't cause any regressions in the test suite compared to master in either branch. The next thing to work on (apart from the check I mentioned earlier) is probably giving more polish to migrations of virtual fields and I'll probably document how people can write their own custom virtual fields as well. That's it from me for now. Michal
signature.asc
Description: Digital signature