REST API does not provide remote Image list

Issue description
REST API does not provide "lxc image list ubuntu:" command.
Details
I'd like to provide a web gui which enables the user to easily create and deploy new containers. Sadly is not really possible to comfortably import new images into LXD via the REST, as no "lxc image list ubuntu:/ubuntu-daily:/images:" is provided.
So this workflow not possible:

Insert container name
Select container image (-> where to get it from if not in image list?)
Create container

More details
The user currently has to either:

manually import the image via the command line
or Use the "Import image" API (source.type="url"), and specify a URL to a image, but has to manually search through the following websites and find the correct archive file:

https://images.linuxcontainers.org
https://cloud-images.ubuntu.com/releases

This is not really user friendly.
To image or not to image?
I'm also a bit confused. It is possible to start new container with a remote image. After the command, the image is imported into the image store:
lxc launch ubuntu:14.04 my-ubuntu

But its NOT possible to import this image like:
lxc image import ubuntu: 14.04

So, what's the preferred way to create a new container? just specify a remote image location, or to import the image and start the container with that image?
My Solutions
Possible solutions for my problem with the image import for the web gui:

Update REST API to include the image list command
Or: I have to create a GO web server which implements the image list, using the functionality from this lxd project
Or: I need to create a 3rd party website which parses the ubuntu:/ubuntu-daily:/images: JSON and displays it nicely, so the user is able to copy paste the url to the archive
Or: I manually download the JSON with the image list (https://cloud-images.ubuntu.com/releases/streams/v1/index.json etc.) and publish it with my webapp, including regular updates to include new versions.

So, is it possible to implement 1? Or what alternatives do i have here?

On Mon, Mar 21, 2016 at 03:57:41AM -0700, Dobin Rutishauser wrote:

Issue description
REST API does not provide "lxc image list ubuntu:" command.
Details
I'd like to provide a web gui which enables the user to easily create and deploy new containers. Sadly is not really possible to comfortably import new images into LXD via the REST, as no "lxc image list ubuntu:/ubuntu-daily:/images:" is provided.
So this workflow not possible:

Insert container name
Select container image (-> where to get it from if not in image list?)
Create container

More details
The user currently has to either:

manually import the image via the command line
or Use the "Import image" API (source.type="url"), and specify a URL to a image, but has to manually search through the following websites and find the correct archive file:

https://images.linuxcontainers.org
https://cloud-images.ubuntu.com/releases

This is not really user friendly.
To image or not to image?
I'm also a bit confused. It is possible to start new container with a remote image. After the command, the image is imported into the image store:
lxc launch ubuntu:14.04 my-ubuntu

But its NOT possible to import this image like:
lxc image import ubuntu: 14.04

So, what's the preferred way to create a new container? just specify a remote image location, or to import the image and start the container with that image?
My Solutions
Possible solutions for my problem with the image import for the web gui:

Update REST API to include the image list command
Or: I have to create a GO web server which implements the image list, using the functionality from this lxd project
Or: I need to create a 3rd party website which parses the ubuntu:/ubuntu-daily:/images: JSON and displays it nicely, so the user is able to copy paste the url to the archive
Or: I manually download the JSON with the image list (https://cloud-images.ubuntu.com/releases/streams/v1/index.json etc.) and publish it with my webapp, including regular updates to include new versions.

So, is it possible to implement 1? Or what alternatives do i have here?

Why not 5. query the simplestreams data and parse it from within your
app? Why do you have to do it over a REST api or cache it or whatever?
There is golang code in LXD to parse simplestreams, or there is a
python library to do the same: https://launchpad.net/simplestreams

Yeah I can parse the simplestreams (like https://cloud-images.ubuntu.com/releases/streams/v1/index.json), which give me the stuff from ubuntu: and ubuntudaily:, but not images: (that is just plain HTML?) . Therefore need to implement not only one, but two different modules, just to gain access to the list of available images.
Note that for simplicity's sake, i wanted to create a HTML/JS only app, without a backend. As the simplestreams JSON files on cloud-images.ubuntu.com dont have an open Access-Control-Origin header, I have to resort to implement a backend just for the sake of querying a public JSON service.
Of course if it's a deliberate design decision to not expose the "list" command via the REST API, I'll do no. 5 (which is my no. 2).

On Mon, Mar 21, 2016 at 07:04:16AM -0700, Dobin Rutishauser wrote:

Yeah I can parse the simplestreams (like https://cloud-images.ubuntu.com/releases/streams/v1/index.json), which give me the stuff from ubuntu: and ubuntudaily:, but not images: (that is just plain HTML?) .

It's just a text file.

Therefore need to implement not only one, but two different modules, just to gain access to the list of available images.

Yes, there are multiple formats.

Note that for simplicity's sake, i wanted to create a HTML/JS only app, without a backend. As the simplestreams JSON files on cloud-images.ubuntu.com dont have an open Access-Control-Origin header, I have to resort to implement a backend just for the sake of querying a public JSON service.

Hmm. We might be able to help you there, let me inquire.

Of course if it's a deliberate design decision to not expose the "list" command via the REST API, I'll do no. 5 (which is my no. 2).

Well, "list" /is/ implemented in LXD's rest api. What you're asking
LXD to do is go to some other remote and report that remote's images,
as opposed to just parsing that remote yourself. I'm not sure this
makes a lot of sense.

Can you elaborate a bit about Access-Control-Origin? I'm not too familiar with how webapps are developed. What would you need it set to?

Concerning the Access-Control-Origin:
A web-accessible index of the ubuntu images would be awesome for me :-)
The simplestreams JSON should be delivered containing the following HTTP header in the HTTP response:
Access-Control-Allow-Origin: *
This probably includes at least the following URLs:
https://cloud-images.ubuntu.com/releases/streams/v1/index.json
https://cloud-images.ubuntu.com/releases/streams/v1/com.ubuntu.cloud:released:download.json

Setting access-control-origin to "*" (everyone) will allow every website to read the content of the JSON.
If this header is NOT set, the same origin policy of the browser prohibits accessing that JSON from all domains except the origin (cloud-images.ubuntu.com). As this is public read-only data, there should be no security concerns, but imho a security guy at ubuntu should give an OK to perform this change.

https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS
http://stackoverflow.com/questions/7015782/how-do-i-use-access-control-allow-origin-does-it-just-go-in-between-the-html-he

Well, "list" /is/ implemented in LXD's rest api. What you're asking
LXD to do is go to some other remote and report that remote's images,
as opposed to just parsing that remote yourself. I'm not sure this
makes a lot of sense.

If you phrase it like this: Yes, it does not appear to make a lot of sense :-)
Nevertheless: lxd supports working on the remote images and their aliases natively.
The very first command to set-up a container described on lxcontainers.org uses remote images: https://linuxcontainers.org/lxd/getting-started-cli/#using-the-built-in-image-remotes and the command "lxc image list images:". Therefore i assumed that working on remote images is a natural way, and this includes searching through them.
Also, searching through "private" images need authentication (client certificate), which lxd already has, but other software (as in browsers or 3rd party websites) do not.
Afaik there is also no support in the REST api to see the "remotes" (URL's and protocols) of an lxd server.

On Mon, Mar 21, 2016 at 09:35:11AM -0700, Dobin Rutishauser wrote:

Well, "list" /is/ implemented in LXD's rest api. What you're asking
LXD to do is go to some other remote and report that remote's images,
as opposed to just parsing that remote yourself. I'm not sure this
makes a lot of sense.

If you phrase it like this: Yes, it does not appear to make a lot of sense :-)
Nevertheless: lxd supports working on the remote images and their aliases natively.
The very first command to set-up a container described on lxcontainers.org uses remote images: https://linuxcontainers.org/lxd/getting-started-cli/#using-the-built-in-image-remotes and the command "lxc image list images:". Therefore i assumed that working on remote images is a natural way, and this includes searching through them.

It is with the command line client, but that's just a feature that
exists in our command line client. If you're using the API, you want
to look at the api docs instead:
https://github.com/lxc/lxd/blob/master/doc/rest-api.md

Also, searching through "private" images need authentication (client certificate), which lxd already has, but other software (as in browsers or 3rd party websites) do not.

Right, naturally the third party software needs to authenticate the
same as everyone else.

Afaik there is also no support in the REST api to see the "remotes" (URL's and protocols) of an lxd server.

There are no remotes on the server, just on the client. The client
tells the server exactly what stuff to download from who each time.
You can do lxc remote list to see the remotes on your local client.

Ah, gotcha! LXD, the "server", does not know anything about remotes or image locations, only lxc, the client, does. The REST interface only accesses the lxd server, and therefore can't provide the remote-image search. I mixed-up the components/architecture. Now it makes sense.
I'll wait a bit for feedback on the access-control-origin thingy until i close this issue.

Maybe its also possible to put the Access-Control-Allow-Origin on:
https://images.linuxcontainers.org/meta/1.0/*

hey @dobin
Same idea !
https://github.com/aarnaud/lxd-webui with angular2 and webpack

@aarnaud lol, we even have nearly identical names... https://github.com/dobin/lxd-webgui
Mine is already working pretty well and usable.
Maybe we should join forces? drop me an email<EMAIL_ADDRESS>or dobin on freenode

I take this opportunity to learn angular2 ;-)
I will try it lxd-webgui ;-) and maybe i will contribute of course!

Allowed-Origin set to * for images.linuxcontainers.org

Thanks @stgraber

thanks @stgraber!
Concerning images.linuxcontainers.org:
I cant seem to find the hash of the image (which the client needs to give to LXD REST API to import an image). Can you tell where/how to find it, or add it to the index-user/index-system files?
Details
there is a file with the available images on:

https://images.linuxcontainers.org/meta/1.0/index-user

which contains lines like:
ubuntu;xenial;s390x;default;20160322_03:49;/images/ubuntu/xenial/s390x/default/20160322_03:49/

But this file does not include the hash of the images,unlike lxc image list images:
|                                 | 23a78772d68e | yes    | Ubuntu xenial (s390x) (20160322_03:49)    | s390x   | 73.88MB  | Mar 22, 2016 at 4:35am (UTC)  |

The has is also not written in the image directories, e.g.:

https://images.linuxcontainers.org/images/alpine/3.1/i386/default/20160322_17:50/

And the following directory seems to be not accessible:

https://images.linuxcontainers.org/meta/lxd/

Yeah, sounds like you got confused by that server providing both the lxc-download API and the LXD api.
When using it with LXD, just stick to what you find under https://images.linuxcontainers.org:8443/1.0

Linuxcontainers.org has the allow-origin header, cloud-images.ubuntu.com not.
My app works pretty good right now: https://github.com/dobin/lxd-webgui
I'll close this issue, and maybe open a new one later, for adding the http header to cloud-images.ubuntu.com


Sending mircropayment of 0 hbars results to INVALID_SIGNATURE in receipt.

Unlikely to be an issue with the sdk.
Envoyé depuis mon iPhone/Sent from my iPhone

Le 27 juil. 2019 à 14:00, N S<EMAIL_ADDRESS>a écrit :
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.


Import table option dissapeared from table context menu

System information:

Operating system (distribution) and version Win10
DBeaver version 7.2.3 EA

Steps to reproduce, if exist:
Open table's context menu
Expected: option to import data exists
Actual result:

Fixed

verified


Synthesis failed for IAMCredentials

Hello! Autosynth couldn't regenerate IAMCredentials. :broken_heart:
Here's the output from running synth.py:
2020-12-18 06:15:40,378 autosynth [INFO] > logs will be written to: /tmpfs/src/logs/elixir-google-api
2020-12-18 06:15:41,265 autosynth [DEBUG] > Running: git config --global core.excludesfile /home/kbuilder/.autosynth-gitignore
2020-12-18 06:15:41,269 autosynth [DEBUG] > Running: git config user.name yoshi-automation
2020-12-18 06:15:41,271 autosynth [DEBUG] > Running: git config user.email<EMAIL_ADDRESS>2020-12-18 06:15:41,274 autosynth [DEBUG] > Running: git config push.default simple
2020-12-18 06:15:41,277 autosynth [DEBUG] > Running: git branch -f autosynth-iamcredentials
2020-12-18 06:15:41,280 autosynth [DEBUG] > Running: git checkout autosynth-iamcredentials
Switched to branch 'autosynth-iamcredentials'
2020-12-18 06:15:41,539 autosynth [INFO] > Running synthtool
2020-12-18 06:15:41,539 autosynth [INFO] > ['/tmpfs/src/github/synthtool/env/bin/python3', '-m', 'synthtool', '--metadata', 'clients/iam_credentials/synth.metadata', 'synth.py', '--']
2020-12-18 06:15:41,539 autosynth [DEBUG] > log_file_path: /tmpfs/src/logs/elixir-google-api/IAMCredentials/sponge_log.log
2020-12-18 06:15:41,541 autosynth [DEBUG] > Running: /tmpfs/src/github/synthtool/env/bin/python3 -m synthtool --metadata clients/iam_credentials/synth.metadata synth.py -- IAMCredentials
2020-12-18 06:15:41,763 synthtool [DEBUG] > Executing /home/kbuilder/.cache/synthtool/elixir-google-api/synth.py.
On branch autosynth-iamcredentials
nothing to commit, working tree clean
2020-12-18 06:15:43,505 synthtool [DEBUG] > Running: docker run --rm -v/tmpfs/tmp/tmpahtkf046/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 IAMCredentials
DEBUG:synthtool:Running: docker run --rm -v/tmpfs/tmp/tmpahtkf046/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 IAMCredentials
/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:16:14.566 [info]  FETCHING: https://iamcredentials.googleapis.com/$discovery/GOOGLE_REST_SIMPLE_URI?version=v1

14:16:14.697 [info]  FOUND: https://iamcredentials.googleapis.com/$discovery/GOOGLE_REST_SIMPLE_URI?version=v1
Revision check: old=20201022, new=20201204, generating=true
Creating leading directories
Writing GenerateAccessTokenRequest to clients/iam_credentials/lib/google_api/iam_credentials/v1/model/generate_access_token_request.ex.
Writing GenerateAccessTokenResponse to clients/iam_credentials/lib/google_api/iam_credentials/v1/model/generate_access_token_response.ex.
Writing GenerateIdTokenRequest to clients/iam_credentials/lib/google_api/iam_credentials/v1/model/generate_id_token_request.ex.
Writing GenerateIdTokenResponse to clients/iam_credentials/lib/google_api/iam_credentials/v1/model/generate_id_token_response.ex.
Writing SignBlobRequest to clients/iam_credentials/lib/google_api/iam_credentials/v1/model/sign_blob_request.ex.
Writing SignBlobResponse to clients/iam_credentials/lib/google_api/iam_credentials/v1/model/sign_blob_response.ex.
Writing SignJwtRequest to clients/iam_credentials/lib/google_api/iam_credentials/v1/model/sign_jwt_request.ex.
Writing SignJwtResponse to clients/iam_credentials/lib/google_api/iam_credentials/v1/model/sign_jwt_response.ex.
Writing Projects to clients/iam_credentials/lib/google_api/iam_credentials/v1/api/projects.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:16:15.121 [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:16:18,169 autosynth [ERROR] > Synthesis failed
2020-12-18 06:16:18,169 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/iam_credentials/synth.metadata', 'synth.py', '--', 'IAMCredentials']' returned non-zero exit status 1.

Google internal developers can see the full log here.

Autosynth is still having trouble generating IAMCredentials. :sob:
Here's the output from running synth.py:
2020-12-19 06:13:32,181 autosynth [INFO] > logs will be written to: /tmpfs/src/logs/elixir-google-api
2020-12-19 06:13:33,152 autosynth [DEBUG] > Running: git config --global core.excludesfile /home/kbuilder/.autosynth-gitignore
2020-12-19 06:13:33,155 autosynth [DEBUG] > Running: git config user.name yoshi-automation
2020-12-19 06:13:33,158 autosynth [DEBUG] > Running: git config user.email<EMAIL_ADDRESS>2020-12-19 06:13:33,160 autosynth [DEBUG] > Running: git config push.default simple
2020-12-19 06:13:33,163 autosynth [DEBUG] > Running: git branch -f autosynth-iamcredentials
2020-12-19 06:13:33,166 autosynth [DEBUG] > Running: git checkout autosynth-iamcredentials
Switched to branch 'autosynth-iamcredentials'
2020-12-19 06:13:33,396 autosynth [INFO] > Running synthtool
2020-12-19 06:13:33,396 autosynth [INFO] > ['/tmpfs/src/github/synthtool/env/bin/python3', '-m', 'synthtool', '--metadata', 'clients/iam_credentials/synth.metadata', 'synth.py', '--']
2020-12-19 06:13:33,396 autosynth [DEBUG] > log_file_path: /tmpfs/src/logs/elixir-google-api/IAMCredentials/sponge_log.log
2020-12-19 06:13:33,398 autosynth [DEBUG] > Running: /tmpfs/src/github/synthtool/env/bin/python3 -m synthtool --metadata clients/iam_credentials/synth.metadata synth.py -- IAMCredentials
2020-12-19 06:13:33,619 synthtool [DEBUG] > Executing /home/kbuilder/.cache/synthtool/elixir-google-api/synth.py.
On branch autosynth-iamcredentials
nothing to commit, working tree clean
2020-12-19 06:13:35,454 synthtool [DEBUG] > Running: docker run --rm -v/tmpfs/tmp/tmpr42e8tkk/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 IAMCredentials
DEBUG:synthtool:Running: docker run --rm -v/tmpfs/tmp/tmpr42e8tkk/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 IAMCredentials
/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:14:06.523 [info]  FETCHING: https://iamcredentials.googleapis.com/$discovery/GOOGLE_REST_SIMPLE_URI?version=v1

14:14:06.640 [info]  FOUND: https://iamcredentials.googleapis.com/$discovery/GOOGLE_REST_SIMPLE_URI?version=v1
Revision check: old=20201022, new=20201204, generating=true
Creating leading directories
Writing GenerateAccessTokenRequest to clients/iam_credentials/lib/google_api/iam_credentials/v1/model/generate_access_token_request.ex.
Writing GenerateAccessTokenResponse to clients/iam_credentials/lib/google_api/iam_credentials/v1/model/generate_access_token_response.ex.
Writing GenerateIdTokenRequest to clients/iam_credentials/lib/google_api/iam_credentials/v1/model/generate_id_token_request.ex.
Writing GenerateIdTokenResponse to clients/iam_credentials/lib/google_api/iam_credentials/v1/model/generate_id_token_response.ex.
Writing SignBlobRequest to clients/iam_credentials/lib/google_api/iam_credentials/v1/model/sign_blob_request.ex.
Writing SignBlobResponse to clients/iam_credentials/lib/google_api/iam_credentials/v1/model/sign_blob_response.ex.
Writing SignJwtRequest to clients/iam_credentials/lib/google_api/iam_credentials/v1/model/sign_jwt_request.ex.
Writing SignJwtResponse to clients/iam_credentials/lib/google_api/iam_credentials/v1/model/sign_jwt_response.ex.
Writing Projects to clients/iam_credentials/lib/google_api/iam_credentials/v1/api/projects.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:14:07.065 [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:14:10,284 autosynth [ERROR] > Synthesis failed
2020-12-19 06:14:10,284 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/iam_credentials/synth.metadata', 'synth.py', '--', 'IAMCredentials']' returned non-zero exit status 1.

Google internal developers can see the full log here.

Autosynth is still having trouble generating IAMCredentials. :sob:
Here's the output from running synth.py:
2020-12-20 06:19:00,383 autosynth [INFO] > logs will be written to: /tmpfs/src/logs/elixir-google-api
2020-12-20 06:19:01,324 autosynth [DEBUG] > Running: git config --global core.excludesfile /home/kbuilder/.autosynth-gitignore
2020-12-20 06:19:01,328 autosynth [DEBUG] > Running: git config user.name yoshi-automation
2020-12-20 06:19:01,331 autosynth [DEBUG] > Running: git config user.email<EMAIL_ADDRESS>2020-12-20 06:19:01,334 autosynth [DEBUG] > Running: git config push.default simple
2020-12-20 06:19:01,337 autosynth [DEBUG] > Running: git branch -f autosynth-iamcredentials
2020-12-20 06:19:01,341 autosynth [DEBUG] > Running: git checkout autosynth-iamcredentials
Switched to branch 'autosynth-iamcredentials'
2020-12-20 06:19:01,626 autosynth [INFO] > Running synthtool
2020-12-20 06:19:01,626 autosynth [INFO] > ['/tmpfs/src/github/synthtool/env/bin/python3', '-m', 'synthtool', '--metadata', 'clients/iam_credentials/synth.metadata', 'synth.py', '--']
2020-12-20 06:19:01,626 autosynth [DEBUG] > log_file_path: /tmpfs/src/logs/elixir-google-api/IAMCredentials/sponge_log.log
2020-12-20 06:19:01,629 autosynth [DEBUG] > Running: /tmpfs/src/github/synthtool/env/bin/python3 -m synthtool --metadata clients/iam_credentials/synth.metadata synth.py -- IAMCredentials
2020-12-20 06:19:01,870 synthtool [DEBUG] > Executing /home/kbuilder/.cache/synthtool/elixir-google-api/synth.py.
On branch autosynth-iamcredentials
nothing to commit, working tree clean
2020-12-20 06:19:03,751 synthtool [DEBUG] > Running: docker run --rm -v/tmpfs/tmp/tmphng04kxa/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 IAMCredentials
DEBUG:synthtool:Running: docker run --rm -v/tmpfs/tmp/tmphng04kxa/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 IAMCredentials
/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:37.045 [info]  FETCHING: https://iamcredentials.googleapis.com/$discovery/GOOGLE_REST_SIMPLE_URI?version=v1

14:19:37.170 [info]  FOUND: https://iamcredentials.googleapis.com/$discovery/GOOGLE_REST_SIMPLE_URI?version=v1
Revision check: old=20201022, new=20201204, generating=true
Creating leading directories
Writing GenerateAccessTokenRequest to clients/iam_credentials/lib/google_api/iam_credentials/v1/model/generate_access_token_request.ex.
Writing GenerateAccessTokenResponse to clients/iam_credentials/lib/google_api/iam_credentials/v1/model/generate_access_token_response.ex.
Writing GenerateIdTokenRequest to clients/iam_credentials/lib/google_api/iam_credentials/v1/model/generate_id_token_request.ex.
Writing GenerateIdTokenResponse to clients/iam_credentials/lib/google_api/iam_credentials/v1/model/generate_id_token_response.ex.
Writing SignBlobRequest to clients/iam_credentials/lib/google_api/iam_credentials/v1/model/sign_blob_request.ex.
Writing SignBlobResponse to clients/iam_credentials/lib/google_api/iam_credentials/v1/model/sign_blob_response.ex.
Writing SignJwtRequest to clients/iam_credentials/lib/google_api/iam_credentials/v1/model/sign_jwt_request.ex.
Writing SignJwtResponse to clients/iam_credentials/lib/google_api/iam_credentials/v1/model/sign_jwt_response.ex.
Writing Projects to clients/iam_credentials/lib/google_api/iam_credentials/v1/api/projects.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:37.618 [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:19:40,832 autosynth [ERROR] > Synthesis failed
2020-12-20 06:19:40,832 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/iam_credentials/synth.metadata', 'synth.py', '--', 'IAMCredentials']' returned non-zero exit status 1.

Google internal developers can see the full log here.

Autosynth is still having trouble generating IAMCredentials. :sob:
Here's the output from running synth.py:
2020-12-21 06:11:43,771 autosynth [INFO] > logs will be written to: /tmpfs/src/logs/elixir-google-api
2020-12-21 06:11:44,643 autosynth [DEBUG] > Running: git config --global core.excludesfile /home/kbuilder/.autosynth-gitignore
2020-12-21 06:11:44,646 autosynth [DEBUG] > Running: git config user.name yoshi-automation
2020-12-21 06:11:44,649 autosynth [DEBUG] > Running: git config user.email<EMAIL_ADDRESS>2020-12-21 06:11:44,651 autosynth [DEBUG] > Running: git config push.default simple
2020-12-21 06:11:44,654 autosynth [DEBUG] > Running: git branch -f autosynth-iamcredentials
2020-12-21 06:11:44,657 autosynth [DEBUG] > Running: git checkout autosynth-iamcredentials
Switched to branch 'autosynth-iamcredentials'
2020-12-21 06:11:44,887 autosynth [INFO] > Running synthtool
2020-12-21 06:11:44,887 autosynth [INFO] > ['/tmpfs/src/github/synthtool/env/bin/python3', '-m', 'synthtool', '--metadata', 'clients/iam_credentials/synth.metadata', 'synth.py', '--']
2020-12-21 06:11:44,887 autosynth [DEBUG] > log_file_path: /tmpfs/src/logs/elixir-google-api/IAMCredentials/sponge_log.log
2020-12-21 06:11:44,889 autosynth [DEBUG] > Running: /tmpfs/src/github/synthtool/env/bin/python3 -m synthtool --metadata clients/iam_credentials/synth.metadata synth.py -- IAMCredentials
2020-12-21 06:11:45,102 synthtool [DEBUG] > Executing /home/kbuilder/.cache/synthtool/elixir-google-api/synth.py.
On branch autosynth-iamcredentials
nothing to commit, working tree clean
2020-12-21 06:11:46,914 synthtool [DEBUG] > Running: docker run --rm -v/tmpfs/tmp/tmpc98rhlsn/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 IAMCredentials
DEBUG:synthtool:Running: docker run --rm -v/tmpfs/tmp/tmpc98rhlsn/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 IAMCredentials
/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:12:15.676 [info]  FETCHING: https://iamcredentials.googleapis.com/$discovery/GOOGLE_REST_SIMPLE_URI?version=v1

14:12:15.791 [info]  FOUND: https://iamcredentials.googleapis.com/$discovery/GOOGLE_REST_SIMPLE_URI?version=v1
Revision check: old=20201022, new=20201204, generating=true
Creating leading directories
Writing GenerateAccessTokenRequest to clients/iam_credentials/lib/google_api/iam_credentials/v1/model/generate_access_token_request.ex.
Writing GenerateAccessTokenResponse to clients/iam_credentials/lib/google_api/iam_credentials/v1/model/generate_access_token_response.ex.
Writing GenerateIdTokenRequest to clients/iam_credentials/lib/google_api/iam_credentials/v1/model/generate_id_token_request.ex.
Writing GenerateIdTokenResponse to clients/iam_credentials/lib/google_api/iam_credentials/v1/model/generate_id_token_response.ex.
Writing SignBlobRequest to clients/iam_credentials/lib/google_api/iam_credentials/v1/model/sign_blob_request.ex.
Writing SignBlobResponse to clients/iam_credentials/lib/google_api/iam_credentials/v1/model/sign_blob_response.ex.
Writing SignJwtRequest to clients/iam_credentials/lib/google_api/iam_credentials/v1/model/sign_jwt_request.ex.
Writing SignJwtResponse to clients/iam_credentials/lib/google_api/iam_credentials/v1/model/sign_jwt_response.ex.
Writing Projects to clients/iam_credentials/lib/google_api/iam_credentials/v1/api/projects.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:12:16.185 [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:12:19,118 autosynth [ERROR] > Synthesis failed
2020-12-21 06:12:19,118 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/iam_credentials/synth.metadata', 'synth.py', '--', 'IAMCredentials']' returned non-zero exit status 1.

Google internal developers can see the full log here.

Autosynth is still having trouble generating IAMCredentials. :sob:
Here's the output from running synth.py:
2020-12-22 06:12:32,401 autosynth [INFO] > logs will be written to: /tmpfs/src/logs/elixir-google-api
2020-12-22 06:12:33,289 autosynth [DEBUG] > Running: git config --global core.excludesfile /home/kbuilder/.autosynth-gitignore
2020-12-22 06:12:33,292 autosynth [DEBUG] > Running: git config user.name yoshi-automation
2020-12-22 06:12:33,297 autosynth [DEBUG] > Running: git config user.email<EMAIL_ADDRESS>2020-12-22 06:12:33,300 autosynth [DEBUG] > Running: git config push.default simple
2020-12-22 06:12:33,303 autosynth [DEBUG] > Running: git branch -f autosynth-iamcredentials
2020-12-22 06:12:33,307 autosynth [DEBUG] > Running: git checkout autosynth-iamcredentials
Switched to branch 'autosynth-iamcredentials'
2020-12-22 06:12:33,582 autosynth [INFO] > Running synthtool
2020-12-22 06:12:33,582 autosynth [INFO] > ['/tmpfs/src/github/synthtool/env/bin/python3', '-m', 'synthtool', '--metadata', 'clients/iam_credentials/synth.metadata', 'synth.py', '--']
2020-12-22 06:12:33,582 autosynth [DEBUG] > log_file_path: /tmpfs/src/logs/elixir-google-api/IAMCredentials/sponge_log.log
2020-12-22 06:12:33,584 autosynth [DEBUG] > Running: /tmpfs/src/github/synthtool/env/bin/python3 -m synthtool --metadata clients/iam_credentials/synth.metadata synth.py -- IAMCredentials
2020-12-22 06:12:33,822 synthtool [DEBUG] > Executing /home/kbuilder/.cache/synthtool/elixir-google-api/synth.py.
On branch autosynth-iamcredentials
nothing to commit, working tree clean
2020-12-22 06:12:35,615 synthtool [DEBUG] > Running: docker run --rm -v/tmpfs/tmp/tmpgl7jex5w/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 IAMCredentials
DEBUG:synthtool:Running: docker run --rm -v/tmpfs/tmp/tmpgl7jex5w/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 IAMCredentials
/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:13:05.863 [info]  FETCHING: https://iamcredentials.googleapis.com/$discovery/GOOGLE_REST_SIMPLE_URI?version=v1

14:13:05.984 [info]  FOUND: https://iamcredentials.googleapis.com/$discovery/GOOGLE_REST_SIMPLE_URI?version=v1
Revision check: old=20201022, new=20201204, generating=true
Creating leading directories
Writing GenerateAccessTokenRequest to clients/iam_credentials/lib/google_api/iam_credentials/v1/model/generate_access_token_request.ex.
Writing GenerateAccessTokenResponse to clients/iam_credentials/lib/google_api/iam_credentials/v1/model/generate_access_token_response.ex.
Writing GenerateIdTokenRequest to clients/iam_credentials/lib/google_api/iam_credentials/v1/model/generate_id_token_request.ex.
Writing GenerateIdTokenResponse to clients/iam_credentials/lib/google_api/iam_credentials/v1/model/generate_id_token_response.ex.
Writing SignBlobRequest to clients/iam_credentials/lib/google_api/iam_credentials/v1/model/sign_blob_request.ex.
Writing SignBlobResponse to clients/iam_credentials/lib/google_api/iam_credentials/v1/model/sign_blob_response.ex.
Writing SignJwtRequest to clients/iam_credentials/lib/google_api/iam_credentials/v1/model/sign_jwt_request.ex.
Writing SignJwtResponse to clients/iam_credentials/lib/google_api/iam_credentials/v1/model/sign_jwt_response.ex.
Writing Projects to clients/iam_credentials/lib/google_api/iam_credentials/v1/api/projects.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:13:06.394 [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:13:09,585 autosynth [ERROR] > Synthesis failed
2020-12-22 06:13:09,585 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/iam_credentials/synth.metadata', 'synth.py', '--', 'IAMCredentials']' returned non-zero exit status 1.

Google internal developers can see the full log here.

Autosynth passed, closing! :green_heart:


Fix markdown error

Fixes #128
WHAT
A stray set of backticks were causing the document to render incorrectly.  For example, the table was part of a codeblock, rather than a proper table.
HOW
Viewing the HTML rendering should now be possible.

Thanks for the update, @edent!


it doesn't work either

Why you're closed the issue before i've confirmation it's working properly nor not yet https://github.com/FayasNoushad/Channel-Auto-Post-Bot/issues/1
It doesn't work and crashing at the beginning with new deploy
https://del.dog/ykihobypul.txt

That Is problem of your heroku account. Restart dyno and try.


How to access a viewModel instance?

In the following example, I create a ViewModel and connect it to an imported AppHome component.
import AppHome from './app.jsx';

export const ViewModel = DefineMap.extend({
  message: {
    type: 'string',
    value: 'Hello, Feathers!'
  },

  changeMessage () {
    this.message = 'Hello, Marshall!';
  }
});

const AppContainer = connect(ViewModel, AppHome);

Suppose I want to pass message in the example to a component several levels deep.  I'm passing the ViewModel constructor to the connect function, but how do I export the actual viewModel instance to make it available elsewhere?  This is needed to link up can-route to a viewModel:
var ViewModel = DefineMap.extend({
    petType: "string",
    storeId: "number"
});

var viewModel = new ViewModel({
    petType: "string",
    storeId: "number"
});

route.data = viewModel;

Is there a way to extract the viewModel once its component has been rendered to the DOM?

Being able to pass a viewModel instance to the connect function is probably the best solution to this, but we probably will have to fix enumerability of DefineMap instance props.
Extracting from the DOM would only be a somewhat less messy solution for the top level component.  For components that aren't calling ReactDOM.render themselves, it would be nothing but messy.

I think you just need to rethink what you are doing here.
You almost certainly don't want get the viewModel off the DOM, this is React, the DOM has been extracted away.
If you needed access to the viewModel from an  parent component you could use a ref to get the component and then access it at component.viewModel.
But for your use case, what you want to do is but the message, outside of the component viewmodel, in it's own state (or pass it through components all the way down).
import AppHome from './app.jsx';
import compute from 'can-compute';

export const message = compute('Hello, Feathers!');

export const ViewModel = DefineMap.extend({
 get message() {
    return message();
 },
 changeMessage () {
   message('Hello, Marshall!')
 }
});

const AppContainer = connect(ViewModel, AppHome);

...now you could export message from the AppContainer:
import { message } from '/components/AppContainer';

...or more likely you would have some model or something seperate that had message in it, that you would export and pass around.
RE: routing
As discussed on a call, the best way to connect a router is to use the router.data as a property on the viewmodel, or use derived values from the router.data as appropriate.
Let me know if you want to discuss more or if this issue can be closed.

Very nice.  Yeah, I figured out the routing demo after I posted this, which works wonderfully.  Between that and the examples you've posted, there's just enough flexibility to do pretty much anything.  👏🎉


Remove final from Channel, and make methods of channel interface to be virtual

Remove final from Channel, and make methods of channel interface to be virtual

Approval pending approved gRFC. Please consider adding a usage example in the interception documentation.

The benchmarks don't show any worthwhile changes -
name                                                                    old time/op             new time/op             delta
BM_InsecureChannelCreateDestroy/0               12.7µs ±10%             12.5µs ± 6%   ~             (p=1.000 n=3+3)
BM_InsecureChannelCreateDestroy/1               4.98µs ± 3%             4.90µs ± 1%   ~             (p=0.700 n=3+3)
BM_InsecureChannelCreateDestroy/8               4.96µs ± 3%             4.89µs ± 1%   ~             (p=1.000 n=3+3)
BM_InsecureChannelCreateDestroy/64              5.12µs ± 3%             5.35µs ±12%   ~             (p=1.000 n=3+3)
BM_InsecureChannelCreateDestroy/512             5.18µs ± 3%             5.12µs ± 2%   ~             (p=1.000 n=3+3)
BM_InsecureChannelCreateDestroy/0                   1.33µs ± 6%             1.29µs ± 1%   ~             (p=1.000 n=3+3)
BM_InsecureChannelCreateDestroy/1                   1.35µs ± 6%             1.32µs ± 1%   ~             (p=0.700 n=3+3)
BM_InsecureChannelCreateDestroy/8                   1.39µs ± 6%             1.35µs ± 1%   ~             (p=0.700 n=3+3)
BM_InsecureChannelCreateDestroy/64                  1.46µs ± 6%             1.42µs ± 2%   ~             (p=0.400 n=3+3)
BM_InsecureChannelCreateDestroy/512                 1.51µs ± 5%             1.47µs ± 1%   ~             (p=0.700 n=3+3)
name                                                                    old allocs/op           new allocs/op           delta
BM_InsecureChannelCreateDestroy/0                  0.00 ±NaN%              0.00 ±NaN%   ~     (all samples are equal)
BM_InsecureChannelCreateDestroy/1                  0.00 ±NaN%              0.00 ±NaN%   ~     (all samples are equal)
BM_InsecureChannelCreateDestroy/8                  0.00 ±NaN%              0.00 ±NaN%   ~     (all samples are equal)
BM_InsecureChannelCreateDestroy/64                 0.00 ±NaN%              0.00 ±NaN%   ~     (all samples are equal)
BM_InsecureChannelCreateDestroy/512                0.00 ±NaN%              0.00 ±NaN%   ~     (all samples are equal)
BM_InsecureChannelCreateDestroy/0                      0.00 ±NaN%              0.00 ±NaN%   ~     (all samples are equal)
BM_InsecureChannelCreateDestroy/1                      0.00 ±NaN%              0.00 ±NaN%   ~     (all samples are equal)
BM_InsecureChannelCreateDestroy/8                      0.00 ±NaN%              0.00 ±NaN%   ~     (all samples are equal)
BM_InsecureChannelCreateDestroy/64                     0.00 ±NaN%              0.00 ±NaN%   ~     (all samples are equal)
BM_InsecureChannelCreateDestroy/512                    0.00 ±NaN%              0.00 ±NaN%   ~     (all samples are equal)
name                                                                    old peak-mem(Bytes)/op  new peak-mem(Bytes)/op  delta
BM_InsecureChannelCreateDestroy/0                  0.00 ±NaN%              0.00 ±NaN%   ~     (all samples are equal)
BM_InsecureChannelCreateDestroy/1                  0.00 ±NaN%              0.00 ±NaN%   ~     (all samples are equal)
BM_InsecureChannelCreateDestroy/8                  0.00 ±NaN%              0.00 ±NaN%   ~     (all samples are equal)
BM_InsecureChannelCreateDestroy/64                 0.00 ±NaN%              0.00 ±NaN%   ~     (all samples are equal)
BM_InsecureChannelCreateDestroy/512                0.00 ±NaN%              0.00 ±NaN%   ~     (all samples are equal)
BM_InsecureChannelCreateDestroy/0                      0.00 ±NaN%              0.00 ±NaN%   ~     (all samples are equal)
BM_InsecureChannelCreateDestroy/1                      0.00 ±NaN%              0.00 ±NaN%   ~     (all samples are equal)
BM_InsecureChannelCreateDestroy/8                      0.00 ±NaN%              0.00 ±NaN%   ~     (all samples are equal)
BM_InsecureChannelCreateDestroy/64                     0.00 ±NaN%              0.00 ±NaN%   ~     (all samples are equal)
BM_InsecureChannelCreateDestroy/512                    0.00 ±NaN%              0.00 ±NaN%   ~     (all samples are equal)
The first run seems to be more noisy

No longer necessary


SSO CID/Password Lifetime (Old 21)

In gitlab by @A-Lawrence on Aug 31, 2015, 01:10
Allow CID/Password combination to last for 8 hours.
Link to issue #19 and issue #20

In gitlab by @A-Lawrence on Aug 31, 2015, 01:18
Removing milestone: RELEASE :: 1.0.7 (automated comment)
ALawrence66 - 2013-09-29T01:14:05.772771+00:00

In gitlab by @A-Lawrence on Aug 31, 2015, 01:18
Modified system to set the garbage collection period for native sessions.  See #488660 (21) and #488649 (25).  Holds #488649 (25).
ÔåÆ <>
ALawrence66 - 2013-07-30T20:56:11.656830+00:00

In gitlab by @A-Lawrence on Aug 31, 2015, 01:18
Resolved issue #488658 (18) issue #19 issue #488657 (20) issue #21 issue #488656 (22) issue #23
ÔåÆ <<cset 9e27bee878b9>>
ALawrence66 - 2013-07-27T17:32:10.916168+00:00

In gitlab by @A-Lawrence on Aug 31, 2015, 01:18
Increased overall session time and resolved issue 21
ÔåÆ <<cset 66c60fd1ad18>>
ALawrence66 - 2013-07-27T17:32:10.738441+00:00


Comprehensive Guide to Peach Bitcoin

Discover the method of stacking stats without the need for KYC verification with Peach Bitcoin. Moreover, explore all the features that Peach provides and receive answers to any inquiries you may have.

Introduction

KYC Dangers
How Peach Works
Create your account

Buy and Sell Bitcoin
Extra features

Account backup
Seed backup
Restore account with backup

Learn about Peach

Peach Regulation
Peach Score
Peach Team

Conclusion
FAQ Section
Useful Links

You're pumping these out nearly as fast as I can review and announce them. Super thankful for your contributions man and this is incredibly thorough and professional as always. Some tiny nits for discussion:
What is the alternative

Link to Robosats guide

What is Peach

Maybe in the first paragraph where you refer to 'other platforms', be clear that you mean Coinbase et al, and not HodlHodl/Robosats et al.

How Peach works

#2 - Can you make it clearer who holds each key?
#4 - Can you elaborate just a touch on 'verification'? I presume you mean, 'Proof of payment'

Buying Bitcoin

Numbering is off

Wallet backup

Remove as mentioned

Peach regulations

Mention that because the app is closed source, we must trust them on how the info is stored/shared

Peach score

Typo proflile
Make the badge types bold

FAQ

In the cash section, embed the raw link into the text like this
Mention that signing a message still does not link your personal ID to the trade

Useful Links

Add link to Peach pod with Foundation

Thanks for the feedback, QnA. Those are really good points to make more straightforward in the next commit.
The article is detailed. I'd like to know if I write too much and should trim and simplify to avoid confusion. What do you think? Food for thought.

I think your style, tone and detail is bang on.
I like to keep my guides factual and to the point, containing 'just enough' info to get the user to take action.
I'll give your changes a final review tomorrow and merge. Will wait till next week to announce.


Test_ErrorComputation

Compute error in the tests

I created this issue to update the tests. It was implemented a class to compute the error (norm L2) in model.py. This new application has already been applied in test_elastic.py and test_Elastic2D_4variables.py. You can check these tests to see how should be implemented. I think test_Elastic2D_4variables.py is more similar to your test because is a FEM results are used to compute the error.
If you have any problem with the implementation or any improvement, let me know.

I've updated the _test_thermo to the new Error computation method and deleted the .dat file which is not used anymore. So far it is working, but i have two things to point out checking the code:

Using the "fixed_var" input in "PGDErrorComputation" does not work for me. In line 1369 of model.py PGDrome tries to compute a vector of an array which does not work.
@aradermacher please confirm if this is true or a false thought:
In line 1397 of model.py is the evaluation of the PGD_model. Later on, if "fixed_var" is not set, the error is computed over the whole fixed_dim domain. This may become a problem, since the PGD_solution does not take non-homogeneous boundary conditions in the fixed_dim into account, which has to be set manually after the evaluation. Thus this manual set up phase of the non-homo BC needs to be added after the evaluation.

Hi,
I also updated the test_solver_problem.py with the new error computation feature.
regarding Dominics comments:

Aratz can you check that. In my vase it also didn't worked. I have a 2D mesh and the fixed_var is a 2D point (x,y) and I get an error in line 1366. See my test file line 471ff (comment part)
In my opinion non-homogeneous boundary condition should be saved in the pgd model class and then automatically be added in the evaluation function. In that way it should work with the Errorcompoutaion class.

additional remarks from my side:

the fixed_dim variable is a scalar not an array! Otherwise the evaluation function of the pgd model class is not working.
please add a little bit more about the required structure of the FOM_model -> call function has to give a fenics funtion or ndarray for the required space ...
in test_elastic the last error computation is not right --> error_uPGD is not used and also fun_FOM2!! If I change this than it will not work!!

Dominic's remarks:

The problem in your test was that it wasn't defined the solution with the fixed parameter in "Reference_solution". I have modified your test and now I am running to check if it works well. Running in debugging goes really slow and I couldn't check it yet. If we copy from "test_elastic2D_4varibles" lines 344-350, 415-434 or from "test_colver_problem" lines 475-480, 398-406, it should we working. I am gonna leave running, we will see if it works tomorrow morning.

Annika's remarks:

Checked and solved the error (Commented part)
fixed_dim is scalar.
The implemented code can work with ndarray and fenics function. I have added a comment in FOM_solution to clarify the type of the variable.
test_elastic: Corrected

Even though the test is running i have a feeling that something isn't right.
In generel taking more then 1 specific point doesn't change the error very much.
In test_elastic the error at each point is basically the same (this might be true).
In test_thermo taking the whole x-space via
tmp=[]
for coord in meshes[0].coordinates()[:]: tmp.append(coord[0])
x_test = tmp  # x (fixed variable)
gives something different then not specifing any x (default is error over the whole x-space).
Additionally in test_thermo the Max. error is always the same as the Mean error, which feels wrong.

I agree with Dominic, that it is somehow weird that in test_elastic all errors are the same. I also didn't agree with the error_uPGD in line 235: In my opinion the data_test should only include amplitude & elastic modulus  and fixed_var should be 0.5 and the FOM_model=fun_FOM2!

The max and mean error are the same when you compute the error in one point, because the error is just computed in one point. If you add more points or cases,  the max. and mean error will be different.
The test_elastic is linear problem (linear elastic and 1D), so the error must be almost the same if you consider the whole domain or one point. However, if you plot the error distribution in the whole domain in the other elastic tests, which are in 2D and plane strain conditions, you will see that there are greater differences in the values of the error between the points.

I will check how it is defined the data_test

The max and mean error are the same when you compute the error in one point, because the error is just computed in one point. If you add more points or cases, the max. and mean error will be different. The test_elastic is linear problem (linear elastic and 1D), so the error must be almost the same if you consider the whole domain or one point. However, if you plot the error distribution in the whole domain in the other elastic tests, which are in 2D and plane strain conditions, you will see that there are greater differences in the values of the error between the points.

If i add more points in test_thermo, e.g. x_test = [0.01,0.05,0.09], the max and mean errors are the same. This is also true if i take the whole x-space as descripted above.

I have updated test_elastic. I forgot uploading the new version.
I will check it Dominic.

Thanks
I would suggest to delete the second error computation in test_elastic. I would say the first and the last one shows all possible options already.
The error limit <1e-3 is much to large here. I suggest to use something near the computed values (e.g. 1e-5 for the first one and 1e-7 for the last one ), so that if we change something, we really saw that by failing tests!!

Dominic, it computes one error because it is comparing the results in every point you indicated ([0.01, 0.05, 0.09]) instead of the whole domain (every nodes). But as it is only defined one case (data_test), it is only computed one error. If you introduce more cases (data_test = [[1., 0.8], [5., 0.85]]), you will get the error for each case and there will be differences between the mean and max. Would you like to have the option to know the error in each geometrical point?

Removed 2nd error computation and updated the error limits.


Fixed zip-code validation rule

Related issues
https://github.com/DivanteLtd/vue-storefront/issues/2349
Short description and why it's useful
Fixed validation fule for zip-code form field

Thanks!


Update README.md

Corrected some grammatical mistakes.

We are not accepting minor changes as of now @OjasMittal .


Fix https://github.com/lichess-org/lila/issues/15592

Everywhere else just calls it "Englund Gambit" (for example https://en.wikipedia.org/wiki/Englund_Gambit). A different name just creates compatibility problems.

Thanks! Good change, even if puzzles would now be able to handle this.


removed publishers for job

This PR removes:
publisher for job devtools-test-end-to-end-openshift.io-planner-api-test job

Can one of the admins verify this patch?


No termcap entry for terminal session

Environment
Windows build number: Microsoft Windows [Version 10.0.18362.418]
Windows Terminal version (if applicable): Windows Terminal (Preview) Version: 0.5.2762.0

Any other software?

Steps to reproduce

Connect SSH session to application server. use '-l' switch
Type in password, accept EULA, and accept session SSH host Key.
Enter in 'CRS' at terminal to load custom application.
(On a Putty Terminal Emulator, the custom application would load without issue)

Expected behavior
Customer Application should load, presenting user with splash screen. From here, user can navigate Linux based application.
Actual behavior
<--
-bash-4.2$ crs
Can't find termcap entry for this terminal
Can't Run crs
--!>

Can you describe the remote host? What version is it, and what distribution?
Can you share the output of echo $TERM?
Terminal reports itself as xterm-256color, which is standard and should be present on all modern machines.
If the xterm-256color terminfo isn't available, can you try after setting TERM=xterm?


Change default Offer image in Dev mode and fix minor bugs. Add offers.service.spec file.

Description:
Changes defualt image of an Offer for a random placeholder image. Makes homepage more readable for now. Adds spec file for offers service. Fixes container on offers list. Trims slug-based links to offer.
New imports / dependencies:
None
Unit Tests:
*frontend/src/app/homepage-offer/offers.service.spec.ts
What tests do I need to run to validate this change:
For now not much, but we need to fill the test files with meaningful tests.

It looked like this:

Now it looks like this:

Codecov Report

Merging #830 into master will increase coverage by <.01%.
The diff coverage is 30%.

@@            Coverage Diff             @@
##           master     #830      +/-   ##
==========================================
+ Coverage   91.88%   91.89%   +<.01%
==========================================
  Files         102      102
  Lines        2945     2947       +2
  Branches        6        7       +1
==========================================
+ Hits         2706     2708       +2
  Misses        238      238
  Partials        1        1

Impacted Files
Coverage Δ

frontend/src/app/homepage-offer/offers.service.ts
46.15% <30%> (+4.48%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 3a4c65a...a23f5a1. Read the comment docs.


Add Submariner CRDs

Add CRDs for Submariner
https://github.com/submariner-io/submariner
CRDs for Submariner can be found at the following GitHub repository
https://github.com/submariner-io/submariner-charts

@ronaldm-hollywoodbets can you please also add a reference link to the github repo that contains the CRD itself?

@ronaldm-hollywoodbets can you please also add a reference link to the github repo that contains the CRD itself?

Hi @eyarz, I've updated the description with the link to the Submariner CRDs


Metrics monitoring

Is it possible to add Tensorboard to allow for monitoring
This is what I've done in "train_rpn.py" but i only seem to see Graph
model_rpn.compile(optimizer=optimizer, loss=[losses.rpn_loss_cls(num_anchors), losses.rpn_loss_regr(num_anchors)],metrics=['accuracy'])
...
Tensorboard = TensorBoard(log_dir='logs/{}'.format(time())) callback=[Callbacks, Tensorboard] history = model_rpn.fit_generator(data_gen_train,epochs=options.num_epochs, validation_data=data_gen_val,steps_per_epoch=1000,callbacks=callback, validation_steps=10)
I can see rpn loss history is saved, but how can we graph it
import numpy numpy_loss_history = numpy.array(loss_history) numpy.savetxt(options.network+"_rpn_loss_history.txt", numpy_loss_history, delimiter=",")

ok, let me go through this.

Hi @kentaroy47, thank you for making available this project.
This ongoing on metrics monitoring means the mAP estimation would be included in the tensorboard? Is there a present way to measure mAP? Is there a present way to measure loss with a validation dataset?


How I can get index of element with errors in array

Hello!
In your example of validation elements in array we can't get index of element in array where is error.
How I can get index?
class Schema < Dry::Validation::Schema
  key(:phone_numbers) do |phone_numbers|
    phone_numbers.array? do
      phone_numbers.each(&:str?)
    end
  end
end

schema = Schema.new
errors = schema.call(phone_numbers: ['123456789', 123456789]).messages
puts errors.inspect
# {
#   :phone_numbers => [
#     {
#       :phone_numbers => [
#         ["phone_numbers must be a string", 123456789]  << Error in element with index 1
#       ]
#     }
#   ]
# }

There's a planned feature to support ease access to this information (I know it's useful!), so I'm gonna mark this as a feature request.

Oh I should probably mention that for the time being you can already access entire value for the each rule via result = schema.call(input); result.failures. From there you can find the failure for a given rule and look at its input which includes all phone numbers and just do input.index(number_that_failed). Hope this helps for now :)

Thank you

@badenkov there was an issue with error messages hash structure, I just fixed it in master so you now have all info inside that hash, ie:
{:phone_numbers=>[[{:phone_numbers=>[["phone_numbers must be a string"], 123456789]}], ["123456789", 123456789]]}

So, as you can see, you have access to messages for a specific value and the whole collection from which that value comes from.


Title:hotfix:add eslint-typescript config for no-unused-var issue on ts

added same fix https://github.com/scaffold-eth/se-2/pull/13 from master branch

@carletex  on this branch after merging master getting husky errors.
as i can see lot of rules are failing from master due to "any" type used in many areas.
we need to fix this type errors  on the master  after merging this branch


Force TCP v4 for socket to ScrollView server. Fixes #3000

Fixes #3000.
Without any hints, we can end up with a UDP socket which won't work with the TCP socket that the Java ScrollView display server is listening on. Use hints for TCP v4 so that we get the right kind of socket returned.
Also, delete some obsolete comments nearby.

Thank you!

@stweil Thanks for the quick review and merge!


Disable middlebox compatibility mode for QUIC

Parent:
https://github.com/awslabs/s2n/issues/2277
Problem:
In order to stay compatible with older, poorly implemented middleboxes, TLS1.3 includes a “compatibility mode” that makes TLS1.3 handshake traffic more closely resemble TLS1.2 handshake traffic by setting a field in the ClientHello and sending otherwise useless TLS1.2 ChangeCipherSpec messages at specific points in the handshake. QUIC does not need “compatibility mode”, and will end the connection if a ChangeCipherSpec message is received.
S2N currently always operates in “compatibility mode” and provides no mechanism to disable it.
Solution:
When to disable
No customer has asked to disable “compatibility mode” outside of QUIC, so there is no reason to create a separate public API yet. Instead, we can simply disable “compatibility mode” when QUIC is enabled. If we add a public configuration option in the future, we can swap out the “quic_enabled” check for a more specific “no_compat_mode” check.
When “compatibility mode” is disabled, S2N must not set the ClientHello field or send any ChangeCipherSpec messages.
Handshake updates
S2N will require updates to its handshake state machine logic to stop sending ChangeCipherSpec messages. The standard way to modify the S2N state machine is to add a new handshake_type flag and append new handshakes to the handshake array, explicitly enumerating all possible handshake variations. Following that convention, we would need to create a new NO_COMPAT_MODE handshake_type flag and create a new NO_COMPAT_MODE version of each of the 6 current handshakes with the ChangeCipherSpec messages removed.
There is also special logic to allow TLS1.3 to receive the ChangeCipherSpec message at any time during the handshake. That will need to be disabled when using QUIC.

Does this change what S2N sends over the wire? Yes, but only when using QUIC.
Does this change any public APIs? No
Which versions of TLS will this impact? TLS1.3

Requirements / Acceptance Criteria:
S2N must successfully perform a handshake without ChangeCipherSpec messages.

Will the Usage Guide or other documentation need to be updated? No.
Testing: Unit tests and a self-talk test

Will this change trigger SAW changes? Yes. The cryptol implementation of the S2N handshake will need to be updated. However, this should only affect TLS1.3, which we have currently disabled the SAW proof for.
Should this change be fuzz tested? No.

Out of scope:
This solution will not add a public API to toggle compatibility mode.

Instead of NO_COMPAT_MODE, could the flag be named COMPAT_MODE? I think it's much clearer for bools and flags to be affirmative.

Fair. I'll use COMPAT_MODE.


Add EXISTS subquery support to Ballista

Is your feature request related to a problem or challenge? Please describe what you are trying to do.
I want to support EXISTS subquery expression in Ballista but we need to refactor the ballista and datafusion proto files to allow LogicalExprNode to reference a LogicalPlanNode.
Describe the solution you'd like
As described above.
Describe alternatives you've considered
None
Additional context
None

This is not needed now that we rewrite most subqueries as joins. We do not support other types of subquery.


Add all available configs on the admin side

There are some variables on the backend .env like LLM_TEMPERATURE, TOP_K, VECTOR_STORE_PROVIDER, that I feel is not a bad idea to add on the admin setting so the user is able to control them.
Also, some configs like vector provider which can be selected through create-llama script but not here are a plus to be added.

Currently, I don't want to complicate the UI. That's the reason that they are not added yet. We might consider though to add TOP_K


Update tutorial.md

I've included a third setup option, which is to navigate to https://codeamigo.dev/lessons/start/54 and complete the tutorial there, which is setup to be an interactive version of the docs.

Going to move this to free courses instead

https://github.com/reactjs/reactjs.org/pull/3780