-
-
Notifications
You must be signed in to change notification settings - Fork 10
Google Summer of Code Project Report
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.
I'm Kumar Akshay, senior undergrad, studying Electronics and Telecommunication Engineering at Shri G.S. Institute of Technology and Science, India.
This project is about improving plonecli and bobtemplates.plone by adding sub-templates like view, viewlet, portlets as well as improving existing sub-templates. Also improving the current scenario of creating/updating the locale of packages, making plonecli more accessible by adding useful commands. The scope of this project also includes increasing test coverage and working on fixing bugs which comes along the way.
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 | 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 latest commands in README.md | #18 |
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 | -- |
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. I learned more about Plone development, existing subtemplates in bobtemplates.plone.
During this period, I mainly worked on content_type
subtemplate to have the 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
- Improved the generated tests by making the generation process more intelligent and robust.
we made a release of these new features in bobtemplates.plone v3.3.0
During this phase, I worked on a variety of tasks from plonecli as well as bobtemplates.plone
- Added
plonecli -V
command in plonecli.$ plonecli -V Available packages: plonecli : 0.2.2 bobtemplates.plone: 3.4.2
- Added few conditional tests for
content_type
in bobtemplates.plone.
Thus increased the skeleton tests coverage forcontent_type
. - Added custom filter in jinja environment for tests.
This feature added flexibility in skeleton tests for range of user inputs (True, 1,y, n, 0). - extended .gitignore and buildout.cfg in addon subtemplate.
- worked on implementing a cross-platform script to add/update locale.
This feature ease the developer workflow to create or update locale.
For instance to add locale for german language, run these commands -
$ mkdir src/collective/todo/locales/de $ ./bin/update_locale
- started to work on adding view subtemplate to bobtemplates.plone.
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.
Added a simple portlet which takes in city, country code and presents weather report of that city from yahoo API. - worked on fixing few bugs which went unnoticed in the release
- ConfigParser.NoOptionError: No option 'package.git.init' in section: 'variables'
added a fix to preserve user commented settings along with the fix of above error. - UnicodeDecodeError on plonecli config
- ConfigParser.NoOptionError: No option 'package.git.init' in section: 'variables'
- worked on adding test specific commands like
plonecli test -a
,plonecli test -t
,plonecli test -s
or multiple combinations of these three.
we made a release of plonecli v0.2.2 and bobtemplates.plone v3.4.2
- 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.
Overall there is 6.66% rise in unit test coverage in plonecli.
2% rise in unittest test coverage in bobtemplates.plone.
Also there are significant improvements in skeleton test coverage in both of the packages.
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 also thankful to the Plone community for giving me this opportunity to work on this project.
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