From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on ip-172-31-65-14.ec2.internal X-Spam-Level: X-Spam-Status: No, score=-1.9 required=3.0 tests=BAYES_00,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 Path: eternal-september.org!reader01.eternal-september.org!aioe.org!jZx/Q+kdiL77ae9fVFKMdg.user.46.165.242.91.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: yet another Ada web site? Date: Thu, 13 Oct 2022 08:58:16 +0200 Organization: Aioe.org NNTP Server Message-ID: References: <8635bxht60.fsf@stephe-leake.org> <12faec32-1572-4df5-af28-be1c41083b9cn@googlegroups.com> <861qrch9j1.fsf@stephe-leake.org> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Info: gioia.aioe.org; logging-data="29233"; posting-host="jZx/Q+kdiL77ae9fVFKMdg.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org"; User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.13.1 X-Notice: Filtered by postfilter v. 0.9.2 Content-Language: en-US Xref: reader01.eternal-september.org comp.lang.ada:64494 List-Id: On 2022-10-13 02:06, Stephen Leake wrote: > Paul Jarrett writes: > >>> The main problem with that stuff is usually architectural. Most of it is >> plain aggregation of source code, which is utterly wrong. >>> >>> The very idea to rebuild everything each time on each client is >>> atrocious both with regard of wasting computing resources as well as >>> testing, safety, consistency, interoperability inside the target. > > Actually, it's better for consistency; that's why Alire does it. Consistency is easier to enforce on pre-built deployments, obviously. Moreover libraries usually provide integrated checks and/or have some target platform policy, e.g. naming and placement conventions. > I don't understand what you mean by "testing" here; how does compiling > from source affect testing? Because one can run tests on pre-built packages impossible to run on the sources. For example, network/hardware protocols. In order to test a protocol implementation one needs complex mock setups the client simply does not have. Such tests may run for many hours etc. > Same for "interoperability". See above. You cannot run integration tests on the client, it is just silly. >> I've seen inconsistencies in builds when developers who rely on the >> system libraries (installed by things like apt) join the project at >> different times -- the earliest developers might be on libfoo-1.2 >> whereas newer developers are on libfoo-1.4. You don't run into this >> problem if the repo points to the applicable dependencies and everyone >> builds everything locally. No difference whether deployment is in source or pre-built. Dependencies must be enforced regardless. However is far easier to do with pre-built packages. > More precisely, an Alire crate can specify precisely which version of > each dependency it requires/is compatible with. It seems so. Multiple versions at once are not supported. E.g. when you are working on two projects both dependent on different versions of another project: B -> A.1 C -> A.2 Or even the same project, e.g. when doing some migration from one version to another. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de