Ticket #5559 - Splitting FreeCAD up in to smaller packages

Here's the place for discussion related to coding in FreeCAD, C++ or Python. Design, interfaces and structures.
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
JMG
Posts: 287
Joined: Wed Dec 25, 2013 9:32 am
Location: Spain
Contact:

Re: Splitting FreeCAD up in to smaller packages

Post by JMG »

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
User avatar
yorik
Founder
Posts: 13642
Joined: Tue Feb 17, 2009 9:16 pm
Location: Brussels
Contact:

Re: Splitting FreeCAD up in to smaller packages

Post by yorik »

This is indeed an interesting discussion...
abdullah wrote: Mon May 29, 2017 5:32 pm all pure python modules could still have its separate repo, with their specific read/write rights, and STILL be a git sub-module of the FreeCAD repo. This regards only development. Distribution can still be an "all-in-one".
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...
looo wrote: Mon May 29, 2017 5:52 pm a simple step towards this idea is to have 3rd-party modules included in the freecad-organisation on github. Also some unmaintained dependencies should get a place at the freecad-organization...
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.
wmayer wrote: Tue May 30, 2017 3:31 pm ... so that a user can only install the stuff he is really interested in. Then we can also have a meta-package freecad which depends on all freecad sub-packages.
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...
User avatar
Kunda1
Veteran
Posts: 13434
Joined: Thu Jan 05, 2017 9:03 pm

Re: Splitting FreeCAD up in to smaller packages

Post by Kunda1 »

yorik wrote: Wed May 31, 2017 3:57 pm
looo wrote: Mon May 29, 2017 5:52 pm a simple step towards this idea is to have 3rd-party modules included in the freecad-organisation on github. Also some unmaintained dependencies should get a place at the freecad-organization...
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.
FYI I think it's possible to pin repositories on the FreeCAD org github page.
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
triplus
Veteran
Posts: 9471
Joined: Mon Dec 12, 2011 4:45 pm

Re: Splitting FreeCAD up in to smaller packages

Post by triplus »

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?
User avatar
sgrogan
Veteran
Posts: 6499
Joined: Wed Oct 22, 2014 5:02 pm

Re: Splitting FreeCAD up in to smaller packages

Post by sgrogan »

wmayer wrote: Tue May 30, 2017 3:31 pm All what it is about is that on Debian/Ubuntu we have a monolithic package with many dependencies and that it should be split
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"
User avatar
yorik
Founder
Posts: 13642
Joined: Tue Feb 17, 2009 9:16 pm
Location: Brussels
Contact:

Re: Splitting FreeCAD up in to smaller packages

Post by yorik »

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! :mrgreen: ) 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?
User avatar
looo
Veteran
Posts: 3941
Joined: Mon Nov 11, 2013 5:29 pm

Re: Splitting FreeCAD up in to smaller packages

Post by looo »

I think that is a good plan.

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 "
abdullah
Veteran
Posts: 4935
Joined: Sun May 04, 2014 3:16 pm
Contact:

Re: Splitting FreeCAD up in to smaller packages

Post by abdullah »

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! :mrgreen: ) 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?
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!
triplus
Veteran
Posts: 9471
Joined: Mon Dec 12, 2011 4:45 pm

Re: Splitting FreeCAD up in to smaller packages

Post by triplus »

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.
User avatar
yorik
Founder
Posts: 13642
Joined: Tue Feb 17, 2009 9:16 pm
Location: Brussels
Contact:

Re: Splitting FreeCAD up in to smaller packages

Post by yorik »

looo wrote: Thu Jun 01, 2017 2:44 pmJust tried to move my pivy fork to FreeCAD. But I am not allowed to do so:
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.
Post Reply