Creating a new repo for development environments (maybe CI as well)

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!
Post Reply
fruitful
Posts: 5
Joined: Wed Dec 07, 2022 5:45 pm
Contact:

Creating a new repo for development environments (maybe CI as well)

Post by fruitful »

Hi Everyone,

I'm new to the forum and to FreeCAD development so please go easy on me. So this is half introduction and half new topic that I have not seen on this forum yet.

I've done a bit of research in the forum and on github but have seen questions around this topic and different commits regarding builds but nothing specific like this, but please enlighten me.

I am wondering if it might be beneficial to create a separate repo called FreeCAD-Build that would contain the build systems for Conda, Docker, LXD, Vagrant, Mac, Windows, Linux, Portable and who else knows what'll popup.

This idea is under the assumption that FreeCAD is envisioned as a major player on the 3D Parametric scene.

With that assumption/belief in mind a few deductions arise; and a few reasons why I believe this change would be beneficial:


1. Companies looking to invest time and effort integrating FreeCAD into their systems will likely want LTS releases such as Blender currently does.

2. FreeCAD LTS will need bug fixing and testing and updates and as a developer you will likely want to be able to switch between builds quickly and efficently.

3. Dependencies across FreeCAD distros, and environments, because of the LTS cycle will make FreeCAD build development just as heavy as FreeCAD itself. This might create a bloated FreeCAD repo over time that would be hard to manage and I forsee this separation happening eventually. I believe it might be better to start early before even FreeCAD 1.0 so that the git histories can remain as clean as possible.


I have taken a very timid first step towards this direction with my repo at https://github.com/FruitfulSystems/FreeCAD-Dev.

I'm only focused on docker, and probably for a few months more, until I get docker well tuned. I will then move onto conda build systems.

My original plan was to PR into tools/build currently in FreeCAD when finished, but I actually can't figure out how to create a build system that could build multiple FreeCAD versions in one machine if that build system is inside the FreeCAD repo of the "current" version.

If I'm on the wrong track here let me know. Would the community think about separating these two domains repo wise?
Last edited by fruitful on Sat Dec 10, 2022 3:24 am, edited 4 times in total.
GeneFC
Veteran
Posts: 5373
Joined: Sat Mar 19, 2016 3:36 pm
Location: Punta Gorda, FL

Re: Seperation of Church and State

Post by GeneFC »

Please change the subject to something descriptive.

This one is absurd.

Gene
User avatar
adrianinsaval
Veteran
Posts: 5551
Joined: Thu Apr 05, 2018 5:15 pm

Re: Seperation of Church and State

Post by adrianinsaval »

Most of the build environments stuff is already separate, there is https://github.com/FreeCAD/FreeCAD-snap and the related https://github.com/FreeCAD/freecad-deps-core20-snap, https://github.com/flathub/org.freecadweb.FreeCAD, https://github.com/FreeCAD/homebrew-freecad, https://github.com/FreeCAD/FreeCAD-LibPack, http://github.com/FreeCAD/FreeCAD-Bundle and the related https://github.com/looooo/freecad-feedstock (and other related repos as submodules at https://github.com/FreeCAD/FreeCAD_Conda but I don't know if this is up to date) and there was a previous attempt to put docker stuff in another repo: https://github.com/FreeCAD/Docker but it failed miserably as it seems nobody paid attention to it so eventually docker stuff made it's way back into the main repo https://github.com/FreeCAD/FreeCAD/pull/4893 but that also is probably rotting away there.
fruitful
Posts: 5
Joined: Wed Dec 07, 2022 5:45 pm
Contact:

Re: Seperation of Church and State

Post by fruitful »

GeneFC wrote: Wed Dec 07, 2022 7:56 pm Please change the subject to something descriptive.

This one is absurd.

Gene
Yeah I guess it is, but it was meant to be funny and I like it. Unless I'm violating a rule I don't know about, but the post was approved.
fruitful
Posts: 5
Joined: Wed Dec 07, 2022 5:45 pm
Contact:

