-
-
Notifications
You must be signed in to change notification settings - Fork 53
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Move libzim CD from kiwix-build to this repo #818
Comments
There is few things which had lead to the current situation. They can be regroup in only one category: Dependencies. Inter dependenciesWe have dependencies between our projects. At the time (travisCI), it was simply not possible. With github action, this would evolve a set of workflow triggers (we have to carefully define). So the solution was to have kiwix-build to build every night all the projects ( External dependencies(This is not really the subject of this issue, but while I am explaining "everything", let's speak about it also). So we need a way to compile all this dependencies and use the precompiled dependencies. The original role of kiwix-build.kiwix-build is a meta tools to help build other projects. [You could argue that the CI is already dependent of kiwix-build as it download the dependencies build by kiwix-build. The current CI in libzim is:
The current role of the CI.The current CI is used to test that the PR is ok. Release and publicationWe want to publish our releases only when we are sure that all our projects are ok. (kiwix-build is bugged on this point as it publish libzim as soon as it has made the archive, without compiling other projects. This is why we have publish a broken libkiwix recently. But it is a bug in kiwix-build) ConclusionIt should be possible to move to a full release workflow using individual CI, but it not a easy task. It would be necessary to explicitly state what we want to do before starting something.
Do you have a list of them ?
As said above, I don't think we should run kiwix-build in the repo CI. |
Yes, they should be as little as possible and only upstream not downstream.
Yes, this is normal and should be wanted. If this is unwanted, then this is the sign of a lack of control of the dev process. Downstrean softwares are not here to test, this is the role of an automated testing.
No, this is the role of the automated tests.
This is why the CI runs on each PR.
I think I don't need to repeat myself on this.
The CI should run on any branch and all the dependences should be pinned.
I'm against this - as far as possible - to avoid because (1) this is really complex to understand and follow (2) it's not robust because not really resilient (too many things can go wrong because too many repos are involved)
I never have see things that way, we just do nightlies... which is something unrelated to my opinion to the fact that kiwix-build is not versatile.
Yes, and current optimisation system is efficient. We need to keep these dependencies compiled when needed and made available for download for whoever needs it. At a first look, compiling these files might be kept as kiwix-build repository responsability.
Yes. even if this is needed only for external dependencies and internal ones (basically only libkiwix and libkiwix I believe).
This is just a build dependency like gtest or meson, nothing special.
Yes, CI is not really the topic of this ticket.
If your CI does not deliver the information if your software is OK, then your CI is weak... and I definitly want to be able to relase libzim even if libkiwix is broken. Actually I should be able to release libzim without carrying about anything outside libzim,
The fact that I have to run the CD in kiwix-build to release libzim. It's actually so intricated, that only you does it since years. Doing a release once all the light are on green, should not be anymore a technical work. Like for any other software in our portfolio, I want to fully control what is going on from the repository on which I do the release just by clicking on the "release" button. I will try to use kiwix-build to make the CD and start to open ticket on kiwix-build to allow him to deliver what is needed to do so. |
Can you give your definition of CI, CD and "automated test" and what you expect from them. I think we don't have the exact same definition and so we don't speak about the same thing. |
@mgautierfr I don't really know what or how to tell more than what Wikipedia explains (just an example). The CI runs tests to assess PR and the CD publishes the builds/sources (officially at release time or not, see nightlies for example). |
The need of a meta compilation tooling for our cpp repositories, has led to the creation of kiwix-build. Unfortunately, the need of a compilation tooling, and the place of execution of it (which are two slightly different tooics) have been “mixed” and now the execution of kiwix-build for various repos CD is in kiwix-build repo.
This lead to various problems or at leat oddities. This ticket is there to identifz what is missing to allow execution of kiwix-build in this repo to run CD (first row nightlies and releases) and maybe even help with the CI.
The text was updated successfully, but these errors were encountered: