Nightly sync.yml was failing due to python being upgraded to 3.11 in the default linux runner environment. This PR pins all jobs that use python in the runner environment to python 3.10
BUG=https://issuetracker.google.com/issues/257470387
This is a first step towards enabling flatbuffer manipulation from
Python.
As part of this change:
* we generate the python flatbuffer bindings from the tensorflow
repository and copy the schema_py_generated into the TFLM repo.
* sync common python flatbuffer manipulation code from upstream TF.
Manually tested that the sync script runs as expected:
```
./ci/sync_from_upstream_tf.sh
```
BUG=http://b/204109200
Since we trigger the CI workflow on any label change, when the cla:yes
label is applied the CI workflow will be run, and there is no way around
that with the current setup.
If the sync PR does not have the ci:run label, the checks will be
skipped but will still need to be run again prior to merge since
skipping the checks invalidates the previous completion of the required checks.
As a result, we are keeping the ci:run label. What this means is that
the reviewer can manually apply the cla:yes label and then start
auto-merge (which will wait for another round of the required checks to
be run).
cla:yes can only be applied by someone from Google, so will be done
manually. However, the goal here is to have the PR be ready to merge
once a Google engineer reviews it.
Without the additional step of `git add`, any untracked files will not
be part of the PR that is created with the sync workflow.
Manually tested this change on my fork of tensorflow by removing a file,
pushing it to main and then confirming that the sync workflow does not
add to the PR prior to this change, but does add it to the PR after this
change.
Adding the cla: yes label seems error prone so we are going to stick to
only applying the ci:run label automatically and manually toggle the cla
status.
For some reason the actions dashboard has stopped showing me the name of
the sync workflow. Instead it is showing me the path to the yml file
which is somewhat annoying.
* Added a (presubmit) suffix to all the status checks that shold be
required prior to merging.
* trying out automatically removeing the "cla: no" label for the sync
PRs.