Draft for mail about ci

L. E. Segovia amy at amyspark.me
Fri Mar 10 11:23:24 GMT 2023


Hi again Ingo,

On 09/03/2023 19:12, Ingo Klöcker wrote:
> On Donnerstag, 9. März 2023 22:21:19 CET L. E. Segovia wrote:
>> Based on the previous emails, it seems a key item wasn't covered:
>>
>> 6) Local builds with 3rdparty deps (replica CI environment)
>>
>>      * uses our custom deps built from 3rdparty folder
>>      * can be rebuilt locally
>>
>> Now, I'm totally unfamiliar with Craft's rationale and how it works, so
>> I have three questions coming from my own experience tinkering with
>> 3rdparty.
>>
>> - Ben had told me, if I'm not mistaken, about make DESTDIR being the
>> workhorse of Craft. I know that CMake may disallow it it in Windows:
>> https://cmake.org/cmake/help/latest/envvar/DESTDIR.html. So, does Craft
>> work with Windows dependencies, whether MSVC or Clang?
> 
> I'm not sure I understand the question. Craft was originally developed to 
> build KDE application on Windows and it works very well with MSVC 2019. It 
> works equally well with MinGW. I don't know anything about builds with Clang 
> on Windows.

For an example, if I can get e.g. the <insert number here> ZIPs that
comprise our dependencies, unpack them all into
C:/Projects/krita/msvc/install, and once I point VS Code's CMake Tools
to that folder, it will configure and build Krita without further
intervention. (Our build.cmd script is able to set such an environment
up today.)

> 
>> - Does KDE sysadmin allow external retrieval of the packages for a
>> developer environment? If so, what's the procedure to recreate it using
>> Craft?
> 
> The Craft cache is available for everyone, i.e. in particular for locally 
> running builds with Craft. Using Craft is really easy once it's set up. 
> (Setting it up is also pretty easy.) https://community.kde.org/Craft
> 
>> - Does Craft require a certain directory layout? In other words, does it
>> support relocatable dependencies outside of Unix-based operating systems?
> 
> Again, I'm not sure I understand what you mean. Since Craft was developed for 
> Windows builds originally, I assume that the answer to your second question is 
> yes. Craft builds all dependencies individually. For the application and all 
> dependencies so called blue prints (written in Python) describe where to find 
> the sources, what the dependencies are, and how to build it.

Same as above, I'm concerned about hidden hardcoded path requirements
that'll only trigger once the modules are unpacked in a personalized
location. Those can be evaded with DLL lookup paths on Windows, but
given that CMake and pkgconfig modules sometimes hardcode them, it can
cause a configuration failure in the first place.

> 
> By the way, the semi-automatic (via manual GitLab jobs) publication of the 
> builds on app stores, e.g. Microsoft Store, is also part of the full GitLab 
> CI/CD story. See
> https://blogs.kde.org/2023/01/16/neochat-published-microsoft-store.
> 
> Regards,
> Ingo

-- 
amyspark 🌸 https://www.amyspark.me


More information about the kimageshop mailing list