You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+6-35Lines changed: 6 additions & 35 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,10 +3,11 @@
3
3
This repository contains prebuilt Conan dependencies for vcmi. These dependencies are primary used by Github CI and can be used to avoid building dependencies locally by developers.
4
4
5
5
Current flow to update dependencies:
6
-
- push new version of conanfile and/or CI settings to vcmi/vcmi repository, to branch 'update_prebuilts'
7
-
- run CI in this repository to generate new packages
8
-
- create new release from generated artifacts
9
-
- open PR in vcmi/vcmi with changes to conanfile, CI, new URL to dependencies package and whatever changes need to be done to source code to use newer package (if any)
6
+
1. Open PR with changes
7
+
2. Make sure that CI build succeeds
8
+
3. Merge the PR
9
+
4. (TBD) Run workflow to create new release from the CI run
10
+
5. (TBD) Update dependencies submodule and prebuilts URL in VCMI repo to point to the new commit / release, update VCMI code if needed
10
11
11
12
# TODO List
12
13
@@ -15,38 +16,8 @@ Current flow to update dependencies:
15
16
-https://docs.conan.io/2/reference/conan_server.html (not recommended by Conan)
16
17
-https://jfrog.com/
17
18
18
-
- Switch to conan 2. Incomplete (and potentially outdated) PR can be found here: https://github.com/vcmi/vcmi/pull/1603 Will also require changing how we create final package - instead of archiving `~/.conan/data` we'll need to use `conan cache` command
19
-
20
-
- Use Conan for msvc builds. Currently blocked by several issues, namely:
21
-
- Conan 1 does not works with latest Visual Studio 2022. We need to either use msvc 2019 or upgrade to conan 2.
22
-
- ffmpeg fails to find its dependencies when building with conan 1 + msvc 2019. Might be fixed in conan 2.
23
-
- Qt fails to build due to broken string escaping in a path (conan 1 + msvc 2019)
24
-
25
-
- Rebuild SDL_mixer and try to enable support for opus and flac. Needs investigation as to why libopus / libflac fail to build
26
-
27
-
- Consider removing pcx support from SDL_image
28
-
29
19
- Rebuild ffmpeg with libdav1d and av1 support enabled. Needs investigation as to why dav1d fails to build on mingw and on android.
30
20
31
-
- Find out why libiconv fails to rebuild on Android
32
-
33
-
- Rebuild entire package from scratch using latest recipes from conan, to test current version of recipes
34
-
35
21
- Run CI with full package rebuild on schedule (weekly? monthly?) to detect any regressions or breaking changes in CI or in used recipes
36
22
37
-
- Automatically generate Github release with updated packages as part of CI. Should probably be done only for changes in main branch and/or for manually triggered workflows
38
-
39
-
# Proposed better flow for updating dependencies
40
-
41
-
- Move conanfile and conan profiles (or even entire CI directory) to this repository
42
-
- Add this repository as a submodule to vcmi/vcmi repository
43
-
44
-
With this approach we will be able to use following flow for new dependencies:
45
-
- change conan/CI settings in this repository as needed
46
-
- run CI in this repository to generate new packages and new release
47
-
- update URL to dependencies in CI/update_conan_dependencies.sh to point to new release
48
-
- open PR in vcmi/vcmi repository that bumps submodule to newest revision of this repository and whatever changes need to be done to source code to use newer package (if any)
49
-
50
-
After merging PR in vcmi/vcmi repository vcmi will use new dependencies.
51
-
52
-
If vcmi/vcmi PR is discarded for one reason or another, changes in this repository will have to be discarded as well
23
+
- (shouldn't be needed probably) Automatically generate Github release with updated packages as part of CI. Should probably be done only for changes in main branch and/or for manually triggered workflows
0 commit comments