Synthesis failed for LocalServices

Hello! Autosynth couldn't regenerate LocalServices. :broken_heart:
Here's the output from running synth.py:
EBUG] > Running: git branch -f autosynth-localservices
2020-12-18 06:22:25,661 autosynth [DEBUG] > Running: git checkout autosynth-localservices
Switched to branch 'autosynth-localservices'
2020-12-18 06:22:25,900 autosynth [INFO] > Running synthtool
2020-12-18 06:22:25,901 autosynth [INFO] > ['/tmpfs/src/github/synthtool/env/bin/python3', '-m', 'synthtool', '--metadata', 'clients/local_services/synth.metadata', 'synth.py', '--']
2020-12-18 06:22:25,901 autosynth [DEBUG] > log_file_path: /tmpfs/src/logs/elixir-google-api/LocalServices/sponge_log.log
2020-12-18 06:22:25,903 autosynth [DEBUG] > Running: /tmpfs/src/github/synthtool/env/bin/python3 -m synthtool --metadata clients/local_services/synth.metadata synth.py -- LocalServices
2020-12-18 06:22:26,117 synthtool [DEBUG] > Executing /home/kbuilder/.cache/synthtool/elixir-google-api/synth.py.
On branch autosynth-localservices
nothing to commit, working tree clean
2020-12-18 06:22:27,864 synthtool [DEBUG] > Running: docker run --rm -v/tmpfs/tmp/tmpncmg3f7t/repo:/workspace -v/var/run/docker.sock:/var/run/docker.sock -e USER_GROUP=1000:1000 -w /workspace gcr.io/cloud-devrel-public-resources/elixir19 scripts/generate_client.sh LocalServices
DEBUG:synthtool:Running: docker run --rm -v/tmpfs/tmp/tmpncmg3f7t/repo:/workspace -v/var/run/docker.sock:/var/run/docker.sock -e USER_GROUP=1000:1000 -w /workspace gcr.io/cloud-devrel-public-resources/elixir19 scripts/generate_client.sh LocalServices
/workspace /workspace
The mix.lock file was generated with a newer version of Hex. Update your client by running `mix local.hex` to avoid losing data.
Resolving Hex dependencies...
Dependency resolution completed:
Unchanged:
  certifi 2.5.1
  google_api_discovery 0.7.0
  google_gax 0.3.2
  hackney 1.15.2
  idna 6.0.0
  jason 1.2.1
  metrics 1.0.1
  mime 1.3.1
  mimerl 1.2.0
  oauth2 0.9.4
  parse_trans 3.3.0
  poison 3.1.0
  ssl_verify_fun 1.1.5
  temp 0.4.7
  tesla 1.3.3
  unicode_util_compat 0.4.1
* Getting google_api_discovery (Hex package)
* Getting tesla (Hex package)
* Getting oauth2 (Hex package)
* Getting temp (Hex package)
* Getting jason (Hex package)
* Getting poison (Hex package)
* Getting hackney (Hex package)
* Getting certifi (Hex package)
* Getting idna (Hex package)
* Getting metrics (Hex package)
* Getting mimerl (Hex package)
* Getting ssl_verify_fun (Hex package)
* Getting unicode_util_compat (Hex package)
* Getting parse_trans (Hex package)
* Getting mime (Hex package)
* Getting google_gax (Hex package)
The mix.lock file was generated with a newer version of Hex. Update your client by running `mix local.hex` to avoid losing data.
==> temp
Compiling 3 files (.ex)
Generated temp app
===> Compiling parse_trans
===> Compiling mimerl
===> Compiling metrics
===> Compiling unicode_util_compat
===> Compiling idna
==> jason
Compiling 8 files (.ex)
Generated jason app
warning: String.strip/1 is deprecated. Use String.trim/1 instead
  /workspace/deps/poison/mix.exs:4

==> poison
Compiling 4 files (.ex)
warning: Integer.to_char_list/2 is deprecated. Use Integer.to_charlist/2 instead
  lib/poison/encoder.ex:173

Generated poison app
==> ssl_verify_fun
Compiling 7 files (.erl)
Generated ssl_verify_fun app
===> Compiling certifi
===> Compiling hackney
==> oauth2
Compiling 13 files (.ex)
Generated oauth2 app
==> mime
Compiling 2 files (.ex)
Generated mime app
==> tesla
Compiling 26 files (.ex)
Generated tesla app
==> google_gax
Compiling 5 files (.ex)
Generated google_gax app
==> google_api_discovery
Compiling 21 files (.ex)
Generated google_api_discovery app
==> google_apis
Compiling 28 files (.ex)
Generated google_apis app

14:22:58.638 [info]  FETCHING: https://localservices.googleapis.com/$discovery/GOOGLE_REST_SIMPLE_URI?version=v1

14:22:58.763 [info]  FETCHING: https://localservices.googleapis.com/$discovery/rest?version=v1

14:22:58.776 [info]  FOUND: https://localservices.googleapis.com/$discovery/rest?version=v1
Revision check: old=20201213, new=20201213, generating=true
Creating leading directories
Writing GoogleAdsHomeservicesLocalservicesV1AccountReport to clients/local_services/lib/google_api/local_services/v1/model/google_ads_homeservices_localservices_v1_account_report.ex.
Writing GoogleAdsHomeservicesLocalservicesV1AggregatorInfo to clients/local_services/lib/google_api/local_services/v1/model/google_ads_homeservices_localservices_v1_aggregator_info.ex.
Writing GoogleAdsHomeservicesLocalservicesV1DetailedLeadReport to clients/local_services/lib/google_api/local_services/v1/model/google_ads_homeservices_localservices_v1_detailed_lead_report.ex.
Writing GoogleAdsHomeservicesLocalservicesV1MessageLead to clients/local_services/lib/google_api/local_services/v1/model/google_ads_homeservices_localservices_v1_message_lead.ex.
Writing GoogleAdsHomeservicesLocalservicesV1PhoneLead to clients/local_services/lib/google_api/local_services/v1/model/google_ads_homeservices_localservices_v1_phone_lead.ex.
Writing GoogleAdsHomeservicesLocalservicesV1SearchAccountReportsResponse to clients/local_services/lib/google_api/local_services/v1/model/google_ads_homeservices_localservices_v1_search_account_reports_response.ex.
Writing GoogleAdsHomeservicesLocalservicesV1SearchDetailedLeadReportsResponse to clients/local_services/lib/google_api/local_services/v1/model/google_ads_homeservices_localservices_v1_search_detailed_lead_reports_response.ex.
Writing GoogleTypeTimeZone to clients/local_services/lib/google_api/local_services/v1/model/google_type_time_zone.ex.
Writing AccountReports to clients/local_services/lib/google_api/local_services/v1/api/account_reports.ex.
Writing DetailedLeadReports to clients/local_services/lib/google_api/local_services/v1/api/detailed_lead_reports.ex.
Writing connection.ex.
Writing metadata.ex.
Writing mix.exs
Writing README.md
Writing LICENSE
Writing .gitignore
Writing config/config.exs
Writing test/test_helper.exs

14:22:59.193 [info]  Found only discovery_revision and/or formatting changes. Not significant enough for a PR.
fixing file permissions
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/synthtool/__main__.py", line 102, in <module>
    main()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/tmpfs/src/github/synthtool/synthtool/__main__.py", line 94, in main
    spec.loader.exec_module(synth_module)  # type: ignore
  File "/tmpfs/src/github/synthtool/synthtool/metadata.py", line 252, in __exit__
    self.observer.stop()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/watchdog/utils/__init__.py", line 81, in stop
    self.on_thread_stop()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/watchdog/observers/api.py", line 361, in on_thread_stop
    self.unschedule_all()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/watchdog/observers/api.py", line 357, in unschedule_all
    self._clear_emitters()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/watchdog/observers/api.py", line 231, in _clear_emitters
    emitter.stop()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/watchdog/utils/__init__.py", line 81, in stop
    self.on_thread_stop()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/watchdog/observers/inotify.py", line 121, in on_thread_stop
    self._inotify.close()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/watchdog/observers/inotify_buffer.py", line 50, in close
    self.stop()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/watchdog/utils/__init__.py", line 81, in stop
    self.on_thread_stop()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/watchdog/observers/inotify_buffer.py", line 46, in on_thread_stop
    self._inotify.close()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/watchdog/observers/inotify_c.py", line 277, in close
    os.close(self._inotify_fd)
OSError: [Errno 9] Bad file descriptor
2020-12-18 06:23:02,211 autosynth [ERROR] > Synthesis failed
2020-12-18 06:23:02,211 autosynth [DEBUG] > Running: git clean -fdx
Removing __pycache__/
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 291, in _inner_main
    ).synthesize(synth_log_path / "sponge_log.log")
  File "/tmpfs/src/github/synthtool/autosynth/synthesizer.py", line 120, in synthesize
    synth_proc.check_returncode()  # Raise an exception.
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/subprocess.py", line 389, in check_returncode
    self.stderr)
subprocess.CalledProcessError: Command '['/tmpfs/src/github/synthtool/env/bin/python3', '-m', 'synthtool', '--metadata', 'clients/local_services/synth.metadata', 'synth.py', '--', 'LocalServices']' returned non-zero exit status 1.

Google internal developers can see the full log here.

Autosynth is still having trouble generating LocalServices. :sob:
Here's the output from running synth.py:
EBUG] > Running: git branch -f autosynth-localservices
2020-12-19 06:20:04,280 autosynth [DEBUG] > Running: git checkout autosynth-localservices
Switched to branch 'autosynth-localservices'
2020-12-19 06:20:04,518 autosynth [INFO] > Running synthtool
2020-12-19 06:20:04,518 autosynth [INFO] > ['/tmpfs/src/github/synthtool/env/bin/python3', '-m', 'synthtool', '--metadata', 'clients/local_services/synth.metadata', 'synth.py', '--']
2020-12-19 06:20:04,518 autosynth [DEBUG] > log_file_path: /tmpfs/src/logs/elixir-google-api/LocalServices/sponge_log.log
2020-12-19 06:20:04,521 autosynth [DEBUG] > Running: /tmpfs/src/github/synthtool/env/bin/python3 -m synthtool --metadata clients/local_services/synth.metadata synth.py -- LocalServices
2020-12-19 06:20:04,738 synthtool [DEBUG] > Executing /home/kbuilder/.cache/synthtool/elixir-google-api/synth.py.
On branch autosynth-localservices
nothing to commit, working tree clean
2020-12-19 06:20:06,533 synthtool [DEBUG] > Running: docker run --rm -v/tmpfs/tmp/tmpai5_p148/repo:/workspace -v/var/run/docker.sock:/var/run/docker.sock -e USER_GROUP=1000:1000 -w /workspace gcr.io/cloud-devrel-public-resources/elixir19 scripts/generate_client.sh LocalServices
DEBUG:synthtool:Running: docker run --rm -v/tmpfs/tmp/tmpai5_p148/repo:/workspace -v/var/run/docker.sock:/var/run/docker.sock -e USER_GROUP=1000:1000 -w /workspace gcr.io/cloud-devrel-public-resources/elixir19 scripts/generate_client.sh LocalServices
/workspace /workspace
The mix.lock file was generated with a newer version of Hex. Update your client by running `mix local.hex` to avoid losing data.
Resolving Hex dependencies...
Dependency resolution completed:
Unchanged:
  certifi 2.5.1
  google_api_discovery 0.7.0
  google_gax 0.3.2
  hackney 1.15.2
  idna 6.0.0
  jason 1.2.1
  metrics 1.0.1
  mime 1.3.1
  mimerl 1.2.0
  oauth2 0.9.4
  parse_trans 3.3.0
  poison 3.1.0
  ssl_verify_fun 1.1.5
  temp 0.4.7
  tesla 1.3.3
  unicode_util_compat 0.4.1
