|
[Sponsors] |
April 27, 2017, 20:36 |
Why is there not 'One OpenFOAM'?
|
#1 |
Senior Member
Pete Bachant
Join Date: Jun 2012
Location: Boston, MA
Posts: 173
Rep Power: 14 |
Having only started using OpenFOAM in 2013, I don't really know much of the history of why it became so fragmented. So, why is there not "One OpenFOAM?"
It seems to me that the ideal situation would be a single core codebase with additional solvers, utilities, models, wrappers, GUIs, available as extensions on top of that. Commercial proprietary stuff, or even all the cool things in foam-extend could be packaged as apps or libraries to plug into the "One OpenFOAM," instead of carrying around the entire (massive) codebase. If a certain player or company needed, e.g., an access function added to a certain class, they would propose that change to the core version. Of course, the maintainer of the core codebase would need to be flexible and willing to let the community have a say in the direction of the project. Each player in the OpenFOAM community maintaining an entire fork is analogous to every Linux distribution maintaining its own fork of the kernel. It's especially unfortunate that most OpenFOAM forks don't share the same Git history, so automatic merging or cherry-picking between them isn't possible--new code or bugfixes have to be copy/pasted, which is inefficient, not fun, and could even introduce new bugs. What do you think? Is it even a worthwhile goal to have one OpenFOAM, and if so, how could we get there? |
|
April 28, 2017, 14:15 |
|
#2 |
Senior Member
|
Hi,
1. You should add forgotten (TM) to every OpenFOAM mention So there could not be 'One OpenFOAM', cause you have to change name. Let's call it OurPrecious. 2. Behind OurPrecious there should be a person. Let's call it Project Leader. Project leaders of OpenFOAM(TM), foam-extend, etc are the reason for all these forks. So who will be consolidating person? 3. Who will pay for further development of OurPrecious? Donations? Current business-scheme is either 1. Introduce new things, 2. Train people, 3. PROFIT!!!, or 1. Break old API, 2. Present it as new things, 3. Train people, 4. PROFIT!!! 4. Who will define development directions? Community is rather vague thing (and usually has a problem with explication of its desires). And these questions are just a tip of the iceberg. |
|
May 1, 2017, 10:46 |
|
#3 | ||||||
Retired Super Moderator
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,981
Blog Entries: 45
Rep Power: 128 |
Greetings to all!
@Pete: I've updated the title of the thread to the question you made in the post, to make it easier to understand the context of the thread and to avoid the collision with a possible future thread where this has already been sorted out... I have so much I would like to write here to answer to your questions, but I'll try to keep it short and to the point. Quote:
The usage of the GNU General Public License enabled this to happen, for better or for worse, because even if forking can have its toll on the community, it still gives us the ability to choose from the existing forks to do the tasks we have at hand. In addition, I have yet to find a public and official document from the GNU Foundation that states all of the steps that need to be taken to create a fork of an open source code project. Quote:
And as Alexey points out, one of the issues has usually been related to funding. If we do take the Linux Kernel project as a gold standard of reference for open source projects for comparison, here is the Linux Kernel project in a nutshell:
I would like to write about the inception of the "OpenFOAM project", how it started and the problems it faced, but I would need clearance from all of the intervening parties about what I could write and make public, even if the majority is already public information, so... I'll focus instead on the future and what is really necessary to get things going forward towards the goal that a lot of people in the community has been asking for. Quote:
Either way, each long term release Linux Distribution has to maintain its own branch of the kernel, which extends for so long that it can end up looking more like a fork than a branch. Quote:
My objective with this was to figure out how the code evolved over time and what came from where and how it evolved. Sometime later, I created a repository for covering the versions that were not released in Git form here: https://github.com/wyldckat/OpenFOAM-combo-pre15x/ - the code there is in a revised form, since the first official releases had third-party code mixed around inside the directory trees, which was revised over time in the following releases. Either way, the current development trees at the OpenFOAM Foundation and at ESI-OpenCFD do share a backbone (even if not perfect), so it should be easier to go back and forth in the trees/branches between them. Going to the foam-extend trees ("-dev" and "-ext" in this context refers to the forked versions):
The problem is that then evolving through the git history all the way up to 2.3.x or even 4.x, is not at all practical, because there have been a massive number of changes that would still require so many changes to the code, that it's more practical to work on individual chunks of code and adapt it. Quote:
The way I see it, the first step is hopefully already ongoing, namely with the OpenFOAM user conferences there has been discussions regarding on how to proceed with bringing code from foam-extend to OpenFOAM-plus. I have no idea how things are going on right now on that side, but I do see the ESI-OpenCFD maintained community repository as a step towards that: http://openfoam.com/community/repository.php If and/or once the code and features from foam-extend are brought to OpenFOAM-plus and/or community repositories, the experience gained there will help shape how the next step should be taken, namely how these repositories will interact with the developments released by the OpenFOAM Foundation. Most likely, the shape will be similar to what Pete wrote, e.g.: Quote:
I believe that I've lost a few trains of thought in the paragraphs above, but for now I'll wrap it up at this point. Best regards, Bruno |
|||||||
May 1, 2017, 20:28 |
|
#4 |
Senior Member
Pete Bachant
Join Date: Jun 2012
Location: Boston, MA
Posts: 173
Rep Power: 14 |
I would not argue that the Linux kernel is the gold standard of modern collaborative software development! I guess it works for such a huge project, but for something as tiny as OpenFOAM, the barriers to entry need to be as low as possible. Being mean and picky like Linus is a good way to ensure beginners stay away. "Beggars can't be choosers."
It does seem that ESI is poised to unify OpenFOAM, given they are now based on the Foundation version, but developing on a registration-required GitLab instance is a slight hindrance. It's interesting that foam-extend seems to have broken off over a copyright issue, whereas I assumed it was over a disagreement over software design. Is it really true that the GPL can't be enforced by an individual or informal group of individuals--an organization is required? Is it possible that with multiple copyright holders some might choose to not enforce the GPL? |
|
May 28, 2017, 17:53 |
|
#5 | |||||
Retired Super Moderator
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,981
Blog Entries: 45
Rep Power: 128 |
Hi Pete,
Sorry for the delay: Quote:
Quote:
When the divide occurred back in late 2014, I was actually expecting that OpenCFD-ESI would have made their enterprise builds only open source to clients, but fortunately they are keeping the source code available to the public and for free, along with getting closer to the community... so in contrast to what it could have been, the registration requirement doesn't look like a problem to me. But I haven't yet seem a bug report on they issue tracker requesting for it to be made public! So if no one asks politely, then it's likely it will stay as-is. Quote:
For example, somewhere in this forum is a thread discussing back in 2004 or 2005 how the packages could be provided at SF.net... found it: Download Bandwidth This should at least give you a glimpse to how the original resource/infrastructure was back then. Another good thread on this overall topic, including on how people could contribute: Roadmap for new releases Quote:
Some years ago I did some (re)search into this and here is a quick list of what I found as examples on how contributions should be legally done:
There a pros and cons with each legal strategy. Among some worst case scenarios is to imagine yourself in a situation where your own open source project is put into a tight spot because of a contribution done some 5 years ago by someone who currently is no where to be found, and is being contested by some weird company that came out of nowhere and claims it had the copyright to the code or some patent built into the code that is either older or newer than the code on your project itself... The first step would be to contact the FSF to learn what to do and get legal counselling, but try to imagine for yourself what you would need to do next?! Either way, for small projects, we usually don't need to sweat the legal details. But for bigger projects, specially those related to some existing commercial enterprises, things can get tricky. Look up "Busybox" and the legal defences they've had to do in the past. Best regards, Bruno |
||||||
May 29, 2017, 15:46 |
|
#6 |
Senior Member
Cyprien
Join Date: Feb 2010
Location: Stanford University
Posts: 299
Rep Power: 18 |
The next OF workshop is sponsored both by OpenCFD and Wikki. Sounds like a big step forward to unify OpenFOAM versions. I guess that we can expect that at least two of the three main forks will merge in a near future. Am I right?
Last edited by Cyp; June 2, 2017 at 16:37. |
|
June 3, 2017, 13:54 |
|
#7 | |
Retired Super Moderator
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,981
Blog Entries: 45
Rep Power: 128 |
Quote:
Nonetheless, I am hoping we can start seeing what have they been up to since last year, during this year's OFW12. And yes, OpenCFD being an official sponsor is already a very big step! Unfortunately I will unlikely be attending this year's workshop, so I won't be able to give any news on this myself , so I'm counting on those attending to let us know on the forum! |
||
November 11, 2022, 09:24 |
|
#8 |
Member
Lourenço SM
Join Date: Jul 2014
Location: Lisboa, Portugal
Posts: 41
Rep Power: 12 |
I think it's improtant for users interested in this topic to read the following thread:
OpenFOAM.com versus OpenFOAM.org: Which version to use? |
|
Tags |
community, efficiency, forks, fragmentation |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Frequently Asked Questions about Installing OpenFOAM | wyldckat | OpenFOAM Installation | 3 | November 14, 2023 12:58 |
OpenFOAM Foundation releases OpenFOAM® 3.0.0 | CFDFoundation | OpenFOAM Announcements from OpenFOAM Foundation | 1 | November 7, 2015 16:16 |
OpenFOAM Foundation Releases OpenFOAM v2.3.0 | opencfd | OpenFOAM Announcements from OpenFOAM Foundation | 3 | December 23, 2014 04:43 |
Suggestion for a new sub-forum at OpenFOAM's Forum | wyldckat | Site Help, Feedback & Discussions | 20 | October 28, 2014 10:04 |
64bitrhel5 OF installation instructions | mirko | OpenFOAM Installation | 2 | August 12, 2008 19:07 |