Coding Period 2: Week 8

Week 8 has been a pretty busy week for us and quite productive for MARS. It witnessed some major unexpected but desirable changes in the workflow.

Loved this movie!

Beginning with the weekly mentor mentee meeting, we discussed upon a few alternative approaches to the current workflow of MARS. Last week we were done with the English release system and were planning to create another system for the translations. The idea of merging both of them and having one common system for all was tossed in the meeting, followed by a list of steps to be implemented to accommodate the new changes. New MARS model —

Using user input for language selection — English, Spanish, Chinese, etc.

Creating a dynamic structure to auto-detect the languages in translation repo

Auto-detect and select appropriate yml file and cover page

Error handling and sanitize user inputs

Since we would be using separate yml file and cover page (with the same structure) for each language, we came up with a naming convention to avoid conflicts —

<language>_working-groups-config.yml

<language>_cover.tex

Next step was to add a new language menu for the user along with error handling. It was an easy task. Then we decided to create separate scripts for English and translations, and another script for common functions and classes to be used by both.

This process took quite a planning and me & Yash had a few meetings to plan the layout for the approach, and we started to implement it. It took the whole the week but the result was worth it!

We were able to auto-detect the translation languages, implement proper user input sanitization and error handling. The beta PDF for Chinese release was ready and was approved by the Chinese community! (though they still need to translate a few other stuff like Release Notes at the end). For the Spanish one, we need to first standardize the repo structure. We can expect a Spanish PDF next week.

Next step was to containerize the new MARS structure on Docker —

Yes, I’m obsessed with Tarantino!

For the Spanish translation we didn’t require any extra packages, but for the Chinese one, we do. The package we came up with was xeCJK which is the Chinese-Japanese-Korean language pack for LaTeX. Integrating it in Docker was no big issue, however the image size was considerably doubled! The image size before was around 1.2GB, but after the language pack it rocketed to 2.2GB. The compressed image is although ~ 850MB (the actual download size). We decided to proceed with this unless we find any alternate smaller Chinese lang package with regular updates.

By the end of this week 8, the new model for MARS is ready and up and running — we might have another round of user testing next week.

Other than that, We standardized focus-area READMEs and metric markdowns in Spanish and Chinese translations. We also had some great progress in the translation guidelines. Yash attended the Asia-Pacific meeting and had a healthy discussion on how to proceed on the with the guidelines. The document is almost complete and probably next week we’ll be putting it up on the community handbook.

Next week we’ll be completing the documentation of MARS, updating the flowchart and doing user testing.

We won’t disappoint you sire!