* Getting google_api_discovery (Hex package)
* Getting tesla (Hex package)
* Getting oauth2 (Hex package)
* Getting temp (Hex package)
* Getting jason (Hex package)
* Getting poison (Hex package)
* Getting hackney (Hex package)
* Getting certifi (Hex package)
* Getting idna (Hex package)
* Getting metrics (Hex package)
* Getting mimerl (Hex package)
* Getting ssl_verify_fun (Hex package)
* Getting unicode_util_compat (Hex package)
* Getting parse_trans (Hex package)
* Getting mime (Hex package)
* Getting google_gax (Hex package)
The mix.lock file was generated with a newer version of Hex. Update your client by running `mix local.hex` to avoid losing data.
==> temp
Compiling 3 files (.ex)
Generated temp app
===> Compiling parse_trans
===> Compiling mimerl
===> Compiling metrics
===> Compiling unicode_util_compat
===> Compiling idna
==> jason
Compiling 8 files (.ex)
Generated jason app
warning: String.strip/1 is deprecated. Use String.trim/1 instead
  /workspace/deps/poison/mix.exs:4

==> poison
Compiling 4 files (.ex)
warning: Integer.to_char_list/2 is deprecated. Use Integer.to_charlist/2 instead
  lib/poison/encoder.ex:173

Generated poison app
==> ssl_verify_fun
Compiling 7 files (.erl)
Generated ssl_verify_fun app
===> Compiling certifi
===> Compiling hackney
==> oauth2
Compiling 13 files (.ex)
Generated oauth2 app
==> mime
Compiling 2 files (.ex)
Generated mime app
==> tesla
Compiling 26 files (.ex)
Generated tesla app
==> google_gax
Compiling 5 files (.ex)
Generated google_gax app
==> google_api_discovery
Compiling 21 files (.ex)
Generated google_api_discovery app
==> google_apis
Compiling 28 files (.ex)
Generated google_apis app

14:20:36.848 [info]  FETCHING: https://localservices.googleapis.com/$discovery/GOOGLE_REST_SIMPLE_URI?version=v1

14:20:36.986 [info]  FETCHING: https://localservices.googleapis.com/$discovery/rest?version=v1

14:20:36.998 [info]  FOUND: https://localservices.googleapis.com/$discovery/rest?version=v1
Revision check: old=20201213, new=20201213, generating=true
Creating leading directories
Writing GoogleAdsHomeservicesLocalservicesV1AccountReport to clients/local_services/lib/google_api/local_services/v1/model/google_ads_homeservices_localservices_v1_account_report.ex.
Writing GoogleAdsHomeservicesLocalservicesV1AggregatorInfo to clients/local_services/lib/google_api/local_services/v1/model/google_ads_homeservices_localservices_v1_aggregator_info.ex.
Writing GoogleAdsHomeservicesLocalservicesV1DetailedLeadReport to clients/local_services/lib/google_api/local_services/v1/model/google_ads_homeservices_localservices_v1_detailed_lead_report.ex.
Writing GoogleAdsHomeservicesLocalservicesV1MessageLead to clients/local_services/lib/google_api/local_services/v1/model/google_ads_homeservices_localservices_v1_message_lead.ex.
Writing GoogleAdsHomeservicesLocalservicesV1PhoneLead to clients/local_services/lib/google_api/local_services/v1/model/google_ads_homeservices_localservices_v1_phone_lead.ex.
Writing GoogleAdsHomeservicesLocalservicesV1SearchAccountReportsResponse to clients/local_services/lib/google_api/local_services/v1/model/google_ads_homeservices_localservices_v1_search_account_reports_response.ex.
Writing GoogleAdsHomeservicesLocalservicesV1SearchDetailedLeadReportsResponse to clients/local_services/lib/google_api/local_services/v1/model/google_ads_homeservices_localservices_v1_search_detailed_lead_reports_response.ex.
Writing GoogleTypeTimeZone to clients/local_services/lib/google_api/local_services/v1/model/google_type_time_zone.ex.
Writing AccountReports to clients/local_services/lib/google_api/local_services/v1/api/account_reports.ex.
Writing DetailedLeadReports to clients/local_services/lib/google_api/local_services/v1/api/detailed_lead_reports.ex.
Writing connection.ex.
Writing metadata.ex.
Writing mix.exs
Writing README.md
Writing LICENSE
Writing .gitignore
Writing config/config.exs
Writing test/test_helper.exs

14:20:37.445 [info]  Found only discovery_revision and/or formatting changes. Not significant enough for a PR.
fixing file permissions
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/synthtool/__main__.py", line 102, in <module>
    main()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/tmpfs/src/github/synthtool/synthtool/__main__.py", line 94, in main
    spec.loader.exec_module(synth_module)  # type: ignore
  File "/tmpfs/src/github/synthtool/synthtool/metadata.py", line 252, in __exit__
    self.observer.stop()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/watchdog/utils/__init__.py", line 81, in stop
    self.on_thread_stop()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/watchdog/observers/api.py", line 361, in on_thread_stop
    self.unschedule_all()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/watchdog/observers/api.py", line 357, in unschedule_all
    self._clear_emitters()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/watchdog/observers/api.py", line 231, in _clear_emitters
    emitter.stop()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/watchdog/utils/__init__.py", line 81, in stop
    self.on_thread_stop()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/watchdog/observers/inotify.py", line 121, in on_thread_stop
    self._inotify.close()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/watchdog/observers/inotify_buffer.py", line 50, in close
    self.stop()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/watchdog/utils/__init__.py", line 81, in stop
    self.on_thread_stop()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/watchdog/observers/inotify_buffer.py", line 46, in on_thread_stop
    self._inotify.close()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/watchdog/observers/inotify_c.py", line 277, in close
    os.close(self._inotify_fd)
OSError: [Errno 9] Bad file descriptor
2020-12-19 06:20:40,684 autosynth [ERROR] > Synthesis failed
2020-12-19 06:20:40,684 autosynth [DEBUG] > Running: git clean -fdx
Removing __pycache__/
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 291, in _inner_main
    ).synthesize(synth_log_path / "sponge_log.log")
  File "/tmpfs/src/github/synthtool/autosynth/synthesizer.py", line 120, in synthesize
    synth_proc.check_returncode()  # Raise an exception.
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/subprocess.py", line 389, in check_returncode
    self.stderr)
subprocess.CalledProcessError: Command '['/tmpfs/src/github/synthtool/env/bin/python3', '-m', 'synthtool', '--metadata', 'clients/local_services/synth.metadata', 'synth.py', '--', 'LocalServices']' returned non-zero exit status 1.

Google internal developers can see the full log here.

Autosynth is still having trouble generating LocalServices. :sob:
Here's the output from running synth.py:
EBUG] > Running: git branch -f autosynth-localservices
2020-12-20 06:26:01,437 autosynth [DEBUG] > Running: git checkout autosynth-localservices
Switched to branch 'autosynth-localservices'
2020-12-20 06:26:01,716 autosynth [INFO] > Running synthtool
2020-12-20 06:26:01,716 autosynth [INFO] > ['/tmpfs/src/github/synthtool/env/bin/python3', '-m', 'synthtool', '--metadata', 'clients/local_services/synth.metadata', 'synth.py', '--']
2020-12-20 06:26:01,716 autosynth [DEBUG] > log_file_path: /tmpfs/src/logs/elixir-google-api/LocalServices/sponge_log.log
2020-12-20 06:26:01,718 autosynth [DEBUG] > Running: /tmpfs/src/github/synthtool/env/bin/python3 -m synthtool --metadata clients/local_services/synth.metadata synth.py -- LocalServices
2020-12-20 06:26:01,947 synthtool [DEBUG] > Executing /home/kbuilder/.cache/synthtool/elixir-google-api/synth.py.
On branch autosynth-localservices
nothing to commit, working tree clean
2020-12-20 06:26:03,816 synthtool [DEBUG] > Running: docker run --rm -v/tmpfs/tmp/tmpy0_luge1/repo:/workspace -v/var/run/docker.sock:/var/run/docker.sock -e USER_GROUP=1000:1000 -w /workspace gcr.io/cloud-devrel-public-resources/elixir19 scripts/generate_client.sh LocalServices
DEBUG:synthtool:Running: docker run --rm -v/tmpfs/tmp/tmpy0_luge1/repo:/workspace -v/var/run/docker.sock:/var/run/docker.sock -e USER_GROUP=1000:1000 -w /workspace gcr.io/cloud-devrel-public-resources/elixir19 scripts/generate_client.sh LocalServices
/workspace /workspace
The mix.lock file was generated with a newer version of Hex. Update your client by running `mix local.hex` to avoid losing data.
Resolving Hex dependencies...
Dependency resolution completed:
Unchanged:
  certifi 2.5.1
  google_api_discovery 0.7.0
  google_gax 0.3.2
  hackney 1.15.2
  idna 6.0.0
  jason 1.2.1
  metrics 1.0.1
  mime 1.3.1
  mimerl 1.2.0
  oauth2 0.9.4
  parse_trans 3.3.0
  poison 3.1.0
  ssl_verify_fun 1.1.5
  temp 0.4.7
  tesla 1.3.3
  unicode_util_compat 0.4.1
* Getting google_api_discovery (Hex package)
* Getting tesla (Hex package)
* Getting oauth2 (Hex package)
* Getting temp (Hex package)
* Getting jason (Hex package)
* Getting poison (Hex package)
* Getting hackney (Hex package)
* Getting certifi (Hex package)
* Getting idna (Hex package)
* Getting metrics (Hex package)
* Getting mimerl (Hex package)
* Getting ssl_verify_fun (Hex package)
* Getting unicode_util_compat (Hex package)
* Getting parse_trans (Hex package)
* Getting mime (Hex package)
* Getting google_gax (Hex package)
The mix.lock file was generated with a newer version of Hex. Update your client by running `mix local.hex` to avoid losing data.
==> temp
Compiling 3 files (.ex)
Generated temp app
===> Compiling parse_trans
===> Compiling mimerl
===> Compiling metrics
===> Compiling unicode_util_compat
===> Compiling idna
==> jason
Compiling 8 files (.ex)
Generated jason app
warning: String.strip/1 is deprecated. Use String.trim/1 instead
  /workspace/deps/poison/mix.exs:4

