Differences between revisions 3 and 30 (spanning 27 versions)
Revision 3 as of 2011-04-08 11:51:16
Size: 4238
Editor: Static-243
Comment:
Revision 30 as of 2011-04-21 09:07:35
Size: 5300
Editor: Static-213
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
This is a project for the porting of 'Packaging' over to lesser versions of python i.e. python 2.4 to python 3.2. In nutshell, the project will result in a successful release of a standalone backport of "Packaging" for python2.4 to python3.2 along with a detailed tutorial on the porting of 'Packaging'.                                                     '''' PackagingPy2Porting ''''


'''[Introduction]'''

This is a project[1] for the porting of 'Packaging' over to lesser versions of python i.e. python 2.4 to python 3.2. In nutshell, the project will result in a successful release of a standalone backport of "Packaging" for python2.4 to python3.2 along with a detailed tutorial on the porting of 'Packaging'. This project is more about developing a tool or mechanism to port 'packaging' over to other specified versions of python. Thanks to Éric Araujo for his suggestions on improving various aspects of the proposal. The idea here is that we should not be working on porting of 'packaging' again and again after each modification in 'packaging' or a new python release. Just slight modifications in the fixers or the scripts should be enough to handle the errors due to newly made changes.
Line 3: Line 8:
        Benefits to the Python community: '''[Benefits to the Python community]'''
Line 5: Line 10:
            1. Porting of 'Packaging' will make it available to all the other versions of python i.e. python2.4 to python3.2. 1. Porting of 'Packaging' will make it available to all the other versions of python i.e. python2.4 to python3.2.
                     
2. An automated system will be created which will port 'packaging' over to other specified versions of python even after changes in 'packaging' codes with ease and little modifications.
 
3. It is known that python3.3 is going to be released and similar other python3.x releases have yet to be done. Since 'Packaging' is compatible with python3.x, it would certainly be less painful to port 'Packaging' for the lesser versions of python i.e. python3.2 to python2.4, rather than porting distutils2 to python3.x with each new release of python3.x.
Line 7: Line 16:
            2. Since 'Packaging' is made after many improvisations and modifications over distutils2, it will prove to be a better utility than the currently existing distutils2 for all the versions of python.
           
            3. It is known that python3.3 is going to be released and similar other python3.x releases have yet to be done. Since 'Packaging' is compatible with python3.x, it would certainly be less painful to port 'Packaging' for the lesser versions of python i.e. python3.2 to python2.4, rather than porting distutils2 to python3.x with each new release of python3.x.
           
            4. The tutorial provided will help in the further development of the project.
           
4. The tutorial provided will help in the further development of the project.
   
'''[Project Details]'''
         
1. Make 'Packaging' compatible with python3.2 to python2.4 which includes following steps.
Line 14: Line 22:
        Project Details:
         
            1. Make 'Packaging' compatible with python3.2 to python2.4 which includes following steps.
                - Applying 3to2 to 'Packaging' for all the versions of python2.
                - fixing 'type' issues corresponding to bytes and string.
                - fixing import errors wherever required.
                - Few basic modifications in the code to make it compatible with other versions of python.
            
            2. Adding a few tests for the newly made changes.
* Applying 3to2 to 'Packaging' for all the versions of python2.

* Fixing 'type' issues corresponding to bytes and string using custom fixers.
    
* Develop magic comment system for version specific features for all the specified versions of python.

2. Ensure that build and installation process goes well for all the versions of python i.e. 2.4 - 3.2 which includes porting files like setup.py, setup.cfg, Makefile, etc to make it compatible with other versions of python.
Line 24: Line 30:
            3. Ensure that build and installation process goes well for all the versions of python i.e. 2.4 - 3.2 which includes porting files like setup.py, setup.cfg, Makefile, etc to make it compatible with other versions of python.
          
            4. Write a tutorial on the porting work of 'Packaging' to support further development of the project.
3. Write a tutorial on the porting work of 'Packaging' to support further development of the project.
Line 28: Line 32:
Milestones '''[Milestones]'''
Line 30: Line 34:
    Initial preparations includes the following:
        - Installation of all the versions of python i.e. python 2.4 to python 3.2.
        - Creating a repo for the project.
        - Creating a wiki page for the documentation of the porting work.
        - Going through the work already done on 'Packaging'.
Start of Program (May 24)
Initial preparations includes the following:
    * Installation of all the versions of python i.e. python 2.4 to python 3.2.
    * Creating a repo for the project.
    * Creating a wiki page for the documentation of the porting work.
    * Going through the work already done on 'Packaging'.
    * Going through the projects using 3to2 and their methods of solving bytes and string issues using 3to2.
Line 37: Line 41:
    Before Midterm Evaluation [May 24 - July 12] ''Start of Program (May 24)''
Line 39: Line 43:
           1. [May 24 - May 29] Porting 'Packaging' to all the versions of python 3.x at first.
           2. [May 30 - June 6] Testing and finalizing the porting work on python 3.x.
           3. [June 7 - June 14] Porting 'command' module to python2.4 - python2.7.
           4 [June 15 - June 21] Testing and finalizing porting of 'command' module
           5. [June 22 - June 28] Porting 'compiler' module to python2.4 - python2.7.
           6. [June 29 - July 6] Testing and finalizing porting of 'compiler' module.
           7. [July 7 - July 11] Porting 'index' module to python2.4 - python2.7.
Midterm Evaluation (July 12)
Before Midterm Evaluation [May 24 - July 12]
Line 48: Line 45:
           Deliverables: 1. [May 24 - May 29] Porting 'Packaging' to all the versions of python 3.x at first which includes:
       * Develop magic comment system for python 3.1 considering that python 3.1 don't have all the features that 'packaging' uses in python 3.3.
       * Writing custom fixers if required.
    
2. [May 30 - June 6] Testing and finalizing the porting work on python 3.x.
    
3. [June 7 - June 14] Writing custom fixers for bytes and string issues.
    
4 [June 15 - June 21] Ensure the proper implementation of the newly created fixer on all the 2.x versions of python and fix the potential issues, if any.
    
5. [June 22 - June 28] Developing magic comment system for python 2.7
    
6. [June 29 - July 6] Testing and finalizing the porting for python 2.7 which includes:
       * Running tests on all the modules of python 2.7.
       * Writing custom fixers for python 2.7, if required.
       * Fixing version specific issues, if any.
    
7. [July 7 - July 11] Developing magic comment system for python 2.6
Line 50: Line 64:
                1. 'Packaging' ported for all the versions of python 3.x
                2. Completion of following modules for python 2.4 to python 3.2:
                    -command
                    -compiler
                3. Documentation on the porting work till date.
''Midterm Evaluation (July 12)''
Line 56: Line 66:
        Before Final Evaluation [July 13 - August 15] '''[Deliverables]'''

    1. sdists of 'Packaging' for all the versions of python3.
    2. Custom fixers for bytes and string issues for all the versions of python.
    3. sdist of packaging for python 2.7.
    4. Documentation on the porting work till date.

Before Final Evaluation [July 13 - August 15]
Line 58: Line 75:
           8. [July 13 - July 22] Testing and finalizing porting of 'index' module.
           9. [July 23 - July 30] Ensure the installation and working of 'Packaging' in all the given versions of python i.e. python2.4 to python3.2.
           10. [July 31 - August 7] Editing and completion of documentation on the porting work of 'Packaging'.
           11. [August 8 - August 15] Testing and wrap up.
Final Evaluation (Aug 16)
8. [July 13 - July 22] Testing and finalizing the porting for python 2.6
Line 64: Line 77:
           Deliverables: 9. [July 23 - July 30] Developing magic comment system for python2.5 and python 2.4.
Line 66: Line 79:
                1. 'Packaging' compatible with python2.4 to python3.2.
                2. A detailed documentation on the porting of 'Packaging'.
10. [July 31 - August 7] Testing and finalizing the porting for python 2.5 and python 2.4.

11. [August 8 - August 15] Work for the final week of the project includes:
        * Ensuring the installation and working of 'Packaging' in all the given versions of python i.e. python2.4 to python3.2.
        * Testing and fixing any left over issues.
        * Wrap up.

''Final Evaluation (Aug 16)''

'''[Deliverables]'''

    1. sdists of 'Packaging' for each supported version.
    2. A script running 3to2 with custom fixers for each supported Python version.
    3. A detailed documentation on the porting of 'Packaging'.

[1] https://bitbucket.org/pkumar/packaging_cpython

[Introduction]

