GSoC 2011 Scripter2 Proposal: Difference between revisions

From Scribus Wiki
Jump to navigation Jump to search
(→‎Useful Links.: link to gsoc2008)
 
(13 intermediate revisions by 3 users not shown)
Line 1: Line 1:
[[Category:GSOC_2011]]
[[Category:GSOC_2011]]
= Enhancing ScripterNG in Scribus =
= Enhancing Scripting Engine 'scripter2' in Scribus =




Line 27: Line 27:


* Support for complete Scripter1 API in Scripter2.
* Support for complete Scripter1 API in Scripter2.
* Deprecation of Scripter1.
* Completion of Scribus C++ API coverage in Scripter2.
** Reference : [http://wiki.scribus.net/canvas/ScripterNG/Development/PortingOldScripter Porting Old Scripter] by Henning
** Reference : [http://wiki.scribus.net/canvas/ScripterNG/Development/PortingOldScripter Porting Old Scripter] by Henning


== Timeline ==
== Timeline ==


==== First week ====
==== April 23 - May 5 ====
* Setting up the infrastructure i.e. code repository, blog for progress reporting and so on.
* Setting up the infrastructure i.e. code repository, blog for progress reporting and so on.
* Getting additional feedback on the project from Scribus developers and the community.
* Getting additional feedback on the project from Scribus developers and the community.
* Discussing the most requested missing APIs to build a list of features to be implemented before midterm evaluations.


==== Week 2-3 ====
==== May 6 - May 23 ====
* Testing bundled and user contributed scripts, analyzing the results, and determining what changes need to be implemented.
* Testing bundled and user contributed scripts, analyzing the results, and determining what changes need to be implemented.
* Documenting changes as the new scripter API.
* Documenting changes as the new scripter API using reSt in docstrings and a scripted documentation extraction to be formatted with Sphynx.


==== Until 11th of July ====
==== May 24 - July 11 ====
* Porting features from old Scripter, listed in the reference link.
* Porting APIs from scripter1 to scripter2.
* Implement most needed API features before midterm evaluation.
** Implement most needed missing APIs before the midterm evaluation.
** Discussions with development team regarding those features to be implemented before midterm evaluations


==== Until 15th of July ====
==== July 12 - July 15 ====
Writing mid-term evaluation
Writing mid-term evaluation
==== July 16 - August 10 ====


==== Until 10th of August ====
* Further improving the Scripter2 API by completing the coverage of the Scribus C++ classes beyond scripter1.
* Further improving the ScripterNG API by adding all the features left, after the midterm evaluations
* Writing sample scripts for unit tests.
* Writing sample scripts, for unit tests.
** Every function ported to the new Scripter will be tested.
** Each and every function ported to new Scripter will be tested.


==== Until 15th of August ====
==== August 11 - August 15 ====
* Fixing bugs
* Fixing bugs discovered in the testing process.
* Reviewing and improving usability
* Reviewing and improving API usability based on user feedback.
* Writing documentations
* Writing documentation.
** User documentation for each function, quoting the sample scripts
** User documentation for each function with examples.
** Developer Documentation.
** Developer documentation for the scripting engine.


==== Until 26th of august ('pencils down') ====
==== August 16 - August 26 ('pencils down') ====
Preparations for Final Evaluation
Preparing for the final evaluation.


== Student Biography ==
== Personal Information ==


I am Jain Basil Aliyas, a computer science & engineering student from India. I am one among the members of Scribus team, KDE and Pardus Projects.
I am Jain Basil Aliyas a computer science & engineering student from India.


== Contact Information ==
== Contact Information ==
Line 77: Line 79:


== Useful Links. ==
== Useful Links. ==
* Archives
  - http://wiki.scribus.net/canvas/GSoC_2008_ScripterNG : first GSOC project and scripter2 concepts


* Development
   - http://wiki.scribus.net/canvas/ScripterNG/Development/PortingOldScripter
   - http://wiki.scribus.net/canvas/ScripterNG/Development/PortingOldScripter
   - http://wiki.scribus.net/canvas/ScripterNG/Development
   - http://wiki.scribus.net/canvas/ScripterNG/Development
* Documentation
  - http://jainbasil.net/Scribus/Python/2012/07/scripter-documentation-readthedocs-disqus/
  - http://scribus-scripter.readthedocs.org/en/latest/

Latest revision as of 20:55, 22 October 2013

Enhancing Scripting Engine 'scripter2' in Scribus

Abstract

Scribus shows that professional desktop publishing is possible with Free Software. Scribus has many powerful features which are often mentioned in articles. For instance, high quality PDF export and color management are considered to be the strong points of Scribus. However, the scripting features of Scribus are not getting attention even after the complete redesign of its architecture even though analysis of the user mailing list postings shows that the scripted use of Scribus's features is on a constant rise and is a critical functionality for many professional users.

Scribus has a well designed API for its new ScripterNG also known as scripter2, developed as part of GSoC 2008. This scripting engine can also be adapted to multiple scripting languages. However, the scripter2 still does not expose many of the Scribus API calls present in the old scripter1. One of the main goals of this project is to port the complete API of the old scripter to the scripter2 for retaining the backwards compatibility and providing complete API coverage needed for the deprecation of scripter1 and the switch to scripter2.

Problem Description

The new scripter2 has not been added to Scribus as a default scripting engine even though it was developed back in 2008 because its Scribus API coverage is still below that of scripter1. For instance, Styles API is missing in scripter2. Hence, users are unable to handle Scribus styles in their scripts. In addition, createParagraphStyle and createCharacterStyle were present in scripter1, but missing in scripter2.

Here is a long list of changes which are yet to be implemented in ScripterNG :

This project will complete the porting of scripter1 scripting engine to scripter2, so that much improved scripter2 may be used as the default scripting engine in Scribus.

Implementation Plan

Implementation of this project will be based on a well-known software engineering principle Test-driven Development. All scripts packaged with Scribus will be tested with scripter2, and development will proceed by solving all issues encountered in the testing. All scripts bundled with Scribus were developed based on scripter1, so they can be used for testing scripter2. This development process will also help to make the Scribus API better, since opportunities for code refactoring may be discovered in the process.

Deliverables

  • Support for complete Scripter1 API in Scripter2.
  • Deprecation of Scripter1.
  • Completion of Scribus C++ API coverage in Scripter2.

Timeline

April 23 - May 5

  • Setting up the infrastructure i.e. code repository, blog for progress reporting and so on.
  • Getting additional feedback on the project from Scribus developers and the community.
  • Discussing the most requested missing APIs to build a list of features to be implemented before midterm evaluations.

May 6 - May 23

  • Testing bundled and user contributed scripts, analyzing the results, and determining what changes need to be implemented.
  • Documenting changes as the new scripter API using reSt in docstrings and a scripted documentation extraction to be formatted with Sphynx.

May 24 - July 11

  • Porting APIs from scripter1 to scripter2.
    • Implement most needed missing APIs before the midterm evaluation.

July 12 - July 15

Writing mid-term evaluation

July 16 - August 10

  • Further improving the Scripter2 API by completing the coverage of the Scribus C++ classes beyond scripter1.
  • Writing sample scripts for unit tests.
    • Every function ported to the new Scripter will be tested.

August 11 - August 15

  • Fixing bugs discovered in the testing process.
  • Reviewing and improving API usability based on user feedback.
  • Writing documentation.
    • User documentation for each function with examples.
    • Developer documentation for the scripting engine.

August 16 - August 26 ('pencils down')

Preparing for the final evaluation.

Personal Information

I am Jain Basil Aliyas a computer science & engineering student from India.

Contact Information

Name : Jain Basil Aliyas

Country : India

Time Zone : GMT +530

IRC Nickname : jainbasil in #scribus, #scribus-dev

Useful Links.

  • Archives
 - http://wiki.scribus.net/canvas/GSoC_2008_ScripterNG : first GSOC project and scripter2 concepts
  • Development
 - http://wiki.scribus.net/canvas/ScripterNG/Development/PortingOldScripter
 - http://wiki.scribus.net/canvas/ScripterNG/Development
  • Documentation
 - http://jainbasil.net/Scribus/Python/2012/07/scripter-documentation-readthedocs-disqus/
 - http://scribus-scripter.readthedocs.org/en/latest/