Skip to content

Google Summer of Code Project Report

Kumar Akshay edited this page Aug 11, 2018 · 48 revisions

1_iaxnlarxipnwdwm19ogvyq

This page gives a detailed report on the "Command Line Plone Tools" project under GSoC 2018.

Blogs for a weekly break-up of my progress and core details on few of the improvements.

About me:

I'm Kumar Akshay studing Electronics and Telecommuniction at Shri G.S. Institute of Technology and Science, Indore.

Goal of the project:

My proposal for GSoC 2018 was to implement/improve subtemplates for bobtemplates.plone and improve plonecli.

Weekly breakdown of tasks

Week # Issues/Features/Bug Fixes PR Links
Week I Hide filter options in FTI settings, when dexterity_type_base_class is 'Item' #289
Week II If global_allow is False, ask for parent containter content_type #284
Week III Add version option #24
Week IV Add conditional test for content_type sub-template #290
Week IV Create custom to_boolean jinja filter #292
Week IV Prepare package for mockup pattern development #291
Week V Prepare package for mockup pattern development #297
Week V Add configure command to set user defaults for mrbob #26
Week V shift changes from buildout to addon #297
Week VI Add buildout script to create/update locales #304
Week VII-VIII Add sub-template "view" to create views #299
Week IX Add a sub-template "viewlet" #281
Week X Replace stringcase library by case_conversion library #312
Week X Create portlet #308
Week XI Add -t and -s option to the test command #31
Week XI ConfigParser.NoOptionError: No option 'package.git.init' in section: 'variables' #35
Week XI UnicodeDecodeError on plonecli config #35
Week XII Write proper unit tests, aim for 100% unit test coverage --

Work done in different GSoC Phases

Community Bonding Period -

During this period, we mainly discussed the scope of the project and added doable tasks, arranged in order of difficulty/time involved, in the Progress Board. There was a little confusion in adding docker support to plonecli as the exact feature was not clear at that time. So we shifted that part of the project and added few other issues, as well as, removed those issues which were already fixed.

Link to the blog about this phase.

Progress during the first Phase -

During this period, I mainly worked on content_type subtemplate to have following improvements

  • hide filter options in FTI settings, when dexterity_type_base_class is 'Item'
  • If global_allow is False, ask for parent container content_type
  • tests inside the generated package which also includes robot test.

we made a release of these new features in bobtemplates.plone v3.3.0

Blog on these features.

Progress during the second Phase -

During this phase, I worked on a variety of tasks from plonecli as well as bobtemplates.plone

  • Added plonecli -V command in plonecli.
  • Added few conditional tests for content_type in bobtemplates.plone.
  • Added custom filter in jinja environment for tests.
  • extended .gitignore and buildout.cfg in addon subtemplate.
  • worked on implementing a cross-platform script to add/update locale as previous methods doesn't work in Windows.
  • started to work on adding view subtemplate to bobtemplates.plone.

Blog on these features

Progress during the third Phase -

During this phase, I majorly worked on bobtemplates.plone

  • Continued work on view subtemplate.
  • Added viewlet subtemplate.

we made a release of both plonecli v0.2.1 and bobtemplates.plone v3.4.1

  • worked on adding portlet subtemplate.
  • worked on fixing few bugs which went unnoticed in the release
    • ConfigParser.NoOptionError: No option 'package.git.init' in section: 'variables'
    • UnicodeDecodeError on plonecli config
  • worked on adding test specific commands like plonecli test -a, plonecli test -t, plonecli test -s or multiple combinations of these three.

Things that were planned but not finished during GSoC:

  • write proper unit tests, aim for 100% unit test coverage
    Unit tests for all new features are already at 92% but there is some work required for other parts that were introduced before the GSoC period.

Conclusion:

I am grateful to work with my mentors Maik Derstappen, Encolpe Degoute and Alexander Loechel for this project. They helped me throughout summers in every possible way. I am really thankful to the Plone community for giving me this opportunity to work on this project.

References:

Daily LogBook : https://github.com/plone/plonecli/wiki/Logbook
Weekly Blog : https://medium.com/@k.akshay9721/
Project Progress Board : https://github.com/orgs/plone/projects/2
Discussions : https://gitter.im/plone/plonecli

Clone this wiki locally