We are committed to a 90-day breaking change policy. This means Platform changes that would require a code change from developers (security and privacy changes excluded) will be announced at least 90 days before the change goes into effect.
Starting with the April 2013 breaking change, we will bundle all breaking changes (security and privacy changes excluded) into quarterly updates.
To clarify what's covered by this policy, here are some examples of changes we might make.
Change/removal of major functionality
We may decide to change or remove existing major functionality, such as removing FBML, the REST API, an SDK or requiring SSL. These types of changes will always be announced 90 days prior to the change going into full effect.
We will continue to enhance our existing APIs and reserve the right to add new parameters, return fields, etc. (such as adding new Page functionality or the ability to get the list of people a user is subscribed to). These changes shouldn't break any existing apps. Please ensure your apps properly handle these scenarios.
Facebook product changes
Facebook products will continue to evolve and we'll communicate these changes when they launch, but not always beforehand. For example, we might improve the Login Dialog or add/move discovery points. We'll strive to minimize disruption.
Privacy and security-related changes
We are committed to fixing privacy and security-related vulnerabilities as fast as possible even if this might mean introducing a breaking change. In these situations, which we strive to avoid, we will work with developers to quickly provide workarounds so they can fix their apps as soon as possible. However, due to the nature of these issues, timeliness is key and there's no way to pre-announce the changes.
To stay up to date on all upcoming changes, be sure to subscribe to our Developer Blog where all breaking changes will be announced. You can also check out the Developer Roadmap to see a full list of all upcoming breaking changes. To test out breaking changes in advance, you can use Migrations. If you ever notice a breaking change that falls out of our 90-day commitment, please file a bug and tag it with the "breaking change" tag to help keep us true to our commitment.