Week # 0

  • Created wiki page for project and self
  • Added project to GSoC 2014 project page
  • Got acquainted with Portfile development.

Week # 1

(19/05/2014 - 25/05/2014)

  • Basic tester script which parses arguments
  • Fetches data from XmlRpc API of pypi.
  • File upstream bugs for instances where description and download_url not present.

Week # 2

(26/05/2014 - 01/06/2014)

  • Tester script able to search for python packages by the name classifier.
  • Tester script able to fetch and extract distfiles to ./sources.
  • Tester script able to pull release data from pypi.

Week # 3

(02/06/2014 - 08/06/2014)

  • Created portfile taking portfile-gen as the base script for generating portfiles.
  • Tried fetching fata from previous versions which might help in fetching more data.
  • Made an analysis of the data fetched from previous versions.
  • Made python as the first choice of category for all packages.
  • Generated checksums for packages using openssl.
  • Created functions that run port lint, fetch, checksum and extract on ./python/$name_package.

Week # 4

(09/06/2014 - 15/06/2014)

  • Generated portfiles for some selected packages by the tester script.
  • Looked for some help on fetching distfiles from yolk
  • Made setuptools a build dependency for all packages.
  • Read python-1.0.tcl to have a look at what Python portgroup does.
  • Added support for dependencies based on the .egg files and .whl files listed.
  • Generalised naming to pyXX-<pypi-name>.

Week # 5

(16/06/2014 - 22/06/2014)

  • Fixed various portfile formatting and wrapping errors.
  • Made master_site to master_directory.
  • Fixed destroot phase.
  • Fixed long_description to remove characters which are not as per the utf-8 encoding.
  • Fixed a large bug regarding the portfile formatting which later on resulted in successful portindex.

Week # 6

(23/06/2014 - 29/06/2014)


  • Portindex successful for approximately 70% of the packages.
  • Portfile formatting and wrapping errors taken care of to some extent.
  • Basic portfile available for most of the packages which can be worked upon.

Week # 7

(30/06/2014 - 05/07/2014)

  • Made certain commits to keep up with the general python coding standards.
  • Corrected encoding errors present in the long_description.
  • Wrapping the current long_description to only the first few lines.

Week # 8

(06/07/2014 - 12/07/2014)

  • Added environment variables support for certain parameters.
  • Removed some errors in the portfile which later on led to more successful portindex.
  • Renamed the tester script to pypi2port.
  • Added a flag to delete/keep the distfiles fetched.

Week # 9

(13/07/2014 - 19/07/2014)

  • Ran port lint tests for a handful of packages using bash scripts.
  • Removed 3 or more hyphens in long_description.
  • Truncated runs of spaces in long_description before the final wrapping.
  • Removed the distfiles paramter from the Portfile.
  • Corrected most of the errors found in port lint.
  • Added a master_site parameter which helps in the livecheck option for packages.

Week # 10

(20/07/2014 - 26/07/2014)

  • Wrote a script to fetch all the licenses present in pypi.
  • Created a mapping to the licenses present in macports which can be found here.
  • These mapping can later on be used to convert the pypi licenses to the one present in macports.
  • Read other python packages using data from pypi.
  • Testing the destroot phase for ports created with trace option active.

Week # 11

(27/07/2014 - 02/08/2014)

  • Added higher versions of python namely 32 33 34
  • Added support for existent port check.
  • Unified Diff creation for existing ports.
  • Got acquainted to port phases.
  • Testing of various port phases using bash scripts.
  • Decided to ignore test phase for now.

Week # 12

(03/08/2014 - 09/08/2014)

  • Wrote functions to test each phase of the Portfile {fetch, checksum, extract, patch, configure, build and destroot}.
  • User feedback polishing to give more imformative output to the user.
  • Fully functional existing port check.
  • Improvements in the license script to give more organised data.
  • Corrected various destroot phase errors.
  • Mapping of pypi licenses to macports licenses. If no match found, ask to set environment variable.
  • Added support to check for existince of distfile before fetching.

Week # 13

(10/08/2014 - 16/08/2014)

  • Clean up of long_description to ${description}.
  • Minor modifications to remove certain errors prevalent in last testing.
  • Made code as per the pep 8 guidelines.
  • Added comments to the code which will help the future versions of the project.


  • If we can use pip to fetch and extract the data we should probably move the portfile and port commands to after we have collect as much data as possible to be able to write the best portfile.
Last modified 7 years ago Last modified on Aug 16, 2014, 10:34:22 AM