==> poison
Compiling 4 files (.ex)
warning: Integer.to_char_list/2 is deprecated. Use Integer.to_charlist/2 instead
  lib/poison/encoder.ex:173

Generated poison app
==> ssl_verify_fun
Compiling 7 files (.erl)
Generated ssl_verify_fun app
===> Compiling certifi
===> Compiling hackney
==> oauth2
Compiling 13 files (.ex)
Generated oauth2 app
==> mime
Compiling 2 files (.ex)
Generated mime app
==> tesla
Compiling 26 files (.ex)
Generated tesla app
==> google_gax
Compiling 5 files (.ex)
Generated google_gax app
==> google_api_discovery
Compiling 21 files (.ex)
Generated google_api_discovery app
==> google_apis
Compiling 28 files (.ex)
Generated google_apis app

14:26:37.387 [info]  FETCHING: https://localservices.googleapis.com/$discovery/GOOGLE_REST_SIMPLE_URI?version=v1

14:26:37.516 [info]  FETCHING: https://localservices.googleapis.com/$discovery/rest?version=v1

14:26:37.528 [info]  FOUND: https://localservices.googleapis.com/$discovery/rest?version=v1
Revision check: old=20201213, new=20201213, generating=true
Creating leading directories
Writing GoogleAdsHomeservicesLocalservicesV1AccountReport to clients/local_services/lib/google_api/local_services/v1/model/google_ads_homeservices_localservices_v1_account_report.ex.
Writing GoogleAdsHomeservicesLocalservicesV1AggregatorInfo to clients/local_services/lib/google_api/local_services/v1/model/google_ads_homeservices_localservices_v1_aggregator_info.ex.
Writing GoogleAdsHomeservicesLocalservicesV1DetailedLeadReport to clients/local_services/lib/google_api/local_services/v1/model/google_ads_homeservices_localservices_v1_detailed_lead_report.ex.
Writing GoogleAdsHomeservicesLocalservicesV1MessageLead to clients/local_services/lib/google_api/local_services/v1/model/google_ads_homeservices_localservices_v1_message_lead.ex.
Writing GoogleAdsHomeservicesLocalservicesV1PhoneLead to clients/local_services/lib/google_api/local_services/v1/model/google_ads_homeservices_localservices_v1_phone_lead.ex.
Writing GoogleAdsHomeservicesLocalservicesV1SearchAccountReportsResponse to clients/local_services/lib/google_api/local_services/v1/model/google_ads_homeservices_localservices_v1_search_account_reports_response.ex.
Writing GoogleAdsHomeservicesLocalservicesV1SearchDetailedLeadReportsResponse to clients/local_services/lib/google_api/local_services/v1/model/google_ads_homeservices_localservices_v1_search_detailed_lead_reports_response.ex.
Writing GoogleTypeTimeZone to clients/local_services/lib/google_api/local_services/v1/model/google_type_time_zone.ex.
Writing AccountReports to clients/local_services/lib/google_api/local_services/v1/api/account_reports.ex.
Writing DetailedLeadReports to clients/local_services/lib/google_api/local_services/v1/api/detailed_lead_reports.ex.
Writing connection.ex.
Writing metadata.ex.
Writing mix.exs
Writing README.md
Writing LICENSE
Writing .gitignore
Writing config/config.exs
Writing test/test_helper.exs

14:26:37.961 [info]  Found only discovery_revision and/or formatting changes. Not significant enough for a PR.
fixing file permissions
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/synthtool/__main__.py", line 102, in <module>
    main()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/tmpfs/src/github/synthtool/synthtool/__main__.py", line 94, in main
    spec.loader.exec_module(synth_module)  # type: ignore
  File "/tmpfs/src/github/synthtool/synthtool/metadata.py", line 252, in __exit__
    self.observer.stop()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/watchdog/utils/__init__.py", line 81, in stop
    self.on_thread_stop()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/watchdog/observers/api.py", line 361, in on_thread_stop
    self.unschedule_all()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/watchdog/observers/api.py", line 357, in unschedule_all
    self._clear_emitters()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/watchdog/observers/api.py", line 231, in _clear_emitters
    emitter.stop()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/watchdog/utils/__init__.py", line 81, in stop
    self.on_thread_stop()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/watchdog/observers/inotify.py", line 121, in on_thread_stop
    self._inotify.close()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/watchdog/observers/inotify_buffer.py", line 50, in close
    self.stop()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/watchdog/utils/__init__.py", line 81, in stop
    self.on_thread_stop()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/watchdog/observers/inotify_buffer.py", line 46, in on_thread_stop
    self._inotify.close()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/watchdog/observers/inotify_c.py", line 277, in close
    os.close(self._inotify_fd)
OSError: [Errno 9] Bad file descriptor
2020-12-20 06:26:41,138 autosynth [ERROR] > Synthesis failed
2020-12-20 06:26:41,139 autosynth [DEBUG] > Running: git clean -fdx
Removing __pycache__/
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 291, in _inner_main
    ).synthesize(synth_log_path / "sponge_log.log")
  File "/tmpfs/src/github/synthtool/autosynth/synthesizer.py", line 120, in synthesize
    synth_proc.check_returncode()  # Raise an exception.
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/subprocess.py", line 389, in check_returncode
    self.stderr)
subprocess.CalledProcessError: Command '['/tmpfs/src/github/synthtool/env/bin/python3', '-m', 'synthtool', '--metadata', 'clients/local_services/synth.metadata', 'synth.py', '--', 'LocalServices']' returned non-zero exit status 1.

Google internal developers can see the full log here.

Autosynth is still having trouble generating LocalServices. :sob:
Here's the output from running synth.py:
EBUG] > Running: git branch -f autosynth-localservices
2020-12-21 06:17:54,178 autosynth [DEBUG] > Running: git checkout autosynth-localservices
Switched to branch 'autosynth-localservices'
2020-12-21 06:17:54,399 autosynth [INFO] > Running synthtool
2020-12-21 06:17:54,399 autosynth [INFO] > ['/tmpfs/src/github/synthtool/env/bin/python3', '-m', 'synthtool', '--metadata', 'clients/local_services/synth.metadata', 'synth.py', '--']
2020-12-21 06:17:54,399 autosynth [DEBUG] > log_file_path: /tmpfs/src/logs/elixir-google-api/LocalServices/sponge_log.log
2020-12-21 06:17:54,401 autosynth [DEBUG] > Running: /tmpfs/src/github/synthtool/env/bin/python3 -m synthtool --metadata clients/local_services/synth.metadata synth.py -- LocalServices
2020-12-21 06:17:54,613 synthtool [DEBUG] > Executing /home/kbuilder/.cache/synthtool/elixir-google-api/synth.py.
On branch autosynth-localservices
nothing to commit, working tree clean
2020-12-21 06:17:56,399 synthtool [DEBUG] > Running: docker run --rm -v/tmpfs/tmp/tmp03zd5yg2/repo:/workspace -v/var/run/docker.sock:/var/run/docker.sock -e USER_GROUP=1000:1000 -w /workspace gcr.io/cloud-devrel-public-resources/elixir19 scripts/generate_client.sh LocalServices
DEBUG:synthtool:Running: docker run --rm -v/tmpfs/tmp/tmp03zd5yg2/repo:/workspace -v/var/run/docker.sock:/var/run/docker.sock -e USER_GROUP=1000:1000 -w /workspace gcr.io/cloud-devrel-public-resources/elixir19 scripts/generate_client.sh LocalServices
/workspace /workspace
The mix.lock file was generated with a newer version of Hex. Update your client by running `mix local.hex` to avoid losing data.
Resolving Hex dependencies...
Dependency resolution completed:
Unchanged:
  certifi 2.5.1
  google_api_discovery 0.7.0
  google_gax 0.3.2
  hackney 1.15.2
  idna 6.0.0
  jason 1.2.1
  metrics 1.0.1
  mime 1.3.1
  mimerl 1.2.0
  oauth2 0.9.4
  parse_trans 3.3.0
  poison 3.1.0
  ssl_verify_fun 1.1.5
  temp 0.4.7
  tesla 1.3.3
  unicode_util_compat 0.4.1
* Getting google_api_discovery (Hex package)
* Getting tesla (Hex package)
* Getting oauth2 (Hex package)
* Getting temp (Hex package)
* Getting jason (Hex package)
* Getting poison (Hex package)
* Getting hackney (Hex package)
* Getting certifi (Hex package)
* Getting idna (Hex package)
* Getting metrics (Hex package)
* Getting mimerl (Hex package)
* Getting ssl_verify_fun (Hex package)
* Getting unicode_util_compat (Hex package)
* Getting parse_trans (Hex package)
* Getting mime (Hex package)
* Getting google_gax (Hex package)
The mix.lock file was generated with a newer version of Hex. Update your client by running `mix local.hex` to avoid losing data.
==> temp
Compiling 3 files (.ex)
Generated temp app
===> Compiling parse_trans
===> Compiling mimerl
===> Compiling metrics
===> Compiling unicode_util_compat
===> Compiling idna
==> jason
Compiling 8 files (.ex)
Generated jason app
warning: String.strip/1 is deprecated. Use String.trim/1 instead
  /workspace/deps/poison/mix.exs:4

==> poison
Compiling 4 files (.ex)
warning: Integer.to_char_list/2 is deprecated. Use Integer.to_charlist/2 instead
  lib/poison/encoder.ex:173

Generated poison app
==> ssl_verify_fun
Compiling 7 files (.erl)
Generated ssl_verify_fun app
===> Compiling certifi
===> Compiling hackney
==> oauth2
Compiling 13 files (.ex)
Generated oauth2 app
==> mime
Compiling 2 files (.ex)
Generated mime app
==> tesla
Compiling 26 files (.ex)
Generated tesla app
==> google_gax
Compiling 5 files (.ex)
Generated google_gax app
==> google_api_discovery
Compiling 21 files (.ex)
Generated google_api_discovery app
==> google_apis
Compiling 28 files (.ex)
Generated google_apis app

14:18:26.266 [info]  FETCHING: https://localservices.googleapis.com/$discovery/GOOGLE_REST_SIMPLE_URI?version=v1

14:18:26.390 [info]  FETCHING: https://localservices.googleapis.com/$discovery/rest?version=v1

14:18:26.403 [info]  FOUND: https://localservices.googleapis.com/$discovery/rest?version=v1
Revision check: old=20201213, new=20201213, generating=true
Creating leading directories
Writing GoogleAdsHomeservicesLocalservicesV1AccountReport to clients/local_services/lib/google_api/local_services/v1/model/google_ads_homeservices_localservices_v1_account_report.ex.
Writing GoogleAdsHomeservicesLocalservicesV1AggregatorInfo to clients/local_services/lib/google_api/local_services/v1/model/google_ads_homeservices_localservices_v1_aggregator_info.ex.
Writing GoogleAdsHomeservicesLocalservicesV1DetailedLeadReport to clients/local_services/lib/google_api/local_services/v1/model/google_ads_homeservices_localservices_v1_detailed_lead_report.ex.
Writing GoogleAdsHomeservicesLocalservicesV1MessageLead to clients/local_services/lib/google_api/local_services/v1/model/google_ads_homeservices_localservices_v1_message_lead.ex.
Writing GoogleAdsHomeservicesLocalservicesV1PhoneLead to clients/local_services/lib/google_api/local_services/v1/model/google_ads_homeservices_localservices_v1_phone_lead.ex.
Writing GoogleAdsHomeservicesLocalservicesV1SearchAccountReportsResponse to clients/local_services/lib/google_api/local_services/v1/model/google_ads_homeservices_localservices_v1_search_account_reports_response.ex.
Writing GoogleAdsHomeservicesLocalservicesV1SearchDetailedLeadReportsResponse to clients/local_services/lib/google_api/local_services/v1/model/google_ads_homeservices_localservices_v1_search_detailed_lead_reports_response.ex.
Writing GoogleTypeTimeZone to clients/local_services/lib/google_api/local_services/v1/model/google_type_time_zone.ex.
Writing AccountReports to clients/local_services/lib/google_api/local_services/v1/api/account_reports.ex.
Writing DetailedLeadReports to clients/local_services/lib/google_api/local_services/v1/api/detailed_lead_reports.ex.
Writing connection.ex.
Writing metadata.ex.
Writing mix.exs
Writing README.md
Writing LICENSE
Writing .gitignore
Writing config/config.exs
Writing test/test_helper.exs

14:18:26.819 [info]  Found only discovery_revision and/or formatting changes. Not significant enough for a PR.
fixing file permissions
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/synthtool/__main__.py", line 102, in <module>
    main()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/tmpfs/src/github/synthtool/synthtool/__main__.py", line 94, in main
    spec.loader.exec_module(synth_module)  # type: ignore
  File "/tmpfs/src/github/synthtool/synthtool/metadata.py", line 252, in __exit__
    self.observer.stop()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/watchdog/utils/__init__.py", line 81, in stop
    self.on_thread_stop()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/watchdog/observers/api.py", line 361, in on_thread_stop
    self.unschedule_all()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/watchdog/observers/api.py", line 357, in unschedule_all
    self._clear_emitters()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/watchdog/observers/api.py", line 231, in _clear_emitters
    emitter.stop()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/watchdog/utils/__init__.py", line 81, in stop
    self.on_thread_stop()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/watchdog/observers/inotify.py", line 121, in on_thread_stop
    self._inotify.close()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/watchdog/observers/inotify_buffer.py", line 50, in close
    self.stop()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/watchdog/utils/__init__.py", line 81, in stop
    self.on_thread_stop()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/watchdog/observers/inotify_buffer.py", line 46, in on_thread_stop
    self._inotify.close()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/watchdog/observers/inotify_c.py", line 277, in close
    os.close(self._inotify_fd)
OSError: [Errno 9] Bad file descriptor
2020-12-21 06:18:29,844 autosynth [ERROR] > Synthesis failed
2020-12-21 06:18:29,844 autosynth [DEBUG] > Running: git clean -fdx
Removing __pycache__/
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 291, in _inner_main
    ).synthesize(synth_log_path / "sponge_log.log")
  File "/tmpfs/src/github/synthtool/autosynth/synthesizer.py", line 120, in synthesize
    synth_proc.check_returncode()  # Raise an exception.
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/subprocess.py", line 389, in check_returncode
    self.stderr)
subprocess.CalledProcessError: Command '['/tmpfs/src/github/synthtool/env/bin/python3', '-m', 'synthtool', '--metadata', 'clients/local_services/synth.metadata', 'synth.py', '--', 'LocalServices']' returned non-zero exit status 1.

Google internal developers can see the full log here.

Autosynth is still having trouble generating LocalServices. :sob:
Here's the output from running synth.py:
EBUG] > Running: git branch -f autosynth-localservices
2020-12-22 06:19:02,032 autosynth [DEBUG] > Running: git checkout autosynth-localservices
Switched to branch 'autosynth-localservices'
2020-12-22 06:19:02,293 autosynth [INFO] > Running synthtool
2020-12-22 06:19:02,293 autosynth [INFO] > ['/tmpfs/src/github/synthtool/env/bin/python3', '-m', 'synthtool', '--metadata', 'clients/local_services/synth.metadata', 'synth.py', '--']
2020-12-22 06:19:02,293 autosynth [DEBUG] > log_file_path: /tmpfs/src/logs/elixir-google-api/LocalServices/sponge_log.log
2020-12-22 06:19:02,296 autosynth [DEBUG] > Running: /tmpfs/src/github/synthtool/env/bin/python3 -m synthtool --metadata clients/local_services/synth.metadata synth.py -- LocalServices
2020-12-22 06:19:02,517 synthtool [DEBUG] > Executing /home/kbuilder/.cache/synthtool/elixir-google-api/synth.py.
On branch autosynth-localservices
nothing to commit, working tree clean
2020-12-22 06:19:04,324 synthtool [DEBUG] > Running: docker run --rm -v/tmpfs/tmp/tmpel9wn4gg/repo:/workspace -v/var/run/docker.sock:/var/run/docker.sock -e USER_GROUP=1000:1000 -w /workspace gcr.io/cloud-devrel-public-resources/elixir19 scripts/generate_client.sh LocalServices
DEBUG:synthtool:Running: docker run --rm -v/tmpfs/tmp/tmpel9wn4gg/repo:/workspace -v/var/run/docker.sock:/var/run/docker.sock -e USER_GROUP=1000:1000 -w /workspace gcr.io/cloud-devrel-public-resources/elixir19 scripts/generate_client.sh LocalServices
/workspace /workspace
The mix.lock file was generated with a newer version of Hex. Update your client by running `mix local.hex` to avoid losing data.
Resolving Hex dependencies...
Dependency resolution completed:
Unchanged:
  certifi 2.5.1
  google_api_discovery 0.7.0
  google_gax 0.3.2
  hackney 1.15.2
  idna 6.0.0
  jason 1.2.1
  metrics 1.0.1
  mime 1.3.1
  mimerl 1.2.0
  oauth2 0.9.4
  parse_trans 3.3.0
  poison 3.1.0
  ssl_verify_fun 1.1.5
  temp 0.4.7
  tesla 1.3.3
  unicode_util_compat 0.4.1
* Getting google_api_discovery (Hex package)
* Getting tesla (Hex package)
* Getting oauth2 (Hex package)
* Getting temp (Hex package)
* Getting jason (Hex package)
* Getting poison (Hex package)
* Getting hackney (Hex package)
* Getting certifi (Hex package)
* Getting idna (Hex package)
* Getting metrics (Hex package)
* Getting mimerl (Hex package)
* Getting ssl_verify_fun (Hex package)
* Getting unicode_util_compat (Hex package)
* Getting parse_trans (Hex package)
* Getting mime (Hex package)
* Getting google_gax (Hex package)
The mix.lock file was generated with a newer version of Hex. Update your client by running `mix local.hex` to avoid losing data.
==> temp
Compiling 3 files (.ex)
Generated temp app
===> Compiling parse_trans
===> Compiling mimerl
===> Compiling metrics
===> Compiling unicode_util_compat
===> Compiling idna
==> jason
Compiling 8 files (.ex)
Generated jason app
warning: String.strip/1 is deprecated. Use String.trim/1 instead
  /workspace/deps/poison/mix.exs:4

==> poison
Compiling 4 files (.ex)
warning: Integer.to_char_list/2 is deprecated. Use Integer.to_charlist/2 instead
  lib/poison/encoder.ex:173

Generated poison app
==> ssl_verify_fun
Compiling 7 files (.erl)
Generated ssl_verify_fun app
===> Compiling certifi
===> Compiling hackney
==> oauth2
Compiling 13 files (.ex)
Generated oauth2 app
==> mime
Compiling 2 files (.ex)
Generated mime app
==> tesla
Compiling 26 files (.ex)
Generated tesla app
==> google_gax
Compiling 5 files (.ex)
Generated google_gax app
==> google_api_discovery
Compiling 21 files (.ex)
Generated google_api_discovery app
==> google_apis
Compiling 28 files (.ex)
Generated google_apis app

14:19:36.041 [info]  FETCHING: https://localservices.googleapis.com/$discovery/GOOGLE_REST_SIMPLE_URI?version=v1

14:19:36.160 [info]  FETCHING: https://localservices.googleapis.com/$discovery/rest?version=v1

14:19:36.171 [info]  FOUND: https://localservices.googleapis.com/$discovery/rest?version=v1
Revision check: old=20201213, new=20201213, generating=true
Creating leading directories
Writing GoogleAdsHomeservicesLocalservicesV1AccountReport to clients/local_services/lib/google_api/local_services/v1/model/google_ads_homeservices_localservices_v1_account_report.ex.
Writing GoogleAdsHomeservicesLocalservicesV1AggregatorInfo to clients/local_services/lib/google_api/local_services/v1/model/google_ads_homeservices_localservices_v1_aggregator_info.ex.
Writing GoogleAdsHomeservicesLocalservicesV1DetailedLeadReport to clients/local_services/lib/google_api/local_services/v1/model/google_ads_homeservices_localservices_v1_detailed_lead_report.ex.
Writing GoogleAdsHomeservicesLocalservicesV1MessageLead to clients/local_services/lib/google_api/local_services/v1/model/google_ads_homeservices_localservices_v1_message_lead.ex.
Writing GoogleAdsHomeservicesLocalservicesV1PhoneLead to clients/local_services/lib/google_api/local_services/v1/model/google_ads_homeservices_localservices_v1_phone_lead.ex.
Writing GoogleAdsHomeservicesLocalservicesV1SearchAccountReportsResponse to clients/local_services/lib/google_api/local_services/v1/model/google_ads_homeservices_localservices_v1_search_account_reports_response.ex.
Writing GoogleAdsHomeservicesLocalservicesV1SearchDetailedLeadReportsResponse to clients/local_services/lib/google_api/local_services/v1/model/google_ads_homeservices_localservices_v1_search_detailed_lead_reports_response.ex.
Writing GoogleTypeTimeZone to clients/local_services/lib/google_api/local_services/v1/model/google_type_time_zone.ex.
Writing AccountReports to clients/local_services/lib/google_api/local_services/v1/api/account_reports.ex.
Writing DetailedLeadReports to clients/local_services/lib/google_api/local_services/v1/api/detailed_lead_reports.ex.
Writing connection.ex.
Writing metadata.ex.
Writing mix.exs
Writing README.md
Writing LICENSE
Writing .gitignore
Writing config/config.exs
Writing test/test_helper.exs

14:19:36.586 [info]  Found only discovery_revision and/or formatting changes. Not significant enough for a PR.
fixing file permissions
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/synthtool/__main__.py", line 102, in <module>
    main()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/tmpfs/src/github/synthtool/synthtool/__main__.py", line 94, in main
    spec.loader.exec_module(synth_module)  # type: ignore
  File "/tmpfs/src/github/synthtool/synthtool/metadata.py", line 252, in __exit__
    self.observer.stop()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/watchdog/utils/__init__.py", line 81, in stop
    self.on_thread_stop()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/watchdog/observers/api.py", line 361, in on_thread_stop
    self.unschedule_all()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/watchdog/observers/api.py", line 357, in unschedule_all
    self._clear_emitters()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/watchdog/observers/api.py", line 231, in _clear_emitters
    emitter.stop()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/watchdog/utils/__init__.py", line 81, in stop
    self.on_thread_stop()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/watchdog/observers/inotify.py", line 121, in on_thread_stop
    self._inotify.close()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/watchdog/observers/inotify_buffer.py", line 50, in close
    self.stop()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/watchdog/utils/__init__.py", line 81, in stop
    self.on_thread_stop()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/watchdog/observers/inotify_buffer.py", line 46, in on_thread_stop
    self._inotify.close()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/watchdog/observers/inotify_c.py", line 277, in close
    os.close(self._inotify_fd)
OSError: [Errno 9] Bad file descriptor
2020-12-22 06:19:39,652 autosynth [ERROR] > Synthesis failed
2020-12-22 06:19:39,652 autosynth [DEBUG] > Running: git clean -fdx
Removing __pycache__/
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 291, in _inner_main
    ).synthesize(synth_log_path / "sponge_log.log")
  File "/tmpfs/src/github/synthtool/autosynth/synthesizer.py", line 120, in synthesize
    synth_proc.check_returncode()  # Raise an exception.
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/subprocess.py", line 389, in check_returncode
    self.stderr)
subprocess.CalledProcessError: Command '['/tmpfs/src/github/synthtool/env/bin/python3', '-m', 'synthtool', '--metadata', 'clients/local_services/synth.metadata', 'synth.py', '--', 'LocalServices']' returned non-zero exit status 1.

Google internal developers can see the full log here.

Autosynth passed, closing! :green_heart:


Can we add rotation about z axis in default controls?

🚀 Feature
We could add rotation about z axis in default controls of a agent. Currently there is not default control for that.
Motivation
There is no rotation available around only one axis. If we could add, the agent will get six degrees of freedom.

Closed by #676


remove doubled line

Motivation

Closes #

Changes

Test Plan

TODO

[ ] Explain motivation or link existing issue(s)
[ ] Test changes and document test plan
[ ] Update documentation as needed

bors r+

bors merge


Bump versions for release 0.57

You can try these changes here

🛝 Playground
🌐 Website
📚 Next docs


Add call functions that can customize a RSS feed URL

I'm curious if/how this could be implemented in what you have given us. You could consider it an enhancement I suppose.
For example, a user types "~track (insert string here)" and have it append that string to the end of the URL.

Right now, this bot doesn't hook into anything that watches for messages. I think it should be possible to use as a library in another bot, and have that BOT modify the CONFIG variables...  Not sure how best to handle that right now... Wouldn't be too hard to have it read from CONFIG consistently instead of saving anything persistent in local variables, though...

I actually got it working! Thanks for the framework!

Cool!
Any chance you could write up some documentation on what you did, to include in this project, to help others do it in the future?


Use the service from when the service ticket was issued, not when we are validating it

Previously the Assertion returned from the validateServiceTicket api would contain the Service object that the ticket was originally issued for. This behavior appears to have changed when we bootified CAS, now validateServiceTicket returns a Service object based off of the validation request itself.
I think when validating an issued ticket, after we verify the service ticket is valid for the supplied service, we should be performing the various policy decisions against the Service object the ticket was issued for and not against the Service object generated from the validation endpoint itself. This will allow any auth policy decisions to be made based on the original permission request by the user, and not on the validation request made by a client server.
My use case: I'm capturing a few additional attributes about the initial ticket issuance request in a custom Service object that I want access to after validating the ticket.
Pre-5.0 I would get back my original Service object and could utilize the attributes when generating my response. Post-5.0 I now get back a Service object based on the validation request itself, losing any custom attributes persisted via the original Service object.
Before:
https://github.com/apereo/cas/blob/f09c3b7dc72c4050f23fcd268d4385f6c2763437/cas-server-core/src/main/java/org/jasig/cas/CentralAuthenticationServiceImpl.java#L311-L312
After:
https://github.com/apereo/cas/blob/d5a01e3a72ff9e8debda0071926a1deddaa9ef5d/cas-server-core/src/main/java/org/jasig/cas/CentralAuthenticationServiceImpl.java#L309-L314
https://github.com/apereo/cas/blob/d5a01e3a72ff9e8debda0071926a1deddaa9ef5d/cas-server-core/src/main/java/org/jasig/cas/CentralAuthenticationServiceImpl.java#L323-L324

@mmoayyed I'm open to discussion on this if you feel it should remain based on the validation request service object.
With core CAS from what I can tell this would have no impact on behavior and in that context is purely theoretical. For my use case I can work around the problem by fetching the original Service out of the ServiceTicket before validating the ticket itself.

With core CAS from what I can tell this would have no impact on behavior and in that context is purely theoretical.

Thanks for the change. I don't see any issues with the change, and offhand, so long as it has no "visible" impact it's good.
Keep'em coming!

I am however interested to learn more about what you're doing here:

My use case: I'm capturing a few additional attributes about the initial ticket issuance request in a custom Service object that I want access to after validating the ticket.

What's happening here?

I have a more integrated OAuth solution that lives directly in the login webflow, and the scope for the initial OAuth grant is tracked within the Service object until the code (ST) is exchanged for an access_token.
Our OAuth support came about before official OAuth support. We haven't migrated because we have quite a few legacy clients out of our control utilizing it and we also have several OAuth api endpoints that utilize the OAuth access_token along with granted scope.
The most used endpoint will allow a client to utilize an access_token to get a CAS ticket for a service, this allows us to bridge from our OAuth clients to CAS protected sites and APIs.

Great. Thanks for the notes.

Coverage decreased (-0.01%) to 43.036% when pulling eb242ba09b0b3d3c9833e129c13da8cc27cf84f4 on frett:validateServiceTicketOriginalService into 6737833b04f8bf0ed696c72a310244968c61d2fe on apereo:master.


No proxy configured if proxy/cluster does not exist

/assign @coreydaley

/lgtm

@dmage we're still seeing upgrade failures from this in the form of:
E0707 10:56:14.395648       1 controller.go:278] unable to sync: unable to apply objects: failed to update object *v1.Deployment, Namespace=openshift-image-registry, Name=image-registry: unable to get cluster proxy configuration: proxy.config.openshift.io "cluster" not found, requeuing

see:
https://openshift-gce-devel.appspot.com/build/origin-ci-test/logs/release-openshift-origin-installer-e2e-aws-upgrade-4.1-to-4.2/156
and the registry operator log:
https://storage.googleapis.com/origin-ci-test/logs/release-openshift-origin-installer-e2e-aws-upgrade-4.1-to-4.2/156/artifacts/e2e-aws-upgrade/pods/openshift-image-registry_cluster-image-registry-operator-79684bdcd9-tzr9w_cluster-image-registry-operator.log

(opened as https://bugzilla.redhat.com/show_bug.cgi?id=1727595)


Add inheriting classes to DocTools

Integrating a documentation hierarchy into DocTools
Part of the work for #77471 and #62524, see there for the discussions and background
Still work in progress but got the core elements worked out, the inheritance hierarchy is placed in DocTools rather than integrated directly into DocData to manage scripts reloading and out of order processing, some kind of external processing is required (unless some idea have escaped me for handling these things), and this makes it one place where it is handled, instead of having some data in DocData and some overflow/intermediate data to handle these cases. This is required when the doc data is loaded from cache, at which point the generate function isn't used and instead add_doc is used, complicating things, but the main hurdle is when ever a script file is saved the doc data is first deleted and then added back in, this fails to track inheritance data if only confined to the DocData itself
Still working on deciding how to deal with the ordering searches, as this changes the previous order which put Object at the top, if maintaining that order is important I can rework it
Will be tinkering with some details but wanted to get some outside eyes on it, the naming and structure is up for suggestions, this is just a initial stab at implementing this enhancement

Still working on deciding how to deal with the ordering searches, as this changes the previous order which put Object at the top, if maintaining that order is important I can rework it

Order should be alphabetical, so global scopes go at the top and then everything else is in their case-independent alphanumerical order (natural, perhaps?). This is something that I've been working on, actually, when I stumbled upon your work :) So if you actually manage to address this issue here, that's an amazing improvement!

Will change the ordering! Sounds great

We could use case sensitive natural sorting, but I think in this case this is sufficient, I'm not sure which order is preferred:

Light3D
LightmapProbe
LightOccluder3D
or:
Light3D
LightOccluder3D
LightmapProbe

I'd say the first one makes more sense when you search for something by the name. Either way, we can try and see if there are complaints.

I think this stage is ready for review properly now, and will continue to investigate the wider help indexing system as I am able

Might solve #66407, will test

Would you have a screenshot of the result?

Will provide, for the correct order of sorted inherited classes?

Well I'm not 100% sure what this PR changes but I'm assuming there's a before/after for the EditorHelp changes?

This makes the hierarchy of inherited classes explicitly available in DocTools, which improves the sorting, and makes the accessing of the inheriting classes easier to access, for example when generating the doc view, it is also part of a larger documentation enhancement where the access to that is convenient
Will provide screenshot for the sorting

Thanks!

Thank you! Great to have this one done with


Support for REC V4

Hi team,
I would like to ask around supporting Real Estate Core V4 as this is released by RealEstateCore OWL model project on Feb 11st.
I know REC4 is a major and backwards-incompatible rewrite, but as we're using in a production application I would where possible plan in advance.
Any info are very appreciated.
Thank you very much

Hi! RealEstateCore v4 has moved to using DTDL and SHACL instead of OWL, so if you are on a DTDL-based platform, you should be able to just pick up those REC 4 models and work with them directly from the release page at https://github.com/RealEstateCore/rec/releases/tag/v4.0.0
RealEstateCore is an independent open source project, developed in the open through GitHub, with feature development driven by the needs of the involved dev team and their respective organizations. I am myself involved as the chairman of the project's Technical Committee. If you're interested in taking part in that process, we would be very happy to have you involved, and if you have questions/requests on prioritization or other matters, please reach out through the RealEstateCore GitHub or Gitter channels.
Does this answer your question, or is there anything else I can help with?


JSON-LD transformation allows duplicate properties

Right now rdfxml2json-ld.xsl does not account for duplicate property names. And it should as they are not allowed in JSON (values of such properties should be grouped into an array):
https://tools.ietf.org/html/rfc7493#section-2.3

Closing as unconfirmed. <xsl:for-each-group select="*" group-by="concat(namespace-uri(), local-name())"> seems to take care of this.


Search in Directory -> ENOENT: no such file or directory

Hello Atom/Github team & other humans!
Currently i'm having the next issue:

When I try to search any value in directory, ENOENT error produces execution stop.
When I search value without specifing directory, it makes search in all folders correctly.

Here is the error trace:
task.coffee:86 ENOENT: no such file or directory, lstat 'my/working/dir/�W@@�@8' Error: ENOENT: no such file or directory, lstat 'my/working/dir/�W@@�@8'     at Error (native)     at fs.lstatSync (fs.js:982:18)     at Object.fs.lstatSync (ELECTRON_ASAR.js:239:16)     at PathScanner.module.exports.PathScanner.stat (/usr/share/atom/resources/app.asar/node_modules/scandal/lib/path-scanner.js:87:17)     at PathScanner.module.exports.PathScanner.processFile (/usr/share/atom/resources/app.asar/node_modules/scandal/lib/path-scanner.js:74:19)     at /usr/share/atom/resources/app.asar/node_modules/scandal/lib/path-scanner.js:51:19     at FSReqWrap.oncomplete (fs.js:123:15)
Seems like encoding error, coz Atom throws this to:
spell-check:es-es Can't load es_ES: Cannot find dictionary for es_ES.
Currently I'm working on ElementaryOs 0.4 Loki (Ubuntu 16.04) & I've installed Atom with ".deb" package. Any suggestion?
@50Wliu sorry, here you have it:
atom --version:
Atom    : 1.12.7 Electron: 1.3.13 Chrome  : 52.0.2743.82 Node    : 6.5.0
atom --save throws the same error.
Thanks for help!

What is the output of atom --version?  Is this reproducible in safe mode (atom --safe)?  Does this happen with one specific project or all folders?
In the future, please fill out the entirety of the provided issue template or your issue will be closed.

I have the same issue. Atom version is 1.12.7. ENOENT errors should probably be swallowed if returned on search.

Thanks for reaching out!
We haven't gotten a response to our questions in our comment https://github.com/atom/atom/issues/13449#issuecomment-267100171. With only the information that is currently in the issue, we don't have enough information to take action. I'm going to close this but don't hesitate to reach out if you have or find the answers we need, we'll be happy to reopen the issue.


Change vars to const in metrics package

Description
Changes proposed in this pull request:
Related issue(s)

/kind enhancement


Remove old kernel specs & backup into a folder

For #7171 & part of https://github.com/microsoft/vscode-jupyter/issues/7953

Codecov Report

Merging #7972 (d2af675) into main (6e5df57) will decrease coverage by 0%.
The diff coverage is 73%.

@@          Coverage Diff          @@
##            main   #7972   +/-   ##
=====================================
- Coverage     70%     70%   -1%
=====================================
  Files        364     364
  Lines      22423   22474   +51
  Branches    3413    3419    +6
=====================================
- Hits       15893   15870   -23
- Misses      5159    5216   +57
- Partials    1371    1388   +17

Impacted Files
Coverage Δ

.../kernel-launcher/localKnownPathKernelSpecFinder.ts
82% <73%> (-8%)
:arrow_down:

src/client/common/errors/types.ts
35% <0%> (-18%)
:arrow_down:

src/client/datascience/telemetry/telemetry.ts
74% <0%> (-7%)
:arrow_down:

...client/datascience/raw-kernel/rawJupyterSession.ts
67% <0%> (-6%)
:arrow_down:

src/client/common/errors/index.ts
63% <0%> (-6%)
:arrow_down:

.../datascience/jupyter/kernels/cellExecutionQueue.ts
88% <0%> (-5%)
:arrow_down:

src/client/datascience/raw-kernel/rawSession.ts
61% <0%> (-4%)
:arrow_down:

...ent/datascience/jupyter/pythonVariableRequester.ts
61% <0%> (-3%)
:arrow_down:

...rc/client/datascience/errorHandler/errorHandler.ts
58% <0%> (-3%)
:arrow_down:

src/client/datascience/jupyter/kernels/kernel.ts
75% <0%> (-3%)
:arrow_down:

... and 15 more


Prints out the actual error that happened

Gives more information on https://github.com/microsoft/azuredatastudio/issues/8829

Coverage decreased (-0.01%) to 36.02% when pulling 937477bca745067566451f7a8bba0bb0e978e5a8 on amir/azureAuth/moreDebug8829 into 2d989e1180f342d684a4e26f76b941843b7fc261 on main.


pyftsubset should write file extension matching the output flavor (woff, woff2, etc.)

currently it always defaults to the input font's extension, and that may be confusing.

@anthrotype's fix for this has regressed at some point. flavor=woff2 is once again outputting a woff2 file with a .ttf extension.
To reproduce in fontTools 4.43.1:
pyftsubset font.ttf --flavor=woff2 --unicodes="U+0000-00FF"

Quite possibly my fault. Lemme check.

Fixed again. Sorry about that.

I think you just broke the world record for the fastest fixed issue in an open source project. Thanks!


drop-model event is never fired when model data is loaded via a promise

Here is an example reproducing the bug: http://jsfiddle.net/mr0pear7/2/
Am I missing something?

Dragula catches the reference to $scope.users on the load of the page. After that you will request the json via http. You are linking $scope.users to another reference by the follwing command:
$scope.users = _.map(data, 'name');

What you need to do is creating an empty array on startup and just push all readed users.
I ve modified your fiddle that you can see it working: http://jsfiddle.net/zeoqz8ob/
The dargula model crashes when you are doing an assignment. If you want to fill it with complete new content you need to do it via clearing the array and push all new items:
$scope.users.length = 0; //clears the array
newItemsArray.forEach(function(item) {
  $scope.users.push(item);
});

Greetings, Daniel

Thank you again @DanielSchuech, great answer! :+1:

:+1:
Works like a charm! Thank you for having taken the time to provide a detailed answer.


[AVM Module Issue]: VMSS module extensionHealthConfig object - requestPath is set to '/' if no value is provided

Check for previous/existing GitHub issues

[x] I have checked for previous/existing GitHub issues

Issue Type?
Bug
Module Name
avm/res/compute/virtual-machine-scale-set
(Optional) Module Version
No response
Description
On line 626 of the main.bicep for virtual-machine-scale-sets to value of 'requestPath' is being set to a forward slash '/' if no value is provided in the parameter object. When 'protocol' is set to 'TCP' however, this is not correct. When you deploy this the azure portal complains that a value for requestPath is not supported when the protocol is TCP. The extension itself also fails to deploy on the underlying VMs.
Would appreciate a fix! Many thanks.
(Optional) Correlation Id
No response

Just to add on this - the bug might be in the azure API. It only accepts the template if a value is provided for requestPath.
The only way to currently configure this is apparently thought the portal - or after deployment through powershell... as far as I can tell.

Hi @maickelr . Thanks for bringing this up. Will look into it.


Remove unknown client error message

The "unknown client" error message is sometimes confusing, because we're trying to infer that a client hasn't been configured by the absence of properties of that client. That isn't always true. We have new specific error messages that say both which property of the client we don't have and for which client, so let's just throw one of those errors instead.
@kallayj would this cover your use cases?

Related: https://github.com/DuendeSoftware/Duende.AccessTokenManagement/pull/73#issuecomment-2102724952

Yes, this would address the paint point we experienced. Thanks.


Refactor ImageEncoder

I've noticed that the term var_params is overloaded in usage throughout the code. It's used 1) for the output of the encoder network and 2) for samples from the encoded distribution. I think (2) should be called something else (like "latents", "samples", etc)

Things that remain:

