Blog from June, 2014

As fifth week is come to end, as decided in the proposal i will start working on the REST API interface but due to some reasons i started my work late but to cover up i decided to first cover up maximum part of plugin interface this week .So , the task i completed this week is to update plugins which involves some interesting features which i have implemented by discussing with my mentor and other community members . The most confusing task is to understand the versioning of the plugins. So, mentor suggested me a link to semantic versioning to overcome this situation.

Semantic versioning involves following steps:

Given a version number MAJOR.MINOR.PATCH, increment the:

  1. MAJOR version when you make incompatible API changes,
  2. MINOR version when you add functionality in a backwards-compatible manner, and
  3. PATCH version when you make backwards-compatible bug fixes

So the update work start with creating a update templates which shows the available updates for the installed plugins , where the current verison , new version and update info will be mentioned. User have to upload the update package with proper versioning and details from the install plugins option . When the upload is complete , AMS check for the current version and version of update and add it to the update list with the respective plugin name. After testing it i found some situations like:

  1. if the .info file is not updated with update info field
  2. if the user try to install the update without modification in versioning.

After adding validation regarding the above situation , it looks fine. Now, next week i am going to work for the hook parts after discussing with mentor and reviewing my code i submitted.

The view of the update plugin template is added with the blog :

 

The Three  weeks of the coding period comes to end and a lot was there to learn. My first week task is to create  CRUD layer for the Ryzom Core Account Management System. Before getting hands dirty , I discussed the features  with my mentor , Matthew Lagoe who also, suggested me to keep track on the previous features and bugs. So, i started coding to implement CRUD layer, which is when expanded shows its basic functionalities as CREATE , READ , UPDATE , DELETE. These functions are used to interact with the database and act as a persistent storage layer in the application.I put some tests to check if the layer is working with the AMS and got fine results.

Now , my task for second week is to develop a view for the Account Management System where the list of plugins will  be given with the information regarding them. I added various options like add new plugin, delete plugin, check for updates, activate and deactivate a plugin. firstly i am little confused regarding the ways to install the plugins to work with the AMS but after discussion with my mentor i explored some links given by him and the confusion is no more to disturb . So, i started planning for the plugins installation functionality and discussion with my mentor on that gave me more confidence to start coding.

In the start of third week , i started coding for the installation part of the plugins . First step towards this is to create a template for plugin installation where we can upload the  plugin in zip format. Added some validation check for the package uploaded like format validation , Check for .info file in the plugin package after extraction. All the packages uploaded on the template must be extracted into plugin folder present in the AMS code base.After the end of third week this task is successfully completed and tested. But waiting for the reviews from the mentor so that the work on other functionalities will be performed.

Also I would love to hear some feedback from the rest members of the Ryzom Core team.

With the start of the fourth week, i started developing respective functionalities:

1. loading installed plugins within the plugins template

2. Deleting plugins form the AMS

3. Activating and Deactivating options in the template

In the first part, when the plugin template is accessed by the user it takes the info of the respective installed plugins and render it into the  template

In second part, when the user clicks on the delete plugin option the plugin is deleted form the database as well as the plugin folder in the AMS.

In third part, there are two options one with activate and other with deactivate functionality. When the user click on the deactivate plugin option it changes the status of the plugin to 'false' , means now plugin is deactivated and when the user clicks on the activate plugin it changes the status of the plugin to 'True', it is again taken into action when the work on the hooks need to be added.

In next week , the work on the update functionality for plugins will be worked till now waiting for mentor to review my code.

all the functionalities will be shown in the below images that i tested on my local server: