< User:Mandeeps708
Revision as of 20:32, 17 June 2016 by Mandeeps708 (talk | contribs) (macro fetching)

Project Details

Name: Mandeep Singh

IRC: Mandeep_Singh

Project: The FreeCAD Plugin Installer

Community Bonding Period

  • Discussion about the project proposal.
  • Build FreeCAD from source on Archlinux.
  • Shifted to Ubuntu and tried building. Discussed the dependencies issue faced on IRC.
  • One issue was solved by creating a symlink of to /usr/lib from /usr/lib/x86_64-linux-gnu/ due to a bug on Ubuntu 16.04 (Xenial).
  • Another issue I was facing was related to C++.
   c++: internal compiler error: Killed (program cc1plus)
   Please submit a full bug report,

It was due to the make -j4 as it made the compiler run out of memory. Never happened on Archlinux though.

  • Discussed to use PySide and Qt.
  • Learning PySide.

Coding Period

23 May : Plan is to try out the existing pluginloader & addon installer. Trying the pluginloader.

24 May : Had my last exam today. So couldn't do much. But read some old conversations about the existing plugin manager on the FC forum.

25 May : Installed and used the pluginloader by microelly. Discussed some general concepts like Workbenches, Plugins and Macros with the mentor and how they are being dealt in FreeCAD. It downloads the zip's from GitHub and unzips to the ~/.FreeCAD/Mod/ directory.

26 May : Installed and used the Addon installer and saw it's working.

27 May - 28 May : Comparing pluginloader ( and Addon installer ( and listing out what we can keep or not for reuse. And getting mentor's views.

29 May : Having other community member's opinions on the forum. Discussed the plan about what can be done next. Looked at the addon_installer code.

30 May - 31 May : Discussed the design with ickby and yorik. Parsing macro code from wiki:

1 June : Improved code for FC_getMacro script. Ported it to use python2 as well as python3. There is some compilation problem with etree.pyd in lxml (shared lib) on Windows.

2 June : Weekly meeting + discussed and finalized some things like code structure etc.

3 June : Went through some OOPS concepts and how to do them in python.

4 June - 5 June : Think of some design and relations. Code structure added to github.

6 June : Modified the fetch Macro Script to use BeautifulSoup (with html.parser) instead of pyquery (lxml).

7 June - 9 June : Health issues. Also, got some problem with laptop. Started learning about object oriented programming (with python).

10 June : Learned Inheritance in Python. Weekly meeting. Discussed about the code structure.

11 June : Some experimentation with parsing from FreeCAD-addons repo. Looking into PyGithub for GitHub API.

12 June : Finally get PyGithub working. Got list of files and some more examples.

13 June : Fetching of only submodules using PyGithub. Got the submodules and their related info. like submodule original URL.

14 June : Added more code to FetchFromGitHub class and created instances of Plugin().

15 June : Mainly had the discussion today; about the work down and what to do next.

16 June : Edited FreeCAD macro recipes wiki page to add a template tag. Used sed command instead of doing manually. Basically, the template wraps the macro links around a span having class "MacroLink".

17 June: Weekly meeting. Set goals. Fetched list of macros from the FreeCAD wiki. Fetched URL, description, author of individual macro. Code: