Ticket #5559 - Splitting FreeCAD up in to smaller packages
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Be nice to others! Respect the FreeCAD code of conduct!
Re: Splitting FreeCAD up in to smaller packages
Reference to similar discusion in the past: https://forum.freecadweb.org/viewtopic. ... 4&start=20
FreeCAD scripts, animations, experiments and more: http://linuxforanengineer.blogspot.com.es/
Open source CNC hot wire cutter project (NiCr): https://github.com/JMG1/NiCr
Exploded Assembly Workbench: https://github.com/JMG1/ExplodedAssembly
Open source CNC hot wire cutter project (NiCr): https://github.com/JMG1/NiCr
Exploded Assembly Workbench: https://github.com/JMG1/ExplodedAssembly
Re: Splitting FreeCAD up in to smaller packages
This is indeed an interesting discussion...
Yes this is something really worth consideration. We could indeed use git submodules more in that regard. I could actually use Arch as a test case... This would give a lot of interesting possibilities, such as having different git access permissions for different submodules...
I would have no problems with that. But each addon owner needs to request that, and they will loose total power over their work (others will be able to add collaborators or merge PR without their consent). So it might not be everybody who wants it. Also, the freecad org github page will become a big thing where it is hard to navigate, but that is not a big problem I guess, who goes to that page anyway.
That is true, but then it's more the package maintainers of each distribution to decide. But, maybe we could, somehow, mark workbenches that could be taken out of the core package, and suggest 3rd-part WBs to be part of such a package, to facilitate their work if needed? In the current built-in workbenches, the only ones that could be separated are Arch, Material (not sure this one shouldn't stay in core anyway...), OpenSCAD, Plot and Ship...
Re: Splitting FreeCAD up in to smaller packages
FYI I think it's possible to pin repositories on the FreeCAD org github page.yorik wrote: ↑Wed May 31, 2017 3:57 pmI would have no problems with that. But each addon owner needs to request that, and they will loose total power over their work (others will be able to add collaborators or merge PR without their consent). So it might not be everybody who wants it. Also, the freecad org github page will become a big thing where it is hard to navigate, but that is not a big problem I guess, who goes to that page anyway.
Alone you go faster. Together we go farther
Please mark thread [Solved]
Want to contribute back to FC? Checkout:
'good first issues' | Open TODOs and FIXMEs | How to Help FreeCAD | How to report Bugs
Please mark thread [Solved]
Want to contribute back to FC? Checkout:
'good first issues' | Open TODOs and FIXMEs | How to Help FreeCAD | How to report Bugs
Re: Splitting FreeCAD up in to smaller packages
And what are the real and oppressing issues we are currently having by following the big monolithic bundle approach? Long workbench list in selector by default. In short is that it or is there more to it?
Re: Splitting FreeCAD up in to smaller packages
I think the dependencies are the issue. For pure python stuff it won't make much difference but for example Plot is a roughly 1.5 MB but pulls in matplotlib that pulls in numpy which on my system are combined about 32 MB.
FEM used to be a big one because it pulled in VTK, which itself is a big monolithic package. With the upgrade of SMESH VTK is now a dependency of MeshPart as well. For the pure python stuff I don't think anything would be needed, everything could be done in the .deb folder and the python modules would work like the addons do in the FreeCAD Community PPA. Of course some would like it all so we would also need a metapackage that installed everything.
Personally if the C++ aren't plugable then it's not worth the effort.
I think separate from the original ticket, Yorik's idea is interesting to have split permissions on the repo to lighten the load on the main developers.
"fight the good fight"
Re: Splitting FreeCAD up in to smaller packages
Leaving the packaging issue aside, I think we can already decide this:
Any addon owner who wishes to transfer his/her addon to the FreeCAD org github page, just ask me and we will do it. We will then add that person as a member of the FreeCAD org so he/she can continues his/her work as before (will have write access only to his/her addon, not to the rest of the FreeCAD code). The ownership/copyright of the code continues his/her as before, no change will be made. The only difference is that we (FreeCAD org admins) will have the power to accept pull requests, and to give write access to other people. Addon authors can choose to continue using github tools (wiki and issue tracker), or (better! ) start using the FreeCAD wiki and tracker (we'll create new workbench categories there if needed).
How about that? I think it would be a good start, no?
Any addon owner who wishes to transfer his/her addon to the FreeCAD org github page, just ask me and we will do it. We will then add that person as a member of the FreeCAD org so he/she can continues his/her work as before (will have write access only to his/her addon, not to the rest of the FreeCAD code). The ownership/copyright of the code continues his/her as before, no change will be made. The only difference is that we (FreeCAD org admins) will have the power to accept pull requests, and to give write access to other people. Addon authors can choose to continue using github tools (wiki and issue tracker), or (better! ) start using the FreeCAD wiki and tracker (we'll create new workbench categories there if needed).
How about that? I think it would be a good start, no?
Re: Splitting FreeCAD up in to smaller packages
I think that is a good plan.
Just tried to move my pivy fork to FreeCAD. But I am not allowed to do so:
Just tried to move my pivy fork to FreeCAD. But I am not allowed to do so:
"You don’t have the permission to create repositories on FreeCAD "
Re: Splitting FreeCAD up in to smaller packages
This is a very very very very very good idea IMO. It reduces the chances of isolation and increases the chances of project continuity. It is indeed great. Thanks!yorik wrote: ↑Thu Jun 01, 2017 1:31 pm Leaving the packaging issue aside, I think we can already decide this:
Any addon owner who wishes to transfer his/her addon to the FreeCAD org github page, just ask me and we will do it. We will then add that person as a member of the FreeCAD org so he/she can continues his/her work as before (will have write access only to his/her addon, not to the rest of the FreeCAD code). The ownership/copyright of the code continues his/her as before, no change will be made. The only difference is that we (FreeCAD org admins) will have the power to accept pull requests, and to give write access to other people. Addon authors can choose to continue using github tools (wiki and issue tracker), or (better! ) start using the FreeCAD wiki and tracker (we'll create new workbench categories there if needed).
How about that? I think it would be a good start, no?
Re: Splitting FreeCAD up in to smaller packages
In addition some amount of well done work made outside FreeCAD code repository should in the future propagate inside FreeCAD code repository.
P.S. Likely in the form of standalone Python based FreeCAD commands.
P.S. Likely in the form of standalone Python based FreeCAD commands.
Re: Splitting FreeCAD up in to smaller packages
Ok, I just did some changes on the teams on the github FreeCAD org page. We now have two teams:
- "Core Developers", which contains Jürgen, Werner and me, who have write access to everything
- "Developers" which contains everybody who already had access to one of the sub projects (Parts Library, etc). They have write access to all the subprojects (Parts Library, Macros library, Examples). @looo, I just added you to that group. Normally it allows anybody in that group to create new repos on the FreeCAD org page, and therefore to transfer own repos to there. Please test if it works correctly, not sure I did it right.
- Some people (sgrogan, bblacey etc) also have special permission to access & manage the Release files or the homebrew stuff. This is done individualy when required.
Anybody who wish to be added to the "Developers" group to transfer an addon there, just ask me.