Synthesis failed for java-recaptchaenterprise

Hello! Autosynth couldn't regenerate java-recaptchaenterprise. :broken_heart:
Here's the output from running synth.py:
Cloning into 'working_repo'...
Switched to a new branch 'autosynth'
Cloning into '/tmpfs/tmp/tmp1usdbaxl/googleapis'...
Cloning into '/tmpfs/tmp/tmp1usdbaxl/synthtool'...
Switched to branch 'autosynth-self'
Note: checking out '86d4147325ca61d67bebb7233ee4eb43b5dd48c1'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

HEAD is now at 86d4147 deps: update dependency com.google.api.grpc:proto-google-common-protos to v1.18.0 (#129)
Note: checking out '42ee97c1b93a0e3759bbba3013da309f670a90ab'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

HEAD is now at 42ee97c1 chore: revert bigtable-admin to Gapic V1 for Ruby only
Note: checking out '19465d3ec5e5acdb01521d8f3bddd311bcbee28d'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

HEAD is now at 19465d3 build: use codecov's action, now that it's authless (#499)
Switched to a new branch 'autosynth-self-2'
2020-05-05 21:33:02 [INFO] Running synthtool
2020-05-05 21:33:02 [INFO] ['/tmpfs/src/github/synthtool/env/bin/python3', '-m', 'synthtool', '--metadata', 'synth.metadata', 'synth.py', '--']
2020-05-05 21:33:02,308 synthtool > Executing /tmpfs/src/github/synthtool/working_repo/synth.py.
On branch autosynth-self-2
nothing to commit, working tree clean
2020-05-05 21:33:02,437 synthtool > Ensuring dependencies.
2020-05-05 21:33:02,448 synthtool > Cloning googleapis.
2020-05-05 21:33:02,449 synthtool > Using precloned repo /tmpfs/tmp/tmp1usdbaxl/googleapis
2020-05-05 21:33:02,454 synthtool > Generating code for: //google/cloud/recaptchaenterprise/v1beta1:google-cloud-recaptchaenterprise-v1beta1-java.
2020-05-05 21:33:02,564 synthtool > Failed executing bazel build //google/cloud/recaptchaenterprise/v1beta1:google-cloud-recaptchaenterprise-v1beta1-java:

Starting local Bazel server and connecting to it...
Server crashed during startup. Now printing /home/kbuilder/.cache/bazel/_bazel_kbuilder/4a1725fec8c8120ebfd8ea1824daa713/server/jvm.out
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000715200000, 247463936, 0) failed; error='Not enough space' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 247463936 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /tmpfs/tmp/tmp1usdbaxl/googleapis/hs_err_pid25895.log

2020-05-05 21:33:02,565 synthtool > Wrote metadata to synth.metadata.
Traceback (most recent call last):
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmpfs/src/github/synthtool/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 "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/tmpfs/src/github/synthtool/working_repo/synth.py", line 28, in <module>
    bazel_target=f'//google/cloud/{service}/{version}:google-cloud-{service}-{version}-java',
  File "/tmpfs/src/github/synthtool/synthtool/languages/java.py", line 310, in bazel_library
    library = gapic.java_library(service=service, version=version, **kwargs)
  File "/tmpfs/src/github/synthtool/synthtool/gcp/gapic_bazel.py", line 63, in java_library
    return self._generate_code(service, version, "java", **kwargs)
  File "/tmpfs/src/github/synthtool/synthtool/gcp/gapic_bazel.py", line 177, in _generate_code
    shell.run(bazel_run_args)
  File "/tmpfs/src/github/synthtool/synthtool/shell.py", line 39, in run
    raise exc
  File "/tmpfs/src/github/synthtool/synthtool/shell.py", line 33, in run
    encoding="utf-8",
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/subprocess.py", line 438, in run
    output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['bazel', 'build', '//google/cloud/recaptchaenterprise/v1beta1:google-cloud-recaptchaenterprise-v1beta1-java']' returned non-zero exit status 37.
2020-05-05 21:33:02 [ERROR] Synthesis failed
HEAD is now at 86d4147 deps: update dependency com.google.api.grpc:proto-google-common-protos to v1.18.0 (#129)
Switched to branch 'autosynth-self'
Note: checking out '86d4147325ca61d67bebb7233ee4eb43b5dd48c1'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

HEAD is now at 86d4147 deps: update dependency com.google.api.grpc:proto-google-common-protos to v1.18.0 (#129)
Previous HEAD position was 42ee97c1 chore: revert bigtable-admin to Gapic V1 for Ruby only
HEAD is now at a3a0bf0f BREAKING_CHANGE: Removing TimeSeriesQueryLanguageCondition as an alert condition type. The condition type is unsupported and unused. It was originally added for the Monitoring Query Language Alpha feature. refactor!: Drop support for TimeSeriesQueryLanguageCondition as an alert condition type.
Previous HEAD position was 19465d3 build: use codecov's action, now that it's authless (#499)
HEAD is now at ab88356 fix: make .kokoro-autosynth executable (#522)
Switched to a new branch 'autosynth-46'
2020-05-05 21:33:02 [INFO] Running synthtool
2020-05-05 21:33:02 [INFO] ['/tmpfs/src/github/synthtool/env/bin/python3', '-m', 'synthtool', '--metadata', 'synth.metadata', 'synth.py', '--']
2020-05-05 21:33:02,866 synthtool > Executing /tmpfs/src/github/synthtool/working_repo/synth.py.
On branch autosynth-46
nothing to commit, working tree clean
2020-05-05 21:33:02,997 synthtool > Ensuring dependencies.
2020-05-05 21:33:03,008 synthtool > Cloning googleapis.
2020-05-05 21:33:03,009 synthtool > Using precloned repo /tmpfs/tmp/tmp1usdbaxl/googleapis
2020-05-05 21:33:03,014 synthtool > Generating code for: //google/cloud/recaptchaenterprise/v1beta1:google-cloud-recaptchaenterprise-v1beta1-java.
2020-05-05 21:33:03,124 synthtool > Failed executing bazel build //google/cloud/recaptchaenterprise/v1beta1:google-cloud-recaptchaenterprise-v1beta1-java:

Starting local Bazel server and connecting to it...
Server crashed during startup. Now printing /home/kbuilder/.cache/bazel/_bazel_kbuilder/4a1725fec8c8120ebfd8ea1824daa713/server/jvm.out
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000715200000, 247463936, 0) failed; error='Not enough space' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 247463936 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /tmpfs/tmp/tmp1usdbaxl/googleapis/hs_err_pid25930.log

2020-05-05 21:33:03,125 synthtool > Wrote metadata to synth.metadata.
Traceback (most recent call last):
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmpfs/src/github/synthtool/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 "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/tmpfs/src/github/synthtool/working_repo/synth.py", line 28, in <module>
    bazel_target=f'//google/cloud/{service}/{version}:google-cloud-{service}-{version}-java',
  File "/tmpfs/src/github/synthtool/synthtool/languages/java.py", line 310, in bazel_library
    library = gapic.java_library(service=service, version=version, **kwargs)
  File "/tmpfs/src/github/synthtool/synthtool/gcp/gapic_bazel.py", line 63, in java_library
    return self._generate_code(service, version, "java", **kwargs)
  File "/tmpfs/src/github/synthtool/synthtool/gcp/gapic_bazel.py", line 177, in _generate_code
    shell.run(bazel_run_args)
  File "/tmpfs/src/github/synthtool/synthtool/shell.py", line 39, in run
    raise exc
  File "/tmpfs/src/github/synthtool/synthtool/shell.py", line 33, in run
    encoding="utf-8",
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/subprocess.py", line 438, in run
    output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['bazel', 'build', '//google/cloud/recaptchaenterprise/v1beta1:google-cloud-recaptchaenterprise-v1beta1-java']' returned non-zero exit status 37.
2020-05-05 21:33:03 [ERROR] Synthesis failed
HEAD is now at 86d4147 deps: update dependency com.google.api.grpc:proto-google-common-protos to v1.18.0 (#129)
Switched to branch 'autosynth'
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 584, in <module>
    main()
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 465, in main
    return _inner_main(temp_dir)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 574, in _inner_main
    commit_count = synthesize_loop(x, multiple_prs, change_pusher, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 360, in synthesize_loop
    synthesize_inner_loop(toolbox, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 370, in synthesize_inner_loop
    synthesizer, len(toolbox.versions) - 1
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 259, in synthesize_version_in_new_branch
    synthesizer.synthesize(self.environ)
  File "/tmpfs/src/github/synthtool/autosynth/synthesizer.py", line 115, 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', 'synth.metadata', 'synth.py', '--']' returned non-zero exit status 1.

Google internal developers can see the full log here.

Autosynth is still having trouble generating java-recaptchaenterprise. :sob:
Here's the output from running synth.py:
Cloning into 'working_repo'...
Switched to a new branch 'autosynth'
Cloning into '/tmpfs/tmp/tmprj5htru4/googleapis'...
Cloning into '/tmpfs/tmp/tmprj5htru4/synthtool'...
Switched to branch 'autosynth-self'
Note: checking out '86d4147325ca61d67bebb7233ee4eb43b5dd48c1'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

HEAD is now at 86d4147 deps: update dependency com.google.api.grpc:proto-google-common-protos to v1.18.0 (#129)
Note: checking out '42ee97c1b93a0e3759bbba3013da309f670a90ab'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

HEAD is now at 42ee97c1 chore: revert bigtable-admin to Gapic V1 for Ruby only
Note: checking out '19465d3ec5e5acdb01521d8f3bddd311bcbee28d'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

HEAD is now at 19465d3 build: use codecov's action, now that it's authless (#499)
Switched to a new branch 'autosynth-self-2'
2020-05-07 07:02:14 [INFO] Running synthtool
2020-05-07 07:02:14 [INFO] ['/tmpfs/src/github/synthtool/env/bin/python3', '-m', 'synthtool', '--metadata', 'synth.metadata', 'synth.py', '--']
2020-05-07 07:02:14,632 synthtool > Executing /tmpfs/src/github/synthtool/working_repo/synth.py.
On branch autosynth-self-2
nothing to commit, working tree clean
2020-05-07 07:02:14,763 synthtool > Ensuring dependencies.
2020-05-07 07:02:14,774 synthtool > Cloning googleapis.
2020-05-07 07:02:14,775 synthtool > Using precloned repo /tmpfs/tmp/tmprj5htru4/googleapis
2020-05-07 07:02:14,779 synthtool > Generating code for: //google/cloud/recaptchaenterprise/v1beta1:google-cloud-recaptchaenterprise-v1beta1-java.
2020-05-07 07:02:14,890 synthtool > Failed executing bazel build //google/cloud/recaptchaenterprise/v1beta1:google-cloud-recaptchaenterprise-v1beta1-java:

Starting local Bazel server and connecting to it...
Server crashed during startup. Now printing /home/kbuilder/.cache/bazel/_bazel_kbuilder/8004eb9114c64d69a264715b35192f0c/server/jvm.out
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000715200000, 247463936, 0) failed; error='Not enough space' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 247463936 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /tmpfs/tmp/tmprj5htru4/googleapis/hs_err_pid18864.log

2020-05-07 07:02:14,890 synthtool > Wrote metadata to synth.metadata.
Traceback (most recent call last):
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmpfs/src/github/synthtool/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 "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/tmpfs/src/github/synthtool/working_repo/synth.py", line 28, in <module>
    bazel_target=f'//google/cloud/{service}/{version}:google-cloud-{service}-{version}-java',
  File "/tmpfs/src/github/synthtool/synthtool/languages/java.py", line 310, in bazel_library
    library = gapic.java_library(service=service, version=version, **kwargs)
  File "/tmpfs/src/github/synthtool/synthtool/gcp/gapic_bazel.py", line 63, in java_library
    return self._generate_code(service, version, "java", **kwargs)
  File "/tmpfs/src/github/synthtool/synthtool/gcp/gapic_bazel.py", line 177, in _generate_code
    shell.run(bazel_run_args)
  File "/tmpfs/src/github/synthtool/synthtool/shell.py", line 39, in run
    raise exc
  File "/tmpfs/src/github/synthtool/synthtool/shell.py", line 33, in run
    encoding="utf-8",
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/subprocess.py", line 438, in run
    output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['bazel', 'build', '//google/cloud/recaptchaenterprise/v1beta1:google-cloud-recaptchaenterprise-v1beta1-java']' returned non-zero exit status 37.
2020-05-07 07:02:14 [ERROR] Synthesis failed
HEAD is now at 86d4147 deps: update dependency com.google.api.grpc:proto-google-common-protos to v1.18.0 (#129)
Switched to branch 'autosynth-self'
Note: checking out '86d4147325ca61d67bebb7233ee4eb43b5dd48c1'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

HEAD is now at 86d4147 deps: update dependency com.google.api.grpc:proto-google-common-protos to v1.18.0 (#129)
Previous HEAD position was 42ee97c1 chore: revert bigtable-admin to Gapic V1 for Ruby only
HEAD is now at 2fc2caaa chore: enable gapic v2 and proto annotation for bigquery/storage/v1beta2 API.
Previous HEAD position was 19465d3 build: use codecov's action, now that it's authless (#499)
HEAD is now at be74d3e build: do not fail builds on codecov errors (#528)
Switched to a new branch 'autosynth-54'
2020-05-07 07:02:14 [INFO] Running synthtool
2020-05-07 07:02:14 [INFO] ['/tmpfs/src/github/synthtool/env/bin/python3', '-m', 'synthtool', '--metadata', 'synth.metadata', 'synth.py', '--']
2020-05-07 07:02:15,188 synthtool > Executing /tmpfs/src/github/synthtool/working_repo/synth.py.
On branch autosynth-54
nothing to commit, working tree clean
2020-05-07 07:02:15,319 synthtool > Ensuring dependencies.
2020-05-07 07:02:15,331 synthtool > Cloning googleapis.
2020-05-07 07:02:15,332 synthtool > Using precloned repo /tmpfs/tmp/tmprj5htru4/googleapis
2020-05-07 07:02:15,336 synthtool > Generating code for: //google/cloud/recaptchaenterprise/v1beta1:google-cloud-recaptchaenterprise-v1beta1-java.
2020-05-07 07:02:15,446 synthtool > Failed executing bazel build //google/cloud/recaptchaenterprise/v1beta1:google-cloud-recaptchaenterprise-v1beta1-java:

Starting local Bazel server and connecting to it...
Server crashed during startup. Now printing /home/kbuilder/.cache/bazel/_bazel_kbuilder/8004eb9114c64d69a264715b35192f0c/server/jvm.out
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000715200000, 247463936, 0) failed; error='Not enough space' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 247463936 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /tmpfs/tmp/tmprj5htru4/googleapis/hs_err_pid18899.log

2020-05-07 07:02:15,447 synthtool > Wrote metadata to synth.metadata.
Traceback (most recent call last):
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmpfs/src/github/synthtool/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 "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/tmpfs/src/github/synthtool/working_repo/synth.py", line 28, in <module>
    bazel_target=f'//google/cloud/{service}/{version}:google-cloud-{service}-{version}-java',
  File "/tmpfs/src/github/synthtool/synthtool/languages/java.py", line 310, in bazel_library
    library = gapic.java_library(service=service, version=version, **kwargs)
  File "/tmpfs/src/github/synthtool/synthtool/gcp/gapic_bazel.py", line 63, in java_library
    return self._generate_code(service, version, "java", **kwargs)
  File "/tmpfs/src/github/synthtool/synthtool/gcp/gapic_bazel.py", line 177, in _generate_code
    shell.run(bazel_run_args)
  File "/tmpfs/src/github/synthtool/synthtool/shell.py", line 39, in run
    raise exc
  File "/tmpfs/src/github/synthtool/synthtool/shell.py", line 33, in run
    encoding="utf-8",
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/subprocess.py", line 438, in run
    output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['bazel', 'build', '//google/cloud/recaptchaenterprise/v1beta1:google-cloud-recaptchaenterprise-v1beta1-java']' returned non-zero exit status 37.
2020-05-07 07:02:15 [ERROR] Synthesis failed
HEAD is now at 86d4147 deps: update dependency com.google.api.grpc:proto-google-common-protos to v1.18.0 (#129)
Switched to branch 'autosynth'
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 584, in <module>
    main()
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 465, in main
    return _inner_main(temp_dir)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 574, in _inner_main
    commit_count = synthesize_loop(x, multiple_prs, change_pusher, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 360, in synthesize_loop
    synthesize_inner_loop(toolbox, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 370, in synthesize_inner_loop
    synthesizer, len(toolbox.versions) - 1
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 259, in synthesize_version_in_new_branch
    synthesizer.synthesize(self.environ)
  File "/tmpfs/src/github/synthtool/autosynth/synthesizer.py", line 115, 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', 'synth.metadata', 'synth.py', '--']' returned non-zero exit status 1.

Google internal developers can see the full log here.

Autosynth is still having trouble generating java-recaptchaenterprise. :sob:
Here's the output from running synth.py:
Cloning into 'working_repo'...
Switched to a new branch 'autosynth'
Cloning into '/tmpfs/tmp/tmpp0gv_via/googleapis'...
Cloning into '/tmpfs/tmp/tmpp0gv_via/synthtool'...
Switched to branch 'autosynth-self'
Note: checking out '86d4147325ca61d67bebb7233ee4eb43b5dd48c1'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

HEAD is now at 86d4147 deps: update dependency com.google.api.grpc:proto-google-common-protos to v1.18.0 (#129)
Note: checking out '42ee97c1b93a0e3759bbba3013da309f670a90ab'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

HEAD is now at 42ee97c1 chore: revert bigtable-admin to Gapic V1 for Ruby only
Note: checking out '19465d3ec5e5acdb01521d8f3bddd311bcbee28d'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

HEAD is now at 19465d3 build: use codecov's action, now that it's authless (#499)
Switched to a new branch 'autosynth-self-2'
2020-05-08 03:28:09 [INFO] Running synthtool
2020-05-08 03:28:09 [INFO] ['/tmpfs/src/github/synthtool/env/bin/python3', '-m', 'synthtool', '--metadata', 'synth.metadata', 'synth.py', '--']
2020-05-08 03:28:09,699 synthtool > Executing /tmpfs/src/github/synthtool/working_repo/synth.py.
On branch autosynth-self-2
nothing to commit, working tree clean
2020-05-08 03:28:09,842 synthtool > Ensuring dependencies.
2020-05-08 03:28:09,853 synthtool > Cloning googleapis.
2020-05-08 03:28:09,854 synthtool > Using precloned repo /tmpfs/tmp/tmpp0gv_via/googleapis
2020-05-08 03:28:09,858 synthtool > Generating code for: //google/cloud/recaptchaenterprise/v1beta1:google-cloud-recaptchaenterprise-v1beta1-java.
2020-05-08 03:28:09,969 synthtool > Failed executing bazel build //google/cloud/recaptchaenterprise/v1beta1:google-cloud-recaptchaenterprise-v1beta1-java:

Starting local Bazel server and connecting to it...
Server crashed during startup. Now printing /home/kbuilder/.cache/bazel/_bazel_kbuilder/725493b29f986aa74a2064ba746602ce/server/jvm.out
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000715200000, 247463936, 0) failed; error='Not enough space' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 247463936 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /tmpfs/tmp/tmpp0gv_via/googleapis/hs_err_pid28492.log

2020-05-08 03:28:09,970 synthtool > Wrote metadata to synth.metadata.
Traceback (most recent call last):
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmpfs/src/github/synthtool/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 "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/tmpfs/src/github/synthtool/working_repo/synth.py", line 28, in <module>
    bazel_target=f'//google/cloud/{service}/{version}:google-cloud-{service}-{version}-java',
  File "/tmpfs/src/github/synthtool/synthtool/languages/java.py", line 310, in bazel_library
    library = gapic.java_library(service=service, version=version, **kwargs)
  File "/tmpfs/src/github/synthtool/synthtool/gcp/gapic_bazel.py", line 63, in java_library
    return self._generate_code(service, version, "java", **kwargs)
  File "/tmpfs/src/github/synthtool/synthtool/gcp/gapic_bazel.py", line 177, in _generate_code
    shell.run(bazel_run_args)
  File "/tmpfs/src/github/synthtool/synthtool/shell.py", line 39, in run
    raise exc
  File "/tmpfs/src/github/synthtool/synthtool/shell.py", line 33, in run
    encoding="utf-8",
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/subprocess.py", line 438, in run
    output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['bazel', 'build', '//google/cloud/recaptchaenterprise/v1beta1:google-cloud-recaptchaenterprise-v1beta1-java']' returned non-zero exit status 37.
2020-05-08 03:28:10 [ERROR] Synthesis failed
HEAD is now at 86d4147 deps: update dependency com.google.api.grpc:proto-google-common-protos to v1.18.0 (#129)
Switched to branch 'autosynth-self'
Note: checking out '86d4147325ca61d67bebb7233ee4eb43b5dd48c1'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

HEAD is now at 86d4147 deps: update dependency com.google.api.grpc:proto-google-common-protos to v1.18.0 (#129)
Previous HEAD position was 42ee97c1 chore: revert bigtable-admin to Gapic V1 for Ruby only
HEAD is now at 83816bb3 Add kokoro-specific .bazelrc file with arguments specific only for kokoro environments. This is to fix autosynth builds when it tries building older commits.
Previous HEAD position was 19465d3 build: use codecov's action, now that it's authless (#499)
HEAD is now at 4674113 build: use Bazel 3.0.0 for autosynth builds (#529)
Switched to a new branch 'autosynth-59'
2020-05-08 03:28:10 [INFO] Running synthtool
2020-05-08 03:28:10 [INFO] ['/tmpfs/src/github/synthtool/env/bin/python3', '-m', 'synthtool', '--metadata', 'synth.metadata', 'synth.py', '--']
2020-05-08 03:28:10,287 synthtool > Executing /tmpfs/src/github/synthtool/working_repo/synth.py.
On branch autosynth-59
nothing to commit, working tree clean
2020-05-08 03:28:10,424 synthtool > Ensuring dependencies.
2020-05-08 03:28:10,434 synthtool > Cloning googleapis.
2020-05-08 03:28:10,435 synthtool > Using precloned repo /tmpfs/tmp/tmpp0gv_via/googleapis
2020-05-08 03:28:10,439 synthtool > Generating code for: //google/cloud/recaptchaenterprise/v1beta1:google-cloud-recaptchaenterprise-v1beta1-java.
2020-05-08 03:28:10,549 synthtool > Failed executing bazel build //google/cloud/recaptchaenterprise/v1beta1:google-cloud-recaptchaenterprise-v1beta1-java:

Starting local Bazel server and connecting to it...
Server crashed during startup. Now printing /home/kbuilder/.cache/bazel/_bazel_kbuilder/725493b29f986aa74a2064ba746602ce/server/jvm.out
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000715200000, 247463936, 0) failed; error='Not enough space' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 247463936 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /tmpfs/tmp/tmpp0gv_via/googleapis/hs_err_pid28527.log

2020-05-08 03:28:10,550 synthtool > Wrote metadata to synth.metadata.
Traceback (most recent call last):
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmpfs/src/github/synthtool/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 "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/tmpfs/src/github/synthtool/working_repo/synth.py", line 28, in <module>
    bazel_target=f'//google/cloud/{service}/{version}:google-cloud-{service}-{version}-java',
  File "/tmpfs/src/github/synthtool/synthtool/languages/java.py", line 310, in bazel_library
    library = gapic.java_library(service=service, version=version, **kwargs)
  File "/tmpfs/src/github/synthtool/synthtool/gcp/gapic_bazel.py", line 63, in java_library
    return self._generate_code(service, version, "java", **kwargs)
  File "/tmpfs/src/github/synthtool/synthtool/gcp/gapic_bazel.py", line 177, in _generate_code
    shell.run(bazel_run_args)
  File "/tmpfs/src/github/synthtool/synthtool/shell.py", line 39, in run
    raise exc
  File "/tmpfs/src/github/synthtool/synthtool/shell.py", line 33, in run
    encoding="utf-8",
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/subprocess.py", line 438, in run
    output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['bazel', 'build', '//google/cloud/recaptchaenterprise/v1beta1:google-cloud-recaptchaenterprise-v1beta1-java']' returned non-zero exit status 37.
2020-05-08 03:28:10 [ERROR] Synthesis failed
HEAD is now at 86d4147 deps: update dependency com.google.api.grpc:proto-google-common-protos to v1.18.0 (#129)
Switched to branch 'autosynth'
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 584, in <module>
    main()
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 465, in main
    return _inner_main(temp_dir)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 574, in _inner_main
    commit_count = synthesize_loop(x, multiple_prs, change_pusher, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 360, in synthesize_loop
    synthesize_inner_loop(toolbox, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 370, in synthesize_inner_loop
    synthesizer, len(toolbox.versions) - 1
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 259, in synthesize_version_in_new_branch
    synthesizer.synthesize(self.environ)
  File "/tmpfs/src/github/synthtool/autosynth/synthesizer.py", line 115, 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', 'synth.metadata', 'synth.py', '--']' returned non-zero exit status 1.

Google internal developers can see the full log here.


Feature request: Indented output in the console for tests within a suite

Description
Currently the output to the console is flat:
For example, the below console output...
◇ Test run started.
↳ Testing Library Version: unknown (Swift 5.10 toolchain)
◇ Suite NotificationsDeepLinkUrl started.
◇ Test returnsAppPreferencesNotificationsUrl_wheniOS() started.
✔ Test returnsAppPreferencesNotificationsUrl_wheniOS() passed after 0.003 seconds.
✔ Suite NotificationsDeepLinkUrl passed after 0.003 seconds.
◇ Suite QueueNotificationsForRunChangesReturningBranchNames started.
◇ Test returnsEmptyArray_whenOldRunsHasARun_butNotificationsAreNotAvailable() started.
✔ Test returnsEmptyArray_whenOldRunsHasARun_butNotificationsAreNotAvailable() passed after 0.008 seconds.
◇ Test returnsEmptyArray_whenOldRunsIsEmpty() started.
✔ Test returnsEmptyArray_whenOldRunsIsEmpty() passed after 0.002 seconds.
◇ Test returnsNewRun_whenOldRunsHasANewRun_andNotificationsAreAvailable_andNotificationPreferenceIsEveryone() started.
✔ Test returnsNewRun_whenOldRunsHasANewRun_andNotificationsAreAvailable_andNotificationPreferenceIsEveryone() passed after 0.012 seconds.
✔ Suite QueueNotificationsForRunChangesReturningBranchNames passed after 0.023 seconds.
✔ Test run with 4 tests passed after 0.027 seconds.

This can be difficult to read both at a glance and with some time invested, especially when Suites are nested within other Suites.
Proposal
It would be nice if we could indent the tests/suites to a hierarchy like the below structure:
◇ Test run started.
↳ Testing Library Version: unknown (Swift 5.10 toolchain)
◇ Suite MySuite started.
  ↳ ◇ Suite MyChildSuite started.
      ◇ Test someTest() started.
      ✔ Test someTest() passed after 0.003 seconds.
      ↳ ◇ Suite MyGrandChildSuite started.
          ◇ Test someGrandChildTest() started.
           ✔ Test someGrandChildTest() passed after 0.003 seconds.
◇ Suite MyOtherSuite started.
  ↳ ◇ Suite MyOtherChildSuite started.
      ◇ Test someOtherTest() started.
      ✔ Test someOtherTest() passed after 0.003 seconds.

Benefits
The above output is easier to read at a glance and to see what tests and suites are a part of their parent - simplifying readability and seeing at a glance where a test might live to go and debug and ultimately fix it.
Potential issues
All the indenting
This could of course get a bit crazy if you have many nested Suites where the indentation could be so long that it becomes unreadable so we could either:

Limit this indentation to A sensible level like 5 child indents
Leave this down to the developer who ultimately controls their levels of nested Suits/Tests

Parallelised tests
As pointed out by @stmontgomery here https://github.com/apple/swift-testing/issues/296#issuecomment-2002027577 in my original post https://github.com/apple/swift-testing/issues/296, this could work badly with parallelised tests where the output is non-linear and indentation would cause the tests to be indented under a parent that it's not a part of, eg a parallelised test could appear under a suite it's not a part of because it just happened to run at the same time as the other test in the other suite.
However, this could be remedied simply by the parents being printed on the line above in the console if it hasn't already to make it explicit where the test came from.
Expected behavior
No response
Actual behavior
No response
Steps to reproduce
No response
swift-testing version/commit hash
0.6.0
Swift & OS version (output of swift --version && uname -a)
swift-driver version: <IP_ADDRESS> Apple Swift version 5.10 (swiftlang-<IP_ADDRESS> clang-15<IP_ADDRESS>)
Target: arm64-apple-macosx14.0
Darwin AT-ALK6L5VQ 23.3.0 Darwin Kernel Version 23.3.0: Wed Dec 20 21:30:44 PST 2023; root:xnu-10002.81.5~7/RELEASE_ARM64_T6000 arm64

Apologies for the delay, this sounds great re OS log and the direction for having a more complex/controlled output instead of stderr
Sounds like this one might be on hold for a while until the ground work is done for that above but all sounds good to me 👌🏻

Tracked internally as rdar://103374320.

Couldn't we make a stopgap that adds @Suite names to each @Test name?
Given the following code:
import Testing

@Suite struct GuitarTests {
  @Test func chordTest() {}
}

@Suite struct BassTests {
  @Test func chordTest() {}
}

Current output:
◇ Test run started.
↳ Testing Library Version: 94 (arm64e-apple-macos13.0)
◇ Suite BassTests started.
◇ Suite GuitarTests started.
◇ Test chordTest() started.
◇ Test chordTest() started.
✔ Test chordTest() passed after 0.001 seconds.
✔ Test chordTest() passed after 0.001 seconds.
✔ Suite GuitarTests passed after 0.001 seconds.
✔ Suite BassTests passed after 0.001 seconds.
✔ Test run with 2 tests passed after 0.001 seconds.

After (ad-hoc) improvement:
◇ Test run started.
↳ Testing Library Version: 94 (arm64e-apple-macos13.0)
◇ Suite BassTests started.
◇ Suite GuitarTests started.
◇ Test BassTests.chordTest() started.
◇ Test GuitarTests.chordTest() started.
✔ Test GuitarTests.chordTest() passed after 0.001 seconds.
✔ Test BassTests.chordTest() passed after 0.001 seconds.
✔ Suite GuitarTests passed after 0.001 seconds.
✔ Suite BassTests passed after 0.001 seconds.
✔ Test run with 2 tests passed after 0.001 seconds.


⚠ Maple - Request Service has degraded performance

In 6163a79, Maple - Request Service (https://request.zyradyl.moe) experienced degraded performance:

HTTP code: 200
Response time: 18156 ms

Resolved: Maple - Request Service performance has improved in d2c5a45 after 4 minutes.


[Event Request] Codeunit 5980 Service-Post "OnservicePostOnCheckAndSetPostingConstants"

    local procedure CheckAndSetPostingConstants(var ServiceHeader: Record "Service Header"; var PassedShip: Boolean; var PassedConsume: Boolean; var PassedInvoice: Boolean)
    var
        IsHandled: Boolean;
    begin
        with ServiceHeader do begin
            case "Document Type" of
                "Document Type"::Invoice:
                    begin
                        PassedShip := true;
                        PassedInvoice := true;
                    end;
                "Document Type"::"Credit Memo":
                    begin
                        PassedShip := false;
                        PassedInvoice := true;
                    end;
            end;

            ServDocumentsMgt.CheckAndSetPostingConstants(PassedShip, PassedConsume, PassedInvoice);

  //Event Request Begin
        IsHandled := false;
        OnservicePostOnCheckAndSetPostingConstants(ServiceHeader, ServDocumentsMgt, PassedShip, PassedConsume, PassedInvoice, IsHandled);
        if not IsHandled then begin
  //Event Request End

                if not (PassedShip or PassedInvoice or PassedConsume) then
                    Error(Text001);

   //Event Request Begin
        end;
  //Event Request End

            if Invoice and ("Document Type" <> "Document Type"::"Credit Memo") then
                TestField("Due Date");
        end;
        SetPostingOptions(PassedShip, PassedConsume, PassedInvoice);
    end;

  [IntegrationEvent(false, false)]
    local procedure OnservicePostOnCheckAndSetPostingConstants(var ServiceHeader: Record "Service Header"; var ServDocumentsMgt: Codeunit "Serv-Documents Mgt."; var PassedShip: Boolean; var PassedConsume: Boolean; var PassedInvoice: Boolean; var IsHandled: Boolean)
    begin
    end;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.


Fix bug when sending heartbeats with hidefilenames enabled

When hidefilenames is enabled, the argument key of send_heartbeat method is overwritten by for loop in line 110.
This results in an invalid API call, which responds with 401 Unauthorized, since the api key is invalid.

Coverage remained the same at 98.236% when pulling d46312f2cddd1387b0babc832a4c61514de6120a on allanpereira:master into 73e2387bfc7d0fa5d2ade18fde1723cba65911d9 on wakatime:master.

Thanks for finding this! I'll release a fix in a few minutes.

Released in v9.0.1 today.

Thank you!


Start with an easier clustering problem

@oxinabox what's a good non-MINST dataset that's trivial to work with?

Iris


[Pulsar IO] In Sink connector, record.getSchema(); returns null when processing from partitioned topic.

Describe the bug
The record.getSchema(); returns null in case the sink connector is consuming from a partitioned topic. The correct schema is returned for non-partitioned topics.
To Reproduce
Steps to reproduce the behavior:

Produce some messages using AvroSchema.of(SomeClass.class) to a partitioned topic
In the write method of the sink observe the record.getSchema()

Expected behavior
record.getSchema() to return the schema used to produce the message
Desktop (please complete the following information):

OS: [e.g. iOS]

Additional context

Pulsar 2.7.1
Docker Standalone
pulsar-functions-local-runner-original

can you try on current 2.8.0-SNAPSHOT version ?
we did lot of changes about the Schema API and this problem should not be present

Yes using Sink, I will try 2.8.0-SNAPSHOT tomorrow.

The issue had no activity for 30 days, mark with Stale label.

Closed as cannot reproduce in maintained versions.


Console not writing result to OUTPUT for formats like .ttl, .nt., etc.

Current Behavior
sparql output="xxx.ttl"  will complain with a "No suitable result writer found" exception
Expected Behavior
be able to write sparql results to a turtle file
Steps To Reproduce

windows wsl2
run console.sh
open up a repo
sparql output="abc.ttl" select * where {?s ?p ?o}
receive "No suitable result writer found"

Version
4.3.9 (sdk)
Are you interested in contributing a solution yourself?
None
Anything else?
appears only xml, csv, tsv, binary, and maybe another obscure format is supported (anything derived from TupleQueryResultWriterFactory)

The side effect is that you can't export inferred triples from console in turtle format

Try adding the various rio dependencies to the following pom file:
https://github.com/eclipse-rdf4j/rdf4j/blob/main/tools/console/pom.xml
Here is the dependency for turtle: https://mvnrepository.com/artifact/org.eclipse.rdf4j/rdf4j-rio-turtle
If that works maybe you could make a PR that adds all the available rio dependencies to the pom file of the console module?

Actually, @hmottestad, there may be some confusion on my part on how this should work.  looks like saving the sparql query results will save as query-results and not as a well formatted turtle (e.g. the format that a sparql endpt returns back to the caller).  This is probably why it only supports xml, csv, json, etc.
However, the actual problem I'm encountering is that I can't seem to export inferred triples (in workbench or console) as it seems inferencing happens only on query and is not persisted.
Is it possible to do so?
so basically, I create a native+rdfs repo
add some triples
query with inferencing and inferred triples are returned
however if i "export" the repo, inferred triples are not included.
Let me know if I should open another issue.

Have you tried a CONSTRUCT query?

hi Håvard, how does using CONSTRUCT help me serialize an inferred query to file from either console or workbench?

CONSTRUCT produces triples/quads while a SELECT query produces tuples.

I think my question is more fundamental meaning how do i redirect the results of CONSTRUCT to a file (e.g. export) from either console or workbench? realizing i can do all this in code.

What happens when you run sparql output="abc.ttl" construct {?s ?p ?o} where {?s ?p ?o} ?

Hey this works, thanks!
I don't believe there's any work to be done here, just clarification on functionality.  Closing. Thanks


About the documentation

Hey, thanks for great ORM!
I'm currently involved in making a medium size app, and we would be glad to help with the documentation and try to improve and report inconsistencies if we find any.
I noticed the docs folder is gitignored, are you currently improving them or is there another reason they are ignored?
The docs are also hosted on both readthedocs and on the orator-orm.com, which one are you currently prioritizing?
Here is an example I found in the Seeding section;
orator seeds:make
which should apparently be
orator seed:make

The documentation is in its own repository here : https://github.com/orator-orm/docs

Thanks for the quick reply, closing the issue.


Flashing? While performing fast updates.

I'm not sure how to describe this one. In an app where I'm making an update to state on each frame, some frames appear to show an older state. In this example, this causes a dragging shape will sometimes flash a position from a few frames back. CodeSandbox here.

I'm running this on a new MacBook with a >60fps screen, so it could be related? Kind of a torture test, but really this is the old hiccup I've seen.

Thanks for the report! I also see it on my 60 fps screen so it's probably on our side. I'll write some stress tests with this specific scenario and I'll get back to you.

Fixed on 0.17


Migrate draftjs content to editorjs format

Migrate draft.js content to editor.js format. It's used in all descriptions and page content.
Sanitizer for draftjs will be done in separate PR.

Impact

[x] New migrations
[ ] New/Updated API fields or mutations
[ ] Deprecated API fields or mutations
[ ] Removed API types, fields, or mutations
[ ] Documentation needs to be updated

Pull Request Checklist

[ ] Privileged queries and mutations are guarded by proper permission checks
[ ] Database queries are optimized and the number of queries is constant
[ ] Database migration files are up to date
[ ] The changes are tested
[ ] GraphQL schema and type definitions are up to date
[ ] Changes are mentioned in the changelog

I'll add some comments to increase readability.


Contributor can clearly see which bucket they are selecting or have selected

Bucket list items should indent when selected - to meet the previously made designs. This fell through the cracks in a previous iteration.

this has been done in https://github.com/open-app/cobudget-ui/pull/150  via a highlight.


helm dependency build or helm lint fail with local dependencies with a pre-release version

We have a chart with a local, verbatim subchart in the /charts directory.
The subchart has a version that contains a SemVer pre-release value
Starting with helm 3.4.0, we have this issue:

if the outer chart doesn't reference the subchart, helm lint fails: chart metadata is missing these dependencies: bar
if the outer chart references the subchart, helm dependency build fails: dependency bar at version 0.1.0-SNAPSHOT does not satisfy the constraint *

when the subchart's version doesn't contain the pre-release version part, helm dependency build works  nicely.
In order to extract and reproduce the issue,I created a simple example: https://github.com/gernoteger/helm-compatibility-tests
In our real life applications, the version is created by our CI/CD Pipeline.
From the helm documentation I assume that a version with a pre-release tag is perfectly valid, therefore I think this is a bug in the implentation of either lint, or mnore likely, the helm depency SemVer resolution.

The purpose of the helm dependency build command is to:
Build out the charts/ directory from the Chart.lock file.

Build is used to reconstruct a chart's dependencies to the state specified in
the lock file. This will not re-negotiate dependencies, as 'helm dependency update'
does.

If no lock file is found, 'helm dependency build' will mirror the behavior
of 'helm dependency update'.

But you already have the chart/ dir populated with bar/ (chart and directory). Also note the last paragraph in the help. Since you don't have a Chart.lock, you are really doing a helm dependency update. But overall, for your (simple) example, helm dependency build|update is redundant if the chart/ directory is already populated I think (perhaps you have more subcharts in your actual use?)
Finally, semver treats pre-release versions specially. version: "*" means match highest major version. version: "*-0" means to include pre-release versions. The reason is valid: you want to opt-in to matching pre-release versions. Otherwise e.g. if today you match version 2.3.4, then tomorrow you match 3.0.0-superbuggyprereleasealphadontuseinforeal, that would be annoying/unexpected for users who value stability. Indeed, if you chart foo's Chart.yaml to accept prerelease versions, helm dependency build|update work for your example.
As for what changed (it sounds like you were/are using a very old version of helm, older than 3.4.0). I'm unsure. If I had to guess, helm or the semver library it uses was changed to not match prerelease versions.

Thanks a lot,
the pattern version: "*-0" had escaped my attention, and solve the problem.
I updated the linked example with the resolution for future readers.


Add Support for Entire Codebase Context Without Indexing

Validations

[ ] I believe this is a way to improve. I'll try to join the Continue Discord for questions
[ ] I'm not able to find an open issue that requests the same enhancement

Problem
Current LLM models such as Gemini Pro offers 2M Context window which is sufficient to provide entire codebase as context for small codebases.
Solution
No response

Hmmm this is an interesting idea. What are the scenario(s) where you'd prefer to just provide the entire codebase as context rather than using built-in indexing?

Wanting the llm to understand the whole project at once, rather than snippets there and there.


List of all blog posts on WordPress

I'm trying to figure out how to get a public view of all our blog posts. When I go here: http://citycampnc.org/latest-news/ some of the newer posts aren't showing up. I believe it's because that page is bringing in posts that are tagged Latest News 2016. So I'm think we should:

show all blog posts on that page
or
merge latest news and latest news 2016 tags together and using latest news as a tag that all posts should have
or
your idea

I think having  latest news and latest news 2016 tags is confusing.

As discussed, do we need to just change the tags on develop a separate.

Going to tackle a blog page.


fix: Ability to desactivate Auto Mod

Description
#3236
When we activate auto-mode on a cluster and want to deactivate it later, we can no longer do so because a value is set to null.
Motivation and Context

Breaking Changes

How Has This Been Tested?

[ ] I have updated at least one of the examples/* to demonstrate and validate my change(s)
[ ] I have tested and validated these changes using one or more of the provided examples/* projects

[ ] I have executed pre-commit run -a on my pull request

This issue has been resolved in version 20.31.5 :tada:


How to map forwarder with Host?

Can you please be a bit more specific about what you're trying to achieve?

Header Host

If your proxy accepts multiple host headers and you want to just copy the same host header when proxying to a single destination, you could use something like
app.MapForwarder("/{**catch-all}", "https://backend", b => b.AddOriginalHost());

By default, YARP will remove the original Host header, AddOriginalHost preserves it instead.

If you want to select different backend destinations based on the incoming host header, you can:

Specify the hosts a given route will match like so when using the configuration file
Manually select the destination when using direct forwardingapp.Map("/{**catch-all}", async (HttpContext httpContext, IHttpForwarder forwarder) =>
{
    var destination = httpContext.Request.Host.Value switch
    {
        "foo.com" => "backend.a",
        "bar.com" => "backend.b",
        _ => "backend.c",
    };

    var error = await forwarder.SendAsync(httpContext, $"https://{destination}", httpClient, requestOptions);
});

ty


It's not possible to use a string PK

By default, Asp.net identity uses string PK data types (guids). There are lots of good reasons for doing so as long as you don't need a clustered index, but it's impossible to do so with this library because it wraps the columns with a nullable operator.
Example:
public interface IModificationAuditable<TUserId> : IModificationTrackable where TUserId : struct
{
    TUserId? UpdaterUserId { get; set; }
}

If TUserId in the above sample is string, then it's impossible to declare a property which will satisfy the interface.

@caesay, I create version 2.0 of the library. It supports EFCore 2.0 and EntityFramework 6.2.
And also, I fix signatures of auditable entitiy interfaces:
interface ICreationAuditable : ICreationTrackable
{
    string CreatorUserId { get; set; }
}

interface IModificationAuditable : IModificationTrackable
{
    string UpdaterUserId { get; set; }
}

public interface IDeletionAuditable : IDeletionTrackable
{
    string DeleterUserId { get; set; }
}

So we can use it with ASP.NET Identity.


Disable Emscripten assertions in release_debug builds

The messages generated by some of these assertions can be confusing to users and are mostly useful when working on the engine code. The assertions are enabled in target=debug builds

Cherry picked into 3.0.3


Documentation: Date input component

Summary: Documentation of component guidance in EN for the date input component on the Design System website.
Including use cases, how to use guidance, accessibility guidelines and more.
Acceptance Criteria:

[x] Component Kickoff
[x] Component review
[x] Sync with Dev and Design
[x] Research and consulting other design libraries
[x] Component ID (name, definition, example image
[x] Use case (when to use guidance & related components)
[x] How to use guidance
[x] Accessibility guidelines
[x] Inclusive language
[x] Descriptive text for images
[ ] Translation & Localization
[ ] Bilingual review – content design
[ ] Ensure consistency: ordering, terminology, high level voice/tone/style
[ ] Final review

Did an initial review of the date input documentation , made edits and added questions.
Note: Doc is missing alt text and coding guidance

@adorayi as discussed in dev sync: we can't write the coding guidance until we have developed the actual component which is work that was deprioritized a few sprints ago. Can we put this back into the backlog until we have developed the component itself? Dev ticket #698.

@MatildePerrusclet this is ready for review.
https://docs.google.com/document/d/17pc3Lg7QYPKtv1xt45GZ0ntX2Tl5oAYRpI-M7bU7hqs/edit

Done reviewing @adorayi @ethanWallace.
Main concern is that there's already guidance regarding the date input order for the GC, it's YYYY-MM-DD for both languages.
Ref:
"Choose a date input order to reduce error
In English, generally use month-day-year and in French day-month-year."
Here are the links to the GC guidance:
https://design.canada.ca/style-guide/#wp4-7
https://www.google.com/url?q=https://www.tbs-sct.canada.ca/pol/doc-eng.aspx?id%3D17284&sa=D&source=docs&ust=1724682711256927&usg=AOvVaw1zuNHNTQeWvIusL-GuHbpU

Good point @MatildePerrusclet. Do we have rationale for why we went with this format? @realdylanzheng @RavinaSamaroo @ethanWallace

Awaiting translation.
@EliseKa please prioritize this.

Translation is almost complete (can be found in this doc), I'm just awaiting an answer for a clarifying question I asked in the English doc.

Translation complete and ready for bilingual review - doc already shared with @MatildePerrusclet

Anatomy image and overview images were updated.


Still in development?

Hello~
I came here from the react-bootstrap-table thinking that version 2 was already available. It seems like it's still under development. This wasn't immediately clear to me and possibly for others. It might be worthwhile making it explicit on the homepage for anyone navigating here.
Do you have a timeline for when you expect to release the first version for react-bootstrap-table2?
Thanks and keep up the good work!

yes.. it's still on development...  I wanna finish 80% functionality before this year and make the first release, but we need work more hardly actually. thanks

is there any progress there to first release?

@Fatal1stZ first drop will be on January 2018


SYCL improvements

Allow DpcppExecutor to be constructed from a sycl::device, which enables sub-device usage required for #1373.
I also added a handful of fixes for deprecation warnings

I've decided the complexity involved in sub-devices just to get #1373 working on SYCL CPUs isn't worth it yet, so I'll be removing those changes, only fixing the deprecation warnings

We should either remove bump the SYCL version support or create a special case for it, as this update currently breaks for SYCL 2022-1.

There are some additional issues with cooperative_groups::ballot using reduce_over_group slightly wrong, but that can be fixed easily

These changes are needed to build ginkgo with icpx 2024.1 & later.

Thanks for updating.
ReadME version support is not updated.
you can also change the image ginkgohub/oneapi:2<IP_ADDRESS>31213 to ginkgohub/oneapi:latest


Expose AMI options in terraform.tfvars

Description of the issue:
C02LMC98FD57:Terraform kdickinson$ terraform apply
data.aws_ami.dc_ami: Refreshing state...
data.aws_ami.win10_ami: Refreshing state...
data.aws_ami.wef_ami: Refreshing state...
Error: Error refreshing state: 3 error(s) occurred:

data.aws_ami.win10_ami: 1 error(s) occurred:

data.aws_ami.win10_ami: data.aws_ami.win10_ami: Your query returned no results. Please change your search criteria and try again.

data.aws_ami.dc_ami: 1 error(s) occurred:

data.aws_ami.dc_ami: data.aws_ami.dc_ami: Your query returned no results. Please change your search criteria and try again.

data.aws_ami.wef_ami: 1 error(s) occurred:

data.aws_ami.wef_ami: data.aws_ami.wef_ami: Your query returned no results. Please change your search criteria and try again.

I thought maybe this was an issue of region (per some of the AMI issues we ran into during initial testing) but I tried both us-east-1 and us-west-1. It's entirely possible this is an issues on my end.
However I also noticed you removed the ability to specify our own AMIs (per Method 1) in the terraform.tfvars file. I think we need to reintroduce the ability to specify our own AMIs, similar to how it was before the latest update:
logger_ami = "ami-0693b32d066fade8a"
dc_ami =  "ami-0e775c4108e264ddf"
wef_ami = "ami-090e06001f566e7b6"
win10_ami = "ami-05ce11fa358a8257c"

Was this working previously? It may only work in us-west-1 because that's the only place I currently have the AMIs.
You can specify your own AMIs by changing the * to the AMI ID I believe, but haven't tested that: https://github.com/clong/DetectionLab/blob/master/Terraform/variables.tf#L72-L85
Here's the actual AMI IDs - see if that works:
DC - ami-0fcdb93aba16008ad
WEF - ami-0bb08349b4ddd2816
WIN10 - ami-00ae1022c8a735d81

You are right, it was an issue with my region.
C02LMC98FD57:Terraform kdickinson$ aws configure set region us-east-1
C02LMC98FD57:Terraform kdickinson$ aws ec2 describe-images --image-ids ami-0fcdb93aba16008ad
An error occurred (InvalidAMIID.NotFound) when calling the DescribeImages operation: The image id '[ami-0fcdb93aba16008ad]' does not exist
C02LMC98FD57:Terraform kdickinson$ aws ec2 describe-images --image-ids ami-0fcdb93aba16008ad
[...]
"Architecture": "x86_64",
"CreationDate": "2019-03-05T04:27:46.000Z",
"ImageId": "ami-0fcdb93aba16008ad"
[...]
And you're right - the AMI definitions are still in variables.tf (eg: variable "logger_ami") ; they are just no longer presented in terraform.tfvars.
So the main takeaways I think are:

Make AMIs available in other regions OR update Terraform Method2 docs to let users know that prebuilt AMIs will only be available in us-west-1
Re-expose optional user-defined AMI values in terraform.tfvars; if no value is provided, should fall back to the default "*" value if nothing is presented?

This issue stems from searching for the pre-built AMI images in variables.tf by filtering on the "name" tag here, here and here. Unfortunately, these tags are only visible on a per-user (AWS account) basis, as noted in the AWS Tags documentation:

You can tag public or shared resources, but the tags you assign are available only to your AWS account and not to the other accounts sharing the resource.

This can be resolved by either providing the AMI IDs directly within the repo or instructing users to run something similar to the following:
aws ec2 describe-images --owners<PHONE_NUMBER>99 | grep -i imageid

The results can be plugged into variables.tfvars here, here and here. An alternative would be to expose these variables directly in terraform.tfvars as well (potentially hard-coding them in as default values).

Hello,
I just wanted to let you know I'll be on vacation for the next 2 weeks, so it may be some time until I'm able to dig deeper into this issue. Sorry for the inconvenience!
-- clong

This appears to be the root cause. As it stands, even after switching my region via 'aws configure set region us-west-1' and setting 'region = "us-west-1"' inside of terraform.tfvars, I still get the same errors seen in the OP.

This issue stems from searching for the pre-built AMI images in variables.tf by filtering on the "name" tag here, here and here. Unfortunately, these tags are only visible on a per-user (AWS account) basis, as noted in the AWS Tags documentation:

You can tag public or shared resources, but the tags you assign are available only to your AWS account and not to the other accounts sharing the resource.

This can be resolved by either providing the AMI IDs directly within the repo or instructing users to run something similar to the following:
aws ec2 describe-images --owners<PHONE_NUMBER>99 | grep -i imageid

The results can be plugged into variables.tfvars here, here and here. An alternative would be to expose these variables directly in terraform.tfvars as well (potentially hard-coding them in as default values).

Also I just noticed that the logger AMI is not defined, nor is it present underneath your account - is that expected behavior?
C02LMC98FD57:~ kdickinson$ grep -Rin 'logger_ami' ~/Desktop/DetectionLab/Terraform/
variable "logger_ami" {
default = "*"
}
Likewise, you don't have any Ubuntu AMIs associated with your account number.
C02LMC98FD57:~ kdickinson$ aws ec2 describe-images --owners<PHONE_NUMBER>99 | jq -r '.Images[] | .ImageId,.Description'
ami-00ae1022c8a735d81
AWS-VMImport service: Windows 10 Enterprise Evaluation
ami-0bb08349b4ddd2816
AWS-VMImport service: Windows Server 2016 Standard Evaluation
ami-0fcdb93aba16008ad
AWS-VMImport service: Windows Server 2016 Standard Evaluation

The logger AMI is hard-coded in main.tf - it references the ubuntu 16.04 ami.  Glad I looked through the issues, I'm in us-east-1 and couldn't find the ami's - attempting to rebuild w/ packer now..  Great stuff!
aws ec2 describe-images --image-id ami-0ad16744583f21877 {     "Images": [         {             "Architecture": "x86_64",             "CreationDate": "2018-09-14T20:09:27.000Z",             "ImageId": "ami-0ad16744583f21877",             "ImageLocation": "099720109477/ubuntu/images/hvm-ssd/ubuntu-xenial-16.04-amd64-server-20180912",             "ImageType": "machine",             "Public": true,             "OwnerId": "099720109477",             "State": "available",             "BlockDeviceMappings": [                 {                     "DeviceName": "/dev/sda1",                     "Ebs": {                         "DeleteOnTermination": true,                         "SnapshotId": "snap-040391eec78ad1ce1",                         "VolumeSize": 8,                         "VolumeType": "gp2",                         "Encrypted": false                     }                 },                 {                     "DeviceName": "/dev/sdb",                     "VirtualName": "ephemeral0"                 },                 {                     "DeviceName": "/dev/sdc",                     "VirtualName": "ephemeral1"                 }             ],             "Description": "Canonical, Ubuntu, 16.04 LTS, amd64 xenial image build on 2018-09-12",             "EnaSupport": true,             "Hypervisor": "xen",             "Name": "ubuntu/images/hvm-ssd/ubuntu-xenial-16.04-amd64-server-20180912",             "RootDeviceName": "/dev/sda1",             "RootDeviceType": "ebs",             "SriovNetSupport": "simple",             "VirtualizationType": "hvm"         }     ] }

This should be fixed in #233 - I was hoping to avoid hardcoding the pre-built AMIs, but I'll have to find another way to dynamically resolve the AMI IDs


Add a defect report

Analogously to the vulnerability report, a report for defects is now be generated if the ORT result contains corresponding information. For this purpose, a new template was added.
This PR also adapts the existing template for vulnerabilities to make sure that information and issues from the different advisors do not interfere with each other.

Here is a screenshot how a defect is rendered in the report:

Thanks for the screenshot! I'm surprised to see closed defects being listed by default, though. What's the reason for that decision? Aren't users usually only interested in still open defects?
Edit: A, I think I got it: The defect is still "open" (i.e. exists) in version in version 0.4.4, but it was fixed ("closed") in version 0.4.9. Is that's the way how to read it? I believe we need to improve this...

Thanks for the screenshot! I'm surprised to see closed defects being listed by default, though. What's the reason for that decision? Aren't users usually only interested in still open defects?
Edit: A, I think I got it: The defect is still "open" (i.e. exists) in version in version 0.4.4, but it was fixed ("closed") in version 0.4.9. Is that's the way how to read it? I believe we need to improve this...

Yes, this is the meaning. Do you have a proposal how this could be rendered?

Do you have a proposal how this could be rendered?

Let's discuss this quickly by voice.

As discussed, the information about the fix availability have been consolidated. The report now shows either the fix release URL or version, or a text that no fix is available:

Newest styling of the list of defects:


[Question] Example for API.

Good job on your work ! Really nice project.
I have read all the docs and check the samples but can't find any doc on how to use the package with an API. On the API side, i have implanted the Context to store the Tenants Info with EF Core. Also I have a controller that returns the tenants’ info like your HTTPRemoteExample so the front end can call it.
The app consists of a DB for all the Tenants info and a database data per tenants. How can we set the correct database to get the data from ?
Do we need to register many DbContext for each tenants DB and based on a header that we pass when we call the API we get the correct db ? Maybe there is a better way ?
Thx for your time.

hi @jptoros
Yeah I need to get a good API sample up. Let me see if I understand your app correctly:
Is an API that is using the EFCoreStore for the multitenant store. What strategy are you using to determine the tenant?
And then in the API controllers you make some database calls, and you want it so that it connects to a different database depending on the tenant.
Is that close?

Hey @AndrewTriesToCode,
you got it all right !
thank for the fast feedback. I will gladly help you with the creation of a sample if I can get it working.
For now what i have archived since yesterday night is
services.AddDbContext();
services.AddDbContext(options => options.UseSqlServer(_configuration["ConnectionStrings:TenantsContext"]));
The first Context is the data of the app. Since depending on each tenant the connection string will change i don't set it in the Startup. For the TenantsContext which is the EFCoreStore I can set the connection string directly there.
For the strategy
services.AddMultiTenant().WithRouteStrategy().WithEFCoreStore().WithFallbackStrategy("demo");
With endpoints
endpoints.MapControllerRoute("default", "{tenant}/{controller}/{action=Index}/{id?}");
So I had to add the tenant in all my controller routes.
[Route("api/v{version:apiVersion}/{tenant}/[controller]")]
Finally in the AppContext
public class AppContext: MultiTenantDbContext
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
try{
optionsBuilder.UseSqlServer(ConnectionString);
}catch(Exception e){
optionsBuilder.UseSqlServer("hardcoded connection string");
}
        base.OnConfiguring(optionsBuilder);
    }

So when I call the API with the tenant in parameters it working #1 with the optionsBuilder.UseSqlServer(ConnectionString); but if for example i open my API to display the swagger for example that does crash since I don't have a tenant yet that why I need to put the try catch. If you have  better alternative i'm all in :)
Front End side
services.AddMultiTenant()
.WithRouteStrategy()
.WithRemoteAuthentication()
.WithHttpRemoteStore(tenantsUrl)
.WithFallbackStrategy("demo");
endpoints.MapControllerRoute("default", "{tenant}/{controller=Dashboard}/{action=Index}/{id?}");
Before each call to the API since i check the base address of the API and the current tenant and I add it to the URI.
private async Task EnsureTenantIdentifier()
{
var tenantInfo = _httpContextAccessor.HttpContext.GetMultiTenantContext().TenantInfo;
if (tenantInfo != null){
_httpClient.BaseAddress = new Uri($"{_httpClient.BaseAddress}{tenantInfo.Identifier}/");
}
}
So far here is the problems that I have.

The login of the app (Auth0) with OpenIdConnect don't work with .WithRemoteAuthentication(). When the app start the path never receive the tenant in it. So example the app https://localhost:5002/account/login. I'm looking for a way to add the tenant example my customer demo would need to use https://localhost:5002/demo/account/login. I'm missing something here.

The problem mentioned in the API for the ConnectionString empty at the start of the application.

So far do you think the implementation make sense ? Is it a better way to do it ?
Thanks

Hi, it looks like you got a lot working already. I'll try to address your questions, but in order to help I actually have to ask some more questions,

The login of the app (Auth0) with OpenIdConnect don't work with .WithRemoteAuthentication()
WithRemoteAuthentication takes effect when Auth0 is posting back to your app after the user has logged in. It shouldn't have any effect on app start because you haven't redirected the user to Auth0 yet. Question: do you want to determine the tenant in your app then redirect to the openId connect server (where each tenant might have a different server), or do you want to first send them to Auth0, have them sign in, then once back at your app determine the tenant based on the user that signed in? The library is more designed for the first case, but can handle the second case too.

The problem mentioned in the API for the ConnectionString empty at the start of the application.
Your try/catch isn't bad. An alternative is something like:

optionsBuilder.UseSqlServer(ConnectionString ?? "hard_coded_or_other_string");

If you have the fallback strategy in place though there should always be a tenant. Do you have a connection string set for the "demo" tenant? That might be the easiest thing to do. By the way multiple db per tenant can be tricky as you are seeing. Migration handling can be tough too.

How to block user that are not in that tenant to access other data tenant.
For this I recommend you use per-tenant options on CookieAuthenticationOptions to set the cookie name to be unique per tenant. Then one if you use normal ASP.NET authentication to protect pages they can only access if they have logged in for that particular tenant.

WithPerTenantOptions<CookieAuthenticationOptions>((options, tenantInfo) =>
        {
            options.Cookie.Name = tenantInfo.Id + "-cookie";
            options.LoginPath = "/" + tenantInfo.Identifier + "/Home/Login";
        });

How to put a access token to access the API with the .WithHttpRemoteStore(tenantsUrl)
If I understand correctly your front end is using this store. One option is to just use the same EFCoreStore store and connection that the backend uses. Let the database connection handle the security. If you do want to use HttpRemoteStore you have to use an overload when setting it up:

services.AddMultiTenant()
        .WithHttpRemoteStore("https://remoteserver.com/", httpClientBuilder =>
        {
            httpClientBuilder.ConfigureHttpClient( client =>
            {
                // Set your client here
               client.DefaultRequestHeaders.Authorization = new AuthorizationHeaderValue(...);
            });
        });

Alternatively there is another overload of WithHttpRemoteStore that lets you use your own custom delegating handler for even more control per request -- but that is more complicated. the .Net docs explain delegating handlers pretty well.
Let me know how it goes!

Hi, it looks like you got a lot working already. I'll try to address your questions, but in order to help I actually have to ask some more questions,

The login of the app (Auth0) with OpenIdConnect don't work with .WithRemoteAuthentication()
WithRemoteAuthentication takes effect when Auth0 is posting back to your app after the user has logged in. It shouldn't have any effect on app start because you haven't redirected the user to Auth0 yet. Question: do you want to determine the tenant in your app then redirect to the openId connect server (where each tenant might have a different server), or do you want to first send them to Auth0, have them sign in, then once back at your app determine the tenant based on the user that signed in? The library is more designed for the first case, but can handle the second case too.

Second case, I want everybody to go by the Auth0 Login page and with the token returned from Auth0 I will know which Tenant I should redirect to.

The problem mentioned in the API for the ConnectionString empty at the start of the application.
Your try/catch isn't bad. An alternative is something like:

optionsBuilder.UseSqlServer(ConnectionString ?? "hard_coded_or_other_string");

If you have the fallback strategy in place though there should always be a tenant. Do you have a connection string set for the "demo" tenant? That might be the easiest thing to do. By the way multiple db per tenant can be tricky as you are seeing. Migration handling can be tough too.

Strange here, I have tried your suggestion, but it still crash here. I do have the .WithFallbackStrategy("demo"); and the connectionstring of demo is set. But when the application run and arrive in the OnConfiguring of the AppContext I have a null referenceException
Exception has occurred: CLR/System.NullReferenceException An exception of type 'System.NullReferenceException' occurred in Finbuckle.MultiTenant.EntityFrameworkCore.dll but was not handled in user code: 'Object reference not set to an instance of an object.'    at Finbuckle.MultiTenant.MultiTenantDbContext.get_ConnectionString()    at DemoApi.Repositories.AppContext.OnConfiguring(DbContextOptionsBuilder optionsBuilder). It looks like we came in there without knowing the current tenant for the first time but after that it work #1.

How to block user that are not in that tenant to access other data tenant.
For this I recommend you use per-tenant options on CookieAuthenticationOptions to set the cookie name to be unique per tenant. Then one if you use normal ASP.NET authentication to protect pages they can only access if they have logged in for that particular tenant.

WithPerTenantOptions<CookieAuthenticationOptions>((options, tenantInfo) =>
        {
            options.Cookie.Name = tenantInfo.Id + "-cookie";
            options.LoginPath = "/" + tenantInfo.Identifier + "/Home/Login";
        });

Thx I see that force a token refresh. Since it the same Auth0 domain under it it just relog the customer directly in with the different tenant.  I will have a look on the Auth0 code to see what i need to change here.

How to put a access token to access the API with the .WithHttpRemoteStore(tenantsUrl)
If I understand correctly your front end is using this store. One option is to just use the same EFCoreStore store and connection that the backend uses. Let the database connection handle the security. If you do want to use HttpRemoteStore you have to use an overload when setting it up:

services.AddMultiTenant()
        .WithHttpRemoteStore("https://remoteserver.com/", httpClientBuilder =>
        {
            httpClientBuilder.ConfigureHttpClient( client =>
            {
                // Set your client here
               client.DefaultRequestHeaders.Authorization = new AuthorizationHeaderValue(...);
            });
        });

Alternatively there is another overload of WithHttpRemoteStore that lets you use your own custom delegating handler for even more control per request -- but that is more complicated. the .Net docs explain delegating handlers pretty well.
Let me know how it goes!

Thank why I did not think about it :) When I was testing the URl of the remote store i gave a wrong URL and the error show up have a small type in it for the word "parameter". Not important but easy fix an in future release.
ArgumentException: Paramter 'endpointTemplate' is not a an http or https uri. (Parameter 'endpointTemplate')

Hey @AndrewTriesToCode  one more questions that i'm not finding answer.
I'm trying to load AppConfiguration depending on the tenant in my Program.cs file.
I have 3 App Config with different features enables in them.
I have added to TenantInfo a new field named "AppTier" which can be "Gold, Silver'Bronze' depeding on that value, I want to change the AppConfig that is loaded.
public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureLogging((hostingContext, logging) =>
                    {
                        logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging"));
                        if (hostingContext.HostingEnvironment.IsDevelopment())
                        {
                            logging.AddDebug();
                        }
                    }
                )
                .ConfigureAppConfiguration((hostingContext, config) =>
                {
                    config.AddAzureAppConfiguration(options =>
                    {
//Based on the currenttenant AppTier value
                        options.Connect(settings["ConnectionStrings:AppConfig"])
                               .UseFeatureFlags();
                    });

Hello!
Auth0
If you are sending everyone to Auth0 and using a token value to redirect to a tenant page then no need for WithRemoteAuthentication. I ned to update the docs on when to use that.
*EF Core error
Is it possible the app is trying to use the db context before the tenant is set? Like maybe migrations or seeding data or something? Can you set logging to debug level and post the output for the entire request?
Auth0 again
In your OpenIdConnectOptions you can set options.Prompt = "login" or something like that to force a new signing each time they are redirected to Auth0. Might be something you only need for dev and not production unless you expect someone using the same computer to sign in under different tenants back-to-back.
Azure App configuration
The library is designed mainly for per tenant options instead of per-tenant configuration. Since configuration is usually loaded at app startup (when there is no tenant) and not in the middle of a request (when there is a tenant). I tend to think of configuration as more tied to the host and options for the app, but I know that is oversimplifying it. Also, I'm not too familiar with AzureApp configuration. You are the very first person to try this so if you find a good solution let me know :)
I will keep thinking about it and let you know if I can think of a good way to make it work.

I think this will be something useful: feature filters
I can envision a feature filter that checks the current tenant info for a tier property like gold, silver, bronze. With v6 of this library you can define your own TenantInfo class so you could easily add a Tier property. In V5 and earlier you could store that in the tenantInfo.Items collection.
So then the next step would be figuring out how to write and plug in our own feature filter class...

@AndrewTriesToCode  work #1 for the feature filters good find !
Gonna try to put up a sample soon for other people.
Best,

@AndrewTriesToCode is there a way to get all the system Tenants with the store ?

There isn’t a single universal way... it depends on each store. What type are you using? Maybe it would be smart to add a way to do so.

I use EFCore. I know i can query the DB. Was just asking if for we would have a extension for it within the store. Something like await _store.TryGetAllAsync();
`[HttpGet("{identifier}")]
public async Task<ActionResult> Get(string identifier)
{
_logger.LogInformation("Tenants endpoint called with identifier "{identifier}".", identifier);
        var tenantInfo = await _store.TryGetByIdentifierAsync(identifier);
        if(tenantInfo != null)
        {
            _logger.LogInformation("Tenant \"{name}\" found for identifier \"{identifier}\".", tenantInfo.Name, identifier);
            return tenantInfo;
        }

        _logger.LogWarning("No tenant found with identifier \"{identifier}\".", identifier);
        return NotFound();
    }

[HttpGet("{identifier}")]
public async Task<ActionResult<List> GetAll()
{
_logger.LogInformation("Tenants endpoint called with identifier "{identifier}".", identifier);
        var tenantInfo = await _store.TryGetAllAsync();
        if(tenantInfo != null)
        {
            _logger.LogInformation("Tenant \"{name}\" found for identifier \"{identifier}\".", tenantInfo.Name, identifier);
            return tenantInfo;
        }

        _logger.LogWarning("No tenant found with identifier \"{identifier}\".", identifier);
        return NotFound();
    }``

Yeah that would be a good way to go. Also I think maybe a way to pull all the tenants across all the stores.

@AndrewTriesToCode is they a special way to redirect a user to xyz if not tenant is found ?
Example my app is web.testsaas.com if I user only enter that url can I redirect him to a specific url ?
Otherwise when they enter web.testsaas.com/tenantxyz it should work as usual.
Thx


[Help Wanted] Add Japanese documentation to international documentation page

While docs.mattermost.com does not yet support localization, an international section has been created to support documentation for communities where English language is uncommon.
This ticket is to welcome pull requests for Japanese documentation to be added to this section, based on considerable interest from the Japanese community. For example:

Qiita articles on Mattermost
Prototype of localization support for docs.mattermost.com

All localized product documentation content now lives in the User Forum where it can be maintained by the Mattermost Community. Closing.