nrnb / GoogleSummerOfCode

Main documentation site for NRNB GSoC project ideas and resources
116 stars 39 forks source link

State of the Art Build System for the Plugin Framework "InSilico" #128

Closed draeger closed 5 years ago

draeger commented 5 years ago

Background

InSilico is an extensible editor that provide different tools to manipulate and analyze SBML files. Currently, the editor is in an early alpha stage and needs a new build system to increase the reliability and maintainability of the project.

Goal

The build system should support an organized project structure and should be easy to import into any popular Java IDE (Eclipse, IntelliJ, NetBeans). The configuration of the build system should be controlled by a single or only by a few files.

The build system must fulfill the following requirements:

Why?

OSGI is a powerful framework for modular applications.

OSGI is a powerful tool. InSilico currently uses 2 build systems: Eclipse PDE is used for the build inside the IDE.

Maven Tycho is used for the headless build on the server.

We want to replace both build systems with one.

How?

There are already some other projects that try similar solutions. However, it seems like none of them matches our requirements. But it is possible to reuse or extend existing solutions to solve our problem.

Gradle is a widely supported build system that could be extended by plugins. It could be possible to provide a solution to our problem by creating one or more Gradle plugins.

BND is a well-known tool to create OSGi bundles

The Eclipse Plugin Development Environment (Eclipse PDE) and Maven Tycho contain provide similar features which could maybe be ported to a Gradle plugin.

Difficulty Level 2

This project deals with a variety of techniques from advanced software development.

Skills

Interest in improving an advanced software framework for plugin development and to learn about state-of-the-art techniques for deployment and modular frameworks.

Essential:

Nice to have:

Public Repository

InSilico: https://github.com/draeger-lab/insilico/

Potential Mentors

Roman Schulte (@anfark) Andreas Dräger (@draeger)

Contact

Andreas Dräger

nikhilbghodke commented 5 years ago

Hi @draeger @armish My name is Nikhil Ghodke .I am a second year Student of Computer Engineering in Vishwakarma Institute of Technology.I am proficient in Java , PHP ,SQL,C and have faint idea of modularity in java using Jpms .I am really interested in working on this project for Gosc 2019 and had few Doubts

1)Other than Osgi ,what other skills or conceptual understanding, do you think a potential candidate must have for this project? 2)Till what extent do i need to have understanding of SBML ? 3)Should i continue to interact with you regarding the projects here or should i move to emails?

draeger commented 5 years ago

Thanks, @niikhilghodke, for your interest in this topic! Let me answer your questions: 1) Knowing how the Gradle Plugin System works would be helpful (see Gradle Plugin Development Guidelines). Furthermore, it is recommendable to inform yourself about BND. 2) In this project, SBML will be subordinate. It will just give us an example use case for now. The build system itself of the framework will be the main interest of the project. So, we will most likely experiment by just loading an SBML file into a very basic view that displays some information about the file in a simple test plugin while developing a mechanism for better deployment of plugins in general. 2) We can move to e-mails if this is preferred. @anfark and I will be happy to answer your questions. It would be best to send emails to both of us and you will receive a reply much faster.

draeger commented 5 years ago

@niikhilghodke, the best way of moving forward would be reaching out to me via e-mail (see my profile). I'll be happy to send you further information and to put together a competitive proposal together with @anfark.

khanspers commented 5 years ago

Active GSoC 2019 project.