2

Considering using Conan.io to manage the enormous amount of binaries created by our CI system.

Currently, source for several (~50) SW modules is versioned in SVN and we use SVN externals to specify which modules should be checked-out for each project.

So far I understand that Conan uses so-called "recipes" to define the needed sources. Can Conan understand SVN externals and record their location, and their revision, as to how the package was built? I can't find any information on the doc website.

Any example on how to define svn repos with externals in the Conan recipe would be very helpful!

Thanks

ichiwahato
  • 211
  • 1
  • 2
  • 15
  • Not sure if I totally understand the question. Conan has a ``source()`` method that can be used to download or checkout any source with any cvs: http://docs.conan.io/en/latest/reference/conanfile/methods.html#source. Wouldn't be enough just to replace the "git" commands there with "svn" equivalents? – drodri Apr 09 '18 at 08:55
  • My understanding is that Package Managers create some kind of 'lockfile' which contains all the information necessary to [re]produce the environment which produced each package. If I replace the git command in your link with my SVN checkout command, I imagine Conan has no idea about the externals that are checked-out alongside it (unless Conan processes this info somehow?) I wish to keep the externals intact (rather than listing every external as a separate checkout) as this improves the development environment experience for developers. – ichiwahato Apr 10 '18 at 02:51
  • That is not accurate. Package managers can generate a lockfile with the package versions, but depending on the package managers the reproducibility of those package versions is not guaranteed. Take as example python pip packages. There is no information in the packages that allows to trace back to the commit or revision that created that given package, so not possible to reproduce the package from sources. Still don't see the intended goal, maybe the best would be to move the conversation to: https://github.com/conan-io/conan/issues, for better discussion. – drodri Apr 10 '18 at 12:29
  • 1
    Take a look at this: https://docs.conan.io/en/latest/creating_packages/package_repo.html#capturing-the-remote-and-commit-scm You can use the SCM feature to capture automatically the revision of your repository, for git and svn, so the "source()" method will use that to clone the correct source code at the correct "commit". – lasote Mar 29 '19 at 07:39

0 Answers0