[ ] Investigate get_full_params()
[ ] Add docstrings to everything public in encoder.py (do this last since things may change

Regarding get_full_params, this method needs shapes in a particular way, which adds complexity to the other code surrounding it. I want to look into how this could be made easier.


Navigate directly to blob resource by URL

Preflight Checklist

[X] I have installed the latest version of Storage Explorer.
[X] I have checked existing resources, including the troubleshooting guide and the release notes.
[X] I have searched for similar issues.

Problem
I have a blob url that was provided by Azure Storage Explorer in another setting. I want to navigate directly to that blob by pasting in the URL.
Desired Solution
I should be able to paste in the URL and ASE would load the blob directly, instead of requiring me to click there, top-down.
Alternatives and Workarounds
No response
Additional Context
No response

This is a repeat of an old issue (#3279), but that one seems to have been ignored.
This is the #1 pain point for me when using ASE. To me, the fact that you can't do this almost breaks the tool. An analogous situation is if someone gave you the URL https://github.com/microsoft/AzureStorageExplorer/issues/5140, and instead of typing it directly in the browser address bar, you had to:

Go to the com domain
Scroll down to find "github"
Page through all the accounts until you found the "microsoft" account
Page through its projects and select "AzureStorageExplorer"
Click on the "Issues" tab
Page through to get to issue 5140

Same, hear our pleas.
That's one of those things that makes me wonder if the developer of AzureStorageExplorer are actually using it themselves for anything :)

Thanks for bringing this up. I have moved the mentioned feature request to a different milestone so it is guaranteed to be revisited in our next planning meeting. I am going to close this issue as a dup and continue the discussion there.
If possible, could you take a look at my follow up question in #3279 so we can better understand how the feature suppose to work?


Multiple conditionals should be valid

Tailor Version: v0.1.0
Swift Version: 2.2
Platform (Mac/Linux/Windows/CI): Mac
Installation Method: curl script
Steps to Reproduce Issue
guard
   let strongSelf = self,
   let data = jsonData,
   let convos = data["items"] as? [[String: AnyObject]] else {

      return
   }

Expected Behavior
Should be valid
Actual Behavior
Generates a violation

Hi @thefredelement! Tailor does allow the use of multiple conditionals. In this scenario, the violations are generated to point out that the let (s) before data and convos are redundant.

Hi @a4sriniv - thanks for replying, the lets aren't redundant because of the type cast of [[String: AnyObject]]. It could thrown into one ugly line though if that's what you mean?

I think something like this should work:
guard
    let strongSelf = self,
        data = jsonData,
        convos = data["items"] as? [[String: AnyObject]]
    else {
        return
    }

Ah, beautiful :) I had no idea.. 👍


Add store - [NAME]

[ ] Add to switch route
[ ] Update README
[ ] Add test

Links

[ ] Announcing Vitess 9

don't support helm chart

don't used mysql


Unneccessary Keccak toHexString conversation

It slows Keccak hash computation significantly.
https://github.com/bcgit/bc-java/blob/97c8dc72e8ed2df9527155af5a8f56d60b11c462/core/src/main/java/org/bouncycastle/crypto/digests/KeccakDigest.java#L318

Thanks, I've reverted the code from this unfortunate debug commit.


Allow to restart orchestrations

This commit includes a few changes:

Orchestration model has been introduced

We have a history of all the orchestrations that happened,
what type of orchestration it was, how long it took to be
completed and the result of the orchestration.

Retryable? concept has been included in Orchestration

Right now, only the bootstrap retryable concept has been
included in the UI, but the backend supports the update orchestration
too.

SaltOrchestration proxy class has been included, so it can retrieve
some information from salt-api directly (accessed through the
Orchestration model).

Highstates now don't mark minions as successful. Highstates now can
only mark minions as failed if the highstate failed.

Only the orchestrations will now mark success when it finishes. All
pending minions will be marked as succeeded when this happens.

External orchestrations are detected (we can trigger them completely
outside Velum and it will detect there is an orchestration running).
This is because of the introduced salt handler.

MinionOrchestration handler has been renamed to OrchestrationResult.

Helper methods have been introduced to Velum::Salt, so it's easier to
retrieve the list of jobs as well as the detail of one job, given its
jid.

salt-api http calls has now always the same options as in development
and production when executed in a test environment. Slowness problems
were because of flaky tests with Capybara waiting too much on things
we weren't expecting.

Some VCR cassettes and tests have been added.

Should we get this merged for 2.0?

Heads up: now that this PR is officially out of 2.0 I have to rename the migration and rerun the renamed one (with a newer date), so the migration will run if this gets in as an update.

PR has been updated with a newer migration, so if this gets in as an update we won't skip this new migration.
Should be ready to be reviewed again.

 (8) Allow to restart the provisioning orchestration

Rebased. I want to check that everything's fine.

 Reactor callbacks

It's working fine. Just double checked.

This is again ready for review! All green since CI is stable again.


Add SELinux support

If SELinux is enabled the httpd is told to be able to network connect and the correct attributes are set for the dispatcher module
Resolves #73

@bstopp can you please provide your feedback on this PR?


[docs] update url in CONTRIBUTING.md

Remove invalid links, update to the latest.

Coverage remained the same at 69.349% when pulling fc21e914b3911322effbc1e050b220ece5494fed on diggzhang:changes-to-docs-url into 299e9ce6b8a4b4de1735261299024bfbeafcc705 on apache:master.


How to understand the instance_pt, category_pt and confidence_pt in cnn_seg, and how to get these labels through the KITTI data ?

instance_pt: probability of existence
confidence_pt: confidence of detection output
category_pt: probability of classification output
Three outputs are used to determine the object detection and classification
They are not directly related to KITTI data which uses different classes.

Is instance_pt the distance between the obstacle projection point and the center point?


[Enhancement] Optimize sync replica in ReportHandler

What type of PR is this：

[ ] bug
[ ] feature
[x] enhancement
[ ] others

Which issues of this PR fixes ：

Fixes #
Problem Summary(Required) ：

The previous implementation updated all replicas at one time in the db write lock. Since logUpdateReplica is a heavy operation, when the number of updated replicas is large, the lock may be held for tens of seconds, causing other operations to time out.

[FE PR Coverage check]
:disappointed: fail : 0 / 72 (00.00%)
file detail

path
covered line
new line
coverage

:large_blue_circle:
com/starrocks/master/ReportHandler.java
0
72
00.00%

[FE PR Coverage check]
:disappointed: fail : 0 / 75 (00.00%)
file detail

path
covered line
new line
coverage

:large_blue_circle:
com/starrocks/master/ReportHandler.java
0
75
00.00%

[FE PR Coverage check]
:disappointed: fail : 0 / 75 (00.00%)
file detail

path
covered line
new line
coverage

:large_blue_circle:
com/starrocks/master/ReportHandler.java
0
75
00.00%


Update the rust toolchain to nightly-2023-12-03

Changes required due to:

rust-lang/rust@99ac405b96 Move MetadataLoader{,Dyn} to rustc_metadata.
rust-lang/rust@c997c6d822 Add more information to stable Instance

Resolves #2911
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 and MIT licenses.

@tautschnig I pushed a few patches, but we're still not there yet.

I pushed a workaround the regression on is_foreign_item. If the fix on the rust side lands before this PR, we could remove the workaround.
I revisited the simd fix, and we don't need to change the model at all. The way portable_simd invokes the intrinsic hasn't changed. Only the return value has, which only required a change to the unit test.

The simd harness is still failing though, but it's not related to simd_bitmask model. I removed the model, and the index out of bounds failure still happen. I talked to @adpaco-aws and he kindly agreed to take a look at it. My current hypothesis is that this is an issue with simd_shuffle. I added a harness that only invoke resize of a simd vector, and the same issue happens.

I've pushed the fix for the simd_shuffle issue in addition to some tests, but I think that the PR blocked because of the other issue with is_foreign_item:
failures:

---- [expected] expected/issue-2589/issue_2589.rs stdout ----

error: test failed: expected output to contain the line(s):
error: Type `std::string::String` does not implement trait `Dummy`. This is likely because `original` is used as a stub but its generic bounds are not being met.
status: exit status: 1
command: "kani" "/home/ubuntu/kani/tests/expected/issue-2589/issue_2589.rs" "-Z" "stubbing"
stdout:
------------------------------------------
Kani Rust Verifier 0.42.0 (standalone)
error: /home/ubuntu/kani/target/kani/bin/kani-compiler exited with status exit status: 101

------------------------------------------
stderr:
------------------------------------------
warning: function `stub` is never used
  --> /home/ubuntu/kani/tests/expected/issue-2589/issue_2589.rs:12:4
   |
12 | fn stub<T: Dummy>() {
   |    ^^^^
   |
   = note: `#[warn(dead_code)]` on by default

warning: 1 warning emitted

warning: function `stub` is never used
  --> /home/ubuntu/kani/tests/expected/issue-2589/issue_2589.rs:12:4
   |
12 | fn stub<T: Dummy>() {
   |    ^^^^
   |
   = note: `#[warn(dead_code)]` on by default

thread 'rustc' panicked at compiler/rustc_smir/src/rustc_smir/builder.rs:63:17:
internal error: entered unreachable code: Failed to evaluate instance constant: Unevaluated(UnevaluatedConst { def: DefId(0:6 ~ issue_2589[bc6b]::Dummy::TRUE), args: [std::string::String], promoted: None }, bool)
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Kani unexpectedly panicked during compilation.
Please file an issue here: https://github.com/model-checking/kani/issues/new?labels=bug&template=bug_report.md

[Kani] no current codegen item.
[Kani] no current codegen location.
warning: 1 warning emitted

------------------------------------------

failures:
    [expected] expected/issue-2589/issue_2589.rs

test result: FAILED. 206 passed; 1 failed; 2 ignored; 0 measured; 0 filtered out; finished in 44.78s

Some tests failed in compiletest suite=expected mode=expected host=(none) target=(none)

I'm guessing the workaround doesn't take this case into account? I've also tried to push the toolchain pointer to nightly-2023-12-07 but that doesn't solve this issue: I'm getting the same error in addition to two more.

Actually, it looks like the perf is failing as well... For a different reason:
VERIFICATION:- FAILED
Verification Time: 28.527027s

Summary:
Verification failed for - fmt_u8
Verification failed for - fmt_i8
Complete - 0 successfully verified harnesses, 2 failures, 2 total.

------------------------------------------
stderr:
------------------------------------------
   Compiling format v0.1.0 (/home/runner/work/kani/kani/tests/perf/format)
    Finished test [unoptimized + debuginfo] target(s) in 0.69s

------------------------------------------

failures:
    [cargo-kani-test] perf/format/expected

test result: FAILED. 13 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1442.94s

Yeah, unfortunately the fix for the foreign item didn't make it to Dec 7th nightly.

I have a new workaround... I'll push it to the branch in a bit. I am looking at the new failures you mentioned with Dec 7th


[1.5pts]- Add functionality to delete button

When the user clicks the "Delete item" link in the navigation panel they can see a list of all items with a title and a "Delete" button.
When the user clicks the "Delete" button, the selected item is marked as removed and does not show on the main list anymore.

This feature has been completed.


FTRKeyboardKeysTest fails on iPad - iOS 10

Multiple typing tests fail when run on iOS 10 iPad Air 2. I tested on beta 5 and beta 6. All the tests passed when I ran it on iPhone 6s simulator on iOS 10 beta 6.
testSymbolsTyping failed 5 out of 5 times (for a simple test case to repro).
Some of the other tests that failed on iOS 10 iPad were:
testNumbersAndSpacesTyping
testSymbolsAndSpacesTyping
testUIKeyboardTypeASCIICapable
testUIKeyboardTypeWebSearch

Thanks for bringing this to our attention @mbaxley, we'll test it out asap.

Thanks! I have one semi-related question. In other frameworks, we typically avoided the delay of typing (and flake that wasn't un-common) by having utilities to paste text. Is this something EarlGrey plans to support (or supports and I didn't find it)? Or do you prefer clients do this type of thing themselves?

I added support for replace text which bypasses typing. That should do what you want.

I debugged this issue, and find out that it is caused by bad synchronization.
The implementation of EarlGrey's tapKey function is as following:

[gTapKeyAction perform:key error:nil];
[[[GREYKeyboard grey_keyboardObject] taskQueue] waitUntilAllTasksAreFinished];
[[GREYUIThreadExecutor sharedInstance] drainOnce];

When typing a string, it basically types a character and wait for some amount of time (drainOnce) before typing next one. The tests fail because the animation, triggered by switching keyboard mode, is taking longer to finish than the waiting time, so it happens that EarlGrey tries to look for a key and couldn't find it, but actually the key will appear later.
A simple fix to the bug is to wait until UI finishes:
"[[GREYUIThreadExecutor sharedInstance] drainOnce]" => "[[GREYUIThreadExecutor sharedInstance] drainUntilIdle]"
But this simple fix would also slows down the typing speed.
I'm not sure why this is happening only on iPad on iOS 10, maybe it's because Apple changed the way switching keyboard mode works, or maybe not... I'll follow up if I find more information.

@liaoyuke, what you're saying is precisely what I'm trying to do here. Thought it does cause quite some failures. I wonder how many users would be fine with slow typing?

Slow & stable is better than fast + flaky. For fast typing, replace text is a better choice.

Flaky typing is definitely way worse than slow typing. My only concern about slowing it down is making sure that draining until idle actually fixes the problem, and isn't acting as a delay which doesn't address the underlying issue. If It is logical why drainUntilIdle fixes it, then I think it's fine.

@mbaxley, that's precisely what adding drain until idle did to the travis tests in my test PR. It seems that we need to focus more on synchronizing correctly with the keyboard rather than change the delay amount.

I wonder if it is redundant to have waitUntilAllTasksAreFinished? Since drainUntilIdle is going to wait for the UI to finish loading anyway.

I'm still seeing these errors with drainUntilIdle.


README on how to setup sdk

hello @samih-sghier, did you manage to set it up yourself or have you found any other workaround to connect to the expo servers

hello @samih-sghier, did you manage to set it up yourself or have you found any other workaround to connect to the expo servers

hey, yes i set it up. Do you need the code?

yes, please. Have you used Gradle or something else?

hello @samih-sghier, did you manage to set it up yourself or have you found any other workaround to connect to the expo servers

hey, yes i set it up. Do you need the code?

yes, please. Have you used Gradle or something else?
I'm tagging you in case you have missed the notification @samih-sghier

Hey @NovaBG03  I set it up myself. I'm using Maven

@samih-sghier can you share the code, please

can you also share the code with me please

can you also share the code with me please

I don't have the code as well. @samih-sghier can you help 🙏

do you know if the old library works well?

@khader-zatari I tried it a year ago. It worked for sending notifications then


Use v1beta1 bundle-release.yaml with v1.0.1 provider tags and clusterctl to create v1alpha3 clusters

Issue #, if available:
https://github.com/aws/eks-anywhere/issues/810
https://github.com/aws/eks-anywhere/issues/815
Description of changes:
This is just so we can merge the upgrade to v1.0.1 tags/v1beta1 api version in stages.
This PR adds the following:

A feature toggle such that if env var V1BETA1_BUNDLE is set to true, make eks-a uses the bundle-release.yaml from v1beta1-experimental branch
Adds following changes for using capi v1.0.1 tag:

Remove usage of watching-namespace flag from clusterctl since its removed upstream
Webhooks for all providers run within the same pod now, so remove wait for webhook pods

Adds following changes for using capv v1.0.1 tag:

CAPV v1.0.1 expects cloud-controller-manager to be managed through ClusterResourceSet. This PR updates the capv manifest, adding cloud-controller-manager manifest and adding the required components to ClusterResourceSet
Removes patching of cloud-controller-manager to add tolerations for taints on controlplane nodes, since these tolerations are now directly applied on the cloud-controller-manager spec when it is deployed

We should be able to continue using v1alpha3 manifests with clusterctl v1.0.1 until other changes from this mainly code changes to start using v1beta1 and v1beta1 CAPV/CAPD manifests are not merged.
I have tested creating a stacked and an external etcd ubuntu cluster (not BR) of v1alpha3 version using v1.0.1 clusterctl tag through the changes in this PR.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/retest

/hold

/lgtm
Make sure you have tested the upgrade scenario and vsphere cloud controller manager deployment has appropriate toleration added.

/unhold
tested create and upgrade with taints and they work now

/lgtm

/hold
testing changes after rebase

/lgtm

/unhold


Editable installs broken for pth files using ";" instead of newlines

Describe the bug
Currently, griffe uses a regex over pth files that assumes each command is separated by a line break. I'm pretty unfamiliar with pth files, but ran into some issues with editable installs recently, which seem to trace back to pth files using ";" to terminate lines :/.
Here is a pth file I noticed causing issues:
import __editable___quartodoc_0_3_5_dev1_gdba857e_d20230626_finder; __editable___quartodoc_0_3_5_dev1_gdba857e_d20230626_finder.install()

I noticed that...

running through griffe.finders._handle_pth_file returned an empty list
replacing the ; with a newline caused it to return the two entries pointing to the editable source directory.

I don't know a lot about pth files, but wonder if this is a recent setuptools tweak or something? 😓

From the docs at https://docs.python.org/3/library/site.html: "Lines starting with import (followed by space or tab) are executed". Since the docs didn't mention semi-colons, we changed the previous split on ; to a split on \n in this commit: https://github.com/mkdocstrings/griffe/commit/f212dd3b92f51a64795fdbb30aefd0a730393523. But I guess it's just ambiguous and semi-colons should be supported in executable lines.
So, a fix could be:
for line in path.read_text(encoding="utf8").strip().replace(";", "\n").splitlines(keepends=False):

...hoping that nobody puts ; in the name of directories added to sys.path :smiling_face_with_tear:
Would you like to submit a PR? This fix plus a test would be perfect.


Method to add header to existing request

I can't find a way to add a header to an existing request. I've got a situation where I need to add a JWT header to all of my requests for logged in users. The straightforward solution seems to be creating a version of send that adds the new header to each request and then calls Http.send. However, it doesn't seem possible to add headers to existing requests.
Am I missing something in the current API? Is what I'm asking for a bad idea?

http://package.elm-lang.org/packages/elm-lang/http/1.0.0/Http#request

You can define a custom kind of request in terms of request that adds whatever you need. You can then use those custom functions instead of the normal get and post. This way people writing the code actually know what requests they are making, rather than having to do an audit of the entire system to see if people were adding and removing and changing headers somewhere else.

This way people writing the code actually know what requests they are making, rather than having to do an audit of the entire system to see if people were adding and removing and changing headers somewhere else.

They'd still have to audit the system to make sure everyone is using the correct version of get or post, though. Your point is true but feels sorta zero-sum.
A customization point between request creation and send (or on send itself) feels like a natural and useful thing. It certainly feels better (to me, at least) than requiring the creation of new request builders for every HTTP method I want to support, methods which are almost entirely duplicates of existing functions.

Hi @evancz -> Is there a sample code snippet available that illustrates how to do add headers to say, Http.get request?

@PEshwar I'm pretty sure you can't. You need to re-implement it entirely to add your custom header. The return value of get is opaque and not subject to client manipulation.

Thanks Austin. I took the route of implementing custom request to add headers.

On 01-Aug-2017, at 10:58 PM, Austin Bingham<EMAIL_ADDRESS>wrote:
@PEshwar https://github.com/peshwar I'm pretty sure you can't. You need to re-implement it entirely to add your custom header. The return value of get is opaque and not subject to client manipulation.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/elm-lang/http/issues/27#issuecomment-319439828, or mute the thread https://github.com/notifications/unsubscribe-auth/AHHACeLbHpzFY0gn3CNINpSM9CHCEweIks5sT2AygaJpZM4N-t_6.

I think there is a specific use case for this: is common for a web app to have a set of mandatory headers (ie: tokens, device information, version number, ...) when dealing with an API.
In Angular, for instance, this is done using [interceptors (https://angular.io/api/common/http/HttpInterceptor).
While I'm not a fan of the interceptors pattern, I have to admit that reimplementing each time all the request builders for each method feels awkward. Moreover, there's no way to enforce their usage but code reviews and self-discipline.


Update readable-stream to faster major release.

@iarna could you spin off a release with this please. I've tested the change.

@iarna still needs a NPM releaes

@paulmillr I'm aware. It'll happen when it happens.

@paulmillr Did you mean in npm itself? Because it will get in eventually, but there's no impact one way or the other, as npm doesn't use any of the stream related code paths in this module. ¯_(ツ)_/¯

Thanks anyway!


Testably vs. TestableIO?

It seems like these two projects are somehow related (I don't mean necessarily in the sense of their code). TestableIO.System.IO.Abstractions's GitHub site mentions Testably.Abstractions as a "related project" that "provides alternative test helpers and additional abstractions", and it looks to me like at least one main contributor here is also a main contributor there.
Are they intended to be usable together in some complementary way? Is one intended as a replacement for the other? When would I want to use one rather than the other?
For context: I've been using TestableIO for a few weeks, and have not used Testably at all.
Thanks in advance.

Yes, they are indeed related.
Testably uses the interfaces from TestableIO.System.IO.Abstractions so that no changes on the productive code is necessary, when switching the testing library. The testing helpers in this project are much more extensive (e.g. time handling, support for drives, the file system watcher or working with SafeFileHandles is possible here, but not in System.IO.Abstractions) and also include further interfaces (ITimeSystem and IRandomSystem).
I am currently the main contributor in both projects, but my focus is definitely on the Testably-projects.
If you want to switch, you have to reference Testably.Abstractions.Testing in your test project and use the MockFileSystem from there. You don't have to change anything in your productive code!

Thanks. I've tried this out and have been confused by the results. Please forgive me if I am misunderstanding, but I now believe the source of my confusion is your usage of the word "productive" in "You don't have to change anything in your productive code". You've used the word in this confusing-at-least-to-me way on the project's documentation page, too, so I thought it would be best to mention it to you so that you could fix it there:
I now think you don't really mean "productive code", and instead mean "production code", i.e. the "real", non-testing code. At least to me "productive code" doesn't mean that. Instead, it means something like "functioning" or "working" or "useful". So, when I replaced my productive test project's productive code's references to TestableIO.System.IO.Abstractions.TestingHelpers.MockFileSystem with references to Testably.Abstractions.Testing, I was surprised to get a whole bunch of compilation errors.
I see that you seem to have used "productive" in this sense in the "Getting Started" section of the main documentation page too. It's less confusing there, since "productive projects" being explicitly used in contrast to "test projects". But (unless I'm misunderstanding) I'd strongly suggest changing it there to "production" - like I said, it's "less confusing there", but I just mean that in the sense of "it's easier to figure out that what you really meant was 'production', not 'productive'".
Anyway, about all those compilation errors in my productive (but not production) code: Am I understanding correctly that these are expected? It looks to me like Testably's MockFileSystem is not a drop-in replacement for TestableIO's MockFileSystem, lacks a bunch of things like "AddDirectory()" and "MockFileData", and so it's not a surprise that existing test code will have to change. That's fine with me, but I have two specific questions based on what I think I've figured out so far:
(1) Is there a way to add stuff after construction? For example, to replace code like:
var fileSystem = new MockFileSystem();
fileSystem.AddDirectory(someDirectoryName);

Obviously in that simple example, it would be easy enough to change it to use the fluent construction syntax that's suggested in "Getting Started", but there are more complex cases where my existing code would be harder to shoehorn into construction time.
(2) Is there a way to deal with non-Windows things (even if the tests are running on a Windows box)? I see the "Getting Started" example relies on WithDrive() on "D:" and InitializeIn() on that drive, which doesn't make sense for Unix-like systems.
Thanks again.

Thanks for the feedback about "productive code" vs "production code". I definitely didn't want to cause confusion and will try to find a less confusing wording.
That said, the compilation errors in your test projects are expected. The MockFileSystem is not a drop-in replacement!

(1) Is there a way to add stuff after construction? For example, to replace code like:
var fileSystem = new MockFileSystem();
fileSystem.AddDirectory(someDirectoryName);

Yes, either you directly create it with the "normal" syntax (e.g. fileSystem.Directory.CreateDirectory(someDirectoryName)) or you can use the Initialize extension methods:
var fileSystem = new MockFileSystem();
fileSystem.Initialize().WithSubdirectory(someDirectoryName);

(2) Is there a way to deal with non-Windows things (even if the tests are running on a Windows box)? I see the "Getting Started" example relies on WithDrive() on "D:" and InitializeIn() on that drive, which doesn't make sense for Unix-like systems.

Of course, the whole file system runs on all platforms. The WithDrive extension is completely optional, but you can use it even on Unix-Systems to specify certain hardware-requirements, e.g.
var fileSystem = new MockFileSystem();
fileSystem.WithDrive(d => d.SetTotalSize(5));
fileSystem.File.WriteAllText("foo", "some text longer than 5 bytes"); // this will throw an IOException that there is not enough space on the disk.

If you don't need this functionality, just omit the WithDrive extension.
It would probably be a good idea to improve the README to make this clearer.


Adding configurable SMS retries for course completion

Added feature for sms-retries
Fixes NMS-238
Fixes NMS-239

lgtm, waiting for build to finish to merge