https://brlcad.org/w/api.php?action=feedcontributions&user=Mandeeps708&feedformat=atomBRL-CAD - User contributions [en]2024-03-29T12:45:21ZUser contributionsMediaWiki 1.32.2https://brlcad.org/w/index.php?title=User:Mandeeps708/GSoC16/logs&diff=9830User:Mandeeps708/GSoC16/logs2016-08-23T05:32:56Z<p>Mandeeps708: /* Project Details */</p>
<hr />
<div>=Project Details=<br />
-----------------<br />
Name: [[User:Mandeeps708|Mandeep Singh]]<br />
<br />
IRC: Mandeep_Singh<br />
<br />
Project: [[User:Mandeeps708/gsoc_proposal|The FreeCAD Plugin Installer]]<br />
<br />
Commits: [http://brlcad.org/wiki/User:Mandeeps708/GSoC16/logs#Coding_Period mandeeps708/PluginManager] @GitHub<br />
------------------------------------------------------------------------<br />
<br />
=Community Bonding Period=<br />
---------------------------<br />
<br />
* Discussion about the project proposal.<br />
* Build FreeCAD from source on Archlinux.<br />
* Shifted to Ubuntu and tried building. Discussed the dependencies issue faced on IRC.<br />
* One issue was solved by creating a symlink of libfreeimage.so to /usr/lib from /usr/lib/x86_64-linux-gnu/ due to a bug on Ubuntu 16.04 (Xenial).<br />
* Another issue I was facing was related to C++.<br />
<br />
c++: internal compiler error: Killed (program cc1plus)<br />
Please submit a full bug report,<br />
<br />
It was due to the '''make -j4''' as it made the compiler run out of memory. Never happened on Archlinux though.<br />
<br />
* Discussed to use '''PySide''' and Qt.<br />
* Learning PySide.<br />
<br />
--------------------------------------------<br />
=Coding Period=<br />
----------------<br />
<br />
'''23 May''' : Plan is to try out the existing pluginloader & addon installer. Trying the pluginloader.<br />
<br />
'''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.<br />
<br />
'''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.<br />
<br />
'''26 May''' : Installed and used the Addon installer and saw it's working.<br />
<br />
'''27 May - 28 May''' : Comparing pluginloader (https://github.com/microelly2/freecad-pluginloader) and Addon installer (https://github.com/FreeCAD/FreeCAD-addons#1-using-the-installer-macro) and listing out what we can keep or not for reuse. And getting mentor's views.<br />
<br />
'''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.<br />
<br />
'''30 May - 31 May''' : Discussed the design with ickby and yorik. Parsing macro code from wiki: https://github.com/mandeeps708/scripts/blob/master/FC_getMacro<br />
<br />
'''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. <br />
<br />
'''2 June''' : Weekly meeting + discussed and finalized some things like code structure etc.<br />
<br />
'''3 June''' : Went through some OOPS concepts and how to do them in python. <br />
<br />
'''4 June - 5 June''' : Think of some design and relations. Code structure added to github.<br />
<br />
'''6 June''' : Modified the fetch Macro Script to use BeautifulSoup (with html.parser) instead of pyquery (lxml).<br />
<br />
'''7 June - 9 June''' : Health issues. Also, got some problem with laptop. Started learning about object oriented programming (with python).<br />
<br />
'''10 June''' : Learned Inheritance in Python. Weekly meeting. Discussed about the code structure.<br />
<br />
'''11 June''' : Some experimentation with parsing from FreeCAD-addons repo. Looking into PyGithub for GitHub API.<br />
<br />
'''12 June''' : Finally get PyGithub working. Got list of files and some more examples.<br />
<br />
'''13 June''' : Fetching of only submodules using PyGithub. Got the submodules and their related info. like submodule original URL.<br />
<br />
'''14 June''' : Added more code to FetchFromGitHub class and created instances of Plugin().<br />
<br />
'''15 June''' : Mainly had the discussion today; about the work down and what to do next.<br />
<br />
'''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".<br />
<br />
'''17 June''' : Weekly meeting. Set goals. Fetched list of macros from the FreeCAD wiki. Fetched URL, description, author of individual macro. Code: https://github.com/mandeeps708/scripts/blob/master/FC_getMacro/wikimacro.py<br />
<br />
'''18 June - 19 June''' : Worked on GitHub API. Tried to find if we could fetch repository name by using the repository URL. Talked to GitHub officials regarding this. But it's not there. So tried regular expressions in Python. And it's done.<br />
<br />
'''20 June - 21 June''' : Fetched submodule info like author, description etc. Also integrated Macro fetching code into the main.py file. Created a separate getPlugins module that would be able to fetch all plugins available. Currently, it's like hard coded with fetch classes names. Will make it more robust.<br />
<br />
'''22 June - 23 June''' : Mid-term Evaluation Period. Studied about Exception handling in Python. Added exception handling code for basic exceptions to both classes.<br />
<br />
'''24 June''' : Mainly focussed on to find a way to register application on GitHub to use OAuth. Found a method in PyGithub. But not sure about its usage. Hence using Personal Access tokens as of now.<br />
<br />
'''25 June''' : Initially, it took about 25 API calls to identify which of the item is a submodule. But now it takes 1 API call to fetch basic information and then used regular expressions to filter out the submodules.<br />
<br />
'''26 June''' : Some more exception cases to Macro class if a user didn't correctly added a macro on the wiki. It'll get skipped.<br />
<br />
'''27 June''' : Implemented getInfo() methods for both classes. The basic information about the plugins will now be fetched through the getPluginsList() methods. And additional things about a plugin like the author and the description will be fetched through calling the plugin with getInfo() method. For example: getInfo(PluginName), it will fetch more detail about the plugin. This will be further used in the GUI to be called when a user clicks a plugin entry.<br />
<br />
'''28 June''' : Mainly discussed with the mentors about next task. And I was suggested to get overview of the things like creating a design how overall thing will work. And some other ideas like having a library that could interact with all fetch classes to provide an interface to the user to manage plugins (Wb+macros) altogether.<br />
<br />
Bad health.<br />
<br />
'''3 July - 4 July''' : Created some design about the workflow.<br />
<br />
'''5 July''' : Shared the design with mentor and got the views. It lacked some of the functionality. So added that.<br />
<br />
'''6 July''' : Added a new function for getting all plugins to combine instances of all plugins together.<br />
<br />
'''7 July''' : Converted that function to a class and had an interface (getPlugins.py[https://github.com/mandeeps708/PluginManager/blob/master/getPlugins.py]) for using this.<br />
<br />
'''8 July - 9 July''' : Adds the interface class [https://github.com/mandeeps708/PluginManager/commit/402c3aae6551df225893f15d04dc168b4696db3d]<br />
<br />
'''11 July - 12 July''' : Searched about various methods through which the interface can be improved to use getInfo() function within the interface as it was the other class' method. Couldn't figure out much how to do that.<br />
<br />
'''13 July''' : Unable to work due to the power cut.<br />
<br />
'''14 July - 15 July''' : Worked on getting the getInfo() function working. Tried a few methods and some did not work. Finally, it worked!<br />
<br />
'''16 July''' : Mainly read about threading in Python.<br />
<br />
'''17 July''' : Extended the info() function to include the macro case too. Also had a talk with the mentor. Some things need to be changed and some improvements were suggested to make the code more generic so that after adding another fetch class, the code should work fine.<br />
<br />
'''18 July''' : Changed getInfo() functions to take plugin as an argument instead of plugin name.<br />
<br />
'''19 July''' : Removed redundant inheritance, tried adding a new x.fetch = self. Having problems. Solving...<br />
<br />
'''20 July''' : Made getInfo() of the base class to work as it does in the derived ones. Changed the "repo.owner.name" to "repo.owner.login" as it was not working (Related to GitHub API).<br />
<br />
'''21 July''' : Made the interface more encapsulated so that fetch classes aren't accessible through the interface. Now the code works fine. Even with getInfo() too. Renamed a few things better.<br />
<br />
'''22 July''' : Worked on adding install() method to the interface and also getting Macro and Workbench paths to which these plugins are to be installed.<br />
<br />
'''23 July''' : Existing code improvements. Added basic installation plugin interface. Implemented install() method for GitHub plugins. The GitHub plugins are now being cloned with depth=1 (hence making it faster).<br />
<br />
'''24 July''' : Implemented the install() method for the Macro plugins' installation. Also, had the weekly routine talk with the mentor. Discussed a few existing issues related to some Macro installation like the encoding problem, path problem etc..<br />
<br />
'''26 July''' : Added some code for detecting the user-preferred Macro installation directory or the default one and setting up one. If it doesn't exist, it'll be created.<br />
<br />
'''27 July - 28 July''' : Modified code according to the PEP8 coding conventions and changed the creation of directories.<br />
<br />
'''29 July - 30 July''' : Automatic directory creation for workbenches (if it doesn't exist). Testing of all plugins! Better exceptions for Macro fetching. Added code for fetching the macro with the non-English characters (used encode function with utf8).<br />
<br />
'''31 July - 1 August''' : FreeCAD Wiki now has the new CSS class for the block of macro code if there are some other code chunks (that are not the actual macro code). So in that case, they are parsed instead of the original macro code because the syntax highlighting is having same CSS classes. If there are multiple chunks are present, then we'll add a new class "macro-code" to the actual macro code and if there is no element with macro-code on that page, then the default method is taken (for single code block).<br />
<br />
'''2 August''' : Worked on blacklisting some macros. Some macros do not contain any code. A few cases are there, that use some other method to store the macro code. So skipping them as of now. Other cases are like the macros are just a reference to the Workbenches (and info. related to them). So make that cases simpler for the future, created a list "blacklisted_plugins_list" that will contain the name of the macros that are to be blacklisted.<br />
<br />
'''3 August''' : Worked on implementing the isInstalled() method for both the Wiki and Workbenches Fetch classes. What it does is that it checks for the existing directory/file for the workbench/macro and see if it exists. Also added a check in the install() method to see if it isInstalled() returned False. Else it already exists.<br />
<br />
'''4 August - 5 August''' : The FreeCAD wiki now have a new element i.e. macro-version. It tells the current version of the macro. It'll help to check if the macro is<br />
up to date or not. PluginManager.info() now returns the plugin (with additional data).<br />
Also worked on the feature to retrieve the contents from the Web only once. If the info. has been fetched already, then no need to fetch it again. The method getInfo() fetches everytime we call it (even with the same plugin, twice). Added code to store the fetched info. in a dictionary and it's fetched when calling with the same plugin. <br />
<br />
'''6 August - 7 August''' : Added isInstalled() to the library interface. Now the FreeCAD wiki pages have a new element "Version" defaults to 1.0. It'll be helpful while checking for updates. Also added version to the macro name while storing. Some code cleanup. Added uninstall() method for macro plugins and also added the library interface for that. Further added the same for the GitHub Workbenches. Also, read about the lambda functions in Python.<br />
<br />
'''8 August''' : Associate macro-version with the Plugin instance.<br />
<br />
'''9 August - 10 August''' : Get the current version of the macro (installed). Removed the dictionary used to store the fetched info about plugins.<br />
<br />
'''11 August''' : Better way to make PluginManager fetch the plugin info only once.<br />
<br />
'''12 August''' : Implemented the isUpToDate() method for Macro Plugins.<br />
<br />
'''13 August - 14 August''' : Implemented isUpToDate() method for GitHub Plugins too. Implemented update() plugins method for both the fetch classes.<br />
<br />
'''15 August - 16 August''' : Adds return statements to methods and update the README for contributors.<br />
<br />
'''17 August - 20 August''' : Macro version handling in update() method working fine now. Used package "glob".<br />
<br />
'''21 August - 23 August''' : Adds example usage, adds some more documentation, README. Submitted the Final Evaluation.</div>Mandeeps708https://brlcad.org/w/index.php?title=User:Mandeeps708/GSoC16/logs&diff=9829User:Mandeeps708/GSoC16/logs2016-08-23T05:08:57Z<p>Mandeeps708: /* logs*/</p>
<hr />
<div>=Project Details=<br />
-----------------<br />
Name: [[User:Mandeeps708|Mandeep Singh]]<br />
<br />
IRC: Mandeep_Singh<br />
<br />
Project: [[User:Mandeeps708/gsoc_proposal|The FreeCAD Plugin Installer]]<br />
------------------------------------------------------------------------<br />
<br />
=Community Bonding Period=<br />
---------------------------<br />
<br />
* Discussion about the project proposal.<br />
* Build FreeCAD from source on Archlinux.<br />
* Shifted to Ubuntu and tried building. Discussed the dependencies issue faced on IRC.<br />
* One issue was solved by creating a symlink of libfreeimage.so to /usr/lib from /usr/lib/x86_64-linux-gnu/ due to a bug on Ubuntu 16.04 (Xenial).<br />
* Another issue I was facing was related to C++.<br />
<br />
c++: internal compiler error: Killed (program cc1plus)<br />
Please submit a full bug report,<br />
<br />
It was due to the '''make -j4''' as it made the compiler run out of memory. Never happened on Archlinux though.<br />
<br />
* Discussed to use '''PySide''' and Qt.<br />
* Learning PySide.<br />
<br />
--------------------------------------------<br />
=Coding Period=<br />
----------------<br />
<br />
'''23 May''' : Plan is to try out the existing pluginloader & addon installer. Trying the pluginloader.<br />
<br />
'''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.<br />
<br />
'''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.<br />
<br />
'''26 May''' : Installed and used the Addon installer and saw it's working.<br />
<br />
'''27 May - 28 May''' : Comparing pluginloader (https://github.com/microelly2/freecad-pluginloader) and Addon installer (https://github.com/FreeCAD/FreeCAD-addons#1-using-the-installer-macro) and listing out what we can keep or not for reuse. And getting mentor's views.<br />
<br />
'''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.<br />
<br />
'''30 May - 31 May''' : Discussed the design with ickby and yorik. Parsing macro code from wiki: https://github.com/mandeeps708/scripts/blob/master/FC_getMacro<br />
<br />
'''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. <br />
<br />
'''2 June''' : Weekly meeting + discussed and finalized some things like code structure etc.<br />
<br />
'''3 June''' : Went through some OOPS concepts and how to do them in python. <br />
<br />
'''4 June - 5 June''' : Think of some design and relations. Code structure added to github.<br />
<br />
'''6 June''' : Modified the fetch Macro Script to use BeautifulSoup (with html.parser) instead of pyquery (lxml).<br />
<br />
'''7 June - 9 June''' : Health issues. Also, got some problem with laptop. Started learning about object oriented programming (with python).<br />
<br />
'''10 June''' : Learned Inheritance in Python. Weekly meeting. Discussed about the code structure.<br />
<br />
'''11 June''' : Some experimentation with parsing from FreeCAD-addons repo. Looking into PyGithub for GitHub API.<br />
<br />
'''12 June''' : Finally get PyGithub working. Got list of files and some more examples.<br />
<br />
'''13 June''' : Fetching of only submodules using PyGithub. Got the submodules and their related info. like submodule original URL.<br />
<br />
'''14 June''' : Added more code to FetchFromGitHub class and created instances of Plugin().<br />
<br />
'''15 June''' : Mainly had the discussion today; about the work down and what to do next.<br />
<br />
'''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".<br />
<br />
'''17 June''' : Weekly meeting. Set goals. Fetched list of macros from the FreeCAD wiki. Fetched URL, description, author of individual macro. Code: https://github.com/mandeeps708/scripts/blob/master/FC_getMacro/wikimacro.py<br />
<br />
'''18 June - 19 June''' : Worked on GitHub API. Tried to find if we could fetch repository name by using the repository URL. Talked to GitHub officials regarding this. But it's not there. So tried regular expressions in Python. And it's done.<br />
<br />
'''20 June - 21 June''' : Fetched submodule info like author, description etc. Also integrated Macro fetching code into the main.py file. Created a separate getPlugins module that would be able to fetch all plugins available. Currently, it's like hard coded with fetch classes names. Will make it more robust.<br />
<br />
'''22 June - 23 June''' : Mid-term Evaluation Period. Studied about Exception handling in Python. Added exception handling code for basic exceptions to both classes.<br />
<br />
'''24 June''' : Mainly focussed on to find a way to register application on GitHub to use OAuth. Found a method in PyGithub. But not sure about its usage. Hence using Personal Access tokens as of now.<br />
<br />
'''25 June''' : Initially, it took about 25 API calls to identify which of the item is a submodule. But now it takes 1 API call to fetch basic information and then used regular expressions to filter out the submodules.<br />
<br />
'''26 June''' : Some more exception cases to Macro class if a user didn't correctly added a macro on the wiki. It'll get skipped.<br />
<br />
'''27 June''' : Implemented getInfo() methods for both classes. The basic information about the plugins will now be fetched through the getPluginsList() methods. And additional things about a plugin like the author and the description will be fetched through calling the plugin with getInfo() method. For example: getInfo(PluginName), it will fetch more detail about the plugin. This will be further used in the GUI to be called when a user clicks a plugin entry.<br />
<br />
'''28 June''' : Mainly discussed with the mentors about next task. And I was suggested to get overview of the things like creating a design how overall thing will work. And some other ideas like having a library that could interact with all fetch classes to provide an interface to the user to manage plugins (Wb+macros) altogether.<br />
<br />
Bad health.<br />
<br />
'''3 July - 4 July''' : Created some design about the workflow.<br />
<br />
'''5 July''' : Shared the design with mentor and got the views. It lacked some of the functionality. So added that.<br />
<br />
'''6 July''' : Added a new function for getting all plugins to combine instances of all plugins together.<br />
<br />
'''7 July''' : Converted that function to a class and had an interface (getPlugins.py[https://github.com/mandeeps708/PluginManager/blob/master/getPlugins.py]) for using this.<br />
<br />
'''8 July - 9 July''' : Adds the interface class [https://github.com/mandeeps708/PluginManager/commit/402c3aae6551df225893f15d04dc168b4696db3d]<br />
<br />
'''11 July - 12 July''' : Searched about various methods through which the interface can be improved to use getInfo() function within the interface as it was the other class' method. Couldn't figure out much how to do that.<br />
<br />
'''13 July''' : Unable to work due to the power cut.<br />
<br />
'''14 July - 15 July''' : Worked on getting the getInfo() function working. Tried a few methods and some did not work. Finally, it worked!<br />
<br />
'''16 July''' : Mainly read about threading in Python.<br />
<br />
'''17 July''' : Extended the info() function to include the macro case too. Also had a talk with the mentor. Some things need to be changed and some improvements were suggested to make the code more generic so that after adding another fetch class, the code should work fine.<br />
<br />
'''18 July''' : Changed getInfo() functions to take plugin as an argument instead of plugin name.<br />
<br />
'''19 July''' : Removed redundant inheritance, tried adding a new x.fetch = self. Having problems. Solving...<br />
<br />
'''20 July''' : Made getInfo() of the base class to work as it does in the derived ones. Changed the "repo.owner.name" to "repo.owner.login" as it was not working (Related to GitHub API).<br />
<br />
'''21 July''' : Made the interface more encapsulated so that fetch classes aren't accessible through the interface. Now the code works fine. Even with getInfo() too. Renamed a few things better.<br />
<br />
'''22 July''' : Worked on adding install() method to the interface and also getting Macro and Workbench paths to which these plugins are to be installed.<br />
<br />
'''23 July''' : Existing code improvements. Added basic installation plugin interface. Implemented install() method for GitHub plugins. The GitHub plugins are now being cloned with depth=1 (hence making it faster).<br />
<br />
'''24 July''' : Implemented the install() method for the Macro plugins' installation. Also, had the weekly routine talk with the mentor. Discussed a few existing issues related to some Macro installation like the encoding problem, path problem etc..<br />
<br />
'''26 July''' : Added some code for detecting the user-preferred Macro installation directory or the default one and setting up one. If it doesn't exist, it'll be created.<br />
<br />
'''27 July - 28 July''' : Modified code according to the PEP8 coding conventions and changed the creation of directories.<br />
<br />
'''29 July - 30 July''' : Automatic directory creation for workbenches (if it doesn't exist). Testing of all plugins! Better exceptions for Macro fetching. Added code for fetching the macro with the non-English characters (used encode function with utf8).<br />
<br />
'''31 July - 1 August''' : FreeCAD Wiki now has the new CSS class for the block of macro code if there are some other code chunks (that are not the actual macro code). So in that case, they are parsed instead of the original macro code because the syntax highlighting is having same CSS classes. If there are multiple chunks are present, then we'll add a new class "macro-code" to the actual macro code and if there is no element with macro-code on that page, then the default method is taken (for single code block).<br />
<br />
'''2 August''' : Worked on blacklisting some macros. Some macros do not contain any code. A few cases are there, that use some other method to store the macro code. So skipping them as of now. Other cases are like the macros are just a reference to the Workbenches (and info. related to them). So make that cases simpler for the future, created a list "blacklisted_plugins_list" that will contain the name of the macros that are to be blacklisted.<br />
<br />
'''3 August''' : Worked on implementing the isInstalled() method for both the Wiki and Workbenches Fetch classes. What it does is that it checks for the existing directory/file for the workbench/macro and see if it exists. Also added a check in the install() method to see if it isInstalled() returned False. Else it already exists.<br />
<br />
'''4 August - 5 August''' : The FreeCAD wiki now have a new element i.e. macro-version. It tells the current version of the macro. It'll help to check if the macro is<br />
up to date or not. PluginManager.info() now returns the plugin (with additional data).<br />
Also worked on the feature to retrieve the contents from the Web only once. If the info. has been fetched already, then no need to fetch it again. The method getInfo() fetches everytime we call it (even with the same plugin, twice). Added code to store the fetched info. in a dictionary and it's fetched when calling with the same plugin. <br />
<br />
'''6 August - 7 August''' : Added isInstalled() to the library interface. Now the FreeCAD wiki pages have a new element "Version" defaults to 1.0. It'll be helpful while checking for updates. Also added version to the macro name while storing. Some code cleanup. Added uninstall() method for macro plugins and also added the library interface for that. Further added the same for the GitHub Workbenches. Also, read about the lambda functions in Python.<br />
<br />
'''8 August''' : Associate macro-version with the Plugin instance.<br />
<br />
'''9 August - 10 August''' : Get the current version of the macro (installed). Removed the dictionary used to store the fetched info about plugins.<br />
<br />
'''11 August''' : Better way to make PluginManager fetch the plugin info only once.<br />
<br />
'''12 August''' : Implemented the isUpToDate() method for Macro Plugins.<br />
<br />
'''13 August - 14 August''' : Implemented isUpToDate() method for GitHub Plugins too. Implemented update() plugins method for both the fetch classes.<br />
<br />
'''15 August - 16 August''' : Adds return statements to methods and update the README for contributors.<br />
<br />
'''17 August - 20 August''' : Macro version handling in update() method working fine now. Used package "glob".<br />
<br />
'''21 August - 23 August''' : Adds example usage, adds some more documentation, README. Submitted the Final Evaluation.</div>Mandeeps708https://brlcad.org/w/index.php?title=User:Mandeeps708/GSoC16/logs&diff=9818User:Mandeeps708/GSoC16/logs2016-08-16T05:28:20Z<p>Mandeeps708: /* Coding Period */</p>
<hr />
<div>=Project Details=<br />
-----------------<br />
Name: [[User:Mandeeps708|Mandeep Singh]]<br />
<br />
IRC: Mandeep_Singh<br />
<br />
Project: [[User:Mandeeps708/gsoc_proposal|The FreeCAD Plugin Installer]]<br />
------------------------------------------------------------------------<br />
<br />
=Community Bonding Period=<br />
---------------------------<br />
<br />
* Discussion about the project proposal.<br />
* Build FreeCAD from source on Archlinux.<br />
* Shifted to Ubuntu and tried building. Discussed the dependencies issue faced on IRC.<br />
* One issue was solved by creating a symlink of libfreeimage.so to /usr/lib from /usr/lib/x86_64-linux-gnu/ due to a bug on Ubuntu 16.04 (Xenial).<br />
* Another issue I was facing was related to C++.<br />
<br />
c++: internal compiler error: Killed (program cc1plus)<br />
Please submit a full bug report,<br />
<br />
It was due to the '''make -j4''' as it made the compiler run out of memory. Never happened on Archlinux though.<br />
<br />
* Discussed to use '''PySide''' and Qt.<br />
* Learning PySide.<br />
<br />
--------------------------------------------<br />
=Coding Period=<br />
----------------<br />
<br />
'''23 May''' : Plan is to try out the existing pluginloader & addon installer. Trying the pluginloader.<br />
<br />
'''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.<br />
<br />
'''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.<br />
<br />
'''26 May''' : Installed and used the Addon installer and saw it's working.<br />
<br />
'''27 May - 28 May''' : Comparing pluginloader (https://github.com/microelly2/freecad-pluginloader) and Addon installer (https://github.com/FreeCAD/FreeCAD-addons#1-using-the-installer-macro) and listing out what we can keep or not for reuse. And getting mentor's views.<br />
<br />
'''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.<br />
<br />
'''30 May - 31 May''' : Discussed the design with ickby and yorik. Parsing macro code from wiki: https://github.com/mandeeps708/scripts/blob/master/FC_getMacro<br />
<br />
'''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. <br />
<br />
'''2 June''' : Weekly meeting + discussed and finalized some things like code structure etc.<br />
<br />
'''3 June''' : Went through some OOPS concepts and how to do them in python. <br />
<br />
'''4 June - 5 June''' : Think of some design and relations. Code structure added to github.<br />
<br />
'''6 June''' : Modified the fetch Macro Script to use BeautifulSoup (with html.parser) instead of pyquery (lxml).<br />
<br />
'''7 June - 9 June''' : Health issues. Also, got some problem with laptop. Started learning about object oriented programming (with python).<br />
<br />
'''10 June''' : Learned Inheritance in Python. Weekly meeting. Discussed about the code structure.<br />
<br />
'''11 June''' : Some experimentation with parsing from FreeCAD-addons repo. Looking into PyGithub for GitHub API.<br />
<br />
'''12 June''' : Finally get PyGithub working. Got list of files and some more examples.<br />
<br />
'''13 June''' : Fetching of only submodules using PyGithub. Got the submodules and their related info. like submodule original URL.<br />
<br />
'''14 June''' : Added more code to FetchFromGitHub class and created instances of Plugin().<br />
<br />
'''15 June''' : Mainly had the discussion today; about the work down and what to do next.<br />
<br />
'''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".<br />
<br />
'''17 June''' : Weekly meeting. Set goals. Fetched list of macros from the FreeCAD wiki. Fetched URL, description, author of individual macro. Code: https://github.com/mandeeps708/scripts/blob/master/FC_getMacro/wikimacro.py<br />
<br />
'''18 June - 19 June''' : Worked on GitHub API. Tried to find if we could fetch repository name by using the repository URL. Talked to GitHub officials regarding this. But it's not there. So tried regular expressions in Python. And it's done.<br />
<br />
'''20 June - 21 June''' : Fetched submodule info like author, description etc. Also integrated Macro fetching code into the main.py file. Created a separate getPlugins module that would be able to fetch all plugins available. Currently, it's like hard coded with fetch classes names. Will make it more robust.<br />
<br />
'''22 June - 23 June''' : Mid-term Evaluation Period. Studied about Exception handling in Python. Added exception handling code for basic exceptions to both classes.<br />
<br />
'''24 June''' : Mainly focussed on to find a way to register application on GitHub to use OAuth. Found a method in PyGithub. But not sure about its usage. Hence using Personal Access tokens as of now.<br />
<br />
'''25 June''' : Initially, it took about 25 API calls to identify which of the item is a submodule. But now it takes 1 API call to fetch basic information and then used regular expressions to filter out the submodules.<br />
<br />
'''26 June''' : Some more exception cases to Macro class if a user didn't correctly added a macro on the wiki. It'll get skipped.<br />
<br />
'''27 June''' : Implemented getInfo() methods for both classes. The basic information about the plugins will now be fetched through the getPluginsList() methods. And additional things about a plugin like the author and the description will be fetched through calling the plugin with getInfo() method. For example: getInfo(PluginName), it will fetch more detail about the plugin. This will be further used in the GUI to be called when a user clicks a plugin entry.<br />
<br />
'''28 June''' : Mainly discussed with the mentors about next task. And I was suggested to get overview of the things like creating a design how overall thing will work. And some other ideas like having a library that could interact with all fetch classes to provide an interface to the user to manage plugins (Wb+macros) altogether.<br />
<br />
Bad health.<br />
<br />
'''3 July - 4 July''' : Created some design about the workflow.<br />
<br />
'''5 July''' : Shared the design with mentor and got the views. It lacked some of the functionality. So added that.<br />
<br />
'''6 July''' : Added a new function for getting all plugins to combine instances of all plugins together.<br />
<br />
'''7 July''' : Converted that function to a class and had an interface (getPlugins.py[https://github.com/mandeeps708/PluginManager/blob/master/getPlugins.py]) for using this.<br />
<br />
'''8 July - 9 July''' : Adds the interface class [https://github.com/mandeeps708/PluginManager/commit/402c3aae6551df225893f15d04dc168b4696db3d]<br />
<br />
'''11 July - 12 July''' : Searched about various methods through which the interface can be improved to use getInfo() function within the interface as it was the other class' method. Couldn't figure out much how to do that.<br />
<br />
'''13 July''' : Unable to work due to the power cut.<br />
<br />
'''14 July - 15 July''' : Worked on getting the getInfo() function working. Tried a few methods and some did not work. Finally, it worked!<br />
<br />
'''16 July''' : Mainly read about threading in Python.<br />
<br />
'''17 July''' : Extended the info() function to include the macro case too. Also had a talk with the mentor. Some things need to be changed and some improvements were suggested to make the code more generic so that after adding another fetch class, the code should work fine.<br />
<br />
'''18 July''' : Changed getInfo() functions to take plugin as an argument instead of plugin name.<br />
<br />
'''19 July''' : Removed redundant inheritance, tried adding a new x.fetch = self. Having problems. Solving...<br />
<br />
'''20 July''' : Made getInfo() of the base class to work as it does in the derived ones. Changed the "repo.owner.name" to "repo.owner.login" as it was not working (Related to GitHub API).<br />
<br />
'''21 July''' : Made the interface more encapsulated so that fetch classes aren't accessible through the interface. Now the code works fine. Even with getInfo() too. Renamed a few things better.<br />
<br />
'''22 July''' : Worked on adding install() method to the interface and also getting Macro and Workbench paths to which these plugins are to be installed.<br />
<br />
'''23 July''' : Existing code improvements. Added basic installation plugin interface. Implemented install() method for GitHub plugins. The GitHub plugins are now being cloned with depth=1 (hence making it faster).<br />
<br />
'''24 July''' : Implemented the install() method for the Macro plugins' installation. Also, had the weekly routine talk with the mentor. Discussed a few existing issues related to some Macro installation like the encoding problem, path problem etc..<br />
<br />
'''26 July''' : Added some code for detecting the user-preferred Macro installation directory or the default one and setting up one. If it doesn't exist, it'll be created.<br />
<br />
'''27 July - 28 July''' : Modified code according to the PEP8 coding conventions and changed the creation of directories.<br />
<br />
'''29 July - 30 July''' : Automatic directory creation for workbenches (if it doesn't exist). Testing of all plugins! Better exceptions for Macro fetching. Added code for fetching the macro with the non-English characters (used encode function with utf8).<br />
<br />
'''31 July - 1 August''' : FreeCAD Wiki now has the new CSS class for the block of macro code if there are some other code chunks (that are not the actual macro code). So in that case, they are parsed instead of the original macro code because the syntax highlighting is having same CSS classes. If there are multiple chunks are present, then we'll add a new class "macro-code" to the actual macro code and if there is no element with macro-code on that page, then the default method is taken (for single code block).<br />
<br />
'''2 August''' : Worked on blacklisting some macros. Some macros do not contain any code. A few cases are there, that use some other method to store the macro code. So skipping them as of now. Other cases are like the macros are just a reference to the Workbenches (and info. related to them). So make that cases simpler for the future, created a list "blacklisted_plugins_list" that will contain the name of the macros that are to be blacklisted.<br />
<br />
'''3 August''' : Worked on implementing the isInstalled() method for both the Wiki and Workbenches Fetch classes. What it does is that it checks for the existing directory/file for the workbench/macro and see if it exists. Also added a check in the install() method to see if it isInstalled() returned False. Else it already exists.<br />
<br />
'''4 August - 5 August''' : The FreeCAD wiki now have a new element i.e. macro-version. It tells the current version of the macro. It'll help to check if the macro is<br />
up to date or not. PluginManager.info() now returns the plugin (with additional data).<br />
Also worked on the feature to retrieve the contents from the Web only once. If the info. has been fetched already, then no need to fetch it again. The method getInfo() fetches everytime we call it (even with the same plugin, twice). Added code to store the fetched info. in a dictionary and it's fetched when calling with the same plugin. <br />
<br />
'''6 August - 7 August''' : Added isInstalled() to the library interface. Now the FreeCAD wiki pages have a new element "Version" defaults to 1.0. It'll be helpful while checking for updates. Also added version to the macro name while storing. Some code cleanup. Added uninstall() method for macro plugins and also added the library interface for that. Further added the same for the GitHub Workbenches. Also, read about the lambda functions in Python.<br />
<br />
'''8 August''' : Associate macro-version with the Plugin instance.<br />
<br />
'''9 August - 10 August''' : Get the current version of the macro (installed). Removed the dictionary used to store the fetched info about plugins.<br />
<br />
'''11 August''' : Better way to make PluginManager fetch the plugin info only once.<br />
<br />
'''12 August''' : Implemented the isUpToDate() method for Macro Plugins.<br />
<br />
'''13 August - 14 August''' : Implemented isUpToDate() method for GitHub Plugins too. Implemented update() plugins method for both the fetch classes.</div>Mandeeps708https://brlcad.org/w/index.php?title=User:Mandeeps708/GSoC16/logs&diff=9813User:Mandeeps708/GSoC16/logs2016-08-07T19:45:02Z<p>Mandeeps708: /* Coding Period */</p>
<hr />
<div>=Project Details=<br />
-----------------<br />
Name: [[User:Mandeeps708|Mandeep Singh]]<br />
<br />
IRC: Mandeep_Singh<br />
<br />
Project: [[User:Mandeeps708/gsoc_proposal|The FreeCAD Plugin Installer]]<br />
------------------------------------------------------------------------<br />
<br />
=Community Bonding Period=<br />
---------------------------<br />
<br />
* Discussion about the project proposal.<br />
* Build FreeCAD from source on Archlinux.<br />
* Shifted to Ubuntu and tried building. Discussed the dependencies issue faced on IRC.<br />
* One issue was solved by creating a symlink of libfreeimage.so to /usr/lib from /usr/lib/x86_64-linux-gnu/ due to a bug on Ubuntu 16.04 (Xenial).<br />
* Another issue I was facing was related to C++.<br />
<br />
c++: internal compiler error: Killed (program cc1plus)<br />
Please submit a full bug report,<br />
<br />
It was due to the '''make -j4''' as it made the compiler run out of memory. Never happened on Archlinux though.<br />
<br />
* Discussed to use '''PySide''' and Qt.<br />
* Learning PySide.<br />
<br />
--------------------------------------------<br />
=Coding Period=<br />
----------------<br />
<br />
'''23 May''' : Plan is to try out the existing pluginloader & addon installer. Trying the pluginloader.<br />
<br />
'''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.<br />
<br />
'''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.<br />
<br />
'''26 May''' : Installed and used the Addon installer and saw it's working.<br />
<br />
'''27 May - 28 May''' : Comparing pluginloader (https://github.com/microelly2/freecad-pluginloader) and Addon installer (https://github.com/FreeCAD/FreeCAD-addons#1-using-the-installer-macro) and listing out what we can keep or not for reuse. And getting mentor's views.<br />
<br />
'''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.<br />
<br />
'''30 May - 31 May''' : Discussed the design with ickby and yorik. Parsing macro code from wiki: https://github.com/mandeeps708/scripts/blob/master/FC_getMacro<br />
<br />
'''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. <br />
<br />
'''2 June''' : Weekly meeting + discussed and finalized some things like code structure etc.<br />
<br />
'''3 June''' : Went through some OOPS concepts and how to do them in python. <br />
<br />
'''4 June - 5 June''' : Think of some design and relations. Code structure added to github.<br />
<br />
'''6 June''' : Modified the fetch Macro Script to use BeautifulSoup (with html.parser) instead of pyquery (lxml).<br />
<br />
'''7 June - 9 June''' : Health issues. Also, got some problem with laptop. Started learning about object oriented programming (with python).<br />
<br />
'''10 June''' : Learned Inheritance in Python. Weekly meeting. Discussed about the code structure.<br />
<br />
'''11 June''' : Some experimentation with parsing from FreeCAD-addons repo. Looking into PyGithub for GitHub API.<br />
<br />
'''12 June''' : Finally get PyGithub working. Got list of files and some more examples.<br />
<br />
'''13 June''' : Fetching of only submodules using PyGithub. Got the submodules and their related info. like submodule original URL.<br />
<br />
'''14 June''' : Added more code to FetchFromGitHub class and created instances of Plugin().<br />
<br />
'''15 June''' : Mainly had the discussion today; about the work down and what to do next.<br />
<br />
'''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".<br />
<br />
'''17 June''' : Weekly meeting. Set goals. Fetched list of macros from the FreeCAD wiki. Fetched URL, description, author of individual macro. Code: https://github.com/mandeeps708/scripts/blob/master/FC_getMacro/wikimacro.py<br />
<br />
'''18 June - 19 June''' : Worked on GitHub API. Tried to find if we could fetch repository name by using the repository URL. Talked to GitHub officials regarding this. But it's not there. So tried regular expressions in Python. And it's done.<br />
<br />
'''20 June - 21 June''' : Fetched submodule info like author, description etc. Also integrated Macro fetching code into the main.py file. Created a separate getPlugins module that would be able to fetch all plugins available. Currently, it's like hard coded with fetch classes names. Will make it more robust.<br />
<br />
'''22 June - 23 June''' : Mid-term Evaluation Period. Studied about Exception handling in Python. Added exception handling code for basic exceptions to both classes.<br />
<br />
'''24 June''' : Mainly focussed on to find a way to register application on GitHub to use OAuth. Found a method in PyGithub. But not sure about its usage. Hence using Personal Access tokens as of now.<br />
<br />
'''25 June''' : Initially, it took about 25 API calls to identify which of the item is a submodule. But now it takes 1 API call to fetch basic information and then used regular expressions to filter out the submodules.<br />
<br />
'''26 June''' : Some more exception cases to Macro class if a user didn't correctly added a macro on the wiki. It'll get skipped.<br />
<br />
'''27 June''' : Implemented getInfo() methods for both classes. The basic information about the plugins will now be fetched through the getPluginsList() methods. And additional things about a plugin like the author and the description will be fetched through calling the plugin with getInfo() method. For example: getInfo(PluginName), it will fetch more detail about the plugin. This will be further used in the GUI to be called when a user clicks a plugin entry.<br />
<br />
'''28 June''' : Mainly discussed with the mentors about next task. And I was suggested to get overview of the things like creating a design how overall thing will work. And some other ideas like having a library that could interact with all fetch classes to provide an interface to the user to manage plugins (Wb+macros) altogether.<br />
<br />
Bad health.<br />
<br />
'''3 July - 4 July''' : Created some design about the workflow.<br />
<br />
'''5 July''' : Shared the design with mentor and got the views. It lacked some of the functionality. So added that.<br />
<br />
'''6 July''' : Added a new function for getting all plugins to combine instances of all plugins together.<br />
<br />
'''7 July''' : Converted that function to a class and had an interface (getPlugins.py[https://github.com/mandeeps708/PluginManager/blob/master/getPlugins.py]) for using this.<br />
<br />
'''8 July - 9 July''' : Adds the interface class [https://github.com/mandeeps708/PluginManager/commit/402c3aae6551df225893f15d04dc168b4696db3d]<br />
<br />
'''11 July - 12 July''' : Searched about various methods through which the interface can be improved to use getInfo() function within the interface as it was the other class' method. Couldn't figure out much how to do that.<br />
<br />
'''13 July''' : Unable to work due to the power cut.<br />
<br />
'''14 July - 15 July''' : Worked on getting the getInfo() function working. Tried a few methods and some did not work. Finally, it worked!<br />
<br />
'''16 July''' : Mainly read about threading in Python.<br />
<br />
'''17 July''' : Extended the info() function to include the macro case too. Also had a talk with the mentor. Some things need to be changed and some improvements were suggested to make the code more generic so that after adding another fetch class, the code should work fine.<br />
<br />
'''18 July''' : Changed getInfo() functions to take plugin as an argument instead of plugin name.<br />
<br />
'''19 July''' : Removed redundant inheritance, tried adding a new x.fetch = self. Having problems. Solving...<br />
<br />
'''20 July''' : Made getInfo() of the base class to work as it does in the derived ones. Changed the "repo.owner.name" to "repo.owner.login" as it was not working (Related to GitHub API).<br />
<br />
'''21 July''' : Made the interface more encapsulated so that fetch classes aren't accessible through the interface. Now the code works fine. Even with getInfo() too. Renamed a few things better.<br />
<br />
'''22 July''' : Worked on adding install() method to the interface and also getting Macro and Workbench paths to which these plugins are to be installed.<br />
<br />
'''23 July''' : Existing code improvements. Added basic installation plugin interface. Implemented install() method for GitHub plugins. The GitHub plugins are now being cloned with depth=1 (hence making it faster).<br />
<br />
'''24 July''' : Implemented the install() method for the Macro plugins' installation. Also, had the weekly routine talk with the mentor. Discussed a few existing issues related to some Macro installation like the encoding problem, path problem etc..<br />
<br />
'''26 July''' : Added some code for detecting the user-preferred Macro installation directory or the default one and setting up one. If it doesn't exist, it'll be created.<br />
<br />
'''27 July - 28 July''' : Modified code according to the PEP8 coding conventions and changed the creation of directories.<br />
<br />
'''29 July - 30 July''' : Automatic directory creation for workbenches (if it doesn't exist). Testing of all plugins! Better exceptions for Macro fetching. Added code for fetching the macro with the non-English characters (used encode function with utf8).<br />
<br />
'''31 July - 1 August''' : FreeCAD Wiki now has the new CSS class for the block of macro code if there are some other code chunks (that are not the actual macro code). So in that case, they are parsed instead of the original macro code because the syntax highlighting is having same CSS classes. If there are multiple chunks are present, then we'll add a new class "macro-code" to the actual macro code and if there is no element with macro-code on that page, then the default method is taken (for single code block).<br />
<br />
'''2 August''' : Worked on blacklisting some macros. Some macros do not contain any code. A few cases are there, that use some other method to store the macro code. So skipping them as of now. Other cases are like the macros are just a reference to the Workbenches (and info. related to them). So make that cases simpler for the future, created a list "blacklisted_plugins_list" that will contain the name of the macros that are to be blacklisted.<br />
<br />
'''3 August''' : Worked on implementing the isInstalled() method for both the Wiki and Workbenches Fetch classes. What it does is that it checks for the existing directory/file for the workbench/macro and see if it exists. Also added a check in the install() method to see if it isInstalled() returned False. Else it already exists.<br />
<br />
'''4 August - 5 August''' : The FreeCAD wiki now have a new element i.e. macro-version. It tells the current version of the macro. It'll help to check if the macro is<br />
up to date or not. PluginManager.info() now returns the plugin (with additional data).<br />
Also worked on the feature to retrieve the contents from the Web only once. If the info. has been fetched already, then no need to fetch it again. The method getInfo() fetches everytime we call it (even with the same plugin, twice). Added code to store the fetched info. in a dictionary and it's fetched when calling with the same plugin. <br />
<br />
'''6 August - 7 August''' : Added isInstalled() to the library interface. Now the FreeCAD wiki pages have a new element "Version" defaults to 1.0. It'll be helpful while checking for updates. Also added version to the macro name while storing. Some code cleanup. Added uninstall() method for macro plugins and also added the library interface for that. Further added the same for the GitHub Workbenches. Also, read about the lambda functions in Python.</div>Mandeeps708https://brlcad.org/w/index.php?title=User:Mandeeps708/GSoC16/logs&diff=9812User:Mandeeps708/GSoC16/logs2016-08-07T19:36:28Z<p>Mandeeps708: /* Coding Period */</p>
<hr />
<div>=Project Details=<br />
-----------------<br />
Name: [[User:Mandeeps708|Mandeep Singh]]<br />
<br />
IRC: Mandeep_Singh<br />
<br />
Project: [[User:Mandeeps708/gsoc_proposal|The FreeCAD Plugin Installer]]<br />
------------------------------------------------------------------------<br />
<br />
=Community Bonding Period=<br />
---------------------------<br />
<br />
* Discussion about the project proposal.<br />
* Build FreeCAD from source on Archlinux.<br />
* Shifted to Ubuntu and tried building. Discussed the dependencies issue faced on IRC.<br />
* One issue was solved by creating a symlink of libfreeimage.so to /usr/lib from /usr/lib/x86_64-linux-gnu/ due to a bug on Ubuntu 16.04 (Xenial).<br />
* Another issue I was facing was related to C++.<br />
<br />
c++: internal compiler error: Killed (program cc1plus)<br />
Please submit a full bug report,<br />
<br />
It was due to the '''make -j4''' as it made the compiler run out of memory. Never happened on Archlinux though.<br />
<br />
* Discussed to use '''PySide''' and Qt.<br />
* Learning PySide.<br />
<br />
--------------------------------------------<br />
=Coding Period=<br />
----------------<br />
<br />
'''23 May''' : Plan is to try out the existing pluginloader & addon installer. Trying the pluginloader.<br />
<br />
'''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.<br />
<br />
'''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.<br />
<br />
'''26 May''' : Installed and used the Addon installer and saw it's working.<br />
<br />
'''27 May - 28 May''' : Comparing pluginloader (https://github.com/microelly2/freecad-pluginloader) and Addon installer (https://github.com/FreeCAD/FreeCAD-addons#1-using-the-installer-macro) and listing out what we can keep or not for reuse. And getting mentor's views.<br />
<br />
'''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.<br />
<br />
'''30 May - 31 May''' : Discussed the design with ickby and yorik. Parsing macro code from wiki: https://github.com/mandeeps708/scripts/blob/master/FC_getMacro<br />
<br />
'''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. <br />
<br />
'''2 June''' : Weekly meeting + discussed and finalized some things like code structure etc.<br />
<br />
'''3 June''' : Went through some OOPS concepts and how to do them in python. <br />
<br />
'''4 June - 5 June''' : Think of some design and relations. Code structure added to github.<br />
<br />
'''6 June''' : Modified the fetch Macro Script to use BeautifulSoup (with html.parser) instead of pyquery (lxml).<br />
<br />
'''7 June - 9 June''' : Health issues. Also, got some problem with laptop. Started learning about object oriented programming (with python).<br />
<br />
'''10 June''' : Learned Inheritance in Python. Weekly meeting. Discussed about the code structure.<br />
<br />
'''11 June''' : Some experimentation with parsing from FreeCAD-addons repo. Looking into PyGithub for GitHub API.<br />
<br />
'''12 June''' : Finally get PyGithub working. Got list of files and some more examples.<br />
<br />
'''13 June''' : Fetching of only submodules using PyGithub. Got the submodules and their related info. like submodule original URL.<br />
<br />
'''14 June''' : Added more code to FetchFromGitHub class and created instances of Plugin().<br />
<br />
'''15 June''' : Mainly had the discussion today; about the work down and what to do next.<br />
<br />
'''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".<br />
<br />
'''17 June''' : Weekly meeting. Set goals. Fetched list of macros from the FreeCAD wiki. Fetched URL, description, author of individual macro. Code: https://github.com/mandeeps708/scripts/blob/master/FC_getMacro/wikimacro.py<br />
<br />
'''18 June - 19 June''' : Worked on GitHub API. Tried to find if we could fetch repository name by using the repository URL. Talked to GitHub officials regarding this. But it's not there. So tried regular expressions in Python. And it's done.<br />
<br />
'''20 June - 21 June''' : Fetched submodule info like author, description etc. Also integrated Macro fetching code into the main.py file. Created a separate getPlugins module that would be able to fetch all plugins available. Currently, it's like hard coded with fetch classes names. Will make it more robust.<br />
<br />
'''22 June - 23 June''' : Mid-term Evaluation Period. Studied about Exception handling in Python. Added exception handling code for basic exceptions to both classes.<br />
<br />
'''24 June''' : Mainly focussed on to find a way to register application on GitHub to use OAuth. Found a method in PyGithub. But not sure about its usage. Hence using Personal Access tokens as of now.<br />
<br />
'''25 June''' : Initially, it took about 25 API calls to identify which of the item is a submodule. But now it takes 1 API call to fetch basic information and then used regular expressions to filter out the submodules.<br />
<br />
'''26 June''' : Some more exception cases to Macro class if a user didn't correctly added a macro on the wiki. It'll get skipped.<br />
<br />
'''27 June''' : Implemented getInfo() methods for both classes. The basic information about the plugins will now be fetched through the getPluginsList() methods. And additional things about a plugin like the author and the description will be fetched through calling the plugin with getInfo() method. For example: getInfo(PluginName), it will fetch more detail about the plugin. This will be further used in the GUI to be called when a user clicks a plugin entry.<br />
<br />
'''28 June''' : Mainly discussed with the mentors about next task. And I was suggested to get overview of the things like creating a design how overall thing will work. And some other ideas like having a library that could interact with all fetch classes to provide an interface to the user to manage plugins (Wb+macros) altogether.<br />
<br />
Bad health.<br />
<br />
'''3 July - 4 July''' : Created some design about the workflow.<br />
<br />
'''5 July''' : Shared the design with mentor and got the views. It lacked some of the functionality. So added that.<br />
<br />
'''6 July''' : Added a new function for getting all plugins to combine instances of all plugins together.<br />
<br />
'''7 July''' : Converted that function to a class and had an interface (getPlugins.py[https://github.com/mandeeps708/PluginManager/blob/master/getPlugins.py]) for using this.<br />
<br />
'''8 July - 9 July''' : Adds the interface class [https://github.com/mandeeps708/PluginManager/commit/402c3aae6551df225893f15d04dc168b4696db3d]<br />
<br />
'''11 July - 12 July''' : Searched about various methods through which the interface can be improved to use getInfo() function within the interface as it was the other class' method. Couldn't figure out much how to do that.<br />
<br />
'''13 July''' : Unable to work due to the power cut.<br />
<br />
'''14 July - 15 July''' : Worked on getting the getInfo() function working. Tried a few methods and some did not work. Finally, it worked!<br />
<br />
'''16 July''' : Mainly read about threading in Python.<br />
<br />
'''17 July''' : Extended the info() function to include the macro case too. Also had a talk with the mentor. Some things need to be changed and some improvements were suggested to make the code more generic so that after adding another fetch class, the code should work fine.<br />
<br />
'''18 July''' : Changed getInfo() functions to take plugin as an argument instead of plugin name.<br />
<br />
'''19 July''' : Removed redundant inheritance, tried adding a new x.fetch = self. Having problems. Solving...<br />
<br />
'''20 July''' : Made getInfo() of the base class to work as it does in the derived ones. Changed the "repo.owner.name" to "repo.owner.login" as it was not working (Related to GitHub API).<br />
<br />
'''21 July''' : Made the interface more encapsulated so that fetch classes aren't accessible through the interface. Now the code works fine. Even with getInfo() too. Renamed a few things better.<br />
<br />
'''22 July''' : Worked on adding install() method to the interface and also getting Macro and Workbench paths to which these plugins are to be installed.<br />
<br />
'''23 July''' : Existing code improvements. Added basic installation plugin interface. Implemented install() method for GitHub plugins. The GitHub plugins are now being cloned with depth=1 (hence making it faster).<br />
<br />
'''24 July''' : Implemented the install() method for the Macro plugins' installation. Also, had the weekly routine talk with the mentor. Discussed a few existing issues related to some Macro installation like the encoding problem, path problem etc..<br />
<br />
'''26 July''' : Added some code for detecting the user-preferred Macro installation directory or the default one and setting up one. If it doesn't exist, it'll be created.<br />
<br />
'''27 July - 28 July''' : Modified code according to the PEP8 coding conventions and changed the creation of directories.<br />
<br />
'''29 July - 30 July''' : Automatic directory creation for workbenches (if it doesn't exist). Testing of all plugins! Better exceptions for Macro fetching. Added code for fetching the macro with the non-English characters (used encode function with utf8).<br />
<br />
'''31 July - 1 August''' : FreeCAD Wiki now has the new CSS class for the block of macro code if there are some other code chunks (that are not the actual macro code). So in that case, they are parsed instead of the original macro code because the syntax highlighting is having same CSS classes. If there are multiple chunks are present, then we'll add a new class "macro-code" to the actual macro code and if there is no element with macro-code on that page, then the default method is taken (for single code block).<br />
<br />
'''2 August''' : Worked on blacklisting some macros. Some macros do not contain any code. A few cases are there, that use some other method to store the macro code. So skipping them as of now. Other cases are like the macros are just a reference to the Workbenches (and info. related to them). So make that cases simpler for the future, created a list "blacklisted_plugins_list" that will contain the name of the macros that are to be blacklisted.<br />
<br />
'''3 August''' : Worked on implementing the isInstalled() method for both the Wiki and Workbenches Fetch classes. What it does is that it checks for the existing directory/file for the workbench/macro and see if it exists. Also added a check in the install() method to see if it isInstalled() returned False. Else it already exists.<br />
<br />
'''4 August - 5 August''' : The FreeCAD wiki now have a new element i.e. macro-version. It tells the current version of the macro. It'll help to check if the macro is<br />
up to date or not. PluginManager.info() now returns the plugin (with additional data).<br />
Also worked on the feature to retrieve the contents from the Web only once. If the info. has been fetched already, then no need to fetch it again. The method getInfo() fetches everytime we call it (even with the same plugin, twice). Added code to store the fetched info. in a dictionary and it's fetched when calling with the same plugin. <br />
<br />
'''6 August - 7 August''' : Added isInstalled() to the library interface. Now the FreeCAD wiki pages have a new element "Version" defaults to 1.0. It'll be helpful while checking for updates. Also added version to the macro name while storing. Some code cleanup. Added uninstall() method for macro plugins and also added the library interface for that. Further added the same for the GitHub Workbenches.</div>Mandeeps708https://brlcad.org/w/index.php?title=User:Mandeeps708/GSoC16/logs&diff=9804User:Mandeeps708/GSoC16/logs2016-07-26T18:47:01Z<p>Mandeeps708: /* Coding Period */</p>
<hr />
<div>=Project Details=<br />
-----------------<br />
Name: [[User:Mandeeps708|Mandeep Singh]]<br />
<br />
IRC: Mandeep_Singh<br />
<br />
Project: [[User:Mandeeps708/gsoc_proposal|The FreeCAD Plugin Installer]]<br />
------------------------------------------------------------------------<br />
<br />
=Community Bonding Period=<br />
---------------------------<br />
<br />
* Discussion about the project proposal.<br />
* Build FreeCAD from source on Archlinux.<br />
* Shifted to Ubuntu and tried building. Discussed the dependencies issue faced on IRC.<br />
* One issue was solved by creating a symlink of libfreeimage.so to /usr/lib from /usr/lib/x86_64-linux-gnu/ due to a bug on Ubuntu 16.04 (Xenial).<br />
* Another issue I was facing was related to C++.<br />
<br />
c++: internal compiler error: Killed (program cc1plus)<br />
Please submit a full bug report,<br />
<br />
It was due to the '''make -j4''' as it made the compiler run out of memory. Never happened on Archlinux though.<br />
<br />
* Discussed to use '''PySide''' and Qt.<br />
* Learning PySide.<br />
<br />
--------------------------------------------<br />
=Coding Period=<br />
----------------<br />
<br />
'''23 May''' : Plan is to try out the existing pluginloader & addon installer. Trying the pluginloader.<br />
<br />
'''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.<br />
<br />
'''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.<br />
<br />
'''26 May''' : Installed and used the Addon installer and saw it's working.<br />
<br />
'''27 May - 28 May''' : Comparing pluginloader (https://github.com/microelly2/freecad-pluginloader) and Addon installer (https://github.com/FreeCAD/FreeCAD-addons#1-using-the-installer-macro) and listing out what we can keep or not for reuse. And getting mentor's views.<br />
<br />
'''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.<br />
<br />
'''30 May - 31 May''' : Discussed the design with ickby and yorik. Parsing macro code from wiki: https://github.com/mandeeps708/scripts/blob/master/FC_getMacro<br />
<br />
'''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. <br />
<br />
'''2 June''' : Weekly meeting + discussed and finalized some things like code structure etc.<br />
<br />
'''3 June''' : Went through some OOPS concepts and how to do them in python. <br />
<br />
'''4 June - 5 June''' : Think of some design and relations. Code structure added to github.<br />
<br />
'''6 June''' : Modified the fetch Macro Script to use BeautifulSoup (with html.parser) instead of pyquery (lxml).<br />
<br />
'''7 June - 9 June''' : Health issues. Also, got some problem with laptop. Started learning about object oriented programming (with python).<br />
<br />
'''10 June''' : Learned Inheritance in Python. Weekly meeting. Discussed about the code structure.<br />
<br />
'''11 June''' : Some experimentation with parsing from FreeCAD-addons repo. Looking into PyGithub for GitHub API.<br />
<br />
'''12 June''' : Finally get PyGithub working. Got list of files and some more examples.<br />
<br />
'''13 June''' : Fetching of only submodules using PyGithub. Got the submodules and their related info. like submodule original URL.<br />
<br />
'''14 June''' : Added more code to FetchFromGitHub class and created instances of Plugin().<br />
<br />
'''15 June''' : Mainly had the discussion today; about the work down and what to do next.<br />
<br />
'''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".<br />
<br />
'''17 June''' : Weekly meeting. Set goals. Fetched list of macros from the FreeCAD wiki. Fetched URL, description, author of individual macro. Code: https://github.com/mandeeps708/scripts/blob/master/FC_getMacro/wikimacro.py<br />
<br />
'''18 June - 19 June''' : Worked on GitHub API. Tried to find if we could fetch repository name by using the repository URL. Talked to GitHub officials regarding this. But it's not there. So tried regular expressions in Python. And it's done.<br />
<br />
'''20 June - 21 June''' : Fetched submodule info like author, description etc. Also integrated Macro fetching code into the main.py file. Created a separate getPlugins module that would be able to fetch all plugins available. Currently, it's like hard coded with fetch classes names. Will make it more robust.<br />
<br />
'''22 June - 23 June''' : Mid-term Evaluation Period. Studied about Exception handling in Python. Added exception handling code for basic exceptions to both classes.<br />
<br />
'''24 June''' : Mainly focussed on to find a way to register application on GitHub to use OAuth. Found a method in PyGithub. But not sure about its usage. Hence using Personal Access tokens as of now.<br />
<br />
'''25 June''' : Initially, it took about 25 API calls to identify which of the item is a submodule. But now it takes 1 API call to fetch basic information and then used regular expressions to filter out the submodules.<br />
<br />
'''26 June''' : Some more exception cases to Macro class if a user didn't correctly added a macro on the wiki. It'll get skipped.<br />
<br />
'''27 June''' : Implemented getInfo() methods for both classes. The basic information about the plugins will now be fetched through the getPluginsList() methods. And additional things about a plugin like the author and the description will be fetched through calling the plugin with getInfo() method. For example: getInfo(PluginName), it will fetch more detail about the plugin. This will be further used in the GUI to be called when a user clicks a plugin entry.<br />
<br />
'''28 June''' : Mainly discussed with the mentors about next task. And I was suggested to get overview of the things like creating a design how overall thing will work. And some other ideas like having a library that could interact with all fetch classes to provide an interface to the user to manage plugins (Wb+macros) altogether.<br />
<br />
Bad health.<br />
<br />
'''3 July - 4 July''' : Created some design about the workflow.<br />
<br />
'''5 July''' : Shared the design with mentor and got the views. It lacked some of the functionality. So added that.<br />
<br />
'''6 July''' : Added a new function for getting all plugins to combine instances of all plugins together.<br />
<br />
'''7 July''' : Converted that function to a class and had an interface (getPlugins.py[https://github.com/mandeeps708/PluginManager/blob/master/getPlugins.py]) for using this.<br />
<br />
'''8 July - 9 July''' : Adds the interface class [https://github.com/mandeeps708/PluginManager/commit/402c3aae6551df225893f15d04dc168b4696db3d]<br />
<br />
'''11 July - 12 July''' : Searched about various methods through which the interface can be improved to use getInfo() function within the interface as it was the other class' method. Couldn't figure out much how to do that.<br />
<br />
'''13 July''' : Unable to work due to the power cut.<br />
<br />
'''14 July - 15 July''' : Worked on getting the getInfo() function working. Tried a few methods and some did not work. Finally, it worked!<br />
<br />
'''16 July''' : Mainly read about threading in Python.<br />
<br />
'''17 July''' : Extended the info() function to include the macro case too. Also had a talk with the mentor. Some things need to be changed and some improvements were suggested to make the code more generic so that after adding another fetch class, the code should work fine.<br />
<br />
'''18 July''' : Changed getInfo() functions to take plugin as an argument instead of plugin name.<br />
<br />
'''19 July''' : Removed redundant inheritance, tried adding a new x.fetch = self. Having problems. Solving...<br />
<br />
'''20 July''' : Made getInfo() of the base class to work as it does in the derived ones. Changed the "repo.owner.name" to "repo.owner.login" as it was not working (Related to GitHub API).<br />
<br />
'''21 July''' : Made the interface more encapsulated so that fetch classes aren't accessible through the interface. Now the code works fine. Even with getInfo() too. Renamed a few things better.<br />
<br />
'''22 July''' : Worked on adding install() method to the interface and also getting Macro and Workbench paths to which these plugins are to be installed.<br />
<br />
'''23 July''' : Existing code improvements. Added basic installation plugin interface. Implemented install() method for GitHub plugins. The GitHub plugins are now being cloned with depth=1 (hence making it faster).<br />
<br />
'''24 July''' : Implemented the install() method for the Macro plugins' installation. Also, had the weekly routine talk with the mentor. Discussed a few existing issues related to some Macro installation like the encoding problem, path problem etc..<br />
<br />
'''26 July''' : Added some code for detecting the user-preferred Macro installation directory or the default one and setting up one. If it doesn't exist, it'll be created.</div>Mandeeps708https://brlcad.org/w/index.php?title=User:Mandeeps708/GSoC16/logs&diff=9803User:Mandeeps708/GSoC16/logs2016-07-22T23:33:41Z<p>Mandeeps708: /* Coding Period */</p>
<hr />
<div>=Project Details=<br />
-----------------<br />
Name: [[User:Mandeeps708|Mandeep Singh]]<br />
<br />
IRC: Mandeep_Singh<br />
<br />
Project: [[User:Mandeeps708/gsoc_proposal|The FreeCAD Plugin Installer]]<br />
------------------------------------------------------------------------<br />
<br />
=Community Bonding Period=<br />
---------------------------<br />
<br />
* Discussion about the project proposal.<br />
* Build FreeCAD from source on Archlinux.<br />
* Shifted to Ubuntu and tried building. Discussed the dependencies issue faced on IRC.<br />
* One issue was solved by creating a symlink of libfreeimage.so to /usr/lib from /usr/lib/x86_64-linux-gnu/ due to a bug on Ubuntu 16.04 (Xenial).<br />
* Another issue I was facing was related to C++.<br />
<br />
c++: internal compiler error: Killed (program cc1plus)<br />
Please submit a full bug report,<br />
<br />
It was due to the '''make -j4''' as it made the compiler run out of memory. Never happened on Archlinux though.<br />
<br />
* Discussed to use '''PySide''' and Qt.<br />
* Learning PySide.<br />
<br />
--------------------------------------------<br />
=Coding Period=<br />
----------------<br />
<br />
'''23 May''' : Plan is to try out the existing pluginloader & addon installer. Trying the pluginloader.<br />
<br />
'''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.<br />
<br />
'''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.<br />
<br />
'''26 May''' : Installed and used the Addon installer and saw it's working.<br />
<br />
'''27 May - 28 May''' : Comparing pluginloader (https://github.com/microelly2/freecad-pluginloader) and Addon installer (https://github.com/FreeCAD/FreeCAD-addons#1-using-the-installer-macro) and listing out what we can keep or not for reuse. And getting mentor's views.<br />
<br />
'''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.<br />
<br />
'''30 May - 31 May''' : Discussed the design with ickby and yorik. Parsing macro code from wiki: https://github.com/mandeeps708/scripts/blob/master/FC_getMacro<br />
<br />
'''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. <br />
<br />
'''2 June''' : Weekly meeting + discussed and finalized some things like code structure etc.<br />
<br />
'''3 June''' : Went through some OOPS concepts and how to do them in python. <br />
<br />
'''4 June - 5 June''' : Think of some design and relations. Code structure added to github.<br />
<br />
'''6 June''' : Modified the fetch Macro Script to use BeautifulSoup (with html.parser) instead of pyquery (lxml).<br />
<br />
'''7 June - 9 June''' : Health issues. Also, got some problem with laptop. Started learning about object oriented programming (with python).<br />
<br />
'''10 June''' : Learned Inheritance in Python. Weekly meeting. Discussed about the code structure.<br />
<br />
'''11 June''' : Some experimentation with parsing from FreeCAD-addons repo. Looking into PyGithub for GitHub API.<br />
<br />
'''12 June''' : Finally get PyGithub working. Got list of files and some more examples.<br />
<br />
'''13 June''' : Fetching of only submodules using PyGithub. Got the submodules and their related info. like submodule original URL.<br />
<br />
'''14 June''' : Added more code to FetchFromGitHub class and created instances of Plugin().<br />
<br />
'''15 June''' : Mainly had the discussion today; about the work down and what to do next.<br />
<br />
'''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".<br />
<br />
'''17 June''' : Weekly meeting. Set goals. Fetched list of macros from the FreeCAD wiki. Fetched URL, description, author of individual macro. Code: https://github.com/mandeeps708/scripts/blob/master/FC_getMacro/wikimacro.py<br />
<br />
'''18 June - 19 June''' : Worked on GitHub API. Tried to find if we could fetch repository name by using the repository URL. Talked to GitHub officials regarding this. But it's not there. So tried regular expressions in Python. And it's done.<br />
<br />
'''20 June - 21 June''' : Fetched submodule info like author, description etc. Also integrated Macro fetching code into the main.py file. Created a separate getPlugins module that would be able to fetch all plugins available. Currently, it's like hard coded with fetch classes names. Will make it more robust.<br />
<br />
'''22 June - 23 June''' : Mid-term Evaluation Period. Studied about Exception handling in Python. Added exception handling code for basic exceptions to both classes.<br />
<br />
'''24 June''' : Mainly focussed on to find a way to register application on GitHub to use OAuth. Found a method in PyGithub. But not sure about its usage. Hence using Personal Access tokens as of now.<br />
<br />
'''25 June''' : Initially, it took about 25 API calls to identify which of the item is a submodule. But now it takes 1 API call to fetch basic information and then used regular expressions to filter out the submodules.<br />
<br />
'''26 June''' : Some more exception cases to Macro class if a user didn't correctly added a macro on the wiki. It'll get skipped.<br />
<br />
'''27 June''' : Implemented getInfo() methods for both classes. The basic information about the plugins will now be fetched through the getPluginsList() methods. And additional things about a plugin like the author and the description will be fetched through calling the plugin with getInfo() method. For example: getInfo(PluginName), it will fetch more detail about the plugin. This will be further used in the GUI to be called when a user clicks a plugin entry.<br />
<br />
'''28 June''' : Mainly discussed with the mentors about next task. And I was suggested to get overview of the things like creating a design how overall thing will work. And some other ideas like having a library that could interact with all fetch classes to provide an interface to the user to manage plugins (Wb+macros) altogether.<br />
<br />
Bad health.<br />
<br />
'''3 July - 4 July''' : Created some design about the workflow.<br />
<br />
'''5 July''' : Shared the design with mentor and got the views. It lacked some of the functionality. So added that.<br />
<br />
'''6 July''' : Added a new function for getting all plugins to combine instances of all plugins together.<br />
<br />
'''7 July''' : Converted that function to a class and had an interface (getPlugins.py[https://github.com/mandeeps708/PluginManager/blob/master/getPlugins.py]) for using this.<br />
<br />
'''8 July - 9 July''' : Adds the interface class [https://github.com/mandeeps708/PluginManager/commit/402c3aae6551df225893f15d04dc168b4696db3d]<br />
<br />
'''11 July - 12 July''' : Searched about various methods through which the interface can be improved to use getInfo() function within the interface as it was the other class' method. Couldn't figure out much how to do that.<br />
<br />
'''13 July''' : Unable to work due to the power cut.<br />
<br />
'''14 July - 15 July''' : Worked on getting the getInfo() function working. Tried a few methods and some did not work. Finally, it worked!<br />
<br />
'''16 July''' : Mainly read about threading in Python.<br />
<br />
'''17 July''' : Extended the info() function to include the macro case too. Also had a talk with the mentor. Some things need to be changed and some improvements were suggested to make the code more generic so that after adding another fetch class, the code should work fine.<br />
<br />
'''18 July''' : Changed getInfo() functions to take plugin as an argument instead of plugin name.<br />
<br />
'''19 July''' : Removed redundant inheritance, tried adding a new x.fetch = self. Having problems. Solving...<br />
<br />
'''20 July''' : Made getInfo() of the base class to work as it does in the derived ones. Changed the "repo.owner.name" to "repo.owner.login" as it was not working (Related to GitHub API).<br />
<br />
'''21 July''' : Made the interface more encapsulated so that fetch classes aren't accessible through the interface. Now the code works fine. Even with getInfo() too.<br />
<br />
'''22 July''' : Worked on adding install() method to the interface and also getting Macro and Workbench paths to which these plugins are to be installed.</div>Mandeeps708https://brlcad.org/w/index.php?title=User:Mandeeps708/GSoC16/logs&diff=9802User:Mandeeps708/GSoC16/logs2016-07-22T18:22:18Z<p>Mandeeps708: /* logs */</p>
<hr />
<div>=Project Details=<br />
-----------------<br />
Name: [[User:Mandeeps708|Mandeep Singh]]<br />
<br />
IRC: Mandeep_Singh<br />
<br />
Project: [[User:Mandeeps708/gsoc_proposal|The FreeCAD Plugin Installer]]<br />
------------------------------------------------------------------------<br />
<br />
=Community Bonding Period=<br />
---------------------------<br />
<br />
* Discussion about the project proposal.<br />
* Build FreeCAD from source on Archlinux.<br />
* Shifted to Ubuntu and tried building. Discussed the dependencies issue faced on IRC.<br />
* One issue was solved by creating a symlink of libfreeimage.so to /usr/lib from /usr/lib/x86_64-linux-gnu/ due to a bug on Ubuntu 16.04 (Xenial).<br />
* Another issue I was facing was related to C++.<br />
<br />
c++: internal compiler error: Killed (program cc1plus)<br />
Please submit a full bug report,<br />
<br />
It was due to the '''make -j4''' as it made the compiler run out of memory. Never happened on Archlinux though.<br />
<br />
* Discussed to use '''PySide''' and Qt.<br />
* Learning PySide.<br />
<br />
--------------------------------------------<br />
=Coding Period=<br />
----------------<br />
<br />
'''23 May''' : Plan is to try out the existing pluginloader & addon installer. Trying the pluginloader.<br />
<br />
'''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.<br />
<br />
'''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.<br />
<br />
'''26 May''' : Installed and used the Addon installer and saw it's working.<br />
<br />
'''27 May - 28 May''' : Comparing pluginloader (https://github.com/microelly2/freecad-pluginloader) and Addon installer (https://github.com/FreeCAD/FreeCAD-addons#1-using-the-installer-macro) and listing out what we can keep or not for reuse. And getting mentor's views.<br />
<br />
'''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.<br />
<br />
'''30 May - 31 May''' : Discussed the design with ickby and yorik. Parsing macro code from wiki: https://github.com/mandeeps708/scripts/blob/master/FC_getMacro<br />
<br />
'''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. <br />
<br />
'''2 June''' : Weekly meeting + discussed and finalized some things like code structure etc.<br />
<br />
'''3 June''' : Went through some OOPS concepts and how to do them in python. <br />
<br />
'''4 June - 5 June''' : Think of some design and relations. Code structure added to github.<br />
<br />
'''6 June''' : Modified the fetch Macro Script to use BeautifulSoup (with html.parser) instead of pyquery (lxml).<br />
<br />
'''7 June - 9 June''' : Health issues. Also, got some problem with laptop. Started learning about object oriented programming (with python).<br />
<br />
'''10 June''' : Learned Inheritance in Python. Weekly meeting. Discussed about the code structure.<br />
<br />
'''11 June''' : Some experimentation with parsing from FreeCAD-addons repo. Looking into PyGithub for GitHub API.<br />
<br />
'''12 June''' : Finally get PyGithub working. Got list of files and some more examples.<br />
<br />
'''13 June''' : Fetching of only submodules using PyGithub. Got the submodules and their related info. like submodule original URL.<br />
<br />
'''14 June''' : Added more code to FetchFromGitHub class and created instances of Plugin().<br />
<br />
'''15 June''' : Mainly had the discussion today; about the work down and what to do next.<br />
<br />
'''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".<br />
<br />
'''17 June''' : Weekly meeting. Set goals. Fetched list of macros from the FreeCAD wiki. Fetched URL, description, author of individual macro. Code: https://github.com/mandeeps708/scripts/blob/master/FC_getMacro/wikimacro.py<br />
<br />
'''18 June - 19 June''' : Worked on GitHub API. Tried to find if we could fetch repository name by using the repository URL. Talked to GitHub officials regarding this. But it's not there. So tried regular expressions in Python. And it's done.<br />
<br />
'''20 June - 21 June''' : Fetched submodule info like author, description etc. Also integrated Macro fetching code into the main.py file. Created a separate getPlugins module that would be able to fetch all plugins available. Currently, it's like hard coded with fetch classes names. Will make it more robust.<br />
<br />
'''22 June - 23 June''' : Mid-term Evaluation Period. Studied about Exception handling in Python. Added exception handling code for basic exceptions to both classes.<br />
<br />
'''24 June''' : Mainly focussed on to find a way to register application on GitHub to use OAuth. Found a method in PyGithub. But not sure about its usage. Hence using Personal Access tokens as of now.<br />
<br />
'''25 June''' : Initially, it took about 25 API calls to identify which of the item is a submodule. But now it takes 1 API call to fetch basic information and then used regular expressions to filter out the submodules.<br />
<br />
'''26 June''' : Some more exception cases to Macro class if a user didn't correctly added a macro on the wiki. It'll get skipped.<br />
<br />
'''27 June''' : Implemented getInfo() methods for both classes. The basic information about the plugins will now be fetched through the getPluginsList() methods. And additional things about a plugin like the author and the description will be fetched through calling the plugin with getInfo() method. For example: getInfo(PluginName), it will fetch more detail about the plugin. This will be further used in the GUI to be called when a user clicks a plugin entry.<br />
<br />
'''28 June''' : Mainly discussed with the mentors about next task. And I was suggested to get overview of the things like creating a design how overall thing will work. And some other ideas like having a library that could interact with all fetch classes to provide an interface to the user to manage plugins (Wb+macros) altogether.<br />
<br />
Bad health.<br />
<br />
'''3 July - 4 July''' : Created some design about the workflow.<br />
<br />
'''5 July''' : Shared the design with mentor and got the views. It lacked some of the functionality. So added that.<br />
<br />
'''6 July''' : Added a new function for getting all plugins to combine instances of all plugins together.<br />
<br />
'''7 July''' : Converted that function to a class and had an interface (getPlugins.py[https://github.com/mandeeps708/PluginManager/blob/master/getPlugins.py]) for using this.<br />
<br />
'''8 July - 9 July''' : Adds the interface class [https://github.com/mandeeps708/PluginManager/commit/402c3aae6551df225893f15d04dc168b4696db3d]<br />
<br />
'''11 July - 12 July''' : Searched about various methods through which the interface can be improved to use getInfo() function within the interface as it was the other class' method. Couldn't figure out much how to do that.<br />
<br />
'''13 July''' : Unable to work due to the power cut.<br />
<br />
'''14 July - 15 July''' : Worked on getting the getInfo() function working. Tried a few methods and some did not work. Finally, it worked!<br />
<br />
'''16 July''' : Mainly read about threading in Python.<br />
<br />
'''17 July''' : Extended the info() function to include the macro case too. Also had a talk with the mentor. Some things need to be changed and some improvements were suggested to make the code more generic so that after adding another fetch class, the code should work fine.<br />
<br />
'''18 July''' : Changed getInfo() functions to take plugin as an argument instead of plugin name.<br />
<br />
'''19 July''' : Removed redundant inheritance, tried adding a new x.fetch = self. Having problems. Solving...<br />
<br />
'''20 July''' : Made getInfo() of the base class to work as it does in the derived ones. Changed the "repo.owner.name" to "repo.owner.login" as it was not working (Related to GitHub API).<br />
<br />
'''21 July''' : Made the interface more encapsulated so that fetch classes aren't accessible through the interface. Now the code works fine. Even with getInfo() too.</div>Mandeeps708https://brlcad.org/w/index.php?title=User:Mandeeps708/GSoC16/logs&diff=9798User:Mandeeps708/GSoC16/logs2016-07-16T03:53:56Z<p>Mandeeps708: /* logs */</p>
<hr />
<div>=Project Details=<br />
-----------------<br />
Name: [[User:Mandeeps708|Mandeep Singh]]<br />
<br />
IRC: Mandeep_Singh<br />
<br />
Project: [[User:Mandeeps708/gsoc_proposal|The FreeCAD Plugin Installer]]<br />
------------------------------------------------------------------------<br />
<br />
=Community Bonding Period=<br />
---------------------------<br />
<br />
* Discussion about the project proposal.<br />
* Build FreeCAD from source on Archlinux.<br />
* Shifted to Ubuntu and tried building. Discussed the dependencies issue faced on IRC.<br />
* One issue was solved by creating a symlink of libfreeimage.so to /usr/lib from /usr/lib/x86_64-linux-gnu/ due to a bug on Ubuntu 16.04 (Xenial).<br />
* Another issue I was facing was related to C++.<br />
<br />
c++: internal compiler error: Killed (program cc1plus)<br />
Please submit a full bug report,<br />
<br />
It was due to the '''make -j4''' as it made the compiler run out of memory. Never happened on Archlinux though.<br />
<br />
* Discussed to use '''PySide''' and Qt.<br />
* Learning PySide.<br />
<br />
--------------------------------------------<br />
=Coding Period=<br />
----------------<br />
<br />
'''23 May''' : Plan is to try out the existing pluginloader & addon installer. Trying the pluginloader.<br />
<br />
'''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.<br />
<br />
'''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.<br />
<br />
'''26 May''' : Installed and used the Addon installer and saw it's working.<br />
<br />
'''27 May - 28 May''' : Comparing pluginloader (https://github.com/microelly2/freecad-pluginloader) and Addon installer (https://github.com/FreeCAD/FreeCAD-addons#1-using-the-installer-macro) and listing out what we can keep or not for reuse. And getting mentor's views.<br />
<br />
'''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.<br />
<br />
'''30 May - 31 May''' : Discussed the design with ickby and yorik. Parsing macro code from wiki: https://github.com/mandeeps708/scripts/blob/master/FC_getMacro<br />
<br />
'''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. <br />
<br />
'''2 June''' : Weekly meeting + discussed and finalized some things like code structure etc.<br />
<br />
'''3 June''' : Went through some OOPS concepts and how to do them in python. <br />
<br />
'''4 June - 5 June''' : Think of some design and relations. Code structure added to github.<br />
<br />
'''6 June''' : Modified the fetch Macro Script to use BeautifulSoup (with html.parser) instead of pyquery (lxml).<br />
<br />
'''7 June - 9 June''' : Health issues. Also, got some problem with laptop. Started learning about object oriented programming (with python).<br />
<br />
'''10 June''' : Learned Inheritance in Python. Weekly meeting. Discussed about the code structure.<br />
<br />
'''11 June''' : Some experimentation with parsing from FreeCAD-addons repo. Looking into PyGithub for GitHub API.<br />
<br />
'''12 June''' : Finally get PyGithub working. Got list of files and some more examples.<br />
<br />
'''13 June''' : Fetching of only submodules using PyGithub. Got the submodules and their related info. like submodule original URL.<br />
<br />
'''14 June''' : Added more code to FetchFromGitHub class and created instances of Plugin().<br />
<br />
'''15 June''' : Mainly had the discussion today; about the work down and what to do next.<br />
<br />
'''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".<br />
<br />
'''17 June''' : Weekly meeting. Set goals. Fetched list of macros from the FreeCAD wiki. Fetched URL, description, author of individual macro. Code: https://github.com/mandeeps708/scripts/blob/master/FC_getMacro/wikimacro.py<br />
<br />
'''18 June - 19 June''' : Worked on GitHub API. Tried to find if we could fetch repository name by using the repository URL. Talked to GitHub officials regarding this. But it's not there. So tried regular expressions in Python. And it's done.<br />
<br />
'''20 June - 21 June''' : Fetched submodule info like author, description etc. Also integrated Macro fetching code into the main.py file. Created a separate getPlugins module that would be able to fetch all plugins available. Currently, it's like hard coded with fetch classes names. Will make it more robust.<br />
<br />
'''22 June - 23 June''' : Mid-term Evaluation Period. Studied about Exception handling in Python. Added exception handling code for basic exceptions to both classes.<br />
<br />
'''24 June''' : Mainly focussed on to find a way to register application on GitHub to use OAuth. Found a method in PyGithub. But not sure about its usage. Hence using Personal Access tokens as of now.<br />
<br />
'''25 June''' : Initially, it took about 25 API calls to identify which of the item is a submodule. But now it takes 1 API call to fetch basic information and then used regular expressions to filter out the submodules.<br />
<br />
'''26 June''' : Some more exception cases to Macro class if a user didn't correctly added a macro on the wiki. It'll get skipped.<br />
<br />
'''27 June''' : Implemented getInfo() methods for both classes. The basic information about the plugins will now be fetched through the getPluginsList() methods. And additional things about a plugin like the author and the description will be fetched through calling the plugin with getInfo() method. For example: getInfo(PluginName), it will fetch more detail about the plugin. This will be further used in the GUI to be called when a user clicks a plugin entry.<br />
<br />
'''28 June''' : Mainly discussed with the mentors about next task. And I was suggested to get overview of the things like creating a design how overall thing will work. And some other ideas like having a library that could interact with all fetch classes to provide an interface to the user to manage plugins (Wb+macros) altogether.<br />
<br />
Bad health.<br />
<br />
'''3 July - 4 July''' : Created some design about the workflow.<br />
<br />
'''5 July''' : Shared the design with mentor and got the views. It lacked some of the functionality. So added that.<br />
<br />
'''6 July''' : Added a new function for getting all plugins to combine instances of all plugins together.<br />
<br />
'''7 July''' : Converted that function to a class and had an interface (getPlugins.py[https://github.com/mandeeps708/PluginManager/blob/master/getPlugins.py]) for using this.<br />
<br />
'''8 July - 9 July''' : Adds the interface class [https://github.com/mandeeps708/PluginManager/commit/402c3aae6551df225893f15d04dc168b4696db3d]<br />
<br />
'''11 July - 12 July''' : Searched about various methods through which the interface can be improved to use getInfo() function within the interface as it was the other class' method. Couldn't figure out much how to do that.<br />
<br />
'''13 July''' : Unable to work due to the powercut.<br />
<br />
'''14 July - 15 July''' : Worked on getting the getInfo() function working. Tried a few methods and some did not worked. Finally it worked!</div>Mandeeps708https://brlcad.org/w/index.php?title=User:Mandeeps708/GSoC16/logs&diff=9797User:Mandeeps708/GSoC16/logs2016-07-16T03:52:53Z<p>Mandeeps708: /* logs */</p>
<hr />
<div>=Project Details=<br />
-----------------<br />
Name: [[User:Mandeeps708|Mandeep Singh]]<br />
<br />
IRC: Mandeep_Singh<br />
<br />
Project: [[User:Mandeeps708/gsoc_proposal|The FreeCAD Plugin Installer]]<br />
------------------------------------------------------------------------<br />
<br />
=Community Bonding Period=<br />
---------------------------<br />
<br />
* Discussion about the project proposal.<br />
* Build FreeCAD from source on Archlinux.<br />
* Shifted to Ubuntu and tried building. Discussed the dependencies issue faced on IRC.<br />
* One issue was solved by creating a symlink of libfreeimage.so to /usr/lib from /usr/lib/x86_64-linux-gnu/ due to a bug on Ubuntu 16.04 (Xenial).<br />
* Another issue I was facing was related to C++.<br />
<br />
c++: internal compiler error: Killed (program cc1plus)<br />
Please submit a full bug report,<br />
<br />
It was due to the '''make -j4''' as it made the compiler run out of memory. Never happened on Archlinux though.<br />
<br />
* Discussed to use '''PySide''' and Qt.<br />
* Learning PySide.<br />
<br />
--------------------------------------------<br />
=Coding Period=<br />
----------------<br />
<br />
'''23 May''' : Plan is to try out the existing pluginloader & addon installer. Trying the pluginloader.<br />
<br />
'''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.<br />
<br />
'''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.<br />
<br />
'''26 May''' : Installed and used the Addon installer and saw it's working.<br />
<br />
'''27 May - 28 May''' : Comparing pluginloader (https://github.com/microelly2/freecad-pluginloader) and Addon installer (https://github.com/FreeCAD/FreeCAD-addons#1-using-the-installer-macro) and listing out what we can keep or not for reuse. And getting mentor's views.<br />
<br />
'''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.<br />
<br />
'''30 May - 31 May''' : Discussed the design with ickby and yorik. Parsing macro code from wiki: https://github.com/mandeeps708/scripts/blob/master/FC_getMacro<br />
<br />
'''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. <br />
<br />
'''2 June''' : Weekly meeting + discussed and finalized some things like code structure etc.<br />
<br />
'''3 June''' : Went through some OOPS concepts and how to do them in python. <br />
<br />
'''4 June - 5 June''' : Think of some design and relations. Code structure added to github.<br />
<br />
'''6 June''' : Modified the fetch Macro Script to use BeautifulSoup (with html.parser) instead of pyquery (lxml).<br />
<br />
'''7 June - 9 June''' : Health issues. Also, got some problem with laptop. Started learning about object oriented programming (with python).<br />
<br />
'''10 June''' : Learned Inheritance in Python. Weekly meeting. Discussed about the code structure.<br />
<br />
'''11 June''' : Some experimentation with parsing from FreeCAD-addons repo. Looking into PyGithub for GitHub API.<br />
<br />
'''12 June''' : Finally get PyGithub working. Got list of files and some more examples.<br />
<br />
'''13 June''' : Fetching of only submodules using PyGithub. Got the submodules and their related info. like submodule original URL.<br />
<br />
'''14 June''' : Added more code to FetchFromGitHub class and created instances of Plugin().<br />
<br />
'''15 June''' : Mainly had the discussion today; about the work down and what to do next.<br />
<br />
'''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".<br />
<br />
'''17 June''' : Weekly meeting. Set goals. Fetched list of macros from the FreeCAD wiki. Fetched URL, description, author of individual macro. Code: https://github.com/mandeeps708/scripts/blob/master/FC_getMacro/wikimacro.py<br />
<br />
'''18 June - 19 June''' : Worked on GitHub API. Tried to find if we could fetch repository name by using the repository URL. Talked to GitHub officials regarding this. But it's not there. So tried regular expressions in Python. And it's done.<br />
<br />
'''20 June - 21 June''' : Fetched submodule info like author, description etc. Also integrated Macro fetching code into the main.py file. Created a separate getPlugins module that would be able to fetch all plugins available. Currently, it's like hard coded with fetch classes names. Will make it more robust.<br />
<br />
'''22 June - 23 June''' : Mid-term Evaluation Period. Studied about Exception handling in Python. Added exception handling code for basic exceptions to both classes.<br />
<br />
'''24 June''' : Mainly focussed on to find a way to register application on GitHub to use OAuth. Found a method in PyGithub. But not sure about its usage. Hence using Personal Access tokens as of now.<br />
<br />
'''25 June''' : Initially, it took about 25 API calls to identify which of the item is a submodule. But now it takes 1 API call to fetch basic information and then used regular expressions to filter out the submodules.<br />
<br />
'''26 June''' : Some more exception cases to Macro class if a user didn't correctly added a macro on the wiki. It'll get skipped.<br />
<br />
'''27 June''' : Implemented getInfo() methods for both classes. The basic information about the plugins will now be fetched through the getPluginsList() methods. And additional things about a plugin like the author and the description will be fetched through calling the plugin with getInfo() method. For example: getInfo(PluginName), it will fetch more detail about the plugin. This will be further used in the GUI to be called when a user clicks a plugin entry.<br />
<br />
'''28 June''' : Mainly discussed with the mentors about next task. And I was suggested to get overview of the things like creating a design how overall thing will work. And some other ideas like having a library that could interact with all fetch classes to provide an interface to the user to manage plugins (Wb+macros) altogether.<br />
<br />
Bad health.<br />
<br />
'''3 July - 4 July''' : Created some design about the workflow.<br />
<br />
'''5 July''' : Shared the design with mentor and got the views. It lacked some of the functionality. So added that.<br />
<br />
'''6 July''' : Added a new function for getting all plugins to combine instances of all plugins together.<br />
<br />
'''7 July''' : Converted that function to a class and had an interface (getPlugins.py[https://github.com/mandeeps708/PluginManager/blob/master/getPlugins.py]) for using this.<br />
<br />
'''8 July - 9 July''' : Adds the interface class [https://github.com/mandeeps708/PluginManager/commit/402c3aae6551df225893f15d04dc168b4696db3d]<br />
<br />
'''11 July - 12 July''' : Searched about various methods through which the interface can be improved to use getInfo() function within the interface as it was the other class' method. Couldn't figure out much how to do that.<br />
<br />
'''13 July''' : Unable to work due to the powercut.<br />
<br />
'''14 July - 15 July''' : Worked on getting the getInfo() function working. Tried a few methods and some did not worked.</div>Mandeeps708https://brlcad.org/w/index.php?title=User:Mandeeps708/GSoC16/logs&diff=9787User:Mandeeps708/GSoC16/logs2016-07-08T06:01:37Z<p>Mandeeps708: /* logs */</p>
<hr />
<div>=Project Details=<br />
-----------------<br />
Name: [[User:Mandeeps708|Mandeep Singh]]<br />
<br />
IRC: Mandeep_Singh<br />
<br />
Project: [[User:Mandeeps708/gsoc_proposal|The FreeCAD Plugin Installer]]<br />
------------------------------------------------------------------------<br />
<br />
=Community Bonding Period=<br />
---------------------------<br />
<br />
* Discussion about the project proposal.<br />
* Build FreeCAD from source on Archlinux.<br />
* Shifted to Ubuntu and tried building. Discussed the dependencies issue faced on IRC.<br />
* One issue was solved by creating a symlink of libfreeimage.so to /usr/lib from /usr/lib/x86_64-linux-gnu/ due to a bug on Ubuntu 16.04 (Xenial).<br />
* Another issue I was facing was related to C++.<br />
<br />
c++: internal compiler error: Killed (program cc1plus)<br />
Please submit a full bug report,<br />
<br />
It was due to the '''make -j4''' as it made the compiler run out of memory. Never happened on Archlinux though.<br />
<br />
* Discussed to use '''PySide''' and Qt.<br />
* Learning PySide.<br />
<br />
--------------------------------------------<br />
=Coding Period=<br />
----------------<br />
<br />
'''23 May''' : Plan is to try out the existing pluginloader & addon installer. Trying the pluginloader.<br />
<br />
'''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.<br />
<br />
'''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.<br />
<br />
'''26 May''' : Installed and used the Addon installer and saw it's working.<br />
<br />
'''27 May - 28 May''' : Comparing pluginloader (https://github.com/microelly2/freecad-pluginloader) and Addon installer (https://github.com/FreeCAD/FreeCAD-addons#1-using-the-installer-macro) and listing out what we can keep or not for reuse. And getting mentor's views.<br />
<br />
'''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.<br />
<br />
'''30 May - 31 May''' : Discussed the design with ickby and yorik. Parsing macro code from wiki: https://github.com/mandeeps708/scripts/blob/master/FC_getMacro<br />
<br />
'''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. <br />
<br />
'''2 June''' : Weekly meeting + discussed and finalized some things like code structure etc.<br />
<br />
'''3 June''' : Went through some OOPS concepts and how to do them in python. <br />
<br />
'''4 June - 5 June''' : Think of some design and relations. Code structure added to github.<br />
<br />
'''6 June''' : Modified the fetch Macro Script to use BeautifulSoup (with html.parser) instead of pyquery (lxml).<br />
<br />
'''7 June - 9 June''' : Health issues. Also, got some problem with laptop. Started learning about object oriented programming (with python).<br />
<br />
'''10 June''' : Learned Inheritance in Python. Weekly meeting. Discussed about the code structure.<br />
<br />
'''11 June''' : Some experimentation with parsing from FreeCAD-addons repo. Looking into PyGithub for GitHub API.<br />
<br />
'''12 June''' : Finally get PyGithub working. Got list of files and some more examples.<br />
<br />
'''13 June''' : Fetching of only submodules using PyGithub. Got the submodules and their related info. like submodule original URL.<br />
<br />
'''14 June''' : Added more code to FetchFromGitHub class and created instances of Plugin().<br />
<br />
'''15 June''' : Mainly had the discussion today; about the work down and what to do next.<br />
<br />
'''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".<br />
<br />
'''17 June''' : Weekly meeting. Set goals. Fetched list of macros from the FreeCAD wiki. Fetched URL, description, author of individual macro. Code: https://github.com/mandeeps708/scripts/blob/master/FC_getMacro/wikimacro.py<br />
<br />
'''18 June - 19 June''' : Worked on GitHub API. Tried to find if we could fetch repository name by using the repository URL. Talked to GitHub officials regarding this. But it's not there. So tried regular expressions in Python. And it's done.<br />
<br />
'''20 June - 21 June''' : Fetched submodule info like author, description etc. Also integrated Macro fetching code into the main.py file. Created a separate getPlugins module that would be able to fetch all plugins available. Currently, it's like hard coded with fetch classes names. Will make it more robust.<br />
<br />
'''22 June - 23 June''' : Mid-term Evaluation Period. Studied about Exception handling in Python. Added exception handling code for basic exceptions to both classes.<br />
<br />
'''24 June''' : Mainly focussed on to find a way to register application on GitHub to use OAuth. Found a method in PyGithub. But not sure about its usage. Hence using Personal Access tokens as of now.<br />
<br />
'''25 June''' : Initially, it took about 25 API calls to identify which of the item is a submodule. But now it takes 1 API call to fetch basic information and then used regular expressions to filter out the submodules.<br />
<br />
'''26 June''' : Some more exception cases to Macro class if a user didn't correctly added a macro on the wiki. It'll get skipped.<br />
<br />
'''27 June''' : Implemented getInfo() methods for both classes. The basic information about the plugins will now be fetched through the getPluginsList() methods. And additional things about a plugin like the author and the description will be fetched through calling the plugin with getInfo() method. For example: getInfo(PluginName), it will fetch more detail about the plugin. This will be further used in the GUI to be called when a user clicks a plugin entry.<br />
<br />
'''28 June''' : Mainly discussed with the mentors about next task. And I was suggested to get overview of the things like creating a design how overall thing will work. And some other ideas like having a library that could interact with all fetch classes to provide an interface to the user to manage plugins (Wb+macros) altogether.<br />
<br />
Bad health.<br />
<br />
'''3 June - 4 June''' : Created some design about the workflow.<br />
<br />
'''5 June''' : Shared the design with mentor and got the views. It lacked some of the functionality. So added that.<br />
<br />
'''6 June''' : Added a new function for getting all plugins to combine instances of all plugins together.<br />
<br />
'''7 June''' : Converted that function to a class and had an interface (getPlugins.py[https://github.com/mandeeps708/PluginManager/blob/master/getPlugins.py]) for using this.</div>Mandeeps708https://brlcad.org/w/index.php?title=User:Mandeeps708/GSoC16/logs&diff=9772User:Mandeeps708/GSoC16/logs2016-06-28T18:22:34Z<p>Mandeeps708: /* logs */</p>
<hr />
<div>=Project Details=<br />
-----------------<br />
Name: [[User:Mandeeps708|Mandeep Singh]]<br />
<br />
IRC: Mandeep_Singh<br />
<br />
Project: [[User:Mandeeps708/gsoc_proposal|The FreeCAD Plugin Installer]]<br />
------------------------------------------------------------------------<br />
<br />
=Community Bonding Period=<br />
---------------------------<br />
<br />
* Discussion about the project proposal.<br />
* Build FreeCAD from source on Archlinux.<br />
* Shifted to Ubuntu and tried building. Discussed the dependencies issue faced on IRC.<br />
* One issue was solved by creating a symlink of libfreeimage.so to /usr/lib from /usr/lib/x86_64-linux-gnu/ due to a bug on Ubuntu 16.04 (Xenial).<br />
* Another issue I was facing was related to C++.<br />
<br />
c++: internal compiler error: Killed (program cc1plus)<br />
Please submit a full bug report,<br />
<br />
It was due to the '''make -j4''' as it made the compiler run out of memory. Never happened on Archlinux though.<br />
<br />
* Discussed to use '''PySide''' and Qt.<br />
* Learning PySide.<br />
<br />
--------------------------------------------<br />
=Coding Period=<br />
----------------<br />
<br />
'''23 May''' : Plan is to try out the existing pluginloader & addon installer. Trying the pluginloader.<br />
<br />
'''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.<br />
<br />
'''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.<br />
<br />
'''26 May''' : Installed and used the Addon installer and saw it's working.<br />
<br />
'''27 May - 28 May''' : Comparing pluginloader (https://github.com/microelly2/freecad-pluginloader) and Addon installer (https://github.com/FreeCAD/FreeCAD-addons#1-using-the-installer-macro) and listing out what we can keep or not for reuse. And getting mentor's views.<br />
<br />
'''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.<br />
<br />
'''30 May - 31 May''' : Discussed the design with ickby and yorik. Parsing macro code from wiki: https://github.com/mandeeps708/scripts/blob/master/FC_getMacro<br />
<br />
'''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. <br />
<br />
'''2 June''' : Weekly meeting + discussed and finalized some things like code structure etc.<br />
<br />
'''3 June''' : Went through some OOPS concepts and how to do them in python. <br />
<br />
'''4 June - 5 June''' : Think of some design and relations. Code structure added to github.<br />
<br />
'''6 June''' : Modified the fetch Macro Script to use BeautifulSoup (with html.parser) instead of pyquery (lxml).<br />
<br />
'''7 June - 9 June''' : Health issues. Also, got some problem with laptop. Started learning about object oriented programming (with python).<br />
<br />
'''10 June''' : Learned Inheritance in Python. Weekly meeting. Discussed about the code structure.<br />
<br />
'''11 June''' : Some experimentation with parsing from FreeCAD-addons repo. Looking into PyGithub for GitHub API.<br />
<br />
'''12 June''' : Finally get PyGithub working. Got list of files and some more examples.<br />
<br />
'''13 June''' : Fetching of only submodules using PyGithub. Got the submodules and their related info. like submodule original URL.<br />
<br />
'''14 June''' : Added more code to FetchFromGitHub class and created instances of Plugin().<br />
<br />
'''15 June''' : Mainly had the discussion today; about the work down and what to do next.<br />
<br />
'''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".<br />
<br />
'''17 June''' : Weekly meeting. Set goals. Fetched list of macros from the FreeCAD wiki. Fetched URL, description, author of individual macro. Code: https://github.com/mandeeps708/scripts/blob/master/FC_getMacro/wikimacro.py<br />
<br />
'''18 June - 19 June''' : Worked on GitHub API. Tried to find if we could fetch repository name by using the repository URL. Talked to GitHub officials regarding this. But it's not there. So tried regular expressions in Python. And it's done.<br />
<br />
'''20 June - 21 June''' : Fetched submodule info like author, description etc. Also integrated Macro fetching code into the main.py file. Created a separate getPlugins module that would be able to fetch all plugins available. Currently, it's like hard coded with fetch classes names. Will make it more robust.<br />
<br />
'''22 June - 23 June''' : Mid-term Evaluation Period. Studied about Exception handling in Python. Added exception handling code for basic exceptions to both classes.<br />
<br />
'''24 June''' : Mainly focussed on to find a way to register application on GitHub to use OAuth. Found a method in PyGithub. But not sure about its usage. Hence using Personal Access tokens as of now.<br />
<br />
'''25 June''' : Initially, it took about 25 API calls to identify which of the item is a submodule. But now it takes 1 API call to fetch basic information and then used regular expressions to filter out the submodules.<br />
<br />
'''26 June''' : Some more exception cases to Macro class if a user didn't correctly added a macro on the wiki. It'll get skipped.<br />
<br />
'''27 June''' : Implemented getInfo() methods for both classes. The basic information about the plugins will now be fetched through the getPluginsList() methods. And additional things about a plugin like the author and the description will be fetched through calling the plugin with getInfo() method. For example: getInfo(PluginName), it will fetch more detail about the plugin. This will be further used in the GUI to be called when a user clicks a plugin entry.</div>Mandeeps708https://brlcad.org/w/index.php?title=User:Mandeeps708/GSoC16/logs&diff=9768User:Mandeeps708/GSoC16/logs2016-06-27T00:46:15Z<p>Mandeeps708: /* logs */</p>
<hr />
<div>=Project Details=<br />
-----------------<br />
Name: [[User:Mandeeps708|Mandeep Singh]]<br />
<br />
IRC: Mandeep_Singh<br />
<br />
Project: [[User:Mandeeps708/gsoc_proposal|The FreeCAD Plugin Installer]]<br />
------------------------------------------------------------------------<br />
<br />
=Community Bonding Period=<br />
---------------------------<br />
<br />
* Discussion about the project proposal.<br />
* Build FreeCAD from source on Archlinux.<br />
* Shifted to Ubuntu and tried building. Discussed the dependencies issue faced on IRC.<br />
* One issue was solved by creating a symlink of libfreeimage.so to /usr/lib from /usr/lib/x86_64-linux-gnu/ due to a bug on Ubuntu 16.04 (Xenial).<br />
* Another issue I was facing was related to C++.<br />
<br />
c++: internal compiler error: Killed (program cc1plus)<br />
Please submit a full bug report,<br />
<br />
It was due to the '''make -j4''' as it made the compiler run out of memory. Never happened on Archlinux though.<br />
<br />
* Discussed to use '''PySide''' and Qt.<br />
* Learning PySide.<br />
<br />
--------------------------------------------<br />
=Coding Period=<br />
----------------<br />
<br />
'''23 May''' : Plan is to try out the existing pluginloader & addon installer. Trying the pluginloader.<br />
<br />
'''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.<br />
<br />
'''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.<br />
<br />
'''26 May''' : Installed and used the Addon installer and saw it's working.<br />
<br />
'''27 May - 28 May''' : Comparing pluginloader (https://github.com/microelly2/freecad-pluginloader) and Addon installer (https://github.com/FreeCAD/FreeCAD-addons#1-using-the-installer-macro) and listing out what we can keep or not for reuse. And getting mentor's views.<br />
<br />
'''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.<br />
<br />
'''30 May - 31 May''' : Discussed the design with ickby and yorik. Parsing macro code from wiki: https://github.com/mandeeps708/scripts/blob/master/FC_getMacro<br />
<br />
'''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. <br />
<br />
'''2 June''' : Weekly meeting + discussed and finalized some things like code structure etc.<br />
<br />
'''3 June''' : Went through some OOPS concepts and how to do them in python. <br />
<br />
'''4 June - 5 June''' : Think of some design and relations. Code structure added to github.<br />
<br />
'''6 June''' : Modified the fetch Macro Script to use BeautifulSoup (with html.parser) instead of pyquery (lxml).<br />
<br />
'''7 June - 9 June''' : Health issues. Also, got some problem with laptop. Started learning about object oriented programming (with python).<br />
<br />
'''10 June''' : Learned Inheritance in Python. Weekly meeting. Discussed about the code structure.<br />
<br />
'''11 June''' : Some experimentation with parsing from FreeCAD-addons repo. Looking into PyGithub for GitHub API.<br />
<br />
'''12 June''' : Finally get PyGithub working. Got list of files and some more examples.<br />
<br />
'''13 June''' : Fetching of only submodules using PyGithub. Got the submodules and their related info. like submodule original URL.<br />
<br />
'''14 June''' : Added more code to FetchFromGitHub class and created instances of Plugin().<br />
<br />
'''15 June''' : Mainly had the discussion today; about the work down and what to do next.<br />
<br />
'''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".<br />
<br />
'''17 June''' : Weekly meeting. Set goals. Fetched list of macros from the FreeCAD wiki. Fetched URL, description, author of individual macro. Code: https://github.com/mandeeps708/scripts/blob/master/FC_getMacro/wikimacro.py<br />
<br />
'''18 June - 19 June''' : Worked on GitHub API. Tried to find if we could fetch repository name by using the repository URL. Talked to GitHub officials regarding this. But it's not there. So tried regular expressions in Python. And it's done.<br />
<br />
'''20 June - 21 June''' : Fetched submodule info like author, description etc. Also integrated Macro fetching code into the main.py file. Created a separate getPlugins module that would be able to fetch all plugins available. Currently, it's like hard coded with fetch classes names. Will make it more robust.<br />
<br />
'''22 June - 23 June''' : Mid-term Evaluation Period. Studied about Exception handling in Python. Added exception handling code for basic exceptions to both classes.<br />
<br />
'''24 June''' : Mainly focussed on to find a way to register application on GitHub to use OAuth. Found a method in PyGithub. But not sure about its usage. Hence using Personal Access tokens as of now.<br />
<br />
'''25 June''' : Initially, it took about 25 API calls to identify which of the item is a submodule. But now it takes 1 API call to fetch basic information and then used regular expressions to filter out the submodules.<br />
<br />
'''26 June''' : Some more exception cases to Macro class if a user didn't correctly added a macro on the wiki. It'll get skipped.</div>Mandeeps708https://brlcad.org/w/index.php?title=User:Mandeeps708/GSoC16/logs&diff=9764User:Mandeeps708/GSoC16/logs2016-06-22T17:40:29Z<p>Mandeeps708: /* logs */</p>
<hr />
<div>=Project Details=<br />
-----------------<br />
Name: [[User:Mandeeps708|Mandeep Singh]]<br />
<br />
IRC: Mandeep_Singh<br />
<br />
Project: [[User:Mandeeps708/gsoc_proposal|The FreeCAD Plugin Installer]]<br />
------------------------------------------------------------------------<br />
<br />
=Community Bonding Period=<br />
---------------------------<br />
<br />
* Discussion about the project proposal.<br />
* Build FreeCAD from source on Archlinux.<br />
* Shifted to Ubuntu and tried building. Discussed the dependencies issue faced on IRC.<br />
* One issue was solved by creating a symlink of libfreeimage.so to /usr/lib from /usr/lib/x86_64-linux-gnu/ due to a bug on Ubuntu 16.04 (Xenial).<br />
* Another issue I was facing was related to C++.<br />
<br />
c++: internal compiler error: Killed (program cc1plus)<br />
Please submit a full bug report,<br />
<br />
It was due to the '''make -j4''' as it made the compiler run out of memory. Never happened on Archlinux though.<br />
<br />
* Discussed to use '''PySide''' and Qt.<br />
* Learning PySide.<br />
<br />
--------------------------------------------<br />
=Coding Period=<br />
----------------<br />
<br />
'''23 May''' : Plan is to try out the existing pluginloader & addon installer. Trying the pluginloader.<br />
<br />
'''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.<br />
<br />
'''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.<br />
<br />
'''26 May''' : Installed and used the Addon installer and saw it's working.<br />
<br />
'''27 May - 28 May''' : Comparing pluginloader (https://github.com/microelly2/freecad-pluginloader) and Addon installer (https://github.com/FreeCAD/FreeCAD-addons#1-using-the-installer-macro) and listing out what we can keep or not for reuse. And getting mentor's views.<br />
<br />
'''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.<br />
<br />
'''30 May - 31 May''' : Discussed the design with ickby and yorik. Parsing macro code from wiki: https://github.com/mandeeps708/scripts/blob/master/FC_getMacro<br />
<br />
'''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. <br />
<br />
'''2 June''' : Weekly meeting + discussed and finalized some things like code structure etc.<br />
<br />
'''3 June''' : Went through some OOPS concepts and how to do them in python. <br />
<br />
'''4 June - 5 June''' : Think of some design and relations. Code structure added to github.<br />
<br />
'''6 June''' : Modified the fetch Macro Script to use BeautifulSoup (with html.parser) instead of pyquery (lxml).<br />
<br />
'''7 June - 9 June''' : Health issues. Also, got some problem with laptop. Started learning about object oriented programming (with python).<br />
<br />
'''10 June''' : Learned Inheritance in Python. Weekly meeting. Discussed about the code structure.<br />
<br />
'''11 June''' : Some experimentation with parsing from FreeCAD-addons repo. Looking into PyGithub for GitHub API.<br />
<br />
'''12 June''' : Finally get PyGithub working. Got list of files and some more examples.<br />
<br />
'''13 June''' : Fetching of only submodules using PyGithub. Got the submodules and their related info. like submodule original URL.<br />
<br />
'''14 June''' : Added more code to FetchFromGitHub class and created instances of Plugin().<br />
<br />
'''15 June''' : Mainly had the discussion today; about the work down and what to do next.<br />
<br />
'''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".<br />
<br />
'''17 June''' : Weekly meeting. Set goals. Fetched list of macros from the FreeCAD wiki. Fetched URL, description, author of individual macro. Code: https://github.com/mandeeps708/scripts/blob/master/FC_getMacro/wikimacro.py<br />
<br />
'''18 June - 19 June''' : Worked on GitHub API. Tried to find if we could fetch repository name by using the repository URL. Talked to GitHub officials regarding this. But it's not there. So tried regular expressions in Python. And it's done.<br />
<br />
'''20 June - 21 June''' : Fetched submodule info like author, description etc. Also integrated Macro fetching code into the main.py file. Created a separate getPlugins module that would be able to fetch all plugins available. Currently, it's like hard coded with fetch classes names. Will make it more robust.</div>Mandeeps708https://brlcad.org/w/index.php?title=User:Mandeeps708/GSoC16/logs&diff=9755User:Mandeeps708/GSoC16/logs2016-06-18T00:32:56Z<p>Mandeeps708: /* macro fetching */</p>
<hr />
<div>=Project Details=<br />
-----------------<br />
Name: [[User:Mandeeps708|Mandeep Singh]]<br />
<br />
IRC: Mandeep_Singh<br />
<br />
Project: [[User:Mandeeps708/gsoc_proposal|The FreeCAD Plugin Installer]]<br />
------------------------------------------------------------------------<br />
<br />
=Community Bonding Period=<br />
---------------------------<br />
<br />
* Discussion about the project proposal.<br />
* Build FreeCAD from source on Archlinux.<br />
* Shifted to Ubuntu and tried building. Discussed the dependencies issue faced on IRC.<br />
* One issue was solved by creating a symlink of libfreeimage.so to /usr/lib from /usr/lib/x86_64-linux-gnu/ due to a bug on Ubuntu 16.04 (Xenial).<br />
* Another issue I was facing was related to C++.<br />
<br />
c++: internal compiler error: Killed (program cc1plus)<br />
Please submit a full bug report,<br />
<br />
It was due to the '''make -j4''' as it made the compiler run out of memory. Never happened on Archlinux though.<br />
<br />
* Discussed to use '''PySide''' and Qt.<br />
* Learning PySide.<br />
<br />
--------------------------------------------<br />
=Coding Period=<br />
----------------<br />
<br />
'''23 May''' : Plan is to try out the existing pluginloader & addon installer. Trying the pluginloader.<br />
<br />
'''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.<br />
<br />
'''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.<br />
<br />
'''26 May''' : Installed and used the Addon installer and saw it's working.<br />
<br />
'''27 May - 28 May''' : Comparing pluginloader (https://github.com/microelly2/freecad-pluginloader) and Addon installer (https://github.com/FreeCAD/FreeCAD-addons#1-using-the-installer-macro) and listing out what we can keep or not for reuse. And getting mentor's views.<br />
<br />
'''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.<br />
<br />
'''30 May - 31 May''' : Discussed the design with ickby and yorik. Parsing macro code from wiki: https://github.com/mandeeps708/scripts/blob/master/FC_getMacro<br />
<br />
'''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. <br />
<br />
'''2 June''' : Weekly meeting + discussed and finalized some things like code structure etc.<br />
<br />
'''3 June''' : Went through some OOPS concepts and how to do them in python. <br />
<br />
'''4 June - 5 June''' : Think of some design and relations. Code structure added to github.<br />
<br />
'''6 June''' : Modified the fetch Macro Script to use BeautifulSoup (with html.parser) instead of pyquery (lxml).<br />
<br />
'''7 June - 9 June''' : Health issues. Also, got some problem with laptop. Started learning about object oriented programming (with python).<br />
<br />
'''10 June''' : Learned Inheritance in Python. Weekly meeting. Discussed about the code structure.<br />
<br />
'''11 June''' : Some experimentation with parsing from FreeCAD-addons repo. Looking into PyGithub for GitHub API.<br />
<br />
'''12 June''' : Finally get PyGithub working. Got list of files and some more examples.<br />
<br />
'''13 June''' : Fetching of only submodules using PyGithub. Got the submodules and their related info. like submodule original URL.<br />
<br />
'''14 June''' : Added more code to FetchFromGitHub class and created instances of Plugin().<br />
<br />
'''15 June''' : Mainly had the discussion today; about the work down and what to do next.<br />
<br />
'''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".<br />
<br />
'''17 June''': Weekly meeting. Set goals. Fetched list of macros from the FreeCAD wiki. Fetched URL, description, author of individual macro. Code: https://github.com/mandeeps708/scripts/blob/master/FC_getMacro/wikimacro.py</div>Mandeeps708https://brlcad.org/w/index.php?title=User:Mandeeps708/GSoC16/logs&diff=9753User:Mandeeps708/GSoC16/logs2016-06-16T23:30:52Z<p>Mandeeps708: /* logs */</p>
<hr />
<div>=Project Details=<br />
-----------------<br />
Name: [[User:Mandeeps708|Mandeep Singh]]<br />
<br />
IRC: Mandeep_Singh<br />
<br />
Project: [[User:Mandeeps708/gsoc_proposal|The FreeCAD Plugin Installer]]<br />
------------------------------------------------------------------------<br />
<br />
=Community Bonding Period=<br />
---------------------------<br />
<br />
* Discussion about the project proposal.<br />
* Build FreeCAD from source on Archlinux.<br />
* Shifted to Ubuntu and tried building. Discussed the dependencies issue faced on IRC.<br />
* One issue was solved by creating a symlink of libfreeimage.so to /usr/lib from /usr/lib/x86_64-linux-gnu/ due to a bug on Ubuntu 16.04 (Xenial).<br />
* Another issue I was facing was related to C++.<br />
<br />
c++: internal compiler error: Killed (program cc1plus)<br />
Please submit a full bug report,<br />
<br />
It was due to the '''make -j4''' as it made the compiler run out of memory. Never happened on Archlinux though.<br />
<br />
* Discussed to use '''PySide''' and Qt.<br />
* Learning PySide.<br />
<br />
--------------------------------------------<br />
=Coding Period=<br />
----------------<br />
<br />
'''23 May''' : Plan is to try out the existing pluginloader & addon installer. Trying the pluginloader.<br />
<br />
'''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.<br />
<br />
'''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.<br />
<br />
'''26 May''' : Installed and used the Addon installer and saw it's working.<br />
<br />
'''27 May - 28 May''' : Comparing pluginloader (https://github.com/microelly2/freecad-pluginloader) and Addon installer (https://github.com/FreeCAD/FreeCAD-addons#1-using-the-installer-macro) and listing out what we can keep or not for reuse. And getting mentor's views.<br />
<br />
'''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.<br />
<br />
'''30 May - 31 May''' : Discussed the design with ickby and yorik. Parsing macro code from wiki: https://github.com/mandeeps708/scripts/blob/master/FC_getMacro<br />
<br />
'''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. <br />
<br />
'''2 June''' : Weekly meeting + discussed and finalized some things like code structure etc.<br />
<br />
'''3 June''' : Went through some OOPS concepts and how to do them in python. <br />
<br />
'''4 June - 5 June''' : Think of some design and relations. Code structure added to github.<br />
<br />
'''6 June''' : Modified the fetch Macro Script to use BeautifulSoup (with html.parser) instead of pyquery (lxml).<br />
<br />
'''7 June - 9 June''' : Health issues. Also, got some problem with laptop. Started learning about object oriented programming (with python).<br />
<br />
'''10 June''' : Learned Inheritance in Python. Weekly meeting. Discussed about the code structure.<br />
<br />
'''11 June''' : Some experimentation with parsing from FreeCAD-addons repo. Looking into PyGithub for GitHub API.<br />
<br />
'''12 June''' : Finally get PyGithub working. Got list of files and some more examples.<br />
<br />
'''13 June''' : Fetching of only submodules using PyGithub. Got the submodules and their related info. like submodule original URL.<br />
<br />
'''14 June''' : Added more code to FetchFromGitHub class and created instances of Plugin().<br />
<br />
'''15 June''' : Mainly had the discussion today; about the work down and what to do next.<br />
<br />
'''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".</div>Mandeeps708https://brlcad.org/w/index.php?title=User:Mandeeps708/GSoC16/logs&diff=9748User:Mandeeps708/GSoC16/logs2016-06-13T19:36:01Z<p>Mandeeps708: /* 13 june logs*/</p>
<hr />
<div>=Project Details=<br />
-----------------<br />
Name: [[User:Mandeeps708|Mandeep Singh]]<br />
<br />
IRC: Mandeep_Singh<br />
<br />
Project: [[User:Mandeeps708/gsoc_proposal|The FreeCAD Plugin Installer]]<br />
------------------------------------------------------------------------<br />
<br />
=Community Bonding Period=<br />
---------------------------<br />
<br />
* Discussion about the project proposal.<br />
* Build FreeCAD from source on Archlinux.<br />
* Shifted to Ubuntu and tried building. Discussed the dependencies issue faced on IRC.<br />
* One issue was solved by creating a symlink of libfreeimage.so to /usr/lib from /usr/lib/x86_64-linux-gnu/ due to a bug on Ubuntu 16.04 (Xenial).<br />
* Another issue I was facing was related to C++.<br />
<br />
c++: internal compiler error: Killed (program cc1plus)<br />
Please submit a full bug report,<br />
<br />
It was due to the '''make -j4''' as it made the compiler run out of memory. Never happened on Archlinux though.<br />
<br />
* Discussed to use '''PySide''' and Qt.<br />
* Learning PySide.<br />
<br />
--------------------------------------------<br />
=Coding Period=<br />
----------------<br />
<br />
'''23 May''' : Plan is to try out the existing pluginloader & addon installer. Trying the pluginloader.<br />
<br />
'''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.<br />
<br />
'''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.<br />
<br />
'''26 May''' : Installed and used the Addon installer and saw it's working.<br />
<br />
'''27 May - 28 May''' : Comparing pluginloader (https://github.com/microelly2/freecad-pluginloader) and Addon installer (https://github.com/FreeCAD/FreeCAD-addons#1-using-the-installer-macro) and listing out what we can keep or not for reuse. And getting mentor's views.<br />
<br />
'''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.<br />
<br />
'''30 May - 31 May''' : Discussed the design with ickby and yorik. Parsing macro code from wiki: https://github.com/mandeeps708/scripts/blob/master/FC_getMacro<br />
<br />
'''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. <br />
<br />
'''2 June''' : Weekly meeting + discussed and finalized some things like code structure etc.<br />
<br />
'''3 June''' : Went through some OOPS concepts and how to do them in python. <br />
<br />
'''4 June - 5 June''' : Think of some design and relations. Code structure added to github.<br />
<br />
'''6 June''' : Modified the fetch Macro Script to use BeautifulSoup (with html.parser) instead of pyquery (lxml).<br />
<br />
'''7 June - 9 June''' : Health issues. Also, got some problem with laptop. Started learning about object oriented programming (with python).<br />
<br />
'''10 June''' : Learned Inheritance in Python. Weekly meeting. Discussed about the code structure.<br />
<br />
'''11 June''' : Some experimentation with parsing from FreeCAD-addons repo. Looking into PyGithub for GitHub API.<br />
<br />
'''12 June''' : Finally get PyGithub working. Got list of files and some more examples.<br />
<br />
'''13 June''' : Fetching of only submodules using PyGithub. Got the submodules and their related info. like submodule original URL.</div>Mandeeps708https://brlcad.org/w/index.php?title=User:Mandeeps708/GSoC16/logs&diff=9747User:Mandeeps708/GSoC16/logs2016-06-13T00:51:12Z<p>Mandeeps708: /* pygithub */</p>
<hr />
<div>=Project Details=<br />
-----------------<br />
Name: [[User:Mandeeps708|Mandeep Singh]]<br />
<br />
IRC: Mandeep_Singh<br />
<br />
Project: [[User:Mandeeps708/gsoc_proposal|The FreeCAD Plugin Installer]]<br />
------------------------------------------------------------------------<br />
<br />
=Community Bonding Period=<br />
---------------------------<br />
<br />
* Discussion about the project proposal.<br />
* Build FreeCAD from source on Archlinux.<br />
* Shifted to Ubuntu and tried building. Discussed the dependencies issue faced on IRC.<br />
* One issue was solved by creating a symlink of libfreeimage.so to /usr/lib from /usr/lib/x86_64-linux-gnu/ due to a bug on Ubuntu 16.04 (Xenial).<br />
* Another issue I was facing was related to C++.<br />
<br />
c++: internal compiler error: Killed (program cc1plus)<br />
Please submit a full bug report,<br />
<br />
It was due to the '''make -j4''' as it made the compiler run out of memory. Never happened on Archlinux though.<br />
<br />
* Discussed to use '''PySide''' and Qt.<br />
* Learning PySide.<br />
<br />
--------------------------------------------<br />
=Coding Period=<br />
----------------<br />
<br />
'''23 May''' : Plan is to try out the existing pluginloader & addon installer. Trying the pluginloader.<br />
<br />
'''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.<br />
<br />
'''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.<br />
<br />
'''26 May''' : Installed and used the Addon installer and saw it's working.<br />
<br />
'''27 May - 28 May''' : Comparing pluginloader (https://github.com/microelly2/freecad-pluginloader) and Addon installer (https://github.com/FreeCAD/FreeCAD-addons#1-using-the-installer-macro) and listing out what we can keep or not for reuse. And getting mentor's views.<br />
<br />
'''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.<br />
<br />
'''30 May - 31 May''' : Discussed the design with ickby and yorik. Parsing macro code from wiki: https://github.com/mandeeps708/scripts/blob/master/FC_getMacro<br />
<br />
'''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. <br />
<br />
'''2 June''' : Weekly meeting + discussed and finalized some things like code structure etc.<br />
<br />
'''3 June''' : Went through some OOPS concepts and how to do them in python. <br />
<br />
'''4 June - 5 June''' : Think of some design and relations. Code structure added to github.<br />
<br />
'''6 June''' : Modified the fetch Macro Script to use BeautifulSoup (with html.parser) instead of pyquery (lxml).<br />
<br />
'''7 June - 9 June''' : Health issues. Also, got some problem with laptop. Started learning about object oriented programming (with python).<br />
<br />
'''10 June''' : Learned Inheritance in Python. Weekly meeting. Discussed about the code structure.<br />
<br />
'''11 June''' : Some experimentation with parsing from FreeCAD-addons repo. Looking into PyGithub for GitHub API.<br />
<br />
'''12 June''' : Finally get PyGithub working. Got list of files and some more examples.</div>Mandeeps708https://brlcad.org/w/index.php?title=User:Mandeeps708/GSoC16/logs&diff=9746User:Mandeeps708/GSoC16/logs2016-06-11T20:53:25Z<p>Mandeeps708: /* logs */</p>
<hr />
<div>=Project Details=<br />
-----------------<br />
Name: [[User:Mandeeps708|Mandeep Singh]]<br />
<br />
IRC: Mandeep_Singh<br />
<br />
Project: [[User:Mandeeps708/gsoc_proposal|The FreeCAD Plugin Installer]]<br />
------------------------------------------------------------------------<br />
<br />
=Community Bonding Period=<br />
---------------------------<br />
<br />
* Discussion about the project proposal.<br />
* Build FreeCAD from source on Archlinux.<br />
* Shifted to Ubuntu and tried building. Discussed the dependencies issue faced on IRC.<br />
* One issue was solved by creating a symlink of libfreeimage.so to /usr/lib from /usr/lib/x86_64-linux-gnu/ due to a bug on Ubuntu 16.04 (Xenial).<br />
* Another issue I was facing was related to C++.<br />
<br />
c++: internal compiler error: Killed (program cc1plus)<br />
Please submit a full bug report,<br />
<br />
It was due to the '''make -j4''' as it made the compiler run out of memory. Never happened on Archlinux though.<br />
<br />
* Discussed to use '''PySide''' and Qt.<br />
* Learning PySide.<br />
<br />
--------------------------------------------<br />
=Coding Period=<br />
----------------<br />
<br />
'''23 May''' : Plan is to try out the existing pluginloader & addon installer. Trying the pluginloader.<br />
<br />
'''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.<br />
<br />
'''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.<br />
<br />
'''26 May''' : Installed and used the Addon installer and saw it's working.<br />
<br />
'''27 May - 28 May''' : Comparing pluginloader (https://github.com/microelly2/freecad-pluginloader) and Addon installer (https://github.com/FreeCAD/FreeCAD-addons#1-using-the-installer-macro) and listing out what we can keep or not for reuse. And getting mentor's views.<br />
<br />
'''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.<br />
<br />
'''30 May - 31 May''' : Discussed the design with ickby and yorik. Parsing macro code from wiki: https://github.com/mandeeps708/scripts/blob/master/FC_getMacro<br />
<br />
'''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. <br />
<br />
'''2 June''' : Weekly meeting + discussed and finalized some things like code structure etc.<br />
<br />
'''3 June''' : Went through some OOPS concepts and how to do them in python. <br />
<br />
'''4 June - 5 June''' : Think of some design and relations. Code structure added to github.<br />
<br />
'''6 June''' : Modified the fetch Macro Script to use BeautifulSoup (with html.parser) instead of pyquery (lxml).<br />
<br />
'''7 June - 9 June''' : Health issues. Also, got some problem with laptop. Started learning about object oriented programming (with python).<br />
<br />
'''10 June''' : Learned Inheritance in Python. Weekly meeting. Discussed about the code structure.<br />
<br />
'''11 June''' : Some experimentation with parsing from FreeCAD-addons repo. Looking into PyGithub for GitHub API.</div>Mandeeps708https://brlcad.org/w/index.php?title=User:Mandeeps708/GSoC16/logs&diff=9733User:Mandeeps708/GSoC16/logs2016-06-07T13:35:31Z<p>Mandeeps708: /* logs */</p>
<hr />
<div>=Project Details=<br />
-----------------<br />
Name: [[User:Mandeeps708|Mandeep Singh]]<br />
<br />
IRC: Mandeep_Singh<br />
<br />
Project: [[User:Mandeeps708/gsoc_proposal|The FreeCAD Plugin Installer]]<br />
------------------------------------------------------------------------<br />
<br />
=Community Bonding Period=<br />
---------------------------<br />
<br />
* Discussion about the project proposal.<br />
* Build FreeCAD from source on Archlinux.<br />
* Shifted to Ubuntu and tried building. Discussed the dependencies issue faced on IRC.<br />
* One issue was solved by creating a symlink of libfreeimage.so to /usr/lib from /usr/lib/x86_64-linux-gnu/ due to a bug on Ubuntu 16.04 (Xenial).<br />
* Another issue I was facing was related to C++.<br />
<br />
c++: internal compiler error: Killed (program cc1plus)<br />
Please submit a full bug report,<br />
<br />
It was due to the '''make -j4''' as it made the compiler run out of memory. Never happened on Archlinux though.<br />
<br />
* Discussed to use '''PySide''' and Qt.<br />
* Learning PySide.<br />
<br />
--------------------------------------------<br />
=Coding Period=<br />
----------------<br />
<br />
'''23 May''' : Plan is to try out the existing pluginloader & addon installer. Trying the pluginloader.<br />
<br />
'''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.<br />
<br />
'''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.<br />
<br />
'''26 May''' : Installed and used the Addon installer and saw it's working.<br />
<br />
'''27 May - 28 May''' : Comparing pluginloader (https://github.com/microelly2/freecad-pluginloader) and Addon installer (https://github.com/FreeCAD/FreeCAD-addons#1-using-the-installer-macro) and listing out what we can keep or not for reuse. And getting mentor's views.<br />
<br />
'''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.<br />
<br />
'''30 May - 31 May''' : Discussed the design with ickby and yorik. Parsing macro code from wiki: https://github.com/mandeeps708/scripts/blob/master/FC_getMacro<br />
<br />
'''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. <br />
<br />
'''2 June''' : Weekly meeting + discussed and finalized some things like code structure etc.<br />
<br />
'''3 June''' : Went through some OOPS concepts and how to do them in python. <br />
<br />
'''4 June - 5 June''' : Think of some design and relations. Code structure added to github.<br />
<br />
'''6 June''' : Modified the fetch Macro Script to use BeautifulSoup (with html.parser) instead of pyquery (lxml).<br />
<br />
'''7 June''' :</div>Mandeeps708https://brlcad.org/w/index.php?title=User:Mandeeps708/GSoC16/logs&diff=9730User:Mandeeps708/GSoC16/logs2016-06-02T20:57:01Z<p>Mandeeps708: /* logs */</p>
<hr />
<div>=Project Details=<br />
-----------------<br />
Name: [[User:Mandeeps708|Mandeep Singh]]<br />
<br />
IRC: Mandeep_Singh<br />
<br />
Project: [[User:Mandeeps708/gsoc_proposal|The FreeCAD Plugin Installer]]<br />
------------------------------------------------------------------------<br />
<br />
=Community Bonding Period=<br />
---------------------------<br />
<br />
* Discussion about the project proposal.<br />
* Build FreeCAD from source on Archlinux.<br />
* Shifted to Ubuntu and tried building. Discussed the dependencies issue faced on IRC.<br />
* One issue was solved by creating a symlink of libfreeimage.so to /usr/lib from /usr/lib/x86_64-linux-gnu/ due to a bug on Ubuntu 16.04 (Xenial).<br />
* Another issue I was facing was related to C++.<br />
<br />
c++: internal compiler error: Killed (program cc1plus)<br />
Please submit a full bug report,<br />
<br />
It was due to the '''make -j4''' as it made the compiler run out of memory. Never happened on Archlinux though.<br />
<br />
* Discussed to use '''PySide''' and Qt.<br />
* Learning PySide.<br />
<br />
--------------------------------------------<br />
=Coding Period=<br />
----------------<br />
<br />
===== Week 1 =====<br />
-------<br />
<br />
'''23 May''' : Plan is to try out the existing pluginloader & addon installer. Trying the pluginloader.<br />
<br />
'''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.<br />
<br />
'''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.<br />
<br />
'''26 May''' : Installed and used the Addon installer and saw it's working.<br />
<br />
'''27 May - 28 May''' : Comparing pluginloader (https://github.com/microelly2/freecad-pluginloader) and Addon installer (https://github.com/FreeCAD/FreeCAD-addons#1-using-the-installer-macro) and listing out what we can keep or not for reuse. And getting mentor's views.<br />
<br />
'''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.<br />
<br />
'''30 May - 31 May''' : Discussed the design with ickby and yorik. Parsing macro code from wiki: https://github.com/mandeeps708/scripts/blob/master/FC_getMacro<br />
<br />
'''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. <br />
<br />
'''2 June''' : Weekly meeting + ...</div>Mandeeps708https://brlcad.org/w/index.php?title=User:Mandeeps708/GSoC16/logs&diff=9729User:Mandeeps708/GSoC16/logs2016-06-01T02:08:23Z<p>Mandeeps708: /* logs */</p>
<hr />
<div>=Project Details=<br />
-----------------<br />
Name: [[User:Mandeeps708|Mandeep Singh]]<br />
<br />
IRC: Mandeep_Singh<br />
<br />
Project: [[User:Mandeeps708/gsoc_proposal|The FreeCAD Plugin Installer]]<br />
------------------------------------------------------------------------<br />
<br />
=Community Bonding Period=<br />
---------------------------<br />
<br />
* Discussion about the project proposal.<br />
* Build FreeCAD from source on Archlinux.<br />
* Shifted to Ubuntu and tried building. Discussed the dependencies issue faced on IRC.<br />
* One issue was solved by creating a symlink of libfreeimage.so to /usr/lib from /usr/lib/x86_64-linux-gnu/ due to a bug on Ubuntu 16.04 (Xenial).<br />
* Another issue I was facing was related to C++.<br />
<br />
c++: internal compiler error: Killed (program cc1plus)<br />
Please submit a full bug report,<br />
<br />
It was due to the '''make -j4''' as it made the compiler run out of memory. Never happened on Archlinux though.<br />
<br />
* Discussed to use '''PySide''' and Qt.<br />
* Learning PySide.<br />
<br />
--------------------------------------------<br />
=Coding Period=<br />
----------------<br />
<br />
===== Week 1 =====<br />
-------<br />
<br />
'''23 May''' : Plan is to try out the existing pluginloader & addon installer. Trying the pluginloader.<br />
<br />
'''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.<br />
<br />
'''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.<br />
<br />
'''26 May''' : Installed and used the Addon installer and saw it's working.<br />
<br />
'''27 May - 28 May''' : Comparing pluginloader (https://github.com/microelly2/freecad-pluginloader) and Addon installer (https://github.com/FreeCAD/FreeCAD-addons#1-using-the-installer-macro) and listing out what we can keep or not for reuse. And getting mentor's views.<br />
<br />
'''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.<br />
<br />
'''30 May - 31 May''' : Discussed the design with ickby and yorik. Parsing macro code from wiki: https://github.com/mandeeps708/scripts/blob/master/FC_getMacro</div>Mandeeps708https://brlcad.org/w/index.php?title=User:Mandeeps708/GSoC16/logs&diff=9727User:Mandeeps708/GSoC16/logs2016-05-29T21:50:38Z<p>Mandeeps708: /* 28-29 logs */</p>
<hr />
<div>=Project Details=<br />
-----------------<br />
Name: [[User:Mandeeps708|Mandeep Singh]]<br />
<br />
IRC: Mandeep_Singh<br />
<br />
Project: [[User:Mandeeps708/gsoc_proposal|The FreeCAD Plugin Installer]]<br />
------------------------------------------------------------------------<br />
<br />
=Community Bonding Period=<br />
---------------------------<br />
<br />
* Discussion about the project proposal.<br />
* Build FreeCAD from source on Archlinux.<br />
* Shifted to Ubuntu and tried building. Discussed the dependencies issue faced on IRC.<br />
* One issue was solved by creating a symlink of libfreeimage.so to /usr/lib from /usr/lib/x86_64-linux-gnu/ due to a bug on Ubuntu 16.04 (Xenial).<br />
* Another issue I was facing was related to C++.<br />
<br />
c++: internal compiler error: Killed (program cc1plus)<br />
Please submit a full bug report,<br />
<br />
It was due to the '''make -j4''' as it made the compiler run out of memory. Never happened on Archlinux though.<br />
<br />
* Discussed to use '''PySide''' and Qt.<br />
* Learning PySide.<br />
<br />
--------------------------------------------<br />
=Coding Period=<br />
----------------<br />
<br />
===== Week 1 =====<br />
-------<br />
<br />
'''23 May''' : Plan is to try out the existing pluginloader & addon installer. Trying the pluginloader.<br />
<br />
'''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.<br />
<br />
'''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.<br />
<br />
'''26 May''' : Installed and used the Addon installer and saw it's working.<br />
<br />
'''27 May - 28 May''' : Comparing pluginloader (https://github.com/microelly2/freecad-pluginloader) and Addon installer (https://github.com/FreeCAD/FreeCAD-addons#1-using-the-installer-macro) and listing out what we can keep or not for reuse. And getting mentor's views.<br />
<br />
'''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.</div>Mandeeps708https://brlcad.org/w/index.php?title=User:Mandeeps708/GSoC16/logs&diff=9724User:Mandeeps708/GSoC16/logs2016-05-28T07:08:00Z<p>Mandeeps708: /* logs */</p>
<hr />
<div>=Project Details=<br />
-----------------<br />
Name: [[User:Mandeeps708|Mandeep Singh]]<br />
<br />
IRC: Mandeep_Singh<br />
<br />
Project: [[User:Mandeeps708/gsoc_proposal|The FreeCAD Plugin Installer]]<br />
------------------------------------------------------------------------<br />
<br />
=Community Bonding Period=<br />
---------------------------<br />
<br />
* Discussion about the project proposal.<br />
* Build FreeCAD from source on Archlinux.<br />
* Shifted to Ubuntu and tried building. Discussed the dependencies issue faced on IRC.<br />
* One issue was solved by creating a symlink of libfreeimage.so to /usr/lib from /usr/lib/x86_64-linux-gnu/ due to a bug on Ubuntu 16.04 (Xenial).<br />
* Another issue I was facing was related to C++.<br />
<br />
c++: internal compiler error: Killed (program cc1plus)<br />
Please submit a full bug report,<br />
<br />
It was due to the '''make -j4''' as it made the compiler run out of memory. Never happened on Archlinux though.<br />
<br />
* Discussed to use '''PySide''' and Qt.<br />
* Learning PySide.<br />
<br />
--------------------------------------------<br />
=Coding Period=<br />
----------------<br />
<br />
===== Week 1 =====<br />
-------<br />
<br />
'''23 May''' : Plan is to try out the existing pluginloader & addon installer. Trying the pluginloader.<br />
<br />
'''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.<br />
<br />
'''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.<br />
<br />
'''26 May''' : Installed and used the Addon installer and saw it's working.<br />
<br />
'''27 May''' : Comparing pluginloader (https://github.com/microelly2/freecad-pluginloader) and Addon installer (https://github.com/FreeCAD/FreeCAD-addons#1-using-the-installer-macro) and listing out what we can keep or not for reuse.</div>Mandeeps708https://brlcad.org/w/index.php?title=User:Mandeeps708/GSoC16/logs&diff=9723User:Mandeeps708/GSoC16/logs2016-05-25T23:11:53Z<p>Mandeeps708: /* logs */</p>
<hr />
<div>=Project Details=<br />
-----------------<br />
Name: [[User:Mandeeps708|Mandeep Singh]]<br />
<br />
IRC: Mandeep_Singh<br />
<br />
Project: [[User:Mandeeps708/gsoc_proposal|The FreeCAD Plugin Installer]]<br />
------------------------------------------------------------------------<br />
<br />
=Community Bonding Period=<br />
---------------------------<br />
<br />
* Discussion about the project proposal.<br />
* Build FreeCAD from source on Archlinux.<br />
* Shifted to Ubuntu and tried building. Discussed the dependencies issue faced on IRC.<br />
* One issue was solved by creating a symlink of libfreeimage.so to /usr/lib from /usr/lib/x86_64-linux-gnu/ due to a bug on Ubuntu 16.04 (Xenial).<br />
* Another issue I was facing was related to C++.<br />
<br />
c++: internal compiler error: Killed (program cc1plus)<br />
Please submit a full bug report,<br />
<br />
It was due to the '''make -j4''' as it made the compiler run out of memory. Never happened on Archlinux though.<br />
<br />
* Discussed to use '''PySide''' and Qt.<br />
* Learning PySide.<br />
<br />
--------------------------------------------<br />
=Coding Period=<br />
----------------<br />
<br />
===== Week 1 =====<br />
-------<br />
<br />
'''23 May''' : Plan is to try out the existing pluginloader & addon installer. Trying the pluginloader.<br />
<br />
'''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.<br />
<br />
'''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.</div>Mandeeps708https://brlcad.org/w/index.php?title=User:Mandeeps708/GSoC16/logs&diff=9722User:Mandeeps708/GSoC16/logs2016-05-23T22:58:46Z<p>Mandeeps708: /* Coding Period */</p>
<hr />
<div>=Project Details=<br />
-----------------<br />
Name: [[User:Mandeeps708|Mandeep Singh]]<br />
<br />
IRC: Mandeep_Singh<br />
<br />
Project: [[User:Mandeeps708/gsoc_proposal|The FreeCAD Plugin Installer]]<br />
------------------------------------------------------------------------<br />
<br />
=Community Bonding Period=<br />
---------------------------<br />
<br />
* Discussion about the project proposal.<br />
* Build FreeCAD from source on Archlinux.<br />
* Shifted to Ubuntu and tried building. Discussed the dependencies issue faced on IRC.<br />
* One issue was solved by creating a symlink of libfreeimage.so to /usr/lib from /usr/lib/x86_64-linux-gnu/ due to a bug on Ubuntu 16.04 (Xenial).<br />
* Another issue I was facing was related to C++.<br />
<br />
c++: internal compiler error: Killed (program cc1plus)<br />
Please submit a full bug report,<br />
<br />
It was due to the '''make -j4''' as it made the compiler run out of memory. Never happened on Archlinux though.<br />
<br />
* Discussed to use '''PySide''' and Qt.<br />
* Learning PySide.<br />
<br />
--------------------------------------------<br />
=Coding Period=<br />
----------------<br />
<br />
===== Week 1 =====<br />
-------<br />
<br />
'''23 May''' : Plan is to try out the existing pluginloader & addon installer. Trying the pluginloader.</div>Mandeeps708https://brlcad.org/w/index.php?title=User:Mandeeps708&diff=9718User:Mandeeps7082016-05-18T15:15:19Z<p>Mandeeps708: added dev logs</p>
<hr />
<div>= Personal Information =<br />
* Name: '''Mandeep Singh'''<br />
* IRC Nick (Freenode): '''Mandeep_Singh'''<br />
* GitHub profile: '''[https://github.com/mandeeps708 mandeeps708]'''<br />
* Blog address: '''http://mandeep7.wordpress.com'''<br />
* Development logs: '''[[User:Mandeeps708/GSoC16/logs]]'''<br />
<br />
I am participating in GSoC 2016 under FreeCAD organization. Proposal link: http://brlcad.org/wiki/User:Mandeeps708/gsoc_proposal</div>Mandeeps708https://brlcad.org/w/index.php?title=Google_Summer_of_Code/2016&diff=9717Google Summer of Code/20162016-05-17T22:04:06Z<p>Mandeeps708: updated dev logs link</p>
<hr />
<div>= GSoC 2016 With BRL-CAD =<br />
<br />
'''BRL-CAD was accepted as a [https://summerofcode.withgoogle.com mentoring organization] for the Google Summer of Code!'''<br />
<br />
We accepted '''9''' students that prepared quality proposals and demonstrated commitment, with details below for those students that were successful. As an umbrella org, several students were selected for associated orgs LibreCAD, OpenSCAD, and FreeCAD.<br />
<br />
= Accepted Projects =<br />
<br />
== Automatic Polygonal Mesh Healing ==<br />
* Adding mesh healing features to BoT<br />
* Student: [[User:tandoorichick|Rakshika Bagavathy]]<br />
* [https://summerofcode.withgoogle.com/projects/#5901122497675264 Abstract]<br />
* [[User:tandoorichick/GSoC2016/Project |Project Plan]]<br />
* [[User:tandoorichick/GSoC2016/Logs|Development Logs]]<br />
<br />
== BRL-CAD Web Infrastructure Update ==<br />
* Create brand new main website and wiki update<br />
* Student: [[User:Oleksandr_dubenko|Oleksandr Dubenko]]<br />
* [https://summerofcode.withgoogle.com/projects/#6118551983226880 Abstract]<br />
* [https://blog.esde.name/project-plan/ Project Plan]<br />
* [https://blog.esde.name/ Development Logs]<br />
<br />
== User Interface for Customizing Models ==<br />
* Create user interface to Customize Model interactively instead of modifying them manually.<br />
* Student: [[User:Amarjeet_Singh_Kapoor|Amarjeet Singh Kapoor]]<br />
* [https://summerofcode.withgoogle.com/projects/#6243883906236416 Abstract]<br />
* [[User: Amarjeet_Singh_Kapoor/GSoC2016/Project |Project Plan]]<br />
* [https://amarjeetkapoor1.wordpress.com/ Development Logs ]<br />
<br />
== GPGPU Support for Boolean Evaluation Used in Ray Tracing ==<br />
* Accelerate Boolean Evaluation using a GPU, if available.<br />
* Student: [[User:catchchaos|Param Hanji]]<br />
* [https://summerofcode.withgoogle.com/projects/#6520583684620288 Abstract]<br />
* [[User:Catchchaos/GSoC2016/Proposal|Project Plan]]<br />
* [https://catchchaos.wordpress.com/ Development Logs]<br />
<br />
== LibreCAD 3 Scriptable User Interface Creation ==<br />
* Create GUI for operations and allow it to be modified without recompilation<br />
* Student: [[User:Feragon.xi|Florian Roméo]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[User:Feragon.xi/GSoC2016/Project |Project Plan]]<br />
* [https://gsoc16.feragon.net/ Development Logs]<br />
<br />
== LibreCAD V3 Bezier and FILE I/O==<br />
* Adding support of beziers and DXF output to LibreCAD_3<br />
* Student: [[User:Gaganjyotsingh|Gaganjyot Singh]]<br />
* [https://summerofcode.withgoogle.com/projects/#5263377253269504 Abstract]<br />
* [https://codebasement.wordpress.com/bio/ Project Plan]<br />
* [https://codebasement.wordpress.com Development Logs]<br />
<br />
== Online Geometry Viewer ==<br />
* Making [https://github.com/BRL-CAD/OGV-meteor OGV] production ready and available to use for a wider majority of people.<br />
<br />
* Student: [[User:Gauravjeet|Gauravjeet Singh]]<br />
* [https://summerofcode.withgoogle.com/projects/#4756339498680320 Abstract]<br />
* [http://gauravjeetsingh.github.io/proposal/ Project Plan]<br />
* [http://gauravjeetsingh.github.io/ Development Logs]<br />
<br />
== Plate Mode NURBS raytracing ==<br />
* Implementing plate mode raytracing for NURBS surfaces<br />
* Student: [[User:bojian_ustc|Bojian Wu]]<br />
* [https://summerofcode.withgoogle.com/projects/#6255437804470272 Abstract]<br />
* [[User:bojian_ustc/GSoC2016/Project |Project Plan]]<br />
* [http://bojianwu.github.io Development Logs]<br />
<br />
== The FreeCAD Plugin Installer ==<br />
* The main idea is to implement a plugin manager for FreeCAD that will be used to install/remove/update plugins and other unofficial workbenches or modules and macros.<br />
* Student: [[User:mandeeps708|Mandeep Singh]]<br />
* [https://summerofcode.withgoogle.com/projects/#5341872155262976 Abstract]<br />
* [[User:Mandeeps708/gsoc_proposal |Project Plan]]<br />
* [[User:Mandeeps708/GSoC16/logs|Development Logs]]<br />
* [https://mandeep7.wordpress.com Blog]</div>Mandeeps708https://brlcad.org/w/index.php?title=User:Mandeeps708/GSoC16/logs&diff=9716User:Mandeeps708/GSoC16/logs2016-05-17T22:01:10Z<p>Mandeeps708: added dev logs</p>
<hr />
<div>=Project Details=<br />
-----------------<br />
Name: [[User:Mandeeps708|Mandeep Singh]]<br />
<br />
IRC: Mandeep_Singh<br />
<br />
Project: [[User:Mandeeps708/gsoc_proposal|The FreeCAD Plugin Installer]]<br />
------------------------------------------------------------------------<br />
<br />
=Community Bonding Period=<br />
---------------------------<br />
<br />
* Discussion about the project proposal.<br />
* Build FreeCAD from source on Archlinux.<br />
* Shifted to Ubuntu and tried building. Discussed the dependencies issue faced on IRC.<br />
* One issue was solved by creating a symlink of libfreeimage.so to /usr/lib from /usr/lib/x86_64-linux-gnu/ due to a bug on Ubuntu 16.04 (Xenial).<br />
* Another issue I was facing was related to C++.<br />
<br />
c++: internal compiler error: Killed (program cc1plus)<br />
Please submit a full bug report,<br />
<br />
It was due to the '''make -j4''' as it made the compiler run out of memory. Never happened on Archlinux though.<br />
<br />
* Discussed to use '''PySide''' and Qt.<br />
* Learning PySide.<br />
<br />
--------------------------------------------<br />
=Coding Period=<br />
----------------</div>Mandeeps708https://brlcad.org/w/index.php?title=Google_Summer_of_Code/2016&diff=9705Google Summer of Code/20162016-05-16T08:56:37Z<p>Mandeeps708: changed abstract</p>
<hr />
<div>= GSoC 2016 With BRL-CAD =<br />
<br />
'''BRL-CAD was accepted as a [https://summerofcode.withgoogle.com mentoring organization] for the Google Summer of Code!'''<br />
<br />
We accepted '''9''' students that prepared quality proposals and demonstrated commitment, with details below for those students that were successful. As an umbrella org, several students were selected for associated orgs LibreCAD, OpenSCAD, and FreeCAD.<br />
<br />
= Accepted Projects =<br />
<br />
== Automatic Polygonal Mesh Healing ==<br />
* 80-char summary<br />
* Student: [[User:tandoorichick|Rakshika Bagavathy]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[User:tandoorichick/GSoC2016/Project |Project Plan]]<br />
* [[User:your_wiki_username/GSoC2016/Logs|Development Logs]]<br />
<br />
== BRL-CAD Web Infrastructure Update ==<br />
* Create brand new main website and wiki update<br />
* Student: [[User:Oleksandr_dubenko|Oleksandr Dubenko]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [https://blog.esde.name/project-plan/ Project Plan]<br />
* [https://blog.esde.name/ Development Logs]<br />
<br />
== User Interface for Customizing Models ==<br />
* Create user interface to Customize Model interactively instead of modifying them manually.<br />
* Student: [[User:Amarjeet_Singh_Kapoor|Amarjeet Singh Kapoor]]<br />
* [https://summerofcode.withgoogle.com/projects/#6243883906236416 Abstract]<br />
* [[User: Amarjeet_Singh_Kapoor/GSoC2016/Project |Project Plan]]<br />
* [https://amarjeetkapoor1.wordpress.com/ Development Logs ]<br />
<br />
== GPGPU Support for Boolean Evaluation Used in Ray Tracing ==<br />
* Accelerate Boolean Evauluation using a GPU, if available<br />
* Student: [[User:catchchaos|Param Hanji]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[User:Catchchaos/GSoC2016/Proposal|Project Plan]]<br />
* [https://catchchaos.wordpress.com/ Development Logs]<br />
<br />
== LibreCAD 3 Scriptable User Interface Creation ==<br />
* Create GUI for operations and allow it to be modified without recompilation<br />
* Student: [[User:Feragon.xi|Florian Roméo]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[User:Feragon.xi/GSoC2016/Project |Project Plan]]<br />
* [https://gsoc16.feragon.net/ Development Logs]<br />
<br />
== LibreCAD V3 Bezier and FILE I/O==<br />
* Adding support of beziers and DXF output to LibreCAD_3<br />
* Student: [[User:Gaganjyotsingh|Gaganjyot Singh]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[https://goo.gl/1O2zkV Project Plan]]<br />
* [[https://codebasement.wordpress.com Development Logs]]<br />
<br />
== Online Geometry Viewer ==<br />
* Making [https://github.com/BRL-CAD/OGV-meteor OGV] production ready and available to use for a wider majority of people.<br />
<br />
* Student: [[User:Gauravjeet|Gauravjeet Singh]]<br />
* [https://summerofcode.withgoogle.com/projects/#4756339498680320 Abstract]<br />
* [http://gauravjeetsingh.github.io/proposal/ Project Plan]<br />
* [http://gauravjeetsingh.github.io/ Development Logs]<br />
<br />
== Plate Mode NURBS raytracing ==<br />
* Implementing plate mode raytracing for NURBS surfaces<br />
* Student: [[User:bojian_ustc|Bojian Wu]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[User:bojian_ustc/GSoC2016/Project |Project Plan]]<br />
* [http://bojianwu.github.io Development Logs]<br />
<br />
== The FreeCAD Plugin Installer ==<br />
* The main idea is to implement a plugin manager for FreeCAD that will be used to install/remove/update plugins and other unofficial workbenches or modules and macros.<br />
* Student: [[User:mandeeps708|Mandeep Singh]]<br />
* [https://summerofcode.withgoogle.com/projects/#5341872155262976 Abstract]<br />
* [[User:Mandeeps708/gsoc_proposal |Project Plan]]<br />
* [http://mandeep7.wordpress.com Development Logs]</div>Mandeeps708https://brlcad.org/w/index.php?title=Google_Summer_of_Code/2014&diff=9629Google Summer of Code/20142016-05-05T03:34:27Z<p>Mandeeps708: /* name linked */</p>
<hr />
<div><!--<br />
{|align="right"<br />
|[[Image:BRL-CAD_GSoC2014_flyer.png|thumb|left|256px]]<br />
|}<br />
--><br />
<br />
= GSoC 2014 With BRL-CAD =<br />
<br />
'''BRL-CAD was accepted as a [http://www.google-melange.com/ mentoring organization] for the Google Summer of Code!''' We accepted as many students as we had mentors and quality student proposals, the latter being the deciding factor this year. We accepted '''11''' students, of which '''10''' were successful in their projects. As an umbrella org, 3 of those students worked on projects for STEPcode, LibreCAD, and OpenSCAD.<br />
<br />
= Accepted Projects =<br />
==Benchmark Performance Database==<br />
* '''Objective''' : Build a database and visualization website for the BRL-CAD Benchmarks.<br />
* '''Student''' : [http://brlcad.org/wiki/User:Ankeshanand/ Ankesh Anand]<br />
* [http://brlcad.org/wiki/User:Ankeshanand/GSoC14/proposal Project Proposal]<br />
* [http://brlcad.org/wiki/User:Ankeshanand/GSoC14/logs Development Logs]<br />
* [http://www.google-melange.com/gsoc/project/details/google/gsoc2014/ankeshanand/5750085036015616 Google-Melange]<br />
<br />
==Embedding a framebuffer window==<br />
* '''Objective''' : Creating a new cross platform Qt framebuffer and embedding a framebuffer window in the actual Qt display manager.<br />
* '''Student''' : [http://brlcad.org/wiki/User:Vladbogolin Bogolin Simion Vlad]<br />
* [http://brlcad.org/wiki/User:Vladbogolin/Proposal/EmbeddingFrameBuffer Project Proposal]<br />
* [http://brlcad.org/wiki/User:Vladbogolin/GSoC2014/Logs Development Logs]<br />
* [https://www.google-melange.com/gsoc/project/details/google/gsoc2014/vladbogolin/5812572515205120 Google-Melange]<br />
<br />
==Online Geometry Viewer==<br />
* '''Objective''' : Port existing Online Geometry Viewer to node.js, and improve it.<br />
* '''Student''' : [http://brlcad.org/wiki/User:Inderpreet/ Inderpreet Singh]<br />
* [http://brlcad.org/wiki/User:Inderpreet/OGV_Proposal Project Proposal]<br />
* [http://brlcad.org/wiki/User:Inderpreet/GSoC14/logs Development Logs]<br />
* [http://www.google-melange.com/gsoc/proposal/public/google/gsoc2014/ishwerdas/5649050225344512 Proposal on Google-Melange]<br />
<br />
==STEP Libraries: Improving Thread Safety and Performance==<br />
* '''Objective''' : Modify the existing STEP Libraries to make them thread safe. Implement multithreading (atleast) in lazyloading. Identify exisitig bottlenecks and improve the performance of the serial code.<br />
* '''Student''' : Pulkit Mittal<br />
* [http://brlcad.org/wiki/User:Pulkit%20Mittal/GSOC2014/proposal Project Proposal]<br />
* [http://brlcad.org/wiki/User:Pulkit%20Mittal/GSOC2014/logs Development Logs]<br />
* [https://www.google-melange.com/gsoc/proposal/review/student/google/gsoc2014/hoiji/5629499534213120 Google-Melange]<br />
<br />
==Creating a Geometry Conversion Library==<br />
* '''Objective:''' TBD<br />
* '''Student:''' [http://brlcad.org/wiki/User:Hcurtis0010/ Henry Curtis]<br />
* Project Proposal<br />
* [http://brlcad.org/wiki/User:Hcurtis0010/GSoC2014/logs Development Logs]<br />
* Project Description<br />
<br />
==Mesh Library Cleanup==<br />
* '''Objective:''' Clean, validate and verify relevant source code about NMG, and then add the missing Euler Operation to it.<br />
* '''Student:''' Zhao Anqing<br />
* [http://brlcad.org/wiki/User:Clouddrift/GSoC2014 Project Proposal]<br />
* [http://brlcad.org/wiki/User:Clouddrift/GSoC2014/Logs Development Logs]<br />
* [https://www.google-melange.com/gsoc/proposal/review/student/google/gsoc2014/clouddrift/5668600916475904 Google-Melange]<br />
<br />
==UI Brushup of OpenSCAD==<br />
* '''Objective''' : To improve the UI of OpenSCAD by removing existing bugs and adding new features.<br />
* '''Student''' : [http://brlcad.org/wiki/User:Shainasabarwal/ Shaina Sabarwal]<br />
* [http://brlcad.org/wiki/User:Shainasabarwal/Openscad_UI_Brushup Project Proposal]<br />
* [http://brlcad.org/wiki/User:Shainasabarwal/GSoC14/logs Development Logs]<br />
* [http://www.google-melange.com/gsoc/proposal/review/student/google/gsoc2014/shaina/5629499534213120 Proposal on Google-Melange]<br />
<br />
==Python Geometry==<br />
* '''Objective''' : To write Python Bindings for BRL-CAD Geometry <br />
* '''Student''' : [http://brlcad.org/wiki/User:Krajkreddy/main Raj K. Reddy]<br />
* [http://brlcad.org/wiki/User:Krajkreddy/GSOC14/proposal Project Proposal]<br />
* [http://brlcad.org/wiki/User:Krajkreddy/GSOC14/summary Development Logs]<br />
* [http://www.google-melange.com/gsoc/project/details/google/gsoc2014/krajkreddy/5766466041282560 Google-Melange]<br />
<br />
==Materials Database Project==<br />
* '''Objective''' : To make a web application where users can easily store / retrieve the properties or traits of materials in a methodical manner.<br />
* '''Student''' : [http://brlcad.org/wiki/User:Albertcoder/ Albert]<br />
* [http://brlcad.org/wiki/User:Albertcoder/Proposal/materialdatabase Project Proposal]<br />
* [http://brlcad.org/wiki/User:Albertcoder/GSoC2014/logs Development Logs]<br />
* [http://www.google-melange.com/gsoc/proposal/public/google/gsoc2014/albertcoder/5629499534213120 Proposal on Google-Melange]<br />
<br />
==Object-oriented C++ Geometry API==<br />
* '''Objective''' : Implement a number of selected primitives in an OOP manner, according to the rt_*_internal structure<br />
* '''Student''' : [http://brlcad.org/wiki/User:Popescu.andrei1991 Andrei Popescu]<br />
* [http://brlcad.org/wiki/User:Popescu.andrei1991/proposal2014 Project Proposal]<br />
* [http://brlcad.org/wiki/User:Popescu.andrei1991/devlogs2014 Development Logs]<br />
* [https://www.google-melange.com/gsoc/project/details/google/gsoc2014/popescuandrei/5653164804014080 Proposal on Google-Melange]<br />
<br />
==LibreCAD Kernel==<br />
* '''Objective''' : To create a 2D Kernel of LibreCAD's version 3.<br />
* '''Student''' : [http://brlcad.org/wiki/User:Gaganjyotsingh/ Gaganjyot]<br />
* [http://brlcad.org/wiki/User:Gaganjyotsingh/Proposal/LibreCADkickoff Project Proposal]<br />
* [http://codebasement.wordpress.com/ Development Logs]<br />
* [http://www.google-melange.com/gsoc/proposal/review/student/google/gsoc2014/gaganjyot/5662278724616192 Proposal on Google-Melange]<br />
<br />
= Additional Information =<br />
<br />
Students discussed and collaborated with BRL-CAD developers on formulating projects with most selecting from a detailed list of project suggestions from our [[Google_Summer_of_Code/Project_Ideas|Project Ideas]] page. Student applications for [[Google_Summer_of_Code|GSoC]] will be accepted at http://google-melange.com from March 10 through March 21.<br />
<br />
[[Category: Summer of Code]]</div>Mandeeps708https://brlcad.org/w/index.php?title=Google_Summer_of_Code/2016&diff=9628Google Summer of Code/20162016-05-05T03:10:11Z<p>Mandeeps708: /* shorten summary*/</p>
<hr />
<div>= GSoC 2016 With BRL-CAD =<br />
<br />
'''BRL-CAD was accepted as a [https://summerofcode.withgoogle.com mentoring organization] for the Google Summer of Code!'''<br />
<br />
We accepted '''9''' students that prepared quality proposals and demonstrated commitment, with details below for those students that were successful. As an umbrella org, several students were selected for associated orgs LibreCAD, OpenSCAD, and FreeCAD.<br />
<br />
= Accepted Projects =<br />
<br />
== Automatic Polygonal Mesh Healing ==<br />
* 80-char summary<br />
* Student: [[User:your_wiki_username|Your Name Here]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[User:your_wiki_username/GSoC2016/Project |Project Plan]]<br />
* [[User:your_wiki_username/GSoC2016/Logs|Development Logs]]<br />
<br />
== BRL-CAD Web Infrastructure Update ==<br />
* 80-char summary<br />
* Student: [[User:your_wiki_username|Your Name Here]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[User:your_wiki_username/GSoC2016/Project |Project Plan]]<br />
* [[User:your_wiki_username/GSoC2016/Logs|Development Logs]]<br />
<br />
== Form based script parameterization (needs better title) ==<br />
* 80-char summary<br />
* Student: [[User:your_wiki_username|Your Name Here]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[User:your_wiki_username/GSoC2016/Project |Project Plan]]<br />
* [[User:your_wiki_username/GSoC2016/Logs|Development Logs]]<br />
<br />
== GPGPU Support for Boolean Evaluation Used in Ray Tracing ==<br />
* 80-char summary<br />
* Student: [[User:your_wiki_username|Your Name Here]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[User:your_wiki_username/GSoC2016/Project |Project Plan]]<br />
* [[User:your_wiki_username/GSoC2016/Logs|Development Logs]]<br />
<br />
== LibreCAD 3 UI (needs better title) ==<br />
* 80-char summary<br />
* Student: [[User:your_wiki_username|Your Name Here]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[User:your_wiki_username/GSoC2016/Project |Project Plan]]<br />
* [[User:your_wiki_username/GSoC2016/Logs|Development Logs]]<br />
<br />
== LibreCAD V3 Evolvement++ (needs better title) ==<br />
* 80-char summary<br />
* Student: [[User:your_wiki_username|Your Name Here]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[User:your_wiki_username/GSoC2016/Project |Project Plan]]<br />
* [[User:your_wiki_username/GSoC2016/Logs|Development Logs]]<br />
<br />
== Online Geometry Viewer ==<br />
* 80-char summary<br />
* Student: [[User:your_wiki_username|Your Name Here]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[User:your_wiki_username/GSoC2016/Project |Project Plan]]<br />
* [[User:your_wiki_username/GSoC2016/Logs|Development Logs]]<br />
<br />
== Plate Mode NURBS raytracing ==<br />
* 80-char summary<br />
* Student: [[User:your_wiki_username|Your Name Here]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[User:your_wiki_username/GSoC2016/Project |Project Plan]]<br />
* [[User:your_wiki_username/GSoC2016/Logs|Development Logs]]<br />
<br />
== The FreeCAD Plugin Installer ==<br />
* The main idea is to implement a plugin manager for FreeCAD that will be used to install/remove/update plugins and other unofficial workbenches or modules and macros.<br />
* Student: [[User:mandeeps708|Mandeep Singh]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[User:Mandeeps708/gsoc_proposal |Project Plan]]<br />
* [http://mandeep7.wordpress.com Development Logs]</div>Mandeeps708https://brlcad.org/w/index.php?title=Google_Summer_of_Code/2016&diff=9627Google Summer of Code/20162016-05-05T03:07:40Z<p>Mandeeps708: /* blog link */</p>
<hr />
<div>= GSoC 2016 With BRL-CAD =<br />
<br />
'''BRL-CAD was accepted as a [https://summerofcode.withgoogle.com mentoring organization] for the Google Summer of Code!'''<br />
<br />
We accepted '''9''' students that prepared quality proposals and demonstrated commitment, with details below for those students that were successful. As an umbrella org, several students were selected for associated orgs LibreCAD, OpenSCAD, and FreeCAD.<br />
<br />
= Accepted Projects =<br />
<br />
== Automatic Polygonal Mesh Healing ==<br />
* 80-char summary<br />
* Student: [[User:your_wiki_username|Your Name Here]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[User:your_wiki_username/GSoC2016/Project |Project Plan]]<br />
* [[User:your_wiki_username/GSoC2016/Logs|Development Logs]]<br />
<br />
== BRL-CAD Web Infrastructure Update ==<br />
* 80-char summary<br />
* Student: [[User:your_wiki_username|Your Name Here]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[User:your_wiki_username/GSoC2016/Project |Project Plan]]<br />
* [[User:your_wiki_username/GSoC2016/Logs|Development Logs]]<br />
<br />
== Form based script parameterization (needs better title) ==<br />
* 80-char summary<br />
* Student: [[User:your_wiki_username|Your Name Here]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[User:your_wiki_username/GSoC2016/Project |Project Plan]]<br />
* [[User:your_wiki_username/GSoC2016/Logs|Development Logs]]<br />
<br />
== GPGPU Support for Boolean Evaluation Used in Ray Tracing ==<br />
* 80-char summary<br />
* Student: [[User:your_wiki_username|Your Name Here]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[User:your_wiki_username/GSoC2016/Project |Project Plan]]<br />
* [[User:your_wiki_username/GSoC2016/Logs|Development Logs]]<br />
<br />
== LibreCAD 3 UI (needs better title) ==<br />
* 80-char summary<br />
* Student: [[User:your_wiki_username|Your Name Here]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[User:your_wiki_username/GSoC2016/Project |Project Plan]]<br />
* [[User:your_wiki_username/GSoC2016/Logs|Development Logs]]<br />
<br />
== LibreCAD V3 Evolvement++ (needs better title) ==<br />
* 80-char summary<br />
* Student: [[User:your_wiki_username|Your Name Here]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[User:your_wiki_username/GSoC2016/Project |Project Plan]]<br />
* [[User:your_wiki_username/GSoC2016/Logs|Development Logs]]<br />
<br />
== Online Geometry Viewer ==<br />
* 80-char summary<br />
* Student: [[User:your_wiki_username|Your Name Here]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[User:your_wiki_username/GSoC2016/Project |Project Plan]]<br />
* [[User:your_wiki_username/GSoC2016/Logs|Development Logs]]<br />
<br />
== Plate Mode NURBS raytracing ==<br />
* 80-char summary<br />
* Student: [[User:your_wiki_username|Your Name Here]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[User:your_wiki_username/GSoC2016/Project |Project Plan]]<br />
* [[User:your_wiki_username/GSoC2016/Logs|Development Logs]]<br />
<br />
== The FreeCAD Plugin Installer ==<br />
* <br />
The main idea is to implement a plugin manager for FreeCAD that will be used to install/remove/update plugins and other unofficial workbenches or modules and macros. Besides, this project will make the life of the FreeCAD developers, workbench authors as well as the end-user easier.<br />
* Student: [[User:mandeeps708|Mandeep Singh]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[User:Mandeeps708/gsoc_proposal |Project Plan]]<br />
* [http://mandeep7.wordpress.com Development Logs]</div>Mandeeps708https://brlcad.org/w/index.php?title=Google_Summer_of_Code/2016&diff=9626Google Summer of Code/20162016-05-05T02:57:49Z<p>Mandeeps708: /* The FreeCAD Plugin Installer summary */</p>
<hr />
<div>= GSoC 2016 With BRL-CAD =<br />
<br />
'''BRL-CAD was accepted as a [https://summerofcode.withgoogle.com mentoring organization] for the Google Summer of Code!'''<br />
<br />
We accepted '''9''' students that prepared quality proposals and demonstrated commitment, with details below for those students that were successful. As an umbrella org, several students were selected for associated orgs LibreCAD, OpenSCAD, and FreeCAD.<br />
<br />
= Accepted Projects =<br />
<br />
== Automatic Polygonal Mesh Healing ==<br />
* 80-char summary<br />
* Student: [[User:your_wiki_username|Your Name Here]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[User:your_wiki_username/GSoC2016/Project |Project Plan]]<br />
* [[User:your_wiki_username/GSoC2016/Logs|Development Logs]]<br />
<br />
== BRL-CAD Web Infrastructure Update ==<br />
* 80-char summary<br />
* Student: [[User:your_wiki_username|Your Name Here]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[User:your_wiki_username/GSoC2016/Project |Project Plan]]<br />
* [[User:your_wiki_username/GSoC2016/Logs|Development Logs]]<br />
<br />
== Form based script parameterization (needs better title) ==<br />
* 80-char summary<br />
* Student: [[User:your_wiki_username|Your Name Here]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[User:your_wiki_username/GSoC2016/Project |Project Plan]]<br />
* [[User:your_wiki_username/GSoC2016/Logs|Development Logs]]<br />
<br />
== GPGPU Support for Boolean Evaluation Used in Ray Tracing ==<br />
* 80-char summary<br />
* Student: [[User:your_wiki_username|Your Name Here]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[User:your_wiki_username/GSoC2016/Project |Project Plan]]<br />
* [[User:your_wiki_username/GSoC2016/Logs|Development Logs]]<br />
<br />
== LibreCAD 3 UI (needs better title) ==<br />
* 80-char summary<br />
* Student: [[User:your_wiki_username|Your Name Here]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[User:your_wiki_username/GSoC2016/Project |Project Plan]]<br />
* [[User:your_wiki_username/GSoC2016/Logs|Development Logs]]<br />
<br />
== LibreCAD V3 Evolvement++ (needs better title) ==<br />
* 80-char summary<br />
* Student: [[User:your_wiki_username|Your Name Here]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[User:your_wiki_username/GSoC2016/Project |Project Plan]]<br />
* [[User:your_wiki_username/GSoC2016/Logs|Development Logs]]<br />
<br />
== Online Geometry Viewer ==<br />
* 80-char summary<br />
* Student: [[User:your_wiki_username|Your Name Here]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[User:your_wiki_username/GSoC2016/Project |Project Plan]]<br />
* [[User:your_wiki_username/GSoC2016/Logs|Development Logs]]<br />
<br />
== Plate Mode NURBS raytracing ==<br />
* 80-char summary<br />
* Student: [[User:your_wiki_username|Your Name Here]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[User:your_wiki_username/GSoC2016/Project |Project Plan]]<br />
* [[User:your_wiki_username/GSoC2016/Logs|Development Logs]]<br />
<br />
== The FreeCAD Plugin Installer ==<br />
* <br />
The main idea is to implement a plugin manager for FreeCAD that will be used to install/remove/update plugins and other unofficial workbenches or modules and macros. Besides, this project will make the life of the FreeCAD developers, workbench authors as well as the end-user easier.<br />
* Student: [[User:mandeeps708|Mandeep Singh]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[User:Mandeeps708/gsoc_proposal |Project Plan]]<br />
* [[User:your_wiki_username/GSoC2016/Logs|Development Logs]]</div>Mandeeps708https://brlcad.org/w/index.php?title=Google_Summer_of_Code/2016&diff=9625Google Summer of Code/20162016-05-05T02:54:25Z<p>Mandeeps708: /* proposal */</p>
<hr />
<div>= GSoC 2016 With BRL-CAD =<br />
<br />
'''BRL-CAD was accepted as a [https://summerofcode.withgoogle.com mentoring organization] for the Google Summer of Code!'''<br />
<br />
We accepted '''9''' students that prepared quality proposals and demonstrated commitment, with details below for those students that were successful. As an umbrella org, several students were selected for associated orgs LibreCAD, OpenSCAD, and FreeCAD.<br />
<br />
= Accepted Projects =<br />
<br />
== Automatic Polygonal Mesh Healing ==<br />
* 80-char summary<br />
* Student: [[User:your_wiki_username|Your Name Here]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[User:your_wiki_username/GSoC2016/Project |Project Plan]]<br />
* [[User:your_wiki_username/GSoC2016/Logs|Development Logs]]<br />
<br />
== BRL-CAD Web Infrastructure Update ==<br />
* 80-char summary<br />
* Student: [[User:your_wiki_username|Your Name Here]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[User:your_wiki_username/GSoC2016/Project |Project Plan]]<br />
* [[User:your_wiki_username/GSoC2016/Logs|Development Logs]]<br />
<br />
== Form based script parameterization (needs better title) ==<br />
* 80-char summary<br />
* Student: [[User:your_wiki_username|Your Name Here]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[User:your_wiki_username/GSoC2016/Project |Project Plan]]<br />
* [[User:your_wiki_username/GSoC2016/Logs|Development Logs]]<br />
<br />
== GPGPU Support for Boolean Evaluation Used in Ray Tracing ==<br />
* 80-char summary<br />
* Student: [[User:your_wiki_username|Your Name Here]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[User:your_wiki_username/GSoC2016/Project |Project Plan]]<br />
* [[User:your_wiki_username/GSoC2016/Logs|Development Logs]]<br />
<br />
== LibreCAD 3 UI (needs better title) ==<br />
* 80-char summary<br />
* Student: [[User:your_wiki_username|Your Name Here]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[User:your_wiki_username/GSoC2016/Project |Project Plan]]<br />
* [[User:your_wiki_username/GSoC2016/Logs|Development Logs]]<br />
<br />
== LibreCAD V3 Evolvement++ (needs better title) ==<br />
* 80-char summary<br />
* Student: [[User:your_wiki_username|Your Name Here]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[User:your_wiki_username/GSoC2016/Project |Project Plan]]<br />
* [[User:your_wiki_username/GSoC2016/Logs|Development Logs]]<br />
<br />
== Online Geometry Viewer ==<br />
* 80-char summary<br />
* Student: [[User:your_wiki_username|Your Name Here]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[User:your_wiki_username/GSoC2016/Project |Project Plan]]<br />
* [[User:your_wiki_username/GSoC2016/Logs|Development Logs]]<br />
<br />
== Plate Mode NURBS raytracing ==<br />
* 80-char summary<br />
* Student: [[User:your_wiki_username|Your Name Here]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[User:your_wiki_username/GSoC2016/Project |Project Plan]]<br />
* [[User:your_wiki_username/GSoC2016/Logs|Development Logs]]<br />
<br />
== The FreeCAD Plugin Installer ==<br />
* 80-char summary<br />
* Student: [[User:mandeeps708|Mandeep Singh]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[User:Mandeeps708/gsoc_proposal |Project Plan]]<br />
* [[User:your_wiki_username/GSoC2016/Logs|Development Logs]]</div>Mandeeps708https://brlcad.org/w/index.php?title=Google_Summer_of_Code/2016&diff=9624Google Summer of Code/20162016-05-05T02:51:04Z<p>Mandeeps708: /* name*/</p>
<hr />
<div>= GSoC 2016 With BRL-CAD =<br />
<br />
'''BRL-CAD was accepted as a [https://summerofcode.withgoogle.com mentoring organization] for the Google Summer of Code!'''<br />
<br />
We accepted '''9''' students that prepared quality proposals and demonstrated commitment, with details below for those students that were successful. As an umbrella org, several students were selected for associated orgs LibreCAD, OpenSCAD, and FreeCAD.<br />
<br />
= Accepted Projects =<br />
<br />
== Automatic Polygonal Mesh Healing ==<br />
* 80-char summary<br />
* Student: [[User:your_wiki_username|Your Name Here]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[User:your_wiki_username/GSoC2016/Project |Project Plan]]<br />
* [[User:your_wiki_username/GSoC2016/Logs|Development Logs]]<br />
<br />
== BRL-CAD Web Infrastructure Update ==<br />
* 80-char summary<br />
* Student: [[User:your_wiki_username|Your Name Here]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[User:your_wiki_username/GSoC2016/Project |Project Plan]]<br />
* [[User:your_wiki_username/GSoC2016/Logs|Development Logs]]<br />
<br />
== Form based script parameterization (needs better title) ==<br />
* 80-char summary<br />
* Student: [[User:your_wiki_username|Your Name Here]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[User:your_wiki_username/GSoC2016/Project |Project Plan]]<br />
* [[User:your_wiki_username/GSoC2016/Logs|Development Logs]]<br />
<br />
== GPGPU Support for Boolean Evaluation Used in Ray Tracing ==<br />
* 80-char summary<br />
* Student: [[User:your_wiki_username|Your Name Here]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[User:your_wiki_username/GSoC2016/Project |Project Plan]]<br />
* [[User:your_wiki_username/GSoC2016/Logs|Development Logs]]<br />
<br />
== LibreCAD 3 UI (needs better title) ==<br />
* 80-char summary<br />
* Student: [[User:your_wiki_username|Your Name Here]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[User:your_wiki_username/GSoC2016/Project |Project Plan]]<br />
* [[User:your_wiki_username/GSoC2016/Logs|Development Logs]]<br />
<br />
== LibreCAD V3 Evolvement++ (needs better title) ==<br />
* 80-char summary<br />
* Student: [[User:your_wiki_username|Your Name Here]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[User:your_wiki_username/GSoC2016/Project |Project Plan]]<br />
* [[User:your_wiki_username/GSoC2016/Logs|Development Logs]]<br />
<br />
== Online Geometry Viewer ==<br />
* 80-char summary<br />
* Student: [[User:your_wiki_username|Your Name Here]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[User:your_wiki_username/GSoC2016/Project |Project Plan]]<br />
* [[User:your_wiki_username/GSoC2016/Logs|Development Logs]]<br />
<br />
== Plate Mode NURBS raytracing ==<br />
* 80-char summary<br />
* Student: [[User:your_wiki_username|Your Name Here]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[User:your_wiki_username/GSoC2016/Project |Project Plan]]<br />
* [[User:your_wiki_username/GSoC2016/Logs|Development Logs]]<br />
<br />
== The FreeCAD Plugin Installer ==<br />
* 80-char summary<br />
* Student: [[User:mandeeps708|Mandeep Singh]]<br />
* [https://summerofcode.withgoogle.com/dashboard/project/5901122497675264/overview/ Abstract]<br />
* [[User:your_wiki_username/GSoC2016/Project |Project Plan]]<br />
* [[User:your_wiki_username/GSoC2016/Logs|Development Logs]]</div>Mandeeps708https://brlcad.org/w/index.php?title=User:Mandeeps708/gsoc_proposal&diff=9614User:Mandeeps708/gsoc proposal2016-05-01T19:59:18Z<p>Mandeeps708: </p>
<hr />
<div>'''Name:''' Mandeep Singh<br />
<br />
'''IRC Nick:''' Mandeep_Singh<br />
<br />
'''Blog:''' '''https://mandeep7.wordpress.com'''<br />
<br />
'''GitHub Profile:''' '''https://github.com/mandeeps708'''<br />
<br />
'''Brief Background Information'''<br />
<br />
I am a final year B.Tech. student of Computer Science and Engineering at Guru Nanak Dev Engineering College, Ludhiana, India.<br />
<br />
I have always been passionate about programming. My work on various open source projects is briefed below:<br />
<br />
<ul><br />
<li><blockquote><p>''PyDrain-'' A project for automating drawing creation in DXF using dxfwrite library and calculating area of enclosed entities.</p></blockquote></li><br />
<li><blockquote><p>''Civil Octave-'' This project is used for the Analysis of Dynamics of Structures.</p></blockquote></li><br />
<li><blockquote><p>''Booking System:'' A Django based web-application for booking seminar halls.</p></blockquote></li><br />
<li><blockquote><p>I have experience of Image Processing using MATLAB.</p></blockquote></li><br />
<li><blockquote><p>Apart from this, I also have my profound interest in Web development and Shell Scripting. I did several mini projects for fun and learning.</p></blockquote></li></ul><br />
<br />
For more details about my work, you may refer my GitHub account:<br />
<br />
[https://github.com/mandeeps708 ''https://github.com/mandeeps708'']<br />
<br />
My knowledge of various open source technologies expands over<br />
<br />
<ul><br />
<li><blockquote><p>Python</p></blockquote></li><br />
<li><blockquote><p>Shell scripting</p></blockquote></li><br />
<li><blockquote><p>Web Technologies (HTML, CSS, JS)</p></blockquote></li><br />
<li><blockquote><p>Frameworks: Django, meteor.js, Bootstrap</p></blockquote></li><br />
<li><blockquote><p>CGI (Common Gateway Interface)</p></blockquote></li><br />
<li><blockquote><p>Databases: MySQL and MongoDB</p></blockquote></li><br />
<li><blockquote><p>LaTeX, Doxygen</p></blockquote></li><br />
<li><blockquote><p>Git, IRC and basic development workflow etc.</p></blockquote></li></ul><br />
<br />
= Project Information =<br />
<br />
= Project Title: The FreeCAD Plugin Installer =<br />
<br />
= Brief Project Summary =<br />
<br />
My main idea is to implement a plugin manager for FreeCAD that will be used to install/remove/update plugins and other unofficial workbenches or modules and macros. Besides, this project will make the life of the FreeCAD developers, workbench authors as well as the end-user easier.<br />
<br />
= Detailed Project Description =<br />
<br />
'''Current Scenario'''<br />
<br />
There are many plugins available for FreeCAD and developers are creating more. So the task for getting pull requests, managing and merging them becomes a tedious task. Quite similar is in the case of macros. And it also makes the code base of FreeCAD a bit more or like bloatware to be delivered to the end-user. Efforts have been done by the FreeCAD developers to separate the installation of plugins from the FreeCAD software itself.<br />
<br />
One has to do manual work for getting plugins installed on their system to be able to use them. So this project considers the issue and tends to implement an universal plugin manager that will manage the plugins and it will include the following:<br />
<br />
<ol style="list-style-type: decimal;"><br />
<li><blockquote><p>List all the plugins installed</p></blockquote></li><br />
<li><blockquote><p>Remove the installed plugins</p></blockquote></li><br />
<li><blockquote><p>Add new plugins locally/remotely</p></blockquote></li><br />
<li><blockquote><p>Plugin Compatibility Test</p></blockquote></li><br />
<li><blockquote><p>Update the plugins (basically git pull)</p></blockquote></li><br />
<li><blockquote><p>Enable/Disable the plugin</p></blockquote></li><br />
<li><blockquote><p>Adding Git support</p></blockquote></li><br />
<li><blockquote><p>Implementing Plugin details (identifier)</p></blockquote></li><br />
<li><blockquote><p>Package and dependencies resolver</p></blockquote></li></ol><br />
<br />
As FreeCAD is having many workbenches/macros fully coded in Python so they can be imported, without any necessity of compilation. As the plugins authors have to go through the painful (and somewhat lengthy) process of Pull Request on GitHub to get their code reviewed and accepted. This project focuses on making the same process rather easier to get the plugins working at the user’s end, so that user can integrate designs modules into their projects as a plug-in with ease. So the main idea is to present a simple, intuitive and interactive user interface.<br />
<br />
The problem with the existing system is that it’s currently using manual technique to get everything done i.e. it uses git submodules that have to be fetched manually every time a workbench/macro code is updated. Rather, it has to be automated.<br />
<br />
'''Project Goals'''<br />
<br />
<ol style="list-style-type: decimal;"><br />
<li><blockquote><p>'''''Better User Interface:''''' The main objective of the project is to helping the FreeCAD users to manage their plugins with simple user interface to make the overall user experience better. This product that will be delivered to the end user will include the UI such that he could manage the plugins with a few simple clicks.</p></blockquote></li></ol><br />
<br />
<blockquote>''''Implementation Process''''<br />
</blockquote><br />
<ol style="list-style-type: upper-alpha;"><br />
<li><blockquote><p>A menu item or a sub-item will be added to launch the plugin installer.</p></blockquote></li><br />
<li><blockquote><p>Then it will proceed to a new window (tabular based) which will show the plugins currently installed.</p></blockquote></li><br />
<li><blockquote><p>It can have a checkbox beside each plugin to select/deselect it.</p></blockquote></li><br />
<li><blockquote><p>There will be buttons like Enable/Disable, Remove (Uninstall) and Update etc. for plugins. After selecting a particular set of plugins, user will be able to click on a particular option (button) as specified above.</p></blockquote></li></ol><br />
<br />
Here is a prototype for the same:<br />
<br />
[[Image:image01.png]]<br />
<br />
<ol style="list-style-type: decimal;"><br />
<li><blockquote><p>'''''Getting list of installed workbenches and stored macros:''''' To get the list of installed workbenches and created macros, we will first look for the specific plugin directory which will be different for different operating systems. As FreeCAD is a cross-platform application, we may use something like environment variables or as suggested by the mentors. After getting listed all the available plugins, the plugin installer will show the details of the plugin like description, purpose of the plugin and some other information.</p></blockquote></li><br />
<li><blockquote><p>'''''Adding/Removing workbenches and macros:''''' After getting the list of installed plugins, the user will be able to add new plugins according to his requirements. It will allow the user to provide a link to the Git hosted repository and install that directly. On the back-end, it will clone the repository and place it in the appropriate directory. If it’s planned to use a particular repository for hosting the plugins, then what we can have is to scan (fetch) for that repository and list down the plugins for the user to choose from and install from the installer itself. For this to be implemented, we can request the repository and can get the json response of the available plugins on the repository and which later on can be filtered with the installed plugins.</p></blockquote></li><br />
<li><blockquote><p>'''''Plugin Compatibility Test:''''' The plugin authors can be suggested to create a particular file i.e. a “plugin detail file”. This file would contain a specific version of requirements e.g. Python version needed, version of FreeCAD needed. Even if some dependency is missed in the plugin detail file, the plugin installer will be able to detect the plugin and perform some tests already laid down to check compatibility. For example, this test may include a module that will check for the Python version. One approach could be that the tester module can try executing the plugin sub-module and get to know if it’s compatible or not. If it’s found to be incompatible, then it should revert the installation or in simpler words delete the particular plugin directory.</p></blockquote></li></ol><br />
<br />
The structure of the plugin directory may go like this. Suppose there is a main plugin directory i.e. ''/usr/lib/freecad/Mod/Plugins/'' and it contains two plugins “Plugin1” and “Plugin2”. Then each plugin will have some sub-directories (like images) or files (python modules). The tree structure will look like following:<br />
<br />
<blockquote>Plugins directory (/usr/lib/freecad/Mod/Plugins)<br />
<br />
|<br />
<br />
| - Plugin 1<br />
<br />
| | - File1<br />
<br />
| | - File2<br />
<br />
| | - File3<br />
<br />
| | - File 4<br />
<br />
| | - Plugin detail file<br />
<br />
|<br />
<br />
| - Plugin 2<br />
<br />
| | - Directory<br />
<br />
| | - File1<br />
<br />
| | - File2<br />
<br />
| | - File 3<br />
<br />
| | - Plugin detail file<br />
</blockquote><br />
Then the idea is to have a “Plugin detail file” that will reside in the plugin directory itself and will contain the following information:<br />
<br />
<ul><br />
<li><blockquote><p>Author Information</p></blockquote></li><br />
<li><blockquote><p>Plugin details like what the plugin is all about (description).</p></blockquote></li><br />
<li><blockquote><p>Path settings (like which file to load)</p></blockquote></li><br />
<li><blockquote><p>Dependencies details (like required Python and FreeCAD version) etc.</p></blockquote></li></ul><br />
<br />
So this is the file that will be looked for by the plugin installer.<br />
<br />
<ol style="list-style-type: decimal;"><br />
<li><blockquote><p>'''''Updates:''''' The user can set his preferences for the duration to check for updates for the already installed modules. As already described, the plugin installer will try connecting to the remote repository from where the plugins are to be fetched and check if it contains some updated code. If some update (git fetch) is detected, then the user may simply click on update and it will simply do the git pull.</p></blockquote></li><br />
<li><blockquote><p>'''''Adding Git support:''''' As discussed above, adding and updating plugins will be achieved using Git hosted repositories. So it will be essential to add Git support to make all those happen. On Linux and Mac, it’ll be pretty easier to set up git via some shell script. And for Windows, we can set up “git for Windows” ([https://git-for-windows.github.io/ ''https://git-for-windows.github.io'']) with the standalone (or portable) installer and then create a batch (.bat) file for setting it up. As “git for Windows” includes a program named “Git BASH” that includes bash shell and later configuration can be done in it.</p></blockquote></li><br />
<li><blockquote><p>'''''FreeCAD dependency tracking:''''' It’s good to be considered that some plugins depends on other plugins to be able to work correctly. As already discussed above, the plugin author will have a “Plugin detail file” in the plugin directory. That file will include the list of dependencies that needs to be resolved first. We can incorporate something like ''pypi'' or a plugin manager like ''bower'' such that plugin’s dependencies can be manageable.</p></blockquote></li></ol><br />
<br />
= Milestones =<br />
<br />
'''Community Bonding Period'''<br />
<br />
<ul><br />
<li><blockquote><p>Having interaction on Mailing list and IRC.</p></blockquote></li><br />
<li><blockquote><p>Get to know the code of FreeCAD and try solving some existing issues to get better understanding of the code.</p></blockquote></li><br />
<li><blockquote><p>Seeing the scope where we can reuse the existing code in an efficient manner</p></blockquote></li></ul><br />
<br />
'''23 May - 31 May'''<br />
<br />
<ul><br />
<li><blockquote><p>Understand the existing implementation of the plugin loader and Macro installer and reuse whatever is possible.</p></blockquote></li></ul><br />
<br />
'''1 June - 7 June'''<br />
<br />
<ul><br />
<li><blockquote><p>Write prototype (Qt window with basic widgets like buttons and scroll) code to list all the plugins installed.</p></blockquote></li><br />
<li><blockquote><p>Discuss the implementation with Organisation and getting reviews.</p></blockquote></li></ul><br />
<br />
'''8 June - 14 June'''<br />
<br />
<ul><br />
<li><blockquote><p>Integrating “Plugin detail list” with UI to implement “list all plugins” feature.</p></blockquote><br />
<ul><br />
<li><blockquote><p>Get data from “Plugin detail list” and show in the UI window the information like Author detail, plugin purpose and description etc.</p></blockquote></li></ul><br />
</li></ul><br />
<br />
'''15 June - 20 June'''<br />
<br />
<ul><br />
<li><blockquote><p>Setup Git and its integration with FreeCAD.</p></blockquote><br />
<ul><br />
<li>Making scripts for Linux and Mac (auto-detection of OS).<br />
</li><br />
<li>Making batch file for downloading, installing on Windows and use Git Bash to set up.<br />
</li></ul><br />
</li><br />
<li><blockquote><p>Add new plugins remotely using Git remote repository link.</p></blockquote></li><br />
<li><blockquote><p>Setup UI to show the fetched available plugins from GitHub (or any remote Git hosted) repository.</p></blockquote></li></ul><br />
<br />
'''21 June - 28 June'''<br />
<br />
<ul><br />
<li><blockquote><p>After getting the plugins listed on the UI, implementing the remove (Uninstall) plugins feature.</p></blockquote></li><br />
<li><blockquote><p>Testing and fixing found bugs</p></blockquote></li><br />
<li><blockquote><p>Documenting the code using Doxygen or any other recommended tool</p></blockquote></li><br />
<li><blockquote><p>Mid-term evaluation.</p></blockquote></li></ul><br />
<br />
'''29 June - 7 July'''<br />
<br />
<ul><br />
<li><blockquote><p>Implementing keyboard shortcuts for launching Plugin installer.</p></blockquote></li></ul><br />
<br />
<ul><br />
<li><blockquote><p>Document the code.</p></blockquote></li><br />
<li><blockquote><p>Adding Macros support</p></blockquote></li></ul><br />
<br />
'''8 July - 14 July'''<br />
<br />
<ul><br />
<li><blockquote><p>Plugin compatibility test</p></blockquote></li></ul><br />
<br />
'''15 July - 21 July'''<br />
<br />
<ul><br />
<li><blockquote><p>Working on feature Enabling/Disabling the plugin.</p></blockquote></li><br />
<li><blockquote><p>Prototype code for Update the plugins (basically git pull).</p></blockquote></li></ul><br />
<br />
'''22 July - 28 July'''<br />
<br />
<ul><br />
<li><blockquote><p>FreeCAD dependency tracking</p></blockquote><br />
<ul><br />
<li><blockquote><p>Integrating with plugin detail file</p></blockquote></li><br />
<li><blockquote><p>Adding support for plugin manager</p></blockquote></li></ul><br />
</li></ul><br />
<br />
'''29 July - 7 August'''<br />
<br />
<ul><br />
<li><blockquote><p>Brush Up the UI of plugin installer.</p></blockquote></li><br />
<li><blockquote><p>Discuss about the security concerns if we get some extra extra time.</p></blockquote></li></ul><br />
<br />
'''8 August-15 August'''<br />
<br />
<ul><br />
<li><blockquote><p>More testing and cleaning.</p></blockquote></li><br />
<li><blockquote><p>Writing user documentation for the project.</p></blockquote></li><br />
<li><blockquote><p>Time to make up for missed milestone (if any).</p></blockquote></li></ul><br />
<br />
'''16 August - 24 August'''<br />
<br />
<ul><br />
<li><blockquote><p>Cleaning and Testing code.</p></blockquote></li><br />
<li><blockquote><p>Final Evaluation</p></blockquote></li></ul><br />
<br />
= Time Availability =<br />
<br />
I will be available 40 hours / week, if needed can spend more. No restriction of time.<br />
<br />
= Why FreeCAD? =<br />
<br />
I have always been fascinated by operating of CAD softwares. This project got my interest. It will provide me a great opportunity to work on a realistic project in collaboration with great experienced developers.<br />
<br />
= Why you? =<br />
<br />
I found myself fit for this project according to my skill set and interest. I am very passionate to explore and learn new things. I understood well the workflow of this project. I want to work for FreeCAD organisation to gain more experience and enhance my knowledge about CAD. I will also be actively contributing and maintaining the code even after GSoC.</div>Mandeeps708https://brlcad.org/w/index.php?title=User:Mandeeps708/gsoc_proposal&diff=9613User:Mandeeps708/gsoc proposal2016-05-01T19:42:31Z<p>Mandeeps708: </p>
<hr />
<div>'''Name:''' Mandeep Singh<br />
<br />
'''IRC Nick:''' Mandeep_Singh<br />
<br />
'''Blog:''' '''https://mandeep7.wordpress.com'''<br />
<br />
'''GitHub Profile:''' '''https://github.com/mandeeps708'''<br />
<br />
'''Brief Background Information'''<br />
<br />
I am a final year B.Tech. student of Computer Science and Engineering at Guru Nanak Dev Engineering College, Ludhiana, India.<br />
<br />
I have always been passionate about programming. My work on various open source projects is briefed below:<br />
<br />
<ul><br />
<li><blockquote><p>''PyDrain-'' A project for automating drawing creation in DXF using dxfwrite library and calculating area of enclosed entities.</p></blockquote></li><br />
<li><blockquote><p>''Civil Octave-'' This project is used for the Analysis of Dynamics of Structures.</p></blockquote></li><br />
<li><blockquote><p>''Booking System:'' A Django based web-application for booking seminar halls.</p></blockquote></li><br />
<li><blockquote><p>I have experience of Image Processing using MATLAB.</p></blockquote></li><br />
<li><blockquote><p>Apart from this, I also have my profound interest in Web development and Shell Scripting. I did several mini projects for fun and learning.</p></blockquote></li></ul><br />
<br />
For more details about my work, you may refer my GitHub account:<br />
<br />
[https://github.com/mandeeps708 ''https://github.com/mandeeps708'']<br />
<br />
[https://github.com/amarjeetkapoor1 ]<br />
<br />
My knowledge of various open source technologies expands over<br />
<br />
<ul><br />
<li><blockquote><p>Python</p></blockquote></li><br />
<li><blockquote><p>Shell scripting</p></blockquote></li><br />
<li><blockquote><p>Web Technologies (HTML, CSS, JS)</p></blockquote></li><br />
<li><blockquote><p>Frameworks: Django, meteor.js, Bootstrap</p></blockquote></li><br />
<li><blockquote><p>CGI (Common Gateway Interface)</p></blockquote></li><br />
<li><blockquote><p>Databases: MySQL and MongoDB</p></blockquote></li><br />
<li><blockquote><p>LaTeX, Doxygen</p></blockquote></li><br />
<li><blockquote><p>Git, IRC and basic development workflow etc.</p></blockquote></li></ul><br />
<br />
= Project Information =<br />
<br />
= Project Title: The FreeCAD Plugin Installer =<br />
<br />
= Brief Project Summary =<br />
<br />
My main idea is to implement a plugin manager for FreeCAD that will be used to install/remove/update plugins and other unofficial workbenches or modules and macros. Besides, this project will make the life of the FreeCAD developers, workbench authors as well as the end-user easier.<br />
<br />
= Detailed Project Description =<br />
<br />
'''Current Scenario'''<br />
<br />
There are many plugins available for FreeCAD and developers are creating more. So the task for getting pull requests, managing and merging them becomes a tedious task. Quite similar is in the case of macros. And it also makes the code base of FreeCAD a bit more or like bloatware to be delivered to the end-user. Efforts have been done by the FreeCAD developers to separate the installation of plugins from the FreeCAD software itself.<br />
<br />
One has to do manual work for getting plugins installed on their system to be able to use them. So this project considers the issue and tends to implement an universal plugin manager that will manage the plugins and it will include the following:<br />
<br />
<ol style="list-style-type: decimal;"><br />
<li><blockquote><p>List all the plugins installed</p></blockquote></li><br />
<li><blockquote><p>Remove the installed plugins</p></blockquote></li><br />
<li><blockquote><p>Add new plugins locally/remotely</p></blockquote></li><br />
<li><blockquote><p>Plugin Compatibility Test</p></blockquote></li><br />
<li><blockquote><p>Update the plugins (basically git pull)</p></blockquote></li><br />
<li><blockquote><p>Enable/Disable the plugin</p></blockquote></li><br />
<li><blockquote><p>Adding Git support</p></blockquote></li><br />
<li><blockquote><p>Implementing Plugin details (identifier)</p></blockquote></li><br />
<li><blockquote><p>Package and dependencies resolver</p></blockquote></li></ol><br />
<br />
As FreeCAD is having many workbenches/macros fully coded in Python so they can be imported, without any necessity of compilation. As the plugins authors have to go through the painful (and somewhat lengthy) process of Pull Request on GitHub to get their code reviewed and accepted. This project focuses on making the same process rather easier to get the plugins working at the user’s end, so that user can integrate designs modules into their projects as a plug-in with ease. So the main idea is to present a simple, intuitive and interactive user interface.<br />
<br />
The problem with the existing system is that it’s currently using manual technique to get everything done i.e. it uses git submodules that have to be fetched manually every time a workbench/macro code is updated. Rather, it has to be automated.<br />
<br />
'''Project Goals'''<br />
<br />
<ol style="list-style-type: decimal;"><br />
<li><blockquote><p>'''''Better User Interface:''''' The main objective of the project is to helping the FreeCAD users to manage their plugins with simple user interface to make the overall user experience better. This product that will be delivered to the end user will include the UI such that he could manage the plugins with a few simple clicks.</p></blockquote></li></ol><br />
<br />
<blockquote>''''Implementation Process''''<br />
</blockquote><br />
<ol style="list-style-type: upper-alpha;"><br />
<li><blockquote><p>A menu item or a sub-item will be added to launch the plugin installer.</p></blockquote></li><br />
<li><blockquote><p>Then it will proceed to a new window (tabular based) which will show the plugins currently installed.</p></blockquote></li><br />
<li><blockquote><p>It can have a checkbox beside each plugin to select/deselect it.</p></blockquote></li><br />
<li><blockquote><p>There will be buttons like Enable/Disable, Remove (Uninstall) and Update etc. for plugins. After selecting a particular set of plugins, user will be able to click on a particular option (button) as specified above.</p></blockquote></li></ol><br />
<br />
Here is a prototype for the same:<br />
<br />
[[Image:image01.png]]<br />
<br />
<ol style="list-style-type: decimal;"><br />
<li><blockquote><p>'''''Getting list of installed workbenches and stored macros:''''' To get the list of installed workbenches and created macros, we will first look for the specific plugin directory which will be different for different operating systems. As FreeCAD is a cross-platform application, we may use something like environment variables or as suggested by the mentors. After getting listed all the available plugins, the plugin installer will show the details of the plugin like description, purpose of the plugin and some other information.</p></blockquote></li><br />
<li><blockquote><p>'''''Adding/Removing workbenches and macros:''''' After getting the list of installed plugins, the user will be able to add new plugins according to his requirements. It will allow the user to provide a link to the Git hosted repository and install that directly. On the back-end, it will clone the repository and place it in the appropriate directory. If it’s planned to use a particular repository for hosting the plugins, then what we can have is to scan (fetch) for that repository and list down the plugins for the user to choose from and install from the installer itself. For this to be implemented, we can request the repository and can get the json response of the available plugins on the repository and which later on can be filtered with the installed plugins.</p></blockquote></li><br />
<li><blockquote><p>'''''Plugin Compatibility Test:''''' The plugin authors can be suggested to create a particular file i.e. a “plugin detail file”. This file would contain a specific version of requirements e.g. Python version needed, version of FreeCAD needed. Even if some dependency is missed in the plugin detail file, the plugin installer will be able to detect the plugin and perform some tests already laid down to check compatibility. For example, this test may include a module that will check for the Python version. One approach could be that the tester module can try executing the plugin sub-module and get to know if it’s compatible or not. If it’s found to be incompatible, then it should revert the installation or in simpler words delete the particular plugin directory.</p></blockquote></li></ol><br />
<br />
The structure of the plugin directory may go like this. Suppose there is a main plugin directory i.e. ''/usr/lib/freecad/Mod/Plugins/'' and it contains two plugins “Plugin1” and “Plugin2”. Then each plugin will have some sub-directories (like images) or files (python modules). The tree structure will look like following:<br />
<br />
<blockquote>Plugins directory (/usr/lib/freecad/Mod/Plugins)<br />
<br />
|<br />
<br />
| - Plugin 1<br />
<br />
| | - File1<br />
<br />
| | - File2<br />
<br />
| | - File3<br />
<br />
| | - File 4<br />
<br />
| | - Plugin detail file<br />
<br />
|<br />
<br />
| - Plugin 2<br />
<br />
| | - Directory<br />
<br />
| | - File1<br />
<br />
| | - File2<br />
<br />
| | - File 3<br />
<br />
| | - Plugin detail file<br />
</blockquote><br />
Then the idea is to have a “Plugin detail file” that will reside in the plugin directory itself and will contain the following information:<br />
<br />
<ul><br />
<li><blockquote><p>Author Information</p></blockquote></li><br />
<li><blockquote><p>Plugin details like what the plugin is all about (description).</p></blockquote></li><br />
<li><blockquote><p>Path settings (like which file to load)</p></blockquote></li><br />
<li><blockquote><p>Dependencies details (like required Python and FreeCAD version) etc.</p></blockquote></li></ul><br />
<br />
So this is the file that will be looked for by the plugin installer.<br />
<br />
<ol style="list-style-type: decimal;"><br />
<li><blockquote><p>'''''Updates:''''' The user can set his preferences for the duration to check for updates for the already installed modules. As already described, the plugin installer will try connecting to the remote repository from where the plugins are to be fetched and check if it contains some updated code. If some update (git fetch) is detected, then the user may simply click on update and it will simply do the git pull.</p></blockquote></li><br />
<li><blockquote><p>'''''Adding Git support:''''' As discussed above, adding and updating plugins will be achieved using Git hosted repositories. So it will be essential to add Git support to make all those happen. On Linux and Mac, it’ll be pretty easier to set up git via some shell script. And for Windows, we can set up “git for Windows” ([https://git-for-windows.github.io/ ''https://git-for-windows.github.io'']) with the standalone (or portable) installer and then create a batch (.bat) file for setting it up. As “git for Windows” includes a program named “Git BASH” that includes bash shell and later configuration can be done in it.</p></blockquote></li><br />
<li><blockquote><p>'''''FreeCAD dependency tracking:''''' It’s good to be considered that some plugins depends on other plugins to be able to work correctly. As already discussed above, the plugin author will have a “Plugin detail file” in the plugin directory. That file will include the list of dependencies that needs to be resolved first. We can incorporate something like ''pypi'' or a plugin manager like ''bower'' such that plugin’s dependencies can be manageable.</p></blockquote></li></ol><br />
<br />
= Milestones =<br />
<br />
'''Community Bonding Period'''<br />
<br />
<ul><br />
<li><blockquote><p>Having interaction on Mailing list and IRC.</p></blockquote></li><br />
<li><blockquote><p>Get to know the code of FreeCAD and try solving some existing issues to get better understanding of the code.</p></blockquote></li><br />
<li><blockquote><p>Seeing the scope where we can reuse the existing code in an efficient manner</p></blockquote></li></ul><br />
<br />
'''23 May - 31 May'''<br />
<br />
<ul><br />
<li><blockquote><p>Understand the existing implementation of the plugin loader and Macro installer and reuse whatever is possible.</p></blockquote></li></ul><br />
<br />
'''1 June - 7 June'''<br />
<br />
<ul><br />
<li><blockquote><p>Write prototype (Qt window with basic widgets like buttons and scroll) code to list all the plugins installed.</p></blockquote></li><br />
<li><blockquote><p>Discuss the implementation with Organisation and getting reviews.</p></blockquote></li></ul><br />
<br />
'''8 June - 14 June'''<br />
<br />
<ul><br />
<li><blockquote><p>Integrating “Plugin detail list” with UI to implement “list all plugins” feature.</p></blockquote><br />
<ul><br />
<li><blockquote><p>Get data from “Plugin detail list” and show in the UI window the information like Author detail, plugin purpose and description etc.</p></blockquote></li></ul><br />
</li></ul><br />
<br />
'''15 June - 20 June'''<br />
<br />
<ul><br />
<li><blockquote><p>Setup Git and its integration with FreeCAD.</p></blockquote><br />
<ul><br />
<li>Making scripts for Linux and Mac (auto-detection of OS).<br />
</li><br />
<li>Making batch file for downloading, installing on Windows and use Git Bash to set up.<br />
</li></ul><br />
</li><br />
<li><blockquote><p>Add new plugins remotely using Git remote repository link.</p></blockquote></li><br />
<li><blockquote><p>Setup UI to show the fetched available plugins from GitHub (or any remote Git hosted) repository.</p></blockquote></li></ul><br />
<br />
'''21 June - 28 June'''<br />
<br />
<ul><br />
<li><blockquote><p>After getting the plugins listed on the UI, implementing the remove (Uninstall) plugins feature.</p></blockquote></li><br />
<li><blockquote><p>Testing and fixing found bugs</p></blockquote></li><br />
<li><blockquote><p>Documenting the code using Doxygen or any other recommended tool</p></blockquote></li><br />
<li><blockquote><p>Mid-term evaluation.</p></blockquote></li></ul><br />
<br />
'''29 June - 7 July'''<br />
<br />
<ul><br />
<li><blockquote><p>Implementing keyboard shortcuts for launching Plugin installer.</p></blockquote></li></ul><br />
<br />
<ul><br />
<li><blockquote><p>Document the code.</p></blockquote></li><br />
<li><blockquote><p>Adding Macros support</p></blockquote></li></ul><br />
<br />
'''8 July - 14 July'''<br />
<br />
<ul><br />
<li><blockquote><p>Plugin compatibility test</p></blockquote></li></ul><br />
<br />
'''15 July - 21 July'''<br />
<br />
<ul><br />
<li><blockquote><p>Working on feature Enabling/Disabling the plugin.</p></blockquote></li><br />
<li><blockquote><p>Prototype code for Update the plugins (basically git pull).</p></blockquote></li></ul><br />
<br />
'''22 July - 28 July'''<br />
<br />
<ul><br />
<li><blockquote><p>FreeCAD dependency tracking</p></blockquote><br />
<ul><br />
<li><blockquote><p>Integrating with plugin detail file</p></blockquote></li><br />
<li><blockquote><p>Adding support for plugin manager</p></blockquote></li></ul><br />
</li></ul><br />
<br />
'''29 July - 7 August'''<br />
<br />
<ul><br />
<li><blockquote><p>Brush Up the UI of plugin installer.</p></blockquote></li><br />
<li><blockquote><p>Discuss about the security concerns if we get some extra extra time.</p></blockquote></li></ul><br />
<br />
'''8 August-15 August'''<br />
<br />
<ul><br />
<li><blockquote><p>More testing and cleaning.</p></blockquote></li><br />
<li><blockquote><p>Writing user documentation for the project.</p></blockquote></li><br />
<li><blockquote><p>Time to make up for missed milestone (if any).</p></blockquote></li></ul><br />
<br />
'''16 August - 24 August'''<br />
<br />
<ul><br />
<li><blockquote><p>Cleaning and Testing code.</p></blockquote></li><br />
<li><blockquote><p>Final Evaluation</p></blockquote></li></ul><br />
<br />
= Time Availability =<br />
<br />
I will be available 40 hours / week, if needed can spend more. No restriction of time.<br />
<br />
= Why FreeCAD? =<br />
<br />
I have always been fascinated by operating of CAD softwares. This project got my interest. It will provide me a great opportunity to work on a realistic project in collaboration with great experienced developers.<br />
<br />
= Why you? =<br />
<br />
I found myself fit for this project according to my skill set and interest. I am very passionate to explore and learn new things. I understood well the workflow of this project. I want to work for FreeCAD organisation to gain more experience and enhance my knowledge about CAD. I will also be actively contributing and maintaining the code even after GSoC.</div>Mandeeps708https://brlcad.org/w/index.php?title=File:Image01.png&diff=9612File:Image01.png2016-05-01T19:39:03Z<p>Mandeeps708: Plugin installer freecad</p>
<hr />
<div>Plugin installer freecad</div>Mandeeps708https://brlcad.org/w/index.php?title=User:Mandeeps708&diff=9611User:Mandeeps7082016-05-01T19:20:16Z<p>Mandeeps708: </p>
<hr />
<div>= Personal Information =<br />
* Name: '''Mandeep Singh'''<br />
* IRC nickname (Freenode network): '''Mandeep_Singh'''<br />
* GitHub profile: '''[https://github.com/mandeeps708 mandeeps708]'''<br />
* Blog address: '''http://mandeep7.wordpress.com'''<br />
<br />
<br />
I am participating in GSoC 2016 under FreeCAD organization. Proposal link: http://brlcad.org/wiki/User:Mandeeps708/gsoc_proposal</div>Mandeeps708https://brlcad.org/w/index.php?title=User:Mandeeps708/gsoc_proposal&diff=9610User:Mandeeps708/gsoc proposal2016-05-01T19:18:24Z<p>Mandeeps708: proposal created using pandoc</p>
<hr />
<div>'''Name:''' Mandeep Singh<br />
<br />
'''IRC Nick:''' Mandeep_Singh<br />
<br />
'''Blog:''' '''https://mandeep7.wordpress.com'''<br />
<br />
'''GitHub Profile:''' '''https://github.com/mandeeps708'''<br />
<br />
'''Brief Background Information'''<br />
<br />
I am a final year B.Tech. student of Computer Science and Engineering at Guru Nanak Dev Engineering College, Ludhiana, India.<br />
<br />
I have always been passionate about programming. My work on various open source projects is briefed below:<br />
<br />
<ul><br />
<li><blockquote><p>''PyDrain-'' A project for automating drawing creation in DXF using dxfwrite library and calculating area of enclosed entities.</p></blockquote></li><br />
<li><blockquote><p>''Civil Octave-'' This project is used for the Analysis of Dynamics of Structures.</p></blockquote></li><br />
<li><blockquote><p>''Booking System:'' A Django based web-application for booking seminar halls.</p></blockquote></li><br />
<li><blockquote><p>I have experience of Image Processing using MATLAB.</p></blockquote></li><br />
<li><blockquote><p>Apart from this, I also have my profound interest in Web development and Shell Scripting. I did several mini projects for fun and learning.</p></blockquote></li></ul><br />
<br />
For more details about my work, you may refer my GitHub account:<br />
<br />
[https://github.com/mandeeps708 ''https://github.com/mandeeps708'']<br />
<br />
[https://github.com/amarjeetkapoor1 ]<br />
<br />
My knowledge of various open source technologies expands over<br />
<br />
<ul><br />
<li><blockquote><p>Python</p></blockquote></li><br />
<li><blockquote><p>Shell scripting</p></blockquote></li><br />
<li><blockquote><p>Web Technologies (HTML, CSS, JS)</p></blockquote></li><br />
<li><blockquote><p>Frameworks: Django, meteor.js, Bootstrap</p></blockquote></li><br />
<li><blockquote><p>CGI (Common Gateway Interface)</p></blockquote></li><br />
<li><blockquote><p>Databases: MySQL and MongoDB</p></blockquote></li><br />
<li><blockquote><p>LaTeX, Doxygen</p></blockquote></li><br />
<li><blockquote><p>Git, IRC and basic development workflow etc.</p></blockquote></li></ul><br />
<br />
= Project Information =<br />
<br />
= Project Title: The FreeCAD Plugin Installer =<br />
<br />
= Brief Project Summary =<br />
<br />
My main idea is to implement a plugin manager for FreeCAD that will be used to install/remove/update plugins and other unofficial workbenches or modules and macros. Besides, this project will make the life of the FreeCAD developers, workbench authors as well as the end-user easier.<br />
<br />
= Detailed Project Description =<br />
<br />
'''Current Scenario'''<br />
<br />
There are many plugins available for FreeCAD and developers are creating more. So the task for getting pull requests, managing and merging them becomes a tedious task. Quite similar is in the case of macros. And it also makes the code base of FreeCAD a bit more or like bloatware to be delivered to the end-user. Efforts have been done by the FreeCAD developers to separate the installation of plugins from the FreeCAD software itself.<br />
<br />
One has to do manual work for getting plugins installed on their system to be able to use them. So this project considers the issue and tends to implement an universal plugin manager that will manage the plugins and it will include the following:<br />
<br />
<ol style="list-style-type: decimal;"><br />
<li><blockquote><p>List all the plugins installed</p></blockquote></li><br />
<li><blockquote><p>Remove the installed plugins</p></blockquote></li><br />
<li><blockquote><p>Add new plugins locally/remotely</p></blockquote></li><br />
<li><blockquote><p>Plugin Compatibility Test</p></blockquote></li><br />
<li><blockquote><p>Update the plugins (basically git pull)</p></blockquote></li><br />
<li><blockquote><p>Enable/Disable the plugin</p></blockquote></li><br />
<li><blockquote><p>Adding Git support</p></blockquote></li><br />
<li><blockquote><p>Implementing Plugin details (identifier)</p></blockquote></li><br />
<li><blockquote><p>Package and dependencies resolver</p></blockquote></li></ol><br />
<br />
As FreeCAD is having many workbenches/macros fully coded in Python so they can be imported, without any necessity of compilation. As the plugins authors have to go through the painful (and somewhat lengthy) process of Pull Request on GitHub to get their code reviewed and accepted. This project focuses on making the same process rather easier to get the plugins working at the user’s end, so that user can integrate designs modules into their projects as a plug-in with ease. So the main idea is to present a simple, intuitive and interactive user interface.<br />
<br />
The problem with the existing system is that it’s currently using manual technique to get everything done i.e. it uses git submodules that have to be fetched manually every time a workbench/macro code is updated. Rather, it has to be automated.<br />
<br />
'''Project Goals'''<br />
<br />
<ol style="list-style-type: decimal;"><br />
<li><blockquote><p>'''''Better User Interface:''''' The main objective of the project is to helping the FreeCAD users to manage their plugins with simple user interface to make the overall user experience better. This product that will be delivered to the end user will include the UI such that he could manage the plugins with a few simple clicks.</p></blockquote></li></ol><br />
<br />
<blockquote>''''Implementation Process''''<br />
</blockquote><br />
<ol style="list-style-type: upper-alpha;"><br />
<li><blockquote><p>A menu item or a sub-item will be added to launch the plugin installer.</p></blockquote></li><br />
<li><blockquote><p>Then it will proceed to a new window (tabular based) which will show the plugins currently installed.</p></blockquote></li><br />
<li><blockquote><p>It can have a checkbox beside each plugin to select/deselect it.</p></blockquote></li><br />
<li><blockquote><p>There will be buttons like Enable/Disable, Remove (Uninstall) and Update etc. for plugins. After selecting a particular set of plugins, user will be able to click on a particular option (button) as specified above.</p></blockquote></li></ol><br />
<br />
Here is a prototype for the same:<br />
<br />
[[Image:media/image01.png]]<br />
<br />
<ol style="list-style-type: decimal;"><br />
<li><blockquote><p>'''''Getting list of installed workbenches and stored macros:''''' To get the list of installed workbenches and created macros, we will first look for the specific plugin directory which will be different for different operating systems. As FreeCAD is a cross-platform application, we may use something like environment variables or as suggested by the mentors. After getting listed all the available plugins, the plugin installer will show the details of the plugin like description, purpose of the plugin and some other information.</p></blockquote></li><br />
<li><blockquote><p>'''''Adding/Removing workbenches and macros:''''' After getting the list of installed plugins, the user will be able to add new plugins according to his requirements. It will allow the user to provide a link to the Git hosted repository and install that directly. On the back-end, it will clone the repository and place it in the appropriate directory. If it’s planned to use a particular repository for hosting the plugins, then what we can have is to scan (fetch) for that repository and list down the plugins for the user to choose from and install from the installer itself. For this to be implemented, we can request the repository and can get the json response of the available plugins on the repository and which later on can be filtered with the installed plugins.</p></blockquote></li><br />
<li><blockquote><p>'''''Plugin Compatibility Test:''''' The plugin authors can be suggested to create a particular file i.e. a “plugin detail file”. This file would contain a specific version of requirements e.g. Python version needed, version of FreeCAD needed. Even if some dependency is missed in the plugin detail file, the plugin installer will be able to detect the plugin and perform some tests already laid down to check compatibility. For example, this test may include a module that will check for the Python version. One approach could be that the tester module can try executing the plugin sub-module and get to know if it’s compatible or not. If it’s found to be incompatible, then it should revert the installation or in simpler words delete the particular plugin directory.</p></blockquote></li></ol><br />
<br />
The structure of the plugin directory may go like this. Suppose there is a main plugin directory i.e. ''/usr/lib/freecad/Mod/Plugins/'' and it contains two plugins “Plugin1” and “Plugin2”. Then each plugin will have some sub-directories (like images) or files (python modules). The tree structure will look like following:<br />
<br />
<blockquote>Plugins directory (/usr/lib/freecad/Mod/Plugins)<br />
<br />
|<br />
<br />
| - Plugin 1<br />
<br />
| | - File1<br />
<br />
| | - File2<br />
<br />
| | - File3<br />
<br />
| | - File 4<br />
<br />
| | - Plugin detail file<br />
<br />
|<br />
<br />
| - Plugin 2<br />
<br />
| | - Directory<br />
<br />
| | - File1<br />
<br />
| | - File2<br />
<br />
| | - File 3<br />
<br />
| | - Plugin detail file<br />
</blockquote><br />
Then the idea is to have a “Plugin detail file” that will reside in the plugin directory itself and will contain the following information:<br />
<br />
<ul><br />
<li><blockquote><p>Author Information</p></blockquote></li><br />
<li><blockquote><p>Plugin details like what the plugin is all about (description).</p></blockquote></li><br />
<li><blockquote><p>Path settings (like which file to load)</p></blockquote></li><br />
<li><blockquote><p>Dependencies details (like required Python and FreeCAD version) etc.</p></blockquote></li></ul><br />
<br />
So this is the file that will be looked for by the plugin installer.<br />
<br />
<ol style="list-style-type: decimal;"><br />
<li><blockquote><p>'''''Updates:''''' The user can set his preferences for the duration to check for updates for the already installed modules. As already described, the plugin installer will try connecting to the remote repository from where the plugins are to be fetched and check if it contains some updated code. If some update (git fetch) is detected, then the user may simply click on update and it will simply do the git pull.</p></blockquote></li><br />
<li><blockquote><p>'''''Adding Git support:''''' As discussed above, adding and updating plugins will be achieved using Git hosted repositories. So it will be essential to add Git support to make all those happen. On Linux and Mac, it’ll be pretty easier to set up git via some shell script. And for Windows, we can set up “git for Windows” ([https://git-for-windows.github.io/ ''https://git-for-windows.github.io'']) with the standalone (or portable) installer and then create a batch (.bat) file for setting it up. As “git for Windows” includes a program named “Git BASH” that includes bash shell and later configuration can be done in it.</p></blockquote></li><br />
<li><blockquote><p>'''''FreeCAD dependency tracking:''''' It’s good to be considered that some plugins depends on other plugins to be able to work correctly. As already discussed above, the plugin author will have a “Plugin detail file” in the plugin directory. That file will include the list of dependencies that needs to be resolved first. We can incorporate something like ''pypi'' or a plugin manager like ''bower'' such that plugin’s dependencies can be manageable.</p></blockquote></li></ol><br />
<br />
= Milestones =<br />
<br />
'''Community Bonding Period'''<br />
<br />
<ul><br />
<li><blockquote><p>Having interaction on Mailing list and IRC.</p></blockquote></li><br />
<li><blockquote><p>Get to know the code of FreeCAD and try solving some existing issues to get better understanding of the code.</p></blockquote></li><br />
<li><blockquote><p>Seeing the scope where we can reuse the existing code in an efficient manner</p></blockquote></li></ul><br />
<br />
'''23 May - 31 May'''<br />
<br />
<ul><br />
<li><blockquote><p>Understand the existing implementation of the plugin loader and Macro installer and reuse whatever is possible.</p></blockquote></li></ul><br />
<br />
'''1 June - 7 June'''<br />
<br />
<ul><br />
<li><blockquote><p>Write prototype (Qt window with basic widgets like buttons and scroll) code to list all the plugins installed.</p></blockquote></li><br />
<li><blockquote><p>Discuss the implementation with Organisation and getting reviews.</p></blockquote></li></ul><br />
<br />
'''8 June - 14 June'''<br />
<br />
<ul><br />
<li><blockquote><p>Integrating “Plugin detail list” with UI to implement “list all plugins” feature.</p></blockquote><br />
<ul><br />
<li><blockquote><p>Get data from “Plugin detail list” and show in the UI window the information like Author detail, plugin purpose and description etc.</p></blockquote></li></ul><br />
</li></ul><br />
<br />
'''15 June - 20 June'''<br />
<br />
<ul><br />
<li><blockquote><p>Setup Git and its integration with FreeCAD.</p></blockquote><br />
<ul><br />
<li>Making scripts for Linux and Mac (auto-detection of OS).<br />
</li><br />
<li>Making batch file for downloading, installing on Windows and use Git Bash to set up.<br />
</li></ul><br />
</li><br />
<li><blockquote><p>Add new plugins remotely using Git remote repository link.</p></blockquote></li><br />
<li><blockquote><p>Setup UI to show the fetched available plugins from GitHub (or any remote Git hosted) repository.</p></blockquote></li></ul><br />
<br />
'''21 June - 28 June'''<br />
<br />
<ul><br />
<li><blockquote><p>After getting the plugins listed on the UI, implementing the remove (Uninstall) plugins feature.</p></blockquote></li><br />
<li><blockquote><p>Testing and fixing found bugs</p></blockquote></li><br />
<li><blockquote><p>Documenting the code using Doxygen or any other recommended tool</p></blockquote></li><br />
<li><blockquote><p>Mid-term evaluation.</p></blockquote></li></ul><br />
<br />
'''29 June - 7 July'''<br />
<br />
<ul><br />
<li><blockquote><p>Implementing keyboard shortcuts for launching Plugin installer.</p></blockquote></li></ul><br />
<br />
<ul><br />
<li><blockquote><p>Document the code.</p></blockquote></li><br />
<li><blockquote><p>Adding Macros support</p></blockquote></li></ul><br />
<br />
'''8 July - 14 July'''<br />
<br />
<ul><br />
<li><blockquote><p>Plugin compatibility test</p></blockquote></li></ul><br />
<br />
'''15 July - 21 July'''<br />
<br />
<ul><br />
<li><blockquote><p>Working on feature Enabling/Disabling the plugin.</p></blockquote></li><br />
<li><blockquote><p>Prototype code for Update the plugins (basically git pull).</p></blockquote></li></ul><br />
<br />
'''22 July - 28 July'''<br />
<br />
<ul><br />
<li><blockquote><p>FreeCAD dependency tracking</p></blockquote><br />
<ul><br />
<li><blockquote><p>Integrating with plugin detail file</p></blockquote></li><br />
<li><blockquote><p>Adding support for plugin manager</p></blockquote></li></ul><br />
</li></ul><br />
<br />
'''29 July - 7 August'''<br />
<br />
<ul><br />
<li><blockquote><p>Brush Up the UI of plugin installer.</p></blockquote></li><br />
<li><blockquote><p>Discuss about the security concerns if we get some extra extra time.</p></blockquote></li></ul><br />
<br />
'''8 August-15 August'''<br />
<br />
<ul><br />
<li><blockquote><p>More testing and cleaning.</p></blockquote></li><br />
<li><blockquote><p>Writing user documentation for the project.</p></blockquote></li><br />
<li><blockquote><p>Time to make up for missed milestone (if any).</p></blockquote></li></ul><br />
<br />
'''16 August - 24 August'''<br />
<br />
<ul><br />
<li><blockquote><p>Cleaning and Testing code.</p></blockquote></li><br />
<li><blockquote><p>Final Evaluation</p></blockquote></li></ul><br />
<br />
= Time Availability =<br />
<br />
I will be available 40 hours / week, if needed can spend more. No restriction of time.<br />
<br />
= Why FreeCAD? =<br />
<br />
I have always been fascinated by operating of CAD softwares. This project got my interest. It will provide me a great opportunity to work on a realistic project in collaboration with great experienced developers.<br />
<br />
= Why you? =<br />
<br />
I found myself fit for this project according to my skill set and interest. I am very passionate to explore and learn new things. I understood well the workflow of this project. I want to work for FreeCAD organisation to gain more experience and enhance my knowledge about CAD. I will also be actively contributing and maintaining the code even after GSoC.</div>Mandeeps708https://brlcad.org/w/index.php?title=User:Mandeeps708&diff=9608User:Mandeeps7082016-05-01T17:59:38Z<p>Mandeeps708: </p>
<hr />
<div>= Personal Information =<br />
* Name: '''Mandeep Singh'''<br />
* IRC nickname (Freenode network): '''Mandeep_Singh'''<br />
* GitHub profile: '''[https://github.com/mandeeps708 mandeeps708]'''<br />
* Blog address: '''http://mandeep7.wordpress.com'''<br />
<br />
<br />
I am participating in GSoC 2016 under FreeCAD organization.</div>Mandeeps708https://brlcad.org/w/index.php?title=User:Mandeeps708&diff=9607User:Mandeeps7082016-05-01T17:51:08Z<p>Mandeeps708: personal info</p>
<hr />
<div>= Personal Information =<br />
* Name: '''Mandeep Singh'''<br />
* IRC nickname (Freenode network): '''Mandeep_Singh'''<br />
* GitHub profile: '''[https://github.com/mandeeps708 mandeeps708]'''<br />
* Blog address: '''http://mandeep7.wordpress.com'''</div>Mandeeps708https://brlcad.org/w/index.php?title=User_talk:Mandeeps708&diff=9606User talk:Mandeeps7082016-05-01T17:31:03Z<p>Mandeeps708: /* hi */ new section</p>
<hr />
<div>Welcome,<br />
<br />
I am Mandeep Singh from India. I am GSoC 2016 participant for FreeCAD community.<br />
<br />
== Hello Mandeep ==<br />
<br />
Hello mandeep, How are you !<br />
Glad to see you here<br />
<br />
== hi ==<br />
<br />
I am fine. Experimenting with this talk! :P</div>Mandeeps708https://brlcad.org/w/index.php?title=User_talk:Mandeeps708&diff=9603User talk:Mandeeps7082016-05-01T17:17:26Z<p>Mandeeps708: added info</p>
<hr />
<div>Welcome,<br />
<br />
I am Mandeep Singh from India. I am GSoC 2016 participant for FreeCAD community.</div>Mandeeps708