Does Builder Evaluate or Parse `pkg_deps`?


#1

We ask this because we have the following in a plan.sh:

pkg_deps=(
  core/bash
  core/bc
  core/coreutils
  core/gcc
  core/libffi
  core/pcre
  core/python/3.6.3
  smartb/postgresql
)
pkg_deps+=($(echo smartb/$(grep "^botocore"   requirements.txt) | sed 's@==@/@'))
pkg_deps+=($(echo smartb/$(grep "^Cython"     requirements.txt) | sed 's@==@/@'))
pkg_deps+=($(echo smartb/$(grep "^numpy"      requirements.txt) | sed 's@==@/@'))
pkg_deps+=($(echo smartb/$(grep "^pandas"     requirements.txt) | sed 's@==@/@'))
pkg_deps+=($(echo smartb/$(grep "^scipy"      requirements.txt) | sed 's@==@/@'))
pkg_deps+=($(echo smartb/$(grep "^tensorflow" requirements.txt) | sed 's@==@/@'))

We are concerned that a rebuild of, say, smartb/tensorflow won’t trigger a rebuild of smartb/api_requirements.

cc: @bixu


#2

Builder should be operating off of package metadata, and not evaluating code itself. Does the DEPS metadata file have the expected contents?


#3

We do see the expected deps there, yes:

smartb/botocore/1.8.2/20180413085304
smartb/Cython/0.27.3/20180413085427
smartb/numpy/1.13.1/20180413085546
smartb/pandas/0.22.0/20180413085744
smartb/pgbouncer/1.7.2/20180403000940
smartb/scipy/0.19.1/20180413090041
smartb/tensorflow/1.4.1/20180503093745

#4

I think you should be good to go, then!