Developer Blog
Setting up a standard mapping model in XCode 4 was pretty simple, and takes care of all the easy stuff for me, which was nice. I only had to create a custom subclass of NSEntityMigrationPolicy to handle the details. My idea was that this subclass would create the default bug/feature/doc and high/medium/low entities in (BOOL)beginEntityMapping:manager:error: and then check the type and priority of the old issue entity and hook up the new issue entity to the appropriate issue and type entities. Unfortunately this did not work as expected because the instance of NSEntityMigrationPolicy used for adding entities IS DIFFERENT than the instance used to connect relationships! So when I set up instance properties to hold the default bug/feature/doc entities they aren't there anymore when I go to set up relationships.
Luckily there is an easy work-around which is to fetch the default entities in (BOOL)createRelationshipsForDestinationInstance:entityMapping:manager:error: but I thought this gotcha was important enough (and undocumented anywhere that I could find) that I would write about it in the hopes that other developers could save themselves some time.
During development I typically have many quick code/test/fix cycles, where I implement a feature, test it, and fix any problems I find. Sometimes I find tangential bugs in other areas that I need to remember to fix later but I don't wish to deal with at the moment because they're not related to what I'm working on. CrashSight makes it really easy to jot down a description of the problem complete with screenshots and notes, etc so I can come back to it later.
Having worked as an electrical engineer and a software developer it's really shocking how primitive and un-polished engineering tools tend to be compared to any of dozens of software development IDEs. That's something we want to change and what better platform to create intuitive, polished, and useful tools than the platform that has essentially defined those terms.