
On Wed, Nov 16, 2016 at 4:56 PM, Nir Soffer <nsoffer@redhat.com> wrote:
On Wed, Nov 16, 2016 at 9:35 AM, Yaniv Bronheim <ybronhei@redhat.com> wrote:
Hi
After merging https://gerrit.ovirt.org/#/q/status:open+project:vdsm+ branch:master+topic:cross-imports
This is not related to this patch, we had to keep correct spec, automation and dockerfile before this patch. This patch keeps us honest, preventing wrong code from sneaking in.
yes.. but now we see how annoying it is :)
On the first run, it found that python-requests was missing (fixed now) and that vdsm.rpc modules are doing wrong import from /usr/share/vdsm. These imports work by accident. This was not discovered in the review of the patch moving rpc to lib/vdsm.
This patch is fixing the old crossImports check that was totally broken, checking imports is not a new concept, it simply works now.
we need now for any new requirement to add a line in: check-patch.packages.el7 check-patch.packages.fc24 check-merged.packages.el7 check-merged.packages.fc24
You forgot build-artifacts.packages.* - total of 6 files to update in automation/
I suggested David Caro in the past to support reading multiple packages files, so you can have a check-patch.packages file, *and* check-patch.packages.el7 and the ci will merge the list of packages, so you don't have to duplicate the packages 6 times in every project.
they can use the spec as well with builddep. don't see any problem with that.
vdsm.spec.in
Dockerfile.centos Dockerfile.fedora
seems like we can add it once to the spec with section for fedora and centos and the rest of the places will use yum-builddep. sounds more reasonable to me and probably the right way to work with rpms dependencies. no?
The issue is we have different kind of requirements: - runtime packages - runtime packages needed during tests (smaller set, since not all code is tested) - build packages (needed only for building rpms) - check-merged packages (lago and friends?)
with you check we require everything we import even if we don't have test for that. so basically now all of the above requires the same list
So we can use the spec as the source, and generate all the other files during make, but this means the spec and all the *packages files will
why generating? what's wrong with rpm commands to install deps? include all the packages for the worst case, making the build even slower.
can you give an example of such package that we don't need in check-patch and built-artifacts but we need in runtime? we should test all :)
But note that the dockerfiles must be correct regardless where you build vdsm - you have to get different list of packages for fedora and centos
you can do that in the spec as well so you can build the docker image on any system. I'm not sure keeping
stuff in the spec will make it easy to extract for crating other files, keeping the files in a json / yaml file and generating the spec during configure may be easier.
I think it worth the effort if we avoid updating 9 files when adding requirements.
Nir
-- *Yaniv Bronhaim.*