There is two majors changes concerning Icy development project in Icy 2.1:
- Icy repository project is now hosted on GitLab: https://gitlab.pasteur.fr/bia/icy
We chose to move on GitLab as it helps us to improve the project management processes. It also offers more control compared to GitHub, as everything is hosted internally while still being accessible from outside and being public. The old GitHub repositories will remain active for sometimes but won’t be updated anymore.
We also decided to move all featured plugins developed internally (i.e. by the BIA lab) on GitLab. As for the Icy kernel, their sources are publicly accessible on their respective GitLab repository. That also means that you will also be able to report issue, propose patches and generally be more involved into their development.
- Icy project migrated to Maven
This is where a lot of things changed compared to the previous way of developing with Icy. Historically, Icy project was managed as an Eclipse project, to be more precise as 2 projects: Icy-Kernel and Icy-App:
- Icy-Kernel was the Icy development project containing the sources and base resources (images, icons..) while
- Icy-App was used to host the libraries and to build the application package. It was also used as the main dependency for Icy plugin development.
One of the major issue with this configuration is that it lacked of a true dependency management system. Everything was handcrafted using a manually filled XML file to store the version number of each library. This could lead to mistakes (version information not up to date with the library) and also make integration with external projects very difficult, even more as Icy was using customized version of some libraries.
Maven migration forced us to make a big cleanup so now the project is much better in this aspect. Everything is now managed from a single Maven project (POM file) and the required dependencies are only used where they need to be. Each of these dependencies is properly versioned and accessible to everyone through a public Nexus repository.
All in one, that ensures to Icy a much better and stronger development cycle for the future 🙂
Along with this new version, we pursue our efforts in supporting developers of Icy plugins and kernel contributors. We wrote a series of articles to help you develop within Icy or/and migrate your old developments (if you need to) within this new environment. You can get started with these ones: