Home » Code

Category: Code

Going forward: focus

In addition to our already discussed attempt to broaden our community reach and communication, we want to bring more focus to our code and development processes. The current development team is too small to properly take care of the whole codebase of ChiliProject with all its different functions and dependencies, correct bugs, implement new features and follow the development of Ruby and Ruby on Rails all at the same time. To alleviate these problems, we’re going to focus our development on one topic or part of the ChiliProject codebase at a time, during which other things will see less or no development. We will also focus the ChiliProject codebase itself on its core functions. This will mean some hardships and probably controversial decisions in the future, but this should also lead to a cleanup of the codebase and make it more lean, lowering the barrier of entry for new developers.

Focusing the ChiliProject codebase means replacing current code with tried and tested libraries with same or similar functionality. This will obviously lead to less code that the ChiliProject team has to take care of and in most cases the use of better and better tested code than what is currently used in ChiliProject. One example is user authentication: ChiliProject currently supports authentication against the ChiliProject database or against LDAP, and keeping up with current security best practices is hard. Switching to a library like OmniAuth or Devise would not only take the authentication concern out of ChiliProject, but also opens the way to more authentication backends (CAS, OAuth, …). Focusing the ChiliProject codebase also means spinning out code currently part of the ChiliProject core to independent libraries or plugins.

Focusing our development means choosing one area of work or major feature per release we will work on. During that time we will only take care of bug fixes in other areas. Furthermore, we will discontinue support for certain features we don’t feel we have enough expertise to develop. A prime candidate for discontinuation is the CVS adapter: we don’t have any experience with CVS and hopefully nobody uses it anymore. Lastly, we will try using external services to manage some parts of ChiliProject for which manual maintenance is tedious and time-consuming. The first such part will probably the management of the translations for ChiliProject.

I will write again about the proposed changes and deprecations for ChiliProject 4 in a few days, anyone wanting to get involved in the process can read and participate in the “focus” thread and subscribe to the chiliproject-devel mailing list.