Replies: 5 comments 7 replies
-
No worries for me. Will this result in a change to all the cmake files? Will the synthaxe be easier to read? Out of curiosity, have you discussed switching to the Bazel build tool (https://bazel.build/), which is supposedly used extensively at SpaceX and is much more readable/simple? |
Beta Was this translation helpful? Give feedback.
-
The only downside to requiring a more recent CMake version is that other projects that depend on F' will be forced to upgrade their CMake version. This can be resolved with a CMake update unless an update is not possible. I can't think of any immediate cases where a CMake update is not possible. I vote in favor of the update. |
Beta Was this translation helpful? Give feedback.
-
This is indeed an upgrade. The syntax does become quite cleaner and more expressive. It also comes with many bug fixes that allow us to further reduce workarounds in our system. |
Beta Was this translation helpful? Give feedback.
-
I want to push back on this a little bit. I don't think it makes any sense to arbitrarily move the required version forward, but if I am reading @LeStarch 's reply correctly then this would come with updates to the build system that leverage features in the newer cmake versions. Having a scenario where advanced users can roll back the stated cmake version and have it work is confusing. I personally do not like the "install an updated version of cmake" justification, because it tends to make it harder for new developers to get started, and annoying for advanced developers to help newbies get started. Obviously if somebody needs to develop on an ancient system, then they are on their own to set up the development environment. It is critical that F Prime not be difficult to get started, so long as the goal is to grow the community and get traction with a user base. As such, I think it makes sense to consider what reasonable development environments might look like. I DO NOT like referencing "security" via a hand-wave as a justification to upgrade a dependency, and cmake is definitely a dependency because there are no pre-compiled F Prime programs that are available for end-user use. If security is the concern, there should be specific justifications, e.g. pointers to particular CVE or known problems in a changelog, that is used as a justification for security concern. Actively maintained linux platforms will have software that has been patched for the latest security concerns anyway. In the case that a developer is working in an air-gapped environment, pulling in extra dependencies that are not provided by the pre-packaged repositories has a tendency to add an annoying burden to the developer. This brings me to point where I will suggest a path forward. I think it is prudent to support common, actively maintained versions of Linux. My particular interest is Ubuntu, where there are currently 2 LTS releases. Bionic Beaver LTS is supported until April of 2023, and Xenial has been recently dropped. Therefore, the version 3.10 as found in Bionic seems like a logical version to support. I believe that a good future:tm: would include packaged versions of F Prime as a library that are installable via the operating system's package manager. This isn't something that the F Prime team should be expected to do themselves, but if the team is cognizant of the difficulties that a package maintainer might encounter (e.g. the requirement to depend only on other packaged versions of software available to the system) then the difficulties of such a package maintainer would be much reduced. If the F Prime team does decide that my logic is valuable, it might be worth codifying the approach in a developer notes file that is consulted when decisions of this nature are being made at the next version release. Please, spar with me, let us make the future of F Prime better together! |
Beta Was this translation helpful? Give feedback.
-
All, thanks for the feedback. I have decided to do the minimal bump to 3.13 for now. I think this will make it clearer, we are bumping to this version because of XYZ. In this case, see the above link to a discussion of the bug fix we need. |
Beta Was this translation helpful? Give feedback.
-
F´ users, as some of you may know, we are diligently working towards a v3.0.0 release with new tooling! As part of this effort we'd like to bump the minimum CMake version from 3.5 to 3.16.
3.16+ is consistent with the Ubuntu 20.04+ package for the CMake install. This puts us inline with the latest Ubuntu LTS release. Other systems can still download the CMake from the CMake website and install via their packages.
Are there any use cases in the community that cannot be accommodated by a CMake install or LTS package install of cmake 3.16+? Please keep in mind, at some point we will be forced to upgrade for security and stability reasons.
Many thanks!
Beta Was this translation helpful? Give feedback.
All reactions