Skip to content

Commit c295203

Browse files
authored
Merge pull request #2 from vcmi/readme
Added readme including all potential todo's
2 parents 8f0f7a3 + e256730 commit c295203

File tree

1 file changed

+60
-1
lines changed

1 file changed

+60
-1
lines changed

README.md

Lines changed: 60 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,60 @@
1-
# vcmi-dependencies
1+
# VCMI Dependencies
2+
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+
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)
10+
11+
# TODO List
12+
13+
- Find a way to set up an artifactory on our server or find somebody willing to host it for us and deprecate this repository. Potential options:
14+
- Artifactory Community Edition (requires more high-spec server than our current one)
15+
- https://docs.conan.io/2/reference/conan_server.html (not recommended by Conan)
16+
- https://jfrog.com/
17+
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+
- Switch Android CI to use Linux runners instead of macOS runners (both for prebuilts and for vcmi itself)
26+
27+
- Upgrade ubuntu runner to ubuntu-24.04 and rebuild packages using newer mingw
28+
29+
- Rebuild boost and disable boost_url which we don't use
30+
31+
- Rebuild SDL (including SDL_mixer and SDL_image).
32+
- Consider updating packages.
33+
- Enable support for opus and flac.
34+
- Remove unnecessary image formats such as gif and pcx
35+
- Ensure that vcmi can load ogg/opus and flac as 'sounds' and not only as music
36+
37+
- Rebuild ffmpeg with libdav1d and av1 support enabled. Needs investigation as to why dav1d fails to build on mingw and on android.
38+
39+
- Rebuild all binaries in prebuilts package to ensure that everything is configured correctly and to replace any locally-built binaries with binaries from CI
40+
41+
- Rebuild entire package from scratch using latest recipes from conan, to test current version of recipes
42+
43+
- Run CI with full package rebuild on schedule (weekly? monthly?) to detect any regressions or breaking changes in CI or in used recipes
44+
45+
- 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
46+
47+
# Proposed better flow for updating dependencies
48+
49+
- Move conanfile and conan profiles (or even entire CI directory) to this repository
50+
- Add this repository as a submodule to vcmi/vcmi repository
51+
52+
With this approach we will be able to use following flow for new dependencies:
53+
- change conan/CI settings in this repository as needed
54+
- run CI in this repository to generate new packages and new release
55+
- update URL to dependencies in CI/update_conan_dependencies.sh to point to new release
56+
- 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)
57+
58+
After merging PR in vcmi/vcmi repository vcmi will use new dependencies.
59+
60+
If vcmi/vcmi PR is discarded for one reason or another, changes in this repository will have to be discarded as well

0 commit comments

Comments
 (0)