This project contains all the note and noteworthy changes in the Eclipse SDK project.

[You can access to the the different releases here](https://www.eclipse.org/eclipse/news/). 