Re: Seperation of Church and State

Post by fruitful »

adrianinsaval wrote: Wed Dec 07, 2022 7:57 pm Most of the build environments stuff is already separate
This begs the question for me then who is in charge of the FreeCAD repo structure on github? Or what the repo management process looks like within the community. I've seen the FreeCAD org chart and I don't see it, though I see a section on package maintainers which is blank essentially. I would assume it's a group effort of the freecad administrators mentioned but doesn't specify if one is the designated contactee.

I feel that at some point some sort of cleanup effort might be fruitful, on the tertiary repos floating under FreeCAD org, seeing as FreeCAD is technically not even 1.0.

edit: This post was really helpful in seeing what the state of these build systems are. Thank you @adrianinsaval and yes I can see that they are semi setup and some are rotting away. Is there an agreed upon testing process for build systems for development purposes? or is the current focus and concern per release, only that the binary runs on Linux, Windows, MacOS?
User avatar
adrianinsaval
Veteran
Posts: 5551
Joined: Thu Apr 05, 2018 5:15 pm

Re: Seperation of Church and State

Post by adrianinsaval »

fruitful wrote: Wed Dec 07, 2022 10:01 pm Is there an agreed upon testing process for build systems for development purposes? or is the current focus and concern per release, only that the binary runs on Linux, Windows, MacOS?
I'm not sure what you mean here, we have CI setup and I guess the environments for those are our baseline (github CI env, gitlab CI env) and here we list our minimum supported versions for some important libraries: FreeCAD_1.0_Development_Cycle beyond that you can try to build in the environment you want and ask for help if something doesn't work, if it can be fixed it usually gets fixed within a reasonable span of time, IMO it is important that we have people building and testing in different systems so we can report when one of those platforms has issues.
The repos I linked in my previous post with the exception of the (dead) docker one are all focused on building and distributing freecad binaries for different platforms.
fruitful
Posts: 5
Joined: Wed Dec 07, 2022 5:45 pm
Contact:

Re: Seperation of Church and State (Builds and Code)

Post by fruitful »

I guess I will just start with docker and move on from there. Once I have that established then maybe Ill revisit and repost and hopefully it will make more sense and be more actionable instead of sounding like a feature request.
GeneFC
Veteran
Posts: 5373
Joined: Sat Mar 19, 2016 3:36 pm
Location: Punta Gorda, FL

Re: Seperation of Church and State

Post by GeneFC »

fruitful wrote: Wed Dec 07, 2022 9:51 pm Yeah I guess it is, but it was meant to be funny and I like it. Unless I'm violating a rule I don't know about, but the post was approved.
There are no rules about such things.

However, consider this.

The forum is a repository for answers to many questions. We often suggest that users search the forum to find detailed prior discussions of various issues.

How useful would you expect your "hilarious" subject to be?

Your choice; you can be helpful or not. :roll:

Gene
fruitful
Posts: 5
Joined: Wed Dec 07, 2022 5:45 pm
Contact:

Re: Seperation of Church and State (Builds and Code)

Post by fruitful »

I get your points and I adjusted my view and the subject line after your first reply. I think it's both descriptive and true to my own personality now.

But if not then I'm willing to accept the consequenses that come with it, and hopefully the post is still useful and additive to the community at large.

The ancient proverb of "Judge not a post by it's header" comes to mind.
GeneFC
Veteran
Posts: 5373
Joined: Sat Mar 19, 2016 3:36 pm
Location: Punta Gorda, FL

Re: Seperation of Church and State (Builds and Code)

Post by GeneFC »

fruitful wrote: Thu Dec 08, 2022 3:44 pm The ancient proverb of "Judge not a post by it's header" comes to mind.
Not to beat an already dead horse one more time, this has nothing to do with "judging". It is completely about making the forum as useful as possible.

We get new posts almost every day with a title of "Help", or "I am an idiot", or "Everyone else is an idiot." Sometimes there is a good discussion that follows, and the topic could be useful for future reference. With a meaningless title it will never be found.

Gene
Post Reply