Sep 06 2019

Bug Fixing Day 223

This Thursday we had our Bug Fixing Day #223. We've managed to close 15 bugs (4 real fixes)  with 4 participants. We are still at -117 bugs behind the 500 days period. ...

Aug 30 2019

Bug Fixing Day 222

This thurday we had our Bug Fixing Day #222.

We've managed to close 6 bugs (4 real fixes) with 2 participants. We are still at -141 bugs behind the 500 days period.

result-BFD222.png

Thanks!

Aug 27 2019

XWiki 11.7 Released

The XWiki development team is proud to announce the availability of XWiki 11.7. This release brings a new date picker and various merge improvements. Developers will also be able to reuse the standard color picker and the merge API give more details about the conflicts. ...

Aug 26 2019

My GSOC19 Experience

Hello there! My name is Divyansh Jain. I am a student at Mahatma Jyoti Rao Phoole University. I have been selected as an Android developer for the XWiki organization and I've finished working on their XWiki Android Authenticator application in GSOC19.

Preparations before applying for the GSOC19

I've been contributing to the open-source project throughout the year, and once the GSOC announced the organization's name I started searching for the organization and then I found the XWiki. I started understanding how the app works, it's known issues at Jira, what the organization expects from a developer during the GSOC. I started by cloning the project, ran the app into the device, understood the project and then fixed some bugs. I opened two PR's and started talking to the listed mentors. They accepted my PR. And then I started working on the proposal.

I wrote all the things that I understood about this organization, how the app works, it's data flow diagram, and describe how I will cover all the open issues.

The day when I got selected

I wasn't expecting to get selected. But the day my name was announced, I immediately thanked my mentors for selecting me. And to this day I'm truly thankful to them for selecting me.

During my first evaluation period, I started by fixing some known bugs and begin migrating the app code from Java to Kotlin. All my previous open-source experience helped me to quickly find the bug, what's causing it and how to fix it. As I was migrating the code, I started to understand more about the app flow which really helped in the coming tasks. Before the first evaluation, I released v0.6.

Second Evaluation, Adding multiple account support and fixed some more bugs, I thought I'll finish this task soon but then I realized there's a whole lot of work to do. In this task after discussing with my mentor, I've implemented the room DB to save user sync info and added support for multiple account sync and some minor improvements in the app, implementing DB increased the app performance. And hence successfully releasing v.0.7,

Third Evaluation, Adding support for OpenID Connect & pagination in users list. XWiki already has support for OIDC login what's left was to add support for it. This particular task was a head-scratcher. But thanks to my mentors to, they helped me when I got stuck and now finally XWiki Authenticator supports OIDC login. Now the apps requesting XWiki user info can access info when the user logs in and give the consent to share the info with the requesting app. Also while adding the new XWiki account, now the users have the choice to either login using old login pass or the new OIDC login. Here while implementing the OIDC login, I changed the authorization method so now for old/login pass I've implemented preemptive login and for OIDC  I've implemented uses bearer_token for authentication when making API call. And recently successfully released v1.0

Here's what I've done so far.

  1. Rewritten the whole app code from Java to Kotlin.
  2. Fixed: Contacts synchronizing improperly 
  3. Fixed: Forcing a synchronization does not work 
  4. Fixed: Wrong synchronization status
  5. Added support for adding multiple XWiki accounts.
  6. Once the preferences screen is opened you can choose to edit the preferences of other XWiki accounts too.
  7. After users and groups, the list is loaded it's stored in DB so it will load instantaneously next time you open the app. 
  8. Fixed: Clicking on the save button does not close the activity. 
  9. Fixed: SocketTimeoutException crash.
  10. OIDC support: Now other apps can request to access the XWiki user info and secondly new OIDC login method where the app first checks if OIDC is supported in your instance and if it's supported the app will launch a webview displaying the login and after login in the browser and giving the consent, the user is logged in.
  11. As the "all users list" consists of many users, I've added pagination support. So now when the user scrolls the list halfway down, it'll automatically load the rest of the users.
  12. Fixed: SSLHandshakeException crash
  13. Reduced the app size, through following Google's recommendation to reduce the app size.

How to use the result of my work

You have several ways to get application "XWiki Android authenticator":

Google play .

My commits .

XWiki CI (Jenkins) .

Github Release .

Also, you can get sources of application and compile it by yourself. For this:

Open the link, https://github.com/xwiki-contrib/android-authenticator . And click on "Clone" and copy the link (usually, it is command git clone ...). After this action, you will have a project on the master branch.
Open the folder and create  local.properties  file with content SDK.dir=%ANDROID_HOME% (here %ANDROID_HOME% is the path to SDK location)
You can import project in Android Studio or build the app by command ./gradlew clean cleanBuildCache build

What was not done

  1. Edit Contact Activity Improvement.
  2. Publish the app on F-Droid.
  3. Provide a library for easy implementation of dedicated XWiki authenticator

Apart from these three tasks, all the issues are done and with some major improvement in the app.

Links to issues which I've completed and resolved

ANDAUTH-63 .
ANDAUTH-62 .
ANDAUTH-54 .
ANDAUTH-57 .
ANDAUTH-38 .
ANDAUTH-58 .
ANDAUTH-61 .
ANDAUTH-59 .
ANDAUTH-55 .
ANDAUTH-53 .
ANDAUTH-43 .
ANDAUTH-47 .
ANDAUTH-48 .
ANDAUTH-49 .
ANDAUTH-27 .

Afterword