This is a project[1] for the porting of 'Packaging' over to lesser versions of python i.e. python 2.4 to python 3.2. In nutshell, the project will result in a successful release of a standalone backport of "Packaging" for python2.4 to python3.2 along with a detailed tutorial on the porting of 'Packaging'. This project is more about developing a tool or mechanism to port 'packaging' over to other specified versions of python. Thanks to Éric Araujo for his suggestions on improving various aspects of the proposal. The idea here is that we should not be working on porting of 'packaging' again and again after each modification in 'packaging' or a new python release. Just slight modifications in the fixers or the scripts should be enough to handle the errors due to newly made changes.

[Benefits to the Python community]

1. Porting of 'Packaging' will make it available to all the other versions of python i.e. python2.4 to python3.2.

2. An automated system will be created which will port 'packaging' over to other specified versions of python even after changes in 'packaging' codes with ease and little modifications.

3. It is known that python3.3 is going to be released and similar other python3.x releases have yet to be done. Since 'Packaging' is compatible with python3.x, it would certainly be less painful to port 'Packaging' for the lesser versions of python i.e. python3.2 to python2.4, rather than porting distutils2 to python3.x with each new release of python3.x.

4. The tutorial provided will help in the further development of the project.

[Project Details]

1. Make 'Packaging' compatible with python3.2 to python2.4 which includes following steps.

* Applying 3to2 to 'Packaging' for all the versions of python2.

* Fixing 'type' issues corresponding to bytes and string using custom fixers.

* Develop magic comment system for version specific features for all the specified versions of python.

2. Ensure that build and installation process goes well for all the versions of python i.e. 2.4 - 3.2 which includes porting files like setup.py, setup.cfg, Makefile, etc to make it compatible with other versions of python.

3. Write a tutorial on the porting work of 'Packaging' to support further development of the project.

[Milestones]

Initial preparations includes the following:

  • Installation of all the versions of python i.e. python 2.4 to python 3.2.
  • Creating a repo for the project.
  • Creating a wiki page for the documentation of the porting work.
  • Going through the work already done on 'Packaging'.
  • Going through the projects using 3to2 and their methods of solving bytes and string issues using 3to2.

Start of Program (May 24)

Before Midterm Evaluation [May 24 - July 12]

1. [May 24 - May 29] Porting 'Packaging' to all the versions of python 3.x at first which includes:

  • Develop magic comment system for python 3.1 considering that python 3.1 don't have all the features that 'packaging' uses in python 3.3.
  • Writing custom fixers if required.

2. [May 30 - June 6] Testing and finalizing the porting work on python 3.x.

3. [June 7 - June 14] Writing custom fixers for bytes and string issues.

4 [June 15 - June 21] Ensure the proper implementation of the newly created fixer on all the 2.x versions of python and fix the potential issues, if any.

5. [June 22 - June 28] Developing magic comment system for python 2.7

6. [June 29 - July 6] Testing and finalizing the porting for python 2.7 which includes:

  • Running tests on all the modules of python 2.7.
  • Writing custom fixers for python 2.7, if required.
  • Fixing version specific issues, if any.

7. [July 7 - July 11] Developing magic comment system for python 2.6

Midterm Evaluation (July 12)

[Deliverables]

  1. sdists of 'Packaging' for all the versions of python3.
  2. Custom fixers for bytes and string issues for all the versions of python.
  3. sdist of packaging for python 2.7.
  4. Documentation on the porting work till date.

Before Final Evaluation [July 13 - August 15]

8. [July 13 - July 22] Testing and finalizing the porting for python 2.6

9. [July 23 - July 30] Developing magic comment system for python2.5 and python 2.4.

10. [July 31 - August 7] Testing and finalizing the porting for python 2.5 and python 2.4.

11. [August 8 - August 15] Work for the final week of the project includes:

  • Ensuring the installation and working of 'Packaging' in all the given versions of python i.e. python2.4 to python3.2.
  • Testing and fixing any left over issues.
  • Wrap up.

Final Evaluation (Aug 16)

[Deliverables]

  1. sdists of 'Packaging' for each supported version.
  2. A script running 3to2 with custom fixers for each supported Python version.
  3. A detailed documentation on the porting of 'Packaging'.

[1] https://bitbucket.org/pkumar/packaging_cpython

SummerOfCode/2011/pkumar/PackagingPy2Porting (last edited 2011-04-21 09:07:35 by Static-213)

Unable to edit the page? See the FrontPage for instructions.