3 ms·
It is difficult to assume good faith in your comment. Of course the parent has heard of libraries. It is sad to see they are being downvoted because they are qu
by ludocode 5y ago
It is difficult to assume good faith in your comment. Of course the parent has heard of libraries. It is sad to see they are being downvoted because they are quite correct.
In any professional project I've ever worked on, the compiler version has been strictly controlled. The entire team must use the same version of Visual Studio, or Xcode, or the JDK, or the Android build tools or whatever. You don't just let your developers upgrade whenever they want. Upgrading the build tools is an involved process that must be coordinated with the release cycle. All new warnings need to be fixed, all CI nodes need to be upgraded at once, scripts and metadata need fixes to work with the new tools, etc.
You are only approaching this issue from the perspective of open source software. That is not most software. The parent is correct: the compiler version is a dependency of your project and, in any serious development team, should be fixed for the whole team.
- 4ad 5y agoAh, yes, so a "professional team" is one where 1. the deliverable are binaries (as opposed to source code), and which 2. is not open source. I get it.
- strenholme 5y agoThe article we’re linking to very specifically asks open source software to use -Werror. They’re saying we should just have a Dockerfile, and force people to use Docker to compile an open source application, which is a rather disingenuous solution: Dockerfiles can only run Linux, and there’s a lot more than Linux out there (FreeBSD, etc.) There was a time my open source project was running on Solaris, MacOS X, Linux (multiple distros), and Windows. Making something run only on Docker is a little restrictive by comparison.
- 4ad 5y agoYeah, although in reality the OSS angle is kind of moot. There can only be one party in control of dependencies. If there is more than one party involved in the development of a product, only the downstream consumer can be in charge of dependencies. This happens all the time with closed source projects too, it's not specific to OSS. There is a difference between being a leaf and a node in a tree of producers and consumers.
- strenholme 5y agoThanks for your reply. With OSS, the exact compiler and build toolchain varies from user to user, so good OSS code tries to be as easy as possible to compile, i.e. avoid -Werror or anything else that deliberately stops compiling.
- 4ad 5y agoOf course, the GP tries to instill the idea that open source is not "professional" when in fact in OSS you will see far more variation in development practices and deployment practices than in closed source world. It's a strict superset.
- ghostwriter 5y agouse Nix instead of Docker, if platform support is your only concern. It also solves the issue with "good OSS code tries to be as easy as possible to compile" that you mention below.