I'm truly thankful to my mentor Thomas  and Aleksei Ovsiannikov . Both my mentors were always available and helped when I needed and gave me valuable advice and suggestions.

My GSOC journey with XWiki

Mentors:

I want to thank my mentors Shubham Jain, Neha Gupta and XWiki organisation for giving me such an opportunity and helping me out throughout my journey of GSOC. I also want to also thank Vincent Massol for helping me out in one of my dependent project.

A little bit about me

My name is Ashish Sharma, I am 23 and I am a final year student from Bharati Vidyapeeth's College of Engineering, India. I have participated in GSoC'19 program as a student in XWiki and worked on "Helm chart for XWiki".

What did I expect from GSoC 2019

This was my first Google Summer of Code and the concept to contribute for 3 months in an open-source organisation was exciting for me. I got an opportunity to work remotely on a project. I was curious to explore how an open-source organisation work. Anyway, I have expected new experience in remote internship, open source project contributing, Google Summer of Code participating and international only remote communication.

In this post I want to describe what I have finished and what is not completed yet and why.

Description

This project focoused on creating a helm chart that would deploy xwiki on Kubernetes by using helm templating. The deployment should be configurable to be scalacble, highly available and roboust.

You can find the project code at

https://github.com/xwiki-contrib/xwiki-helm and

The issue tracker can be found

https://jira.xwiki.org/projects/HELM/issues

How to use the result of my work

git clone https://github.com/xwiki-contrib/xwiki-helm
cd xwiki-helm-chart
helm dependency update
helm --debug upgrade -i --force xwiki -f ./values.yaml .

Read about prerequite

Milestones

Milestones 1:

Creating a basic helm chart

  • Understanding xwiki's docker structure.
  • Understanding and taking the decision for using the correct resource to host xwiki.
  • So I started up using the StatefulSet, clusterIP service and ingress.
  • Added values files which help in making the chart dynamically configurable.
  • Then we neded to support multiple databases and was in a need of a solution that don't require to deploy database externally, so a good standard for adding dependency for other services like database were needed.
  • So we decided to add database as a helm dependency, that helped us to templatise the databases in our application which makes deploying databases easier, we don't need to deploy the chart seprately.
  • So we added support for database mysql and postgress through dependency and also given option for user to deploy it's own external database.

Milestestone 2:

Adding support for ISTIO and other features

  • Till now we have a chart that would deploy our standalone application, now we need
  • Added support for ISTIO
  • Till now the helm were taking values from values file, we needed a way to manage our envoirnment variable that we pass to our container, and we also need to secure the sensetive variables like db password. For that I used Kubernetes resources configMaops and Secrets. These help us save and manage our variable securely and properly.
  • XWiki-helm also needed an optional feature to havdle Pod disruption, if the users have a heavy dependency on xwiki. This features make the xwiki chart user configure the minimum number of pods that should be running while pods are been destroyed due to any reason.
  • A need for shared file storage were needed, secially when serviec provider like GKE does not provide ReadWriteMany option, so to run xwiki on cluster we need different database solution like Rook, I had researched about it and also written a blog on how to set up Rook on GKE for shared file system

Milestone 3:

Adding support for clustering,HA and Unit testing

  • While moving towards HA and clustering we got to know that XWiki need shared file storage for clustering which was not available in StatefulSet, so we made a desicion to migrate to Deployment.
  • We needed to add test-cases so I added unit-testing.
  • Clustering was required to take xwiki on HA. For that we need docker to enable option to configure clustering, so first I made changes in docker project and provided option to configure JGroups.
  • Then I needed to provide the option in helm. For that I had to face another challenge to how to pass configuration files needed by JGroup from my helm chart to the container. For that I took the file in ConfigMaps and mounted the file to the xwiki pods. Also provided option to enable and disable JGroups.
  • While enabling clustering we need to know which pods are avialable to accept request and which are dead so that we can route traffic accordingly, for that I needed to configure liveliness and readiness probes, so that kubernetes always get updated with the state of the container and if the container crashes it could restart the pod.
  • XWiki uses solr and the docker it embededs solr internally, but as suggested by XWiki for performance improvement solr should be externalised, so I tried to add it as a dependency but failed due to an immature helm chart of solr, and how the xwiki configures solr, it was not possible with the current solr chart state. So for now I have exposed the basic parameter and the user has to manually setup solr and pass the url of the solr.

Aug 23 2019

Bug Fixing Day 221

This Thursday we had our Bug Fixing Day #221. We've managed to close 1 bug (real fix)  with 1 participant. We are still at -132 bugs behind the 500 days period. ...

Aug 20 2019

XWiki 11.7 RC1 Released

The XWiki development team is proud to announce the availability of XWiki 11.7 RC1. This release brings a new date picker and various merge improvements. Developers will also be able to reuse the standard color picker and the merge API give more details about the conflicts. ...

Aug 09 2019

Bug Fixing Day 220

This Thursday we had our Bug Fixing Day #220. We've managed to close 12 bug (6 real fixes)  with 3 participants. We are still at -138 bugs behind the 500 days period. ...

Aug 08 2019

XWiki 11.6.1 Released

The XWiki development team is proud to announce the availability of XWiki 11.6.1.
This is a bugfix release that covers important issues that we have discovered since XWiki 11.6 has been released.  ...

Aug 01 2019

Bug Fixing Day 219

This Thursday we had our Bug Fixing Day #219. We've managed to close 9 bug (7 real fixes)  with 3 participants. We are still at -150 bugs behind the 500 days period. ...

Tags:
Created by Admin on 2005/01/28
    

Get Connected