2021-01-26 06:46:15,633 synthtool [WARNING] > No replacements made in src/**/V*/**/*.php for pattern public function ([s|g]\w{3,})Unwrapped, maybe replacement is no longer needed?
WARNING:synthtool:No replacements made in src/**/V*/**/*.php for pattern public function ([s|g]\w{3,})Unwrapped, maybe replacement is no longer needed?
2021-01-26 06:46:16,078 synthtool [WARNING] > No replacements made in src/**/V*/**/*.php for pattern (.{0,})\]\((/.{0,})\), maybe replacement is no longer needed?
WARNING:synthtool:No replacements made in src/**/V*/**/*.php for pattern (.{0,})\]\((/.{0,})\), maybe replacement is no longer needed?
2021-01-26 06:46:16,079 synthtool [DEBUG] > Wrote metadata to synth.metadata.
DEBUG:synthtool:Wrote metadata to synth.metadata.
2021-01-26 06:46:16,179 autosynth [INFO] > Changed files:
2021-01-26 06:46:16,179 autosynth [INFO] > M Spanner/synth.metadata
2021-01-26 06:46:16,179 autosynth [DEBUG] > Running: git log 93cf8bda3a07bed78a0232abf0a652fa07b3a449 -1 --no-decorate --pretty=%s
2021-01-26 06:46:16,183 autosynth [DEBUG] > Running: git log 93cf8bda3a07bed78a0232abf0a652fa07b3a449 -1 --no-decorate --pretty=%b%n%nSource-Author: %an <%ae>%nSource-Date: %ad
2021-01-26 06:46:16,187 autosynth [DEBUG] > Running: git add -A
2021-01-26 06:46:16,231 autosynth [DEBUG] > Running: git status --porcelain
2021-01-26 06:46:16,276 autosynth [DEBUG] > Running: git commit -m ci: add project id for Datastore tests

Source-Author: Alexey Andreev<EMAIL_ADDRESS>Source-Date: Tue Jan 19 20:46:24 2021 +0300
Source-Repo: googleapis/google-cloud-php
Source-Sha: 93cf8bda3a07bed78a0232abf0a652fa07b3a449
Source-Link: https://github.com/googleapis/google-cloud-php/commit/93cf8bda3a07bed78a0232abf0a652fa07b3a449
[autosynth-spanner-0 256325c9] ci: add project id for Datastore tests
 1 file changed, 1 insertion(+), 1 deletion(-)
2021-01-26 06:46:16,303 autosynth [DEBUG] > Running: git reset --hard HEAD
HEAD is now at 256325c9 ci: add project id for Datastore tests
2021-01-26 06:46:16,346 autosynth [DEBUG] > Running: git checkout autosynth-spanner
Switched to branch 'autosynth-spanner'
2021-01-26 06:46:16,374 autosynth [DEBUG] > Running: git diff autosynth-spanner-0..autosynth-spanner-253 -- . :(exclude)synth.metadata
Traceback (most recent call last):
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 354, in <module>
    main()
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 189, in main
    return _inner_main(temp_dir)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 334, in _inner_main
    commit_count = synthesize_loop(x, multiple_prs, change_pusher, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 104, in synthesize_loop
    return synthesize_loop_single_pr(toolbox, change_pusher, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 126, in synthesize_loop_single_pr
    synthesize_inner_loop(toolbox, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 152, in synthesize_inner_loop
    synthesize_range(toolbox, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 173, in synthesize_range
    toolbox.sub_branch(old), toolbox.sub_branch(young)
  File "/tmpfs/src/github/synthtool/autosynth/synth_toolbox.py", line 193, in git_branches_differ
    return git_branches_differ(branch_a, branch_b, self._metadata_path)
  File "/tmpfs/src/github/synthtool/autosynth/synth_toolbox.py", line 342, in git_branches_differ
    proc = executor.run(diff_cmd, stdout=subprocess.PIPE, universal_newlines=True)
  File "/tmpfs/src/github/synthtool/autosynth/executor.py", line 23, in run
    return subprocess.run(command, **args)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/subprocess.py", line 425, in run
    stdout, stderr = process.communicate(input, timeout=timeout)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/subprocess.py", line 850, in communicate
    stdout = self.stdout.read()
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/codecs.py", line 321, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa8 in position 1966: invalid start byte

Google internal developers can see the full log here.

Autosynth is still having trouble generating spanner. :sob:
Here's the output from running synth.py:
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Database/V1/CreateDatabaseRequest.php.
2021-01-27 06:31:17,034 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Database/V1/ListBackupOperationsResponse.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Database/V1/ListBackupOperationsResponse.php.
2021-01-27 06:31:17,036 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/CreateInstanceMetadata.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/CreateInstanceMetadata.php.
2021-01-27 06:31:17,036 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ListInstanceConfigsRequest.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ListInstanceConfigsRequest.php.
2021-01-27 06:31:17,036 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/UpdateInstanceMetadata.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/UpdateInstanceMetadata.php.
2021-01-27 06:31:17,037 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ListInstanceConfigsResponse.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ListInstanceConfigsResponse.php.
2021-01-27 06:31:17,037 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ListInstancesRequest.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ListInstancesRequest.php.
2021-01-27 06:31:17,038 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/GetInstanceConfigRequest.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/GetInstanceConfigRequest.php.
2021-01-27 06:31:17,038 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/CreateInstanceRequest.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/CreateInstanceRequest.php.
2021-01-27 06:31:17,038 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ReplicaInfo.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ReplicaInfo.php.
2021-01-27 06:31:17,038 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/GetInstanceRequest.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/GetInstanceRequest.php.
2021-01-27 06:31:17,039 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/UpdateInstanceRequest.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/UpdateInstanceRequest.php.
2021-01-27 06:31:17,039 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/DeleteInstanceRequest.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/DeleteInstanceRequest.php.
2021-01-27 06:31:17,039 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ListInstancesResponse.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ListInstancesResponse.php.
2021-01-27 06:31:17,040 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/InstanceConfig.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/InstanceConfig.php.
2021-01-27 06:31:17,040 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/Instance.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/Instance.php.
2021-01-27 06:31:17,056 synthtool [WARNING] > No replacements made in src/**/V*/**/*.php for pattern final class, maybe replacement is no longer needed?
WARNING:synthtool:No replacements made in src/**/V*/**/*.php for pattern final class, maybe replacement is no longer needed?
2021-01-27 06:31:17,072 synthtool [WARNING] > No replacements made in src/**/V*/**/*.php for pattern public function ([s|g]\w{3,})Unwrapped, maybe replacement is no longer needed?
WARNING:synthtool:No replacements made in src/**/V*/**/*.php for pattern public function ([s|g]\w{3,})Unwrapped, maybe replacement is no longer needed?
2021-01-27 06:31:17,491 synthtool [WARNING] > No replacements made in src/**/V*/**/*.php for pattern (.{0,})\]\((/.{0,})\), maybe replacement is no longer needed?
WARNING:synthtool:No replacements made in src/**/V*/**/*.php for pattern (.{0,})\]\((/.{0,})\), maybe replacement is no longer needed?
2021-01-27 06:31:17,492 synthtool [DEBUG] > Wrote metadata to synth.metadata.
DEBUG:synthtool:Wrote metadata to synth.metadata.
2021-01-27 06:31:17,581 autosynth [INFO] > Changed files:
2021-01-27 06:31:17,581 autosynth [INFO] > M Spanner/synth.metadata
2021-01-27 06:31:17,582 autosynth [DEBUG] > Running: git log 93cf8bda3a07bed78a0232abf0a652fa07b3a449 -1 --no-decorate --pretty=%s
2021-01-27 06:31:17,585 autosynth [DEBUG] > Running: git log 93cf8bda3a07bed78a0232abf0a652fa07b3a449 -1 --no-decorate --pretty=%b%n%nSource-Author: %an <%ae>%nSource-Date: %ad
2021-01-27 06:31:17,590 autosynth [DEBUG] > Running: git add -A
2021-01-27 06:31:17,634 autosynth [DEBUG] > Running: git status --porcelain
2021-01-27 06:31:17,678 autosynth [DEBUG] > Running: git commit -m ci: add project id for Datastore tests

Source-Author: Alexey Andreev<EMAIL_ADDRESS>Source-Date: Tue Jan 19 20:46:24 2021 +0300
Source-Repo: googleapis/google-cloud-php
Source-Sha: 93cf8bda3a07bed78a0232abf0a652fa07b3a449
Source-Link: https://github.com/googleapis/google-cloud-php/commit/93cf8bda3a07bed78a0232abf0a652fa07b3a449
[autosynth-spanner-0 84669df8] ci: add project id for Datastore tests
 1 file changed, 1 insertion(+), 1 deletion(-)
2021-01-27 06:31:17,707 autosynth [DEBUG] > Running: git reset --hard HEAD
HEAD is now at 84669df8 ci: add project id for Datastore tests
2021-01-27 06:31:17,754 autosynth [DEBUG] > Running: git checkout autosynth-spanner
Switched to branch 'autosynth-spanner'
2021-01-27 06:31:17,785 autosynth [DEBUG] > Running: git diff autosynth-spanner-0..autosynth-spanner-257 -- . :(exclude)synth.metadata
Traceback (most recent call last):
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 354, in <module>
    main()
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 189, in main
    return _inner_main(temp_dir)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 334, in _inner_main
    commit_count = synthesize_loop(x, multiple_prs, change_pusher, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 104, in synthesize_loop
    return synthesize_loop_single_pr(toolbox, change_pusher, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 126, in synthesize_loop_single_pr
    synthesize_inner_loop(toolbox, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 152, in synthesize_inner_loop
    synthesize_range(toolbox, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 173, in synthesize_range
    toolbox.sub_branch(old), toolbox.sub_branch(young)
  File "/tmpfs/src/github/synthtool/autosynth/synth_toolbox.py", line 193, in git_branches_differ
    return git_branches_differ(branch_a, branch_b, self._metadata_path)
  File "/tmpfs/src/github/synthtool/autosynth/synth_toolbox.py", line 342, in git_branches_differ
    proc = executor.run(diff_cmd, stdout=subprocess.PIPE, universal_newlines=True)
  File "/tmpfs/src/github/synthtool/autosynth/executor.py", line 23, in run
    return subprocess.run(command, **args)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/subprocess.py", line 425, in run
    stdout, stderr = process.communicate(input, timeout=timeout)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/subprocess.py", line 850, in communicate
    stdout = self.stdout.read()
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/codecs.py", line 321, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa8 in position 1966: invalid start byte

Google internal developers can see the full log here.

Autosynth is still having trouble generating spanner. :sob:
Here's the output from running synth.py:
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Database/V1/CreateDatabaseRequest.php.
2021-01-27 06:31:17,034 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Database/V1/ListBackupOperationsResponse.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Database/V1/ListBackupOperationsResponse.php.
2021-01-27 06:31:17,036 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/CreateInstanceMetadata.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/CreateInstanceMetadata.php.
2021-01-27 06:31:17,036 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ListInstanceConfigsRequest.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ListInstanceConfigsRequest.php.
2021-01-27 06:31:17,036 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/UpdateInstanceMetadata.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/UpdateInstanceMetadata.php.
2021-01-27 06:31:17,037 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ListInstanceConfigsResponse.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ListInstanceConfigsResponse.php.
2021-01-27 06:31:17,037 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ListInstancesRequest.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ListInstancesRequest.php.
2021-01-27 06:31:17,038 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/GetInstanceConfigRequest.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/GetInstanceConfigRequest.php.
2021-01-27 06:31:17,038 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/CreateInstanceRequest.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/CreateInstanceRequest.php.
2021-01-27 06:31:17,038 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ReplicaInfo.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ReplicaInfo.php.
2021-01-27 06:31:17,038 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/GetInstanceRequest.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/GetInstanceRequest.php.
2021-01-27 06:31:17,039 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/UpdateInstanceRequest.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/UpdateInstanceRequest.php.
2021-01-27 06:31:17,039 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/DeleteInstanceRequest.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/DeleteInstanceRequest.php.
2021-01-27 06:31:17,039 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ListInstancesResponse.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ListInstancesResponse.php.
2021-01-27 06:31:17,040 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/InstanceConfig.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/InstanceConfig.php.
2021-01-27 06:31:17,040 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/Instance.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/Instance.php.
2021-01-27 06:31:17,056 synthtool [WARNING] > No replacements made in src/**/V*/**/*.php for pattern final class, maybe replacement is no longer needed?
WARNING:synthtool:No replacements made in src/**/V*/**/*.php for pattern final class, maybe replacement is no longer needed?
2021-01-27 06:31:17,072 synthtool [WARNING] > No replacements made in src/**/V*/**/*.php for pattern public function ([s|g]\w{3,})Unwrapped, maybe replacement is no longer needed?
WARNING:synthtool:No replacements made in src/**/V*/**/*.php for pattern public function ([s|g]\w{3,})Unwrapped, maybe replacement is no longer needed?
2021-01-27 06:31:17,491 synthtool [WARNING] > No replacements made in src/**/V*/**/*.php for pattern (.{0,})\]\((/.{0,})\), maybe replacement is no longer needed?
WARNING:synthtool:No replacements made in src/**/V*/**/*.php for pattern (.{0,})\]\((/.{0,})\), maybe replacement is no longer needed?
2021-01-27 06:31:17,492 synthtool [DEBUG] > Wrote metadata to synth.metadata.
DEBUG:synthtool:Wrote metadata to synth.metadata.
2021-01-27 06:31:17,581 autosynth [INFO] > Changed files:
2021-01-27 06:31:17,581 autosynth [INFO] > M Spanner/synth.metadata
2021-01-27 06:31:17,582 autosynth [DEBUG] > Running: git log 93cf8bda3a07bed78a0232abf0a652fa07b3a449 -1 --no-decorate --pretty=%s
2021-01-27 06:31:17,585 autosynth [DEBUG] > Running: git log 93cf8bda3a07bed78a0232abf0a652fa07b3a449 -1 --no-decorate --pretty=%b%n%nSource-Author: %an <%ae>%nSource-Date: %ad
2021-01-27 06:31:17,590 autosynth [DEBUG] > Running: git add -A
2021-01-27 06:31:17,634 autosynth [DEBUG] > Running: git status --porcelain
2021-01-27 06:31:17,678 autosynth [DEBUG] > Running: git commit -m ci: add project id for Datastore tests

Source-Author: Alexey Andreev<EMAIL_ADDRESS>Source-Date: Tue Jan 19 20:46:24 2021 +0300
Source-Repo: googleapis/google-cloud-php
Source-Sha: 93cf8bda3a07bed78a0232abf0a652fa07b3a449
Source-Link: https://github.com/googleapis/google-cloud-php/commit/93cf8bda3a07bed78a0232abf0a652fa07b3a449
[autosynth-spanner-0 84669df8] ci: add project id for Datastore tests
 1 file changed, 1 insertion(+), 1 deletion(-)
2021-01-27 06:31:17,707 autosynth [DEBUG] > Running: git reset --hard HEAD
HEAD is now at 84669df8 ci: add project id for Datastore tests
2021-01-27 06:31:17,754 autosynth [DEBUG] > Running: git checkout autosynth-spanner
Switched to branch 'autosynth-spanner'
2021-01-27 06:31:17,785 autosynth [DEBUG] > Running: git diff autosynth-spanner-0..autosynth-spanner-257 -- . :(exclude)synth.metadata
Traceback (most recent call last):
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 354, in <module>
    main()
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 189, in main
    return _inner_main(temp_dir)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 334, in _inner_main
    commit_count = synthesize_loop(x, multiple_prs, change_pusher, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 104, in synthesize_loop
    return synthesize_loop_single_pr(toolbox, change_pusher, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 126, in synthesize_loop_single_pr
    synthesize_inner_loop(toolbox, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 152, in synthesize_inner_loop
    synthesize_range(toolbox, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 173, in synthesize_range
    toolbox.sub_branch(old), toolbox.sub_branch(young)
  File "/tmpfs/src/github/synthtool/autosynth/synth_toolbox.py", line 193, in git_branches_differ
    return git_branches_differ(branch_a, branch_b, self._metadata_path)
  File "/tmpfs/src/github/synthtool/autosynth/synth_toolbox.py", line 342, in git_branches_differ
    proc = executor.run(diff_cmd, stdout=subprocess.PIPE, universal_newlines=True)
  File "/tmpfs/src/github/synthtool/autosynth/executor.py", line 23, in run
    return subprocess.run(command, **args)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/subprocess.py", line 425, in run
    stdout, stderr = process.communicate(input, timeout=timeout)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/subprocess.py", line 850, in communicate
    stdout = self.stdout.read()
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/codecs.py", line 321, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa8 in position 1966: invalid start byte

Google internal developers can see the full log here.

Autosynth is still having trouble generating spanner. :sob:
Here's the output from running synth.py:
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Database/V1/CreateDatabaseRequest.php.
2021-01-27 19:27:38,963 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Database/V1/ListBackupOperationsResponse.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Database/V1/ListBackupOperationsResponse.php.
2021-01-27 19:27:38,964 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/CreateInstanceMetadata.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/CreateInstanceMetadata.php.
2021-01-27 19:27:38,965 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ListInstanceConfigsRequest.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ListInstanceConfigsRequest.php.
2021-01-27 19:27:38,965 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/UpdateInstanceMetadata.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/UpdateInstanceMetadata.php.
2021-01-27 19:27:38,965 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ListInstanceConfigsResponse.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ListInstanceConfigsResponse.php.
2021-01-27 19:27:38,966 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ListInstancesRequest.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ListInstancesRequest.php.
2021-01-27 19:27:38,966 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/GetInstanceConfigRequest.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/GetInstanceConfigRequest.php.
2021-01-27 19:27:38,967 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/CreateInstanceRequest.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/CreateInstanceRequest.php.
2021-01-27 19:27:38,967 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ReplicaInfo.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ReplicaInfo.php.
2021-01-27 19:27:38,967 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/GetInstanceRequest.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/GetInstanceRequest.php.
2021-01-27 19:27:38,967 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/UpdateInstanceRequest.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/UpdateInstanceRequest.php.
2021-01-27 19:27:38,968 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/DeleteInstanceRequest.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/DeleteInstanceRequest.php.
2021-01-27 19:27:38,968 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ListInstancesResponse.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ListInstancesResponse.php.
2021-01-27 19:27:38,968 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/InstanceConfig.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/InstanceConfig.php.
2021-01-27 19:27:38,969 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/Instance.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/Instance.php.
2021-01-27 19:27:38,984 synthtool [WARNING] > No replacements made in src/**/V*/**/*.php for pattern final class, maybe replacement is no longer needed?
WARNING:synthtool:No replacements made in src/**/V*/**/*.php for pattern final class, maybe replacement is no longer needed?
2021-01-27 19:27:38,999 synthtool [WARNING] > No replacements made in src/**/V*/**/*.php for pattern public function ([s|g]\w{3,})Unwrapped, maybe replacement is no longer needed?
WARNING:synthtool:No replacements made in src/**/V*/**/*.php for pattern public function ([s|g]\w{3,})Unwrapped, maybe replacement is no longer needed?
2021-01-27 19:27:39,454 synthtool [WARNING] > No replacements made in src/**/V*/**/*.php for pattern (.{0,})\]\((/.{0,})\), maybe replacement is no longer needed?
WARNING:synthtool:No replacements made in src/**/V*/**/*.php for pattern (.{0,})\]\((/.{0,})\), maybe replacement is no longer needed?
2021-01-27 19:27:39,455 synthtool [DEBUG] > Wrote metadata to synth.metadata.
DEBUG:synthtool:Wrote metadata to synth.metadata.
2021-01-27 19:27:39,547 autosynth [INFO] > Changed files:
2021-01-27 19:27:39,547 autosynth [INFO] > M Spanner/synth.metadata
2021-01-27 19:27:39,548 autosynth [DEBUG] > Running: git log 93cf8bda3a07bed78a0232abf0a652fa07b3a449 -1 --no-decorate --pretty=%s
2021-01-27 19:27:39,552 autosynth [DEBUG] > Running: git log 93cf8bda3a07bed78a0232abf0a652fa07b3a449 -1 --no-decorate --pretty=%b%n%nSource-Author: %an <%ae>%nSource-Date: %ad
2021-01-27 19:27:39,555 autosynth [DEBUG] > Running: git add -A
2021-01-27 19:27:39,596 autosynth [DEBUG] > Running: git status --porcelain
2021-01-27 19:27:39,642 autosynth [DEBUG] > Running: git commit -m ci: add project id for Datastore tests

Source-Author: Alexey Andreev<EMAIL_ADDRESS>Source-Date: Tue Jan 19 20:46:24 2021 +0300
Source-Repo: googleapis/google-cloud-php
Source-Sha: 93cf8bda3a07bed78a0232abf0a652fa07b3a449
Source-Link: https://github.com/googleapis/google-cloud-php/commit/93cf8bda3a07bed78a0232abf0a652fa07b3a449
[autosynth-spanner-0 97019f14] ci: add project id for Datastore tests
 1 file changed, 1 insertion(+), 1 deletion(-)
2021-01-27 19:27:39,668 autosynth [DEBUG] > Running: git reset --hard HEAD
HEAD is now at 97019f14 ci: add project id for Datastore tests
2021-01-27 19:27:39,710 autosynth [DEBUG] > Running: git checkout autosynth-spanner
Switched to branch 'autosynth-spanner'
2021-01-27 19:27:39,738 autosynth [DEBUG] > Running: git diff autosynth-spanner-0..autosynth-spanner-259 -- . :(exclude)synth.metadata
Traceback (most recent call last):
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 354, in <module>
    main()
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 189, in main
    return _inner_main(temp_dir)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 334, in _inner_main
    commit_count = synthesize_loop(x, multiple_prs, change_pusher, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 104, in synthesize_loop
    return synthesize_loop_single_pr(toolbox, change_pusher, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 126, in synthesize_loop_single_pr
    synthesize_inner_loop(toolbox, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 152, in synthesize_inner_loop
    synthesize_range(toolbox, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 173, in synthesize_range
    toolbox.sub_branch(old), toolbox.sub_branch(young)
  File "/tmpfs/src/github/synthtool/autosynth/synth_toolbox.py", line 193, in git_branches_differ
    return git_branches_differ(branch_a, branch_b, self._metadata_path)
  File "/tmpfs/src/github/synthtool/autosynth/synth_toolbox.py", line 342, in git_branches_differ
    proc = executor.run(diff_cmd, stdout=subprocess.PIPE, universal_newlines=True)
  File "/tmpfs/src/github/synthtool/autosynth/executor.py", line 23, in run
    return subprocess.run(command, **args)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/subprocess.py", line 425, in run
    stdout, stderr = process.communicate(input, timeout=timeout)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/subprocess.py", line 850, in communicate
    stdout = self.stdout.read()
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/codecs.py", line 321, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa8 in position 1966: invalid start byte

Google internal developers can see the full log here.

Autosynth is still having trouble generating spanner. :sob:
Here's the output from running synth.py:
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Database/V1/CreateDatabaseRequest.php.
2021-01-27 19:27:38,963 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Database/V1/ListBackupOperationsResponse.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Database/V1/ListBackupOperationsResponse.php.
2021-01-27 19:27:38,964 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/CreateInstanceMetadata.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/CreateInstanceMetadata.php.
2021-01-27 19:27:38,965 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ListInstanceConfigsRequest.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ListInstanceConfigsRequest.php.
2021-01-27 19:27:38,965 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/UpdateInstanceMetadata.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/UpdateInstanceMetadata.php.
2021-01-27 19:27:38,965 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ListInstanceConfigsResponse.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ListInstanceConfigsResponse.php.
2021-01-27 19:27:38,966 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ListInstancesRequest.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ListInstancesRequest.php.
2021-01-27 19:27:38,966 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/GetInstanceConfigRequest.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/GetInstanceConfigRequest.php.
2021-01-27 19:27:38,967 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/CreateInstanceRequest.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/CreateInstanceRequest.php.
2021-01-27 19:27:38,967 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ReplicaInfo.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ReplicaInfo.php.
2021-01-27 19:27:38,967 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/GetInstanceRequest.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/GetInstanceRequest.php.
2021-01-27 19:27:38,967 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/UpdateInstanceRequest.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/UpdateInstanceRequest.php.
2021-01-27 19:27:38,968 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/DeleteInstanceRequest.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/DeleteInstanceRequest.php.
2021-01-27 19:27:38,968 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ListInstancesResponse.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ListInstancesResponse.php.
2021-01-27 19:27:38,968 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/InstanceConfig.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/InstanceConfig.php.
2021-01-27 19:27:38,969 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/Instance.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/Instance.php.
2021-01-27 19:27:38,984 synthtool [WARNING] > No replacements made in src/**/V*/**/*.php for pattern final class, maybe replacement is no longer needed?
WARNING:synthtool:No replacements made in src/**/V*/**/*.php for pattern final class, maybe replacement is no longer needed?
2021-01-27 19:27:38,999 synthtool [WARNING] > No replacements made in src/**/V*/**/*.php for pattern public function ([s|g]\w{3,})Unwrapped, maybe replacement is no longer needed?
WARNING:synthtool:No replacements made in src/**/V*/**/*.php for pattern public function ([s|g]\w{3,})Unwrapped, maybe replacement is no longer needed?
2021-01-27 19:27:39,454 synthtool [WARNING] > No replacements made in src/**/V*/**/*.php for pattern (.{0,})\]\((/.{0,})\), maybe replacement is no longer needed?
WARNING:synthtool:No replacements made in src/**/V*/**/*.php for pattern (.{0,})\]\((/.{0,})\), maybe replacement is no longer needed?
2021-01-27 19:27:39,455 synthtool [DEBUG] > Wrote metadata to synth.metadata.
DEBUG:synthtool:Wrote metadata to synth.metadata.
2021-01-27 19:27:39,547 autosynth [INFO] > Changed files:
2021-01-27 19:27:39,547 autosynth [INFO] > M Spanner/synth.metadata
2021-01-27 19:27:39,548 autosynth [DEBUG] > Running: git log 93cf8bda3a07bed78a0232abf0a652fa07b3a449 -1 --no-decorate --pretty=%s
2021-01-27 19:27:39,552 autosynth [DEBUG] > Running: git log 93cf8bda3a07bed78a0232abf0a652fa07b3a449 -1 --no-decorate --pretty=%b%n%nSource-Author: %an <%ae>%nSource-Date: %ad
2021-01-27 19:27:39,555 autosynth [DEBUG] > Running: git add -A
2021-01-27 19:27:39,596 autosynth [DEBUG] > Running: git status --porcelain
2021-01-27 19:27:39,642 autosynth [DEBUG] > Running: git commit -m ci: add project id for Datastore tests

Source-Author: Alexey Andreev<EMAIL_ADDRESS>Source-Date: Tue Jan 19 20:46:24 2021 +0300
Source-Repo: googleapis/google-cloud-php
Source-Sha: 93cf8bda3a07bed78a0232abf0a652fa07b3a449
Source-Link: https://github.com/googleapis/google-cloud-php/commit/93cf8bda3a07bed78a0232abf0a652fa07b3a449
[autosynth-spanner-0 97019f14] ci: add project id for Datastore tests
 1 file changed, 1 insertion(+), 1 deletion(-)
2021-01-27 19:27:39,668 autosynth [DEBUG] > Running: git reset --hard HEAD
HEAD is now at 97019f14 ci: add project id for Datastore tests
2021-01-27 19:27:39,710 autosynth [DEBUG] > Running: git checkout autosynth-spanner
Switched to branch 'autosynth-spanner'
2021-01-27 19:27:39,738 autosynth [DEBUG] > Running: git diff autosynth-spanner-0..autosynth-spanner-259 -- . :(exclude)synth.metadata
Traceback (most recent call last):
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 354, in <module>
    main()
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 189, in main
    return _inner_main(temp_dir)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 334, in _inner_main
    commit_count = synthesize_loop(x, multiple_prs, change_pusher, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 104, in synthesize_loop
    return synthesize_loop_single_pr(toolbox, change_pusher, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 126, in synthesize_loop_single_pr
    synthesize_inner_loop(toolbox, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 152, in synthesize_inner_loop
    synthesize_range(toolbox, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 173, in synthesize_range
    toolbox.sub_branch(old), toolbox.sub_branch(young)
  File "/tmpfs/src/github/synthtool/autosynth/synth_toolbox.py", line 193, in git_branches_differ
    return git_branches_differ(branch_a, branch_b, self._metadata_path)
  File "/tmpfs/src/github/synthtool/autosynth/synth_toolbox.py", line 342, in git_branches_differ
    proc = executor.run(diff_cmd, stdout=subprocess.PIPE, universal_newlines=True)
  File "/tmpfs/src/github/synthtool/autosynth/executor.py", line 23, in run
    return subprocess.run(command, **args)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/subprocess.py", line 425, in run
    stdout, stderr = process.communicate(input, timeout=timeout)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/subprocess.py", line 850, in communicate
    stdout = self.stdout.read()
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/codecs.py", line 321, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa8 in position 1966: invalid start byte

Google internal developers can see the full log here.

Autosynth is still having trouble generating spanner. :sob:
Here's the output from running synth.py:
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Database/V1/CreateDatabaseRequest.php.
2021-01-28 04:01:10,504 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Database/V1/ListBackupOperationsResponse.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Database/V1/ListBackupOperationsResponse.php.
2021-01-28 04:01:10,505 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/CreateInstanceMetadata.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/CreateInstanceMetadata.php.
2021-01-28 04:01:10,505 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ListInstanceConfigsRequest.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ListInstanceConfigsRequest.php.
2021-01-28 04:01:10,506 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/UpdateInstanceMetadata.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/UpdateInstanceMetadata.php.
2021-01-28 04:01:10,506 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ListInstanceConfigsResponse.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ListInstanceConfigsResponse.php.
2021-01-28 04:01:10,507 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ListInstancesRequest.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ListInstancesRequest.php.
2021-01-28 04:01:10,507 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/GetInstanceConfigRequest.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/GetInstanceConfigRequest.php.
2021-01-28 04:01:10,507 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/CreateInstanceRequest.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/CreateInstanceRequest.php.
2021-01-28 04:01:10,508 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ReplicaInfo.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ReplicaInfo.php.
2021-01-28 04:01:10,508 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/GetInstanceRequest.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/GetInstanceRequest.php.
2021-01-28 04:01:10,508 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/UpdateInstanceRequest.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/UpdateInstanceRequest.php.
2021-01-28 04:01:10,508 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/DeleteInstanceRequest.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/DeleteInstanceRequest.php.
2021-01-28 04:01:10,509 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ListInstancesResponse.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ListInstancesResponse.php.
2021-01-28 04:01:10,509 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/InstanceConfig.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/InstanceConfig.php.
2021-01-28 04:01:10,509 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/Instance.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/Instance.php.
2021-01-28 04:01:10,525 synthtool [WARNING] > No replacements made in src/**/V*/**/*.php for pattern final class, maybe replacement is no longer needed?
WARNING:synthtool:No replacements made in src/**/V*/**/*.php for pattern final class, maybe replacement is no longer needed?
2021-01-28 04:01:10,540 synthtool [WARNING] > No replacements made in src/**/V*/**/*.php for pattern public function ([s|g]\w{3,})Unwrapped, maybe replacement is no longer needed?
WARNING:synthtool:No replacements made in src/**/V*/**/*.php for pattern public function ([s|g]\w{3,})Unwrapped, maybe replacement is no longer needed?
2021-01-28 04:01:10,983 synthtool [WARNING] > No replacements made in src/**/V*/**/*.php for pattern (.{0,})\]\((/.{0,})\), maybe replacement is no longer needed?
WARNING:synthtool:No replacements made in src/**/V*/**/*.php for pattern (.{0,})\]\((/.{0,})\), maybe replacement is no longer needed?
2021-01-28 04:01:10,984 synthtool [DEBUG] > Wrote metadata to synth.metadata.
DEBUG:synthtool:Wrote metadata to synth.metadata.
2021-01-28 04:01:11,080 autosynth [INFO] > Changed files:
2021-01-28 04:01:11,081 autosynth [INFO] > M Spanner/synth.metadata
2021-01-28 04:01:11,081 autosynth [DEBUG] > Running: git log 93cf8bda3a07bed78a0232abf0a652fa07b3a449 -1 --no-decorate --pretty=%s
2021-01-28 04:01:11,085 autosynth [DEBUG] > Running: git log 93cf8bda3a07bed78a0232abf0a652fa07b3a449 -1 --no-decorate --pretty=%b%n%nSource-Author: %an <%ae>%nSource-Date: %ad
2021-01-28 04:01:11,088 autosynth [DEBUG] > Running: git add -A
2021-01-28 04:01:11,131 autosynth [DEBUG] > Running: git status --porcelain
2021-01-28 04:01:11,171 autosynth [DEBUG] > Running: git commit -m ci: add project id for Datastore tests

Source-Author: Alexey Andreev<EMAIL_ADDRESS>Source-Date: Tue Jan 19 20:46:24 2021 +0300
Source-Repo: googleapis/google-cloud-php
Source-Sha: 93cf8bda3a07bed78a0232abf0a652fa07b3a449
Source-Link: https://github.com/googleapis/google-cloud-php/commit/93cf8bda3a07bed78a0232abf0a652fa07b3a449
[autosynth-spanner-0 7a815e2d] ci: add project id for Datastore tests
 1 file changed, 1 insertion(+), 1 deletion(-)
2021-01-28 04:01:11,197 autosynth [DEBUG] > Running: git reset --hard HEAD
HEAD is now at 7a815e2d ci: add project id for Datastore tests
2021-01-28 04:01:11,238 autosynth [DEBUG] > Running: git checkout autosynth-spanner
Switched to branch 'autosynth-spanner'
2021-01-28 04:01:11,265 autosynth [DEBUG] > Running: git diff autosynth-spanner-0..autosynth-spanner-259 -- . :(exclude)synth.metadata
Traceback (most recent call last):
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 354, in <module>
    main()
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 189, in main
    return _inner_main(temp_dir)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 334, in _inner_main
    commit_count = synthesize_loop(x, multiple_prs, change_pusher, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 104, in synthesize_loop
    return synthesize_loop_single_pr(toolbox, change_pusher, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 126, in synthesize_loop_single_pr
    synthesize_inner_loop(toolbox, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 152, in synthesize_inner_loop
    synthesize_range(toolbox, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 173, in synthesize_range
    toolbox.sub_branch(old), toolbox.sub_branch(young)
  File "/tmpfs/src/github/synthtool/autosynth/synth_toolbox.py", line 193, in git_branches_differ
    return git_branches_differ(branch_a, branch_b, self._metadata_path)
  File "/tmpfs/src/github/synthtool/autosynth/synth_toolbox.py", line 342, in git_branches_differ
    proc = executor.run(diff_cmd, stdout=subprocess.PIPE, universal_newlines=True)
  File "/tmpfs/src/github/synthtool/autosynth/executor.py", line 23, in run
    return subprocess.run(command, **args)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/subprocess.py", line 425, in run
    stdout, stderr = process.communicate(input, timeout=timeout)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/subprocess.py", line 850, in communicate
    stdout = self.stdout.read()
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/codecs.py", line 321, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa8 in position 1966: invalid start byte

Google internal developers can see the full log here.

Autosynth is still having trouble generating spanner. :sob:
Here's the output from running synth.py:
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Database/V1/CreateDatabaseRequest.php.
2021-01-28 04:01:10,504 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Database/V1/ListBackupOperationsResponse.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Database/V1/ListBackupOperationsResponse.php.
2021-01-28 04:01:10,505 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/CreateInstanceMetadata.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/CreateInstanceMetadata.php.
2021-01-28 04:01:10,505 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ListInstanceConfigsRequest.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ListInstanceConfigsRequest.php.
2021-01-28 04:01:10,506 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/UpdateInstanceMetadata.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/UpdateInstanceMetadata.php.
2021-01-28 04:01:10,506 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ListInstanceConfigsResponse.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ListInstanceConfigsResponse.php.
2021-01-28 04:01:10,507 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ListInstancesRequest.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ListInstancesRequest.php.
2021-01-28 04:01:10,507 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/GetInstanceConfigRequest.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/GetInstanceConfigRequest.php.
2021-01-28 04:01:10,507 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/CreateInstanceRequest.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/CreateInstanceRequest.php.
2021-01-28 04:01:10,508 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ReplicaInfo.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ReplicaInfo.php.
2021-01-28 04:01:10,508 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/GetInstanceRequest.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/GetInstanceRequest.php.
2021-01-28 04:01:10,508 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/UpdateInstanceRequest.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/UpdateInstanceRequest.php.
2021-01-28 04:01:10,508 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/DeleteInstanceRequest.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/DeleteInstanceRequest.php.
2021-01-28 04:01:10,509 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ListInstancesResponse.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/ListInstancesResponse.php.
2021-01-28 04:01:10,509 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/InstanceConfig.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/InstanceConfig.php.
2021-01-28 04:01:10,509 synthtool [INFO] > Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/Instance.php.
INFO:synthtool:Replaced 'Generated from protobuf field ([^\\n]{0,})\\n\\s{5}\\*/\\n\\s{4}protected \\$' in src/Admin/Instance/V1/Instance.php.
2021-01-28 04:01:10,525 synthtool [WARNING] > No replacements made in src/**/V*/**/*.php for pattern final class, maybe replacement is no longer needed?
WARNING:synthtool:No replacements made in src/**/V*/**/*.php for pattern final class, maybe replacement is no longer needed?
2021-01-28 04:01:10,540 synthtool [WARNING] > No replacements made in src/**/V*/**/*.php for pattern public function ([s|g]\w{3,})Unwrapped, maybe replacement is no longer needed?
WARNING:synthtool:No replacements made in src/**/V*/**/*.php for pattern public function ([s|g]\w{3,})Unwrapped, maybe replacement is no longer needed?
2021-01-28 04:01:10,983 synthtool [WARNING] > No replacements made in src/**/V*/**/*.php for pattern (.{0,})\]\((/.{0,})\), maybe replacement is no longer needed?
WARNING:synthtool:No replacements made in src/**/V*/**/*.php for pattern (.{0,})\]\((/.{0,})\), maybe replacement is no longer needed?
2021-01-28 04:01:10,984 synthtool [DEBUG] > Wrote metadata to synth.metadata.
DEBUG:synthtool:Wrote metadata to synth.metadata.
2021-01-28 04:01:11,080 autosynth [INFO] > Changed files:
2021-01-28 04:01:11,081 autosynth [INFO] > M Spanner/synth.metadata
2021-01-28 04:01:11,081 autosynth [DEBUG] > Running: git log 93cf8bda3a07bed78a0232abf0a652fa07b3a449 -1 --no-decorate --pretty=%s
2021-01-28 04:01:11,085 autosynth [DEBUG] > Running: git log 93cf8bda3a07bed78a0232abf0a652fa07b3a449 -1 --no-decorate --pretty=%b%n%nSource-Author: %an <%ae>%nSource-Date: %ad
2021-01-28 04:01:11,088 autosynth [DEBUG] > Running: git add -A
2021-01-28 04:01:11,131 autosynth [DEBUG] > Running: git status --porcelain
2021-01-28 04:01:11,171 autosynth [DEBUG] > Running: git commit -m ci: add project id for Datastore tests

Source-Author: Alexey Andreev<EMAIL_ADDRESS>Source-Date: Tue Jan 19 20:46:24 2021 +0300
Source-Repo: googleapis/google-cloud-php
Source-Sha: 93cf8bda3a07bed78a0232abf0a652fa07b3a449
Source-Link: https://github.com/googleapis/google-cloud-php/commit/93cf8bda3a07bed78a0232abf0a652fa07b3a449
[autosynth-spanner-0 7a815e2d] ci: add project id for Datastore tests
 1 file changed, 1 insertion(+), 1 deletion(-)
2021-01-28 04:01:11,197 autosynth [DEBUG] > Running: git reset --hard HEAD
HEAD is now at 7a815e2d ci: add project id for Datastore tests
2021-01-28 04:01:11,238 autosynth [DEBUG] > Running: git checkout autosynth-spanner
Switched to branch 'autosynth-spanner'
2021-01-28 04:01:11,265 autosynth [DEBUG] > Running: git diff autosynth-spanner-0..autosynth-spanner-259 -- . :(exclude)synth.metadata
Traceback (most recent call last):
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 354, in <module>
    main()
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 189, in main
    return _inner_main(temp_dir)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 334, in _inner_main
    commit_count = synthesize_loop(x, multiple_prs, change_pusher, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 104, in synthesize_loop
    return synthesize_loop_single_pr(toolbox, change_pusher, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 126, in synthesize_loop_single_pr
    synthesize_inner_loop(toolbox, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 152, in synthesize_inner_loop
    synthesize_range(toolbox, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 173, in synthesize_range
    toolbox.sub_branch(old), toolbox.sub_branch(young)
  File "/tmpfs/src/github/synthtool/autosynth/synth_toolbox.py", line 193, in git_branches_differ
    return git_branches_differ(branch_a, branch_b, self._metadata_path)
  File "/tmpfs/src/github/synthtool/autosynth/synth_toolbox.py", line 342, in git_branches_differ
    proc = executor.run(diff_cmd, stdout=subprocess.PIPE, universal_newlines=True)
  File "/tmpfs/src/github/synthtool/autosynth/executor.py", line 23, in run
    return subprocess.run(command, **args)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/subprocess.py", line 425, in run
    stdout, stderr = process.communicate(input, timeout=timeout)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/subprocess.py", line 850, in communicate
    stdout = self.stdout.read()
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/codecs.py", line 321, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa8 in position 1966: invalid start byte

Google internal developers can see the full log here.


[FEAT] Here doc tmp file name must not collide with any other file names

The file name must not already exist in the directoy where it will be stored.
The file name must not be created during the execution of the command line.

This is almost impossible to predict, because a program launched by the shell could create a file with exactly that name of the here doc tmp file.

I think I found a perfect solution for the heredoc filename:
There is a flag for open() called O_TMPFILE (manual entry).
It creates an unnamed file in the directory specified as an argument.
We just need to close the file descriptor later, because closing the fd will delete the file.

Originally posted by @itislu in https://github.com/LeaYeh/minishell/pull/55#discussion_r1438991890

TMPFILEs are not supported on every filesystem. The one on the school computors apparently does not support it.


num.stream.threads not taking effect

Spring Cloud streams project processing a Kafka topic with multiple partitions for high throughput. Previously on Hoxton.RELEASE then migrated to Hoxton.SR3.
App configured with single input and output topic:
spring:
cloud:
stream:
kafka:
streams:
binder:
configuration:
num.stream.threads: 5
Yet upon startup logging shows
2020.05.12T04:57:43.472-0500 [logLvl=INFO] [thr=main ctgy='org.apache.kafka.streams.StreamsConfig'] [TraceID=, SpanID=] - StreamsConfig values:
num.stream.threads = 1
And throughput obviously severely reduced.
Needed to specifically add
  bindings:
    input:
      consumer:
        concurrency: 5

To trigger correct logging/initialisation of:
2020.05.12T04:59:42.416-0500 [logLvl=INFO] [thr=main ctgy='org.apache.kafka.streams.StreamsConfig'] [TraceID=, SpanID=] - StreamsConfig values:
num.stream.threads = 5
Wondering if it relates to https://github.com/spring-cloud/spring-cloud-stream-binder-kafka/pull/845/commits/1cc50c1a40d1d01843746cc8b55e5db362b81faf

Issue moved to spring-cloud/spring-cloud-stream-binder-kafka #899 via ZenHub


bug: swipe to go back flicker when using ios md on an android device

Bug Report
Ionic version:

[x] 4.7 and 4.11.1
Current behavior:

The tabs created through cli have not been changed
When the android platform USES the ios style, a splash screen will appear on the return page
Expected behavior:

Normal return page
Other information:

Thanks for the issue. Can you give the following dev build a try and let me know if it resolves your issue?
npm i<EMAIL_ADDRESS>

Thanks for the issue. Can you give the following dev build a try and let me know if it resolves your issue?
npm i<EMAIL_ADDRESS>
Problem solved, thank you

Thanks! This issue has been fixed and will be available in an upcoming release of Ionic Framework.


Add compatibility with 0.8

It's compatible, tested on v0.8.2

How about on 0.9.3?

It's compatible with 0.9 as well.

Thanks for your reply, I can do the upgrade now :smile:


Failing prediction of address for Chiado

While using this package to work with the testnet chiado, we faced an issue regarding the prediction of the address.. After debuging locally we realise that the eth_estimateGas calls fails for Chiado while the same call for Gnosis works.
curl https://rpc.chiadochain.net \
  -X POST \
  -H "Content-Type: application/json" \
  --data '{"method":"eth_estimateGas","params":[  {"to": "0x66c0FE88C2Aef9DE75CB725E8bCCE61891DF4393","value": "1"}],"id":1,"jsonrpc":"2.0"}'

 curl https://rpc.gnosischain.com/ \
  -X POST \
  -H "Content-Type: application/json" \
  --data '{"method":"eth_estimateGas","params":[  {"to": "0x450Fc3eAc8b847a759Cb05790cE7A1f465ac0cE8","value": "1"}],"id":1,"jsonrpc":"2.0"}'

If we change the value from 1 to 0 then it retunds and address. This values come directly from the line below.
https://github.com/safe-global/safe-eth-py/blob/2fcf1eca51f25a16924521f23bb17bce6125b5f3/gnosis/safe/safe_create2_tx.py#L251
Can you help us to understand the different behaivour for both chains towards the same call? and wether is possible to hardcode that value to 0. From what we tried this doesnt seem to affect the address prediction for gnosis.

You are posting a direct call to the RPC so there's nothing to do with this library. I will let Gnosis team about this

that's the call that the code does, that's why I put it as an exampleso if we change the value in safe_create2_tx the  transactions changes and it can get executed...

Still, it needs to be fixed on the RPC side.
If you run
curl https://rpc.chiadochain.net/ \
  -X POST \
  -H "Content-Type: application/json" \
  --data '{"method":"eth_estimateGas","params":[{"to":"0xd3CdA913deB6f67967B99D67aCDFa1712C293000","value":"0x1"}],"id":1,"jsonrpc":"2.0"}'

You get an insufficient funds error, and that doesn't happen in any other network. I recall we used payment: 1 at that point to prevent this kind of issues, so I won't remove for a concrete case for a RPC misbehaving

got it - who can I ask to address this issue? we send it to some people in gnosis but not response so far...

You can open issues here: https://github.com/gnosischain/issues/issues
Also the issue was reported on: https://github.com/NethermindEth/nethermind/issues/4197


Animation begin attribute doesn't work with dashes added by bin/svg.js

Context
bin/svg.js script edits the ID's in the original SVG files and makes them to match format svgicon-{path-to-file-}{name}-{originalID}. E.g. svgicon-search-a
ID can be used in the animate tag in begin attribute, e.g. to tell the animation to start after another animation: begin="another_animation_id.end"
Problem
Accordingly to begin attribute specification, characters - and + are interpreted to define an offset to the specified event. E.g. begin="another_animation_id.end + 2s"
Thus a construction like begin="svgicon-search-a.end" doesn't work. The dashes have to be either escaped (begin="svgicon\-search\-a.end") or replaced in the ID itself.
Possible Solution
Possible solution would be to replace the dashes with underscores in the bin/svg.js

@thommeo Can you show me your SVG file or an example?

I think you should use css animation

@Allenice I can't use CSS animation for mask and stroke animations.
Here is SVG:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">

	<title>sucess-curves</title>
	<defs>
		<mask id="mask-circle">
			<rect cx="0" cy="0" width="64" height="64" style="fill:#fff; stroke: none;" />
			<circle cx="32" cy="32" r="32" style="fill: #000; stroke: none;">
				<!-- http://easings.net/#easeInQuint -->
				<animate attributeName="r"
					id="maskcircle_anim"
					begin="0s" dur="500ms" fill="freeze"
					calcMode="spline" keySplines="0.755, 0.05, 0.855, 0.06"
					values="32; 0"
					keyTimes="0; 1"
				/>
			</circle>
		</mask>
	</defs>

	<!-- filled circle -->
	<g mask="url(#mask-circle)">
		<circle cx="32" cy="32" r="30.5" style="fill:#23d160;stroke:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:3px"/>
	</g>

	<!-- checkmark -->
	<polyline points="13.82 31.34 27.73 45.25 50.4 22.59" style="fill:none;stroke:#fff;stroke-linecap:round;stroke-linejoin:round;stroke-width:3px; stroke-miterlimit: 10; stroke-dasharray: 59 1000; stroke-dashoffset: 59;">
		<!-- http://easings.net/#easeOutExpo -->
		<animate attributeName="stroke-dashoffset"
			id="check_anim_in"
			begin="maskcircle_anim.end" dur="1000ms" fill="freeze"
			calcMode="spline" keySplines="0.19, 1, 0.22, 1"
			values="100; 0"
			keyTimes="0; 1"
		/>
	</polyline>
</svg>

Here is what I have after my patch. It works.
/* eslint-disable */

var icon = require('vue-svgicon')
icon.register({
  'success-animated': {
    width: 16,
    height: 16,
    viewBox: '0 0 64 64',
    data: `<defs><mask id="svgicon_a"><path pid="0" _fill="#fff" d="M0 0h64v64H0z"/><circle pid="1" cx="32" cy="32" r="32"><animate attributeName="r" id="svgicon_b" begin="0s" dur="500ms" _fill="freeze" calcMode="spline" keySplines="0.755, 0.05, 0.855, 0.06" values="32; 0" keyTimes="0; 1"/></circle></mask></defs><g mask="url(#svgicon_a)"><circle pid="2" cx="32" cy="32" r="30.5" _fill="#23d160"/></g><path pid="3" _fill="none" _stroke="#fff" stroke-linecap="round" stroke-linejoin="round" stroke-width="3" stroke-miterlimit="10" stroke-dasharray="59 1000" stroke-dashoffset="59" d="M13.82 31.34l13.91 13.91L50.4 22.59"><animate attributeName="stroke-dashoffset" begin="svgicon_b.end" dur="1000ms" _fill="freeze" calcMode="spline" keySplines="0.19, 1, 0.22, 1" values="100; 0" keyTimes="0; 1"/></path>`
  }
})

Fixed in v3.0.0


Menu (Linux) - setting application menu multiple times causes lost items or duplicates

We are seeing an issue in VS Code on Ubuntu 15 where top level menu items show up duplicate or are even missing. This seems to be caused by updating the menu via setApplicationMenu() after it has already been set. Since that is the only way to update a menu, we need to do it that way (I guess Atom has to too).
We are sitting on Electron 0.28.3. Have you guys heard of this issue before?

I don't think I saw similar problems in Atom, but it might be a bug since the application menu bar implementation on Ubuntu Unity is completely different from other operating systems. Can you provide some code snippets that can reproduce this problem?

I can try but basically what we do is to set a menu structure and update it frequently (by resetting the entire structure because there is no other way).
Atom might not show this issue because it sits on a very old electron version :)

Didn't receive similar reports after this, and we really need a reproducible case to be able to look into it. So I'm closing this.


overwrite splash screen

Description
I'm trying to overwrite the RPi splash screen.
Followed the instructions from https://stackoverflow.com/a/63732589
no success.
Steps to reproduce the issue:

psplash_%.bbappend:

FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
SPLASH_IMAGES_append = " file://foo-img.png;outsuffix=bar"
ALTERNATIVE_PRIORITY_psplash-bar[psplash] = "200"

conf/local.conf:

PACKAGE_INSTALL_append = " psplash-bar"

Describe the results you received:
Still shows Raspberry Pi logo on splash screen.
Describe the results you expected:
Custom image on splash screen.
Additional details (revisions used, host distro, etc.):
Tested under dunfell.

I am under dunfell as well, and the following works for me:
append recipe:
FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
SPLASH_IMAGES_seesv = "file://psplash-seesv-img.h;outsuffix=seesv"

image recipe:
SPLASH = "psplash-seesv"

Note: seesv is my own BBFILE_COLLECTIONS with BBFILE_PRIORITY_seesv = "30"

Thanks, @gvkalra . @bernardoaraujor , good to close?

thanks @gvkalra your solution only differs from mine with regards to BBFILE_PRIORITY.
I set mine to 30 like yours and I still see the RPi logo during boot.

actually my bad! I was doing SPLASH_IMAGES_append instead of SPLASH_IMAGES_bar.
works fine now.
sorry @agherzan
thanks again @gvkalra
closing.

That's absolutely fine. Glad it's sorted.


Quiet option fix

Fixes #375 by including compile definitions for ET_QUITE and NGEN_QUITE, as well as ensuring these are set before the various subdirectory builds are added.
Additions

Compile definitions in CMakeLists.txt for ET_QUITE and NGEN_QUITE

Changes

Add compiler definitions before calls to add_subdirectory in CMakeLists.txt

Testing

Build tested for QUITE operations using cmake 3.17.5

Checklist

[x] PR has an informative and human-readable title
[x] Changes are limited to a single goal (no scope creep)
[x] Code can be automatically merged (no conflicts)
[x] Code follows project standards (link if applicable)
[x] Passes all existing automated tests
[x] Any change in functionality is tested
[x] New functions are documented (with a description, list of inputs, and expected output)
[x] Placeholder code is flagged / future todos are captured in comments
[x] Project documentation has been updated (including the "Unreleased" section of the CHANGELOG)
[x] Reviewers requested with the Reviewers tool :arrow_right:

Target Environment support

[x] Linux
[x] MacOs

Quite remarkable, I must say.


decouple distinct from observable

Decouple distinct from observable.
No implementation changes.
Please, review
Thank you,
Grigoriy

Nice! thanks for the work on MSVC 👍


Add an environment variable to set the context window size

Context
We're getting errors because the context window size is being exceeded.
Changes proposed in this pull request

Adds an environment variable to declare the maximum
Adds a tiktoken dependency to count tokens
Uses it in the chat history, and nowhere else for now

Guidance to review

Check you're happy with how I've implemented this
Run the django app and check it works

Things to check

[x] I have added any new ENV vars in all deployed environments
[x] I have tested any code added or changed
[x] I have run integration tests

Do we need to add this to any of the .env files?

If it picks up sensible defaults elsewhere, that's fine I think. But if we need them set, we should set them in .env.integration at least.
Thinking about it, if the tests are passing, we clearly don't need them explicitly set in .env so it's fine, right?


cubesql_cursor_cstring and cubesql_cursor_cstring_static do not differ between NULL and Empty-String

The API-Functions cubesql_cursor_cstring and cubesql_cursor_cstring_static return a NULL-Pointer when the field contains an empty string.
The lines:
if ((field == NULL) || (len <= 0)) return NULL;
should be
if ((field == NULL) || (len < 0)) return NULL;
I think that should fix the problem.

Thanks a lot @dape82 , I added your fix and a couple more in the latest commit.


⚠ Avatar API Endpoint has degraded performance

In 84ac8cf, Avatar API Endpoint (https://avatar.roblox.com/v1/avatar-rules) experienced degraded performance:

HTTP code: 200
Response time: 1077 ms

Resolved: Avatar API Endpoint performance has improved in 7ce5c69 after 27 minutes.


update Programmatic API documentation

There is very little information that explains how to use the programmatic interface.  All that is really mentioned is this wiki page that provides an example.  It would be nice to see explicitly what is available like this (for example).

continue in mochajs/mochajs.github.io#6


WP Namespace version 1.2

I recently implemented this API against a wordpress export file with namespace "http://wordpress.org/export/1.2/" rather than the hard-coded "http://wordpress.org/export/1.1/". It means that no child elements were being returned in the API methods.
If the blog class could infer the NS from the document instead that would resolve this.
Great utility though, really please to have found it, saved me loads of time :)

Thanks for the report. I haven't written much C# since 3 years ago and it was for this project. I may get around to modifying it like you mentioned but if you'd like to send a pull-request that fixes it that'd be welcome too.


Upgrade to Ruby 2.4.2 & Bundle update

Ahead of enabling Dependabot on the repository, we want to be using the latest
dependancies, to minimise the onslaught of incremental PRs.
https://trello.com/c/vX8qwh2X/46-ruby-upgrade-of-all-apps

Looks like there's no change in the Doorkeeper::AuthorizationsController between 4.2.0 and 4.2.6 as it doesn't appear in the files changed list on https://github.com/doorkeeper-gem/doorkeeper/compare/v4.2.0...v4.2.6.  There is a change in the specs for it (see: https://github.com/doorkeeper-gem/doorkeeper/compare/v4.2.0...v4.2.6#diff-71675d21b066882b49c6a7cb64f4507e) - so maybe we should import those to our signin_required_authorizations_controller_test.rb to make sure we don't miss anything.  Especially as they include rails 5 changes.


Build(deps-dev): Bump @typescript-eslint/parser from 6.7.0 to 6.8.0 (#5194)

Pull request opened by the merge tool on behalf of #5194

Merged in f6ba5f4e7218bd124ca38c6dcaa0b4b7bf947b21


Search should search through contents, not just TOC

As a user I want to be able to search the docs.
Current behaviour

I enter a search term into the search box
the TOC gets filtered by the search term

Expected behaviour

I enter a search term into the search box
I get a list of search results either below the search box (autocomplete) or in the main content area

This is now possible with the capabilities of the Search plugin. This Docs plugin fully supports and integrates with that plugin.


GEOMESA-797 StreamDataStore returns incorrect results on bbox queries

Added post-processing to the bbox queries in StreamFeatureSource

Signed-off-by: Anthony Fox<EMAIL_ADDRESS>

merged as fde56e6ed1176feabb3469c592a5620e74cdb226


[lock] interoperate with Go client

Go client uses a different prefix.
Ref:

https://github.com/python-zk/kazoo/issues/548
https://github.com/go-zookeeper/zk/pull/19

I'll add a unittest.

Before:
While a Go client is holding a Read/Write lock the Python client would still be able to acquire a lock.
After:
While a Go client is holding a Read/Write lock the Python client properly waits for the lock to be released.

Thanks for the PR, looks good to me.
I think longer term, an enhancement would be to pass the pattern(s) to the lock constructor so that we do not have to do this again for Java, C# etc etc.
This can be put as an improvement for later on.
Question actually, do you know how the go client handles this? Does it watch for Python locks as well? Takes a list of patterns?

I think longer term, an enhancement would be to pass the pattern(s) to the lock constructor so that we do not have to do this again for Java, C# etc etc.
This can be put as an improvement for later on.

Sounds good.

Question actually, do you know how the go client handles this? Does it watch for Python locks as well? Takes a list of patterns?

I created a simple PR to watch for Python locks: https://github.com/go-zookeeper/zk/pull/19.
No list of patterns for now but may be a future improvement as well.

Hi,
Thanks for your time on this PR.
I agree with @ceache about passing a list of patterns to the Lock() constructor (using a new kwarg for instance). I was thinking about backward compatibility and I am not sure if merging this as if would generate some problems/side effets to our current user base. The long term solution seems safer. @pmazzini would you be willing to implement it? Any thoughts?

I was thinking about backward compatibility and I am not sure if merging this as if would generate some problems/side effets to our current user base.

It looks pretty safe to me. What kind of backward compatibility are you referring to?
Ideally all libraries should use the same prefix/protocol for acquiring locks. However, since that is not the case, this change only makes them be able to interoperate.
I agree with having a pattern in the future to make it more extensible. To make it easier to support other other libraries (Java, C#, etc) which may be doing something different but not for safety reasons. Shouldn't the default pattern be the one that allows the libraries to interoperate?
I would move forward with this change for now unless you see a problem with it.

ping

Would you be OK with this implementation?

Would you be OK with this implementation?

Thanks for taking over it. I would default it to be able to interoperate with the Go client. Other than that, it looks ok to me.

I was thinking of any impact on the Semaphore() recipe seeing this comment but did not manage to find anything.
I am not sure why we should accept go lib pattern as default here? If we do that, we then would also need to do the same for any other lib... If the reason is "because this is how the official Zookeeper documentation recommends to implement a Lock(), then I'm perfectly fine with it.
(As a note, please follow our CONTRIBUTING.md  guidelines for your commit)

If the reason is "because this is how the official Zookeeper documentation recommends to implement a Lock(), then I'm perfectly fine with it

Yeah, good point, the Go lib is following the official docs.

Ok, let me have a look at the official docs vs the go implementation and the java implementation of the locks. The locks names in the official docs are "path/<guid>-lock-<seq>" for regular locks. But for shared locks, they are "<guid>-/reader-<seq>" / "<guid>-/writer-<seq>" which does not make sense to me. If these are guides and not specs, then there will be interpretations and variations (like in this case).
Let me see if I can come up with something.

The Go client is only implementing regular locks following that doc.

Let me see if I can come up with something.

Any thoughts?

I have had a look at the Java client recipe, at another Python client (zkaio) and gozk.
It seems it is all a Zoo (pun intended): As far as I can tell, Java uses the session ID as guid, zkaio has different naming (no "-lock-"), go-zookeeper has some strange prefix and departs from it when it comes to r/w locks.
So, in summary, everyone has they own interpretation of these "official docs".
I then looked at our code more closely and found some interesting bugs/shortcomings such as #605 and, more importantly #606 (which seem to be shared by the other implementations, BTW).
Back to this issue, I have  for now made a patch that renders our matching much more strict (only consider "$" as contenders) and that makes our matching much more safe, especially in a diverse environment with additional patterns.
So the option of having additional patterns will be a fully working alternative.
As for using go naming by default, I think we should decide as a whole to either a) switch completely to the "official" naming pattern and deprecate (but still support) the old format or b) stick to supporting alternate schemes as optional.
@python-zk/maintainers what do you think?

@StephenSorriaux @jeffwidman ping
Which way do you lean?

Thank you a lot @ceache for digging in all of this. You're right, all of this is just a real Zoo, and I don't see any point to bother follow what the "official" documentation may recommend if the Java Zookeeper recipe does not even try to (x-sessionId- is used)...
In my opinion, and to answer your question, I would go with the option b) you mentioned since I don't see any gain switching to the other one. I really like the new extra_lock_patterns kwarg, along with the fixes you added.


Show corresponding message when course not found in course command

Closes #6
Added an extra check in course command in case the course is not included at all in the api response

Thanks for your help!


x/website: All download links resolve to 404 error page

What is the URL of the page with the issue?
https://go.dev/dl/
What is your user agent?

Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:97.0) Gecko/20100101 Firefox/97.0
Screenshot

(7.1 MB GIF Animation)
(Dark Reader extension is activated)

What did you do?

Just tried downloading a recent version of Go.
What did you expect to see?
Browser's download dialog!
What did you see instead?
Every link was redirected to the 404 (not found) page.

any solution for that?

@yeganehaym Try again with a VPN / Proxy.
Months ago, I opened this issue. After a few hours I noticed that the website is fully functional, and 404 error is occasionally shown to some users whom their IP originates from certain countries (like Iran) / ISPs.

@yeganehaym Try again with a VPN / Proxy. Months ago, I opened this issue. After a few hours I noticed that the website is fully functional, and 404 error is occasionally shown to some users whom their IP originates from some countries (like Iran) or certain ISPs / VPN providers.

any luck on solving this?


LoopDetector aggregated data accessibility

Class LoopDetector has no accessibility to the underlying aggregated data. Only via a table can this data be accessed. To report information to some other source, e.g. to create a plot of the data so far, method can be defined that report the aggregated data for specific measurements.

The following methods have been made available in LoopDetector:
public <T> List<T> getPeriodicData(final LoopDetectorMeasurement<?, T> measurement)
public <T> List<T> getPeriodicData(final LoopDetectorMeasurement<?, T> measurement, final GtuType gtuType)
public <T> T getNonPeriodicData(final LoopDetectorMeasurement<?, T> measurement)
public <T> T getNonPeriodicData(final LoopDetectorMeasurement<?, T> measurement, final GtuType gtuType)
Measurement null can be used to obtain periodic flow data, which is measured by default. In the methods where no GTU type is provided, the data for all GTU types combined is given. This is the same as providing null as the GTU type.
The class has be made shorter by making LoopDetectorMeasurement an abstract class rather than an interface. It stores name, description, identity provider (initial accumulation value), value type, and whether the measurement is periodic. Methods for this information no longer need to be implemented by the sub-class measurement types.


drivers: ethernet: remove sections.ld for SOC_SERIES_STM32H5X

remove section(".eth_stm32_desc") and
section(".eth_stm32_desc") for SOC_SERIES_STM32H5X
Fixes https://github.com/zephyrproject-rtos/zephyr/issues/66309

How does this change affect performance of Ethernet on H5? If I understand it correctly the buffers are placed in SRAM3 since Ethernet MAC should have fast bus multiplex with SRAM3.

How does this change affect performance of Ethernet on H5? If I understand it correctly the buffers are placed in SRAM3 since Ethernet MAC should have fast bus multiplex with SRAM3.

No Impact on performance. This change is just a clean up of implementation leftover (see https://github.com/zephyrproject-rtos/zephyr/issues/66309#issuecomment-1851985074)

I think there was a good reason for linking those buffers to SRAM3 instead of being implicitly placed (usually in SRAM1). But it would be good if STM could comment on the benefits.


update to latest pydantic

How can we update to latest pydantic version 2.0?

I've tried both migrating to the new V2 models as well as using the V1 old API

I was looking at the changes pydantic devs made with v2 today. I briefly took a look at gdsfactory and tried running some stuff. This is not everything, but here are things to consider....

You have already seen about the "bump-pydantic" package on pypi? if not check it out. If you run this first it will be helpful do most of the heavy lifting.
We probably will require pip install pydantic-extra-types package because from pydantic.color import Color will not work anymore.
LayerStack in generic tech: add type hints here and below. e.g.“substrate: LayerLevel =... ” rather than “substrate = …”
The confusing part for me is we need to do something with the __get_validators__ whenever we want to validate a normal class (which does not inherit from pydantic.BaseModel). I think we need to replace it with __get_pydantic_core_schema__ but I may be wrong about this. see the error and a possible solution (just a guess, try handler(BaseModel) instead of handler(str) as in the example). There are not that many classes for which we must make this change. run grep -r "__get_validators__" from the command line and you will see the places we need to change.

Hi Ali,
yes the automatic tool worked better
https://github.com/gdsfactory/gdsfactory/pull/1879
thanks for suggesting that


Conditional binery operator expected

Conditional binary operator expected on line 48 in apkRename.sh

Than you for your report. Seems your bash does not support  ()  semantics which means array.
What is your bash version?

ill think 3.1

I think you should use bash 3.2+,
I think the problem is inside following statement(line 48),
if [[ -z "$2" ]] || [[ "$2" =~ ^-+ ]]; then log "option requires an argument for $1"; exit 1; fi
The "$2" =~ ^-+  means second string match regular expression  ^-+  ( starts with one or more hyphens).
It's said from bash 3.2 change regular expression usage with 3.1.
If you can not use bash 3.2+, you can just remove   "|| [[ "$2" =~ ^-+ ]]". Hope you work fine.

Thanks man its working. But when i upload the apk to google play it says that my apk needs to be zipaligned so ill run zipalign and when i upload it then it says its not signed... but when i upload the apk from the start it works.

Good.
Sorry i did not call zipalign nor sign, you have to call them manually,
it seems you have tried zipalign but not yet sign, so you can use following command to sign:
jarsigner -keystore "$debugKeyStoreFile" -sigfile CERT -sigalg SHA1withRSA -digestalg SHA1 -storepass $StorePassword -keypass $keyPassword "$apkPath" $KeyStoreAliasName
Please replace $...


EventEmitter memory leak detected error

Hi there,
when adding more than 11 keys to get indexed I always get the following error in the console and thus the building of indexes also seem to be cancelled:
(node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit.
Is there a quick-fix that could solve this problem? Don't know if increasing the setMaxListeners limit as suggested is a good idea?!

Increasing the maxListeners is typicaly fine, but it would be nice to know what you're doing just in case there is a deeper issue here? Are you creating/destroying lots of databases, or creating lots of indexes, or something else...?

I am creating four databases, each with multiple indexes to allow fast search-queries. Where do I have to put the maxListeners setting in the code?

Most likely on the PouchDB constructor itself, else the DB. If you're not sure, use https://github.com/nolanlawson/throw-max-listeners-error to find where the error is being thrown. Also check out this: http://pouchdb.com/errors.html#event_emitter_limit

Thanks! That did the trick... :)


[In progress] Use JDK 1.7 as build version

this fails the build. What is this for?  Aren't we already compiling with v7??

This will pass after api-annotations shows up here: http://search.maven.org/#search|ga|1|api-annotations

it says "In Progress" -- is it not ok to merge yet?

Oh if it's passing sure.


[RFC] Improve Swarmion documentation

In order to provide a useful tool to developers, we need to clearly explain our architectural choices and guide users.
I have drafted a first structure, this is open for suggestions!
Tutorials

Generate your first Swarmion app
Get started on AWS
Add your first Serverless service
Add your first shared Typescript library
Add your first frontend
Create your first contract between the frontend and the backend

How-to guides

Add authentication to your Serverless contracts
Managing package upgrades with Swarmion
Generating libraries with Swarmion
Generating Serverless services with Swarmion
Migrating from a monolith to Swarmion
Share variables between your services
Configuring your CI/CD

Github actions
CircleCI
GitlabCI

Explanation

Why use a microservices approach?
Why use a monorepo?
Why use yarn3 and workspaces?
Why share code between services?
Why build Typescript packages?
Serverless bundling → from TS to JS (why esbuild)
Why use Nx as a monorepo management tool?
Understanding configuration composition

Typescript
Eslint
Jest
linstaged

Understanding the Swarmion VSCode configuration
Why check for circular references?
Why use a precommit hook?
Understanding Serverless contracts

Types of contracts
Concepts
Why are they using functionnal programming?

Miscellaneous tools

Why Fresko?
Why synckpack?
Why Commitlint?

References

@swarmion/serverless-contracts
@swarmion/nx-plugin
@swarmion/serverless-plugin
@swarmion/nx-plugin
Code structure

Monorepo structure
Root config files
Serverless service structure
Package structure
Frontend shared package structure
Frontend structure

Hello @adriencaccia @fargito,
Great job with Swarmion so far I am a huge (a bit biased) fan !
I think it is important to add some context on the core service that holds the httpApi.
Indeed, almost all services will implicitly depend on this services output. I think it is quite important to provide a bit of guidelines on what you should put (or not) in this service as it breaks the independence of the deployments.
In my opinion in a classical AWS serverless stack it should only contain:

shared DynamoDB database
shared eventbridge
shared api gateway
if you use Cognito JWT authorizer, it's easier to put it in core also

And that's it (no lambda). It should only contain resources that won't change much while the project lives.
Would love to know what you think should go in this core service !

We also need to explain the nx-cloud setup in Swarmion. See https://github.com/nrwl/nx/issues/10402#issuecomment-1141782573


Correct tB to yB

This change fixes what looks like a mismatch in terms between a reduction step and its written explanation.

Thanks!


Allow receiving broadcast packets in UDP

This allows the reception of UDP broadcast packets. They will fall through to the process_udp function. The tcp and icmp functions also receive potential broadcast packets, but they should already be discarded.

The destination address is not checked to see if it is the broadcast address before sending ICMP error responses currently (RFC 1122 § 3.2.2). Currently this conditional is the only thing keeping us from causing a broadcast storm due to a weird broadcast packet. The specific panic is here, and is due to the packet created for the no_icmp_to_broadcast test having no payload.

@dlrobertson Wow, your tests already paid off. Thanks a lot!

@whitequark, I believe @dlrobertson is working on a fix, to prevent the ICMP error message from being sent

After a rebase, tests should pass here.

@jackpot51 Can you rebase?

Yep, will do

@whitequark it is done

Any chance you can write a test for this?

Sure!

@whitequark I do not see any current tests for UDP in the ethernet interface, am I mistaken?

@jackpot51 https://github.com/m-labs/smoltcp/blob/master/src/iface/ethernet.rs#L828-L911 is an example of a test in the ethernet interface for UDP. Essentially you could do the same thing as the second half of that test, but add a socket to the socket set that is listening to the port of interest.

Ok, cool

@jackpot51 ping?

Sorry @whitequark, I have been busy porting cargo.

I added tests with redox-os/smoltcp#1

@whitequark the tests from @dlrobertson are now merged