Add man page to crystal

I know nothing about man pages, so if somebody else can approve this, go ahead :-)
I guess if we accept this we should also add this somewhere in the installation process so that it's available, right?

Just run man ./crystal.1 to see how it renders.

Good job overall. Some more comments, about the design:

The indentation is large in a terminal (it quickly goes up to 30 chars). It would be nice to be closer to 8, to match the Linux man pages.
Maybe differentiate commands from options: first having a flat list of all commands (without options), then each command and their options? I'm not sure, thought, and open to suggestions :-)

Very cool!
Is the intent for the man page to cover all crystal CLI commands? If so, then the addition of play and others might be needed.

Superseded by #2989, recommend closing this one.

Closing in favour of #2989 - thanks @miketheman for kickstarting 👍


Add function to permute tree with specific ordering

#28

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

10 of 26 (38.46%)  changed or added relevant lines in 3 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-3.1%) to 94.274%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

phylokit/transform.py
7
23
30.43%

Totals

Change from base Build<PHONE_NUMBER>:
-3.1%

Covered Lines:
461

Relevant Lines:
489

💛  - Coveralls


Stop using Package ES pools

Package ES agent pools are being disabled, so we need to move all of our Pipeline jobs onto other agents.

/azp run


Restrict the PROVENANCE role and smart contracts.

Description
closes: #1381
This PR adds validation to the parties in scopes and sessions:

Any party with a role of PROVENANCE MUST be a smart contract.
If a smart contract address is present in the parties, it MUST either have a role of PROVENANCE, or there must be another party entry with that address and role of PROVENANCE.

An account is assumed to be a smart contract if it a) exists, b) does not have a public key, and c) has a sequence of 0 (zero).
This is a draft PR while we make sure this meets use cases and needs.

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

[ ] Targeted PR against correct branch (see CONTRIBUTING.md)
[ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
[ ] Wrote unit and integration tests
[ ] Updated relevant documentation (docs/) or specification (x/<module>/spec/)
[ ] Added relevant godoc comments.
[ ] Added a relevant changelog entry to the Unreleased section in CHANGELOG.md
[ ] Re-reviewed Files changed in the Github PR explorer
[ ] Review Codecov Report in the comment section below once CI passes

Closing this PR since it's been wrapped into #1453.


Adding issue template

Hello, this PR is introducing a new issue template for ROCm public repositories to make it easier for users to submit the details for issues and bugs. Problems pertaining to documentation or non-bug related, users have the ability to open a blank issue template to submit their report.
Thank you,
Community Support Team (ML SW SDK)

added ROCm v6, MI300, and set a default component in the template


Question: When should the PlaybackTrackChanged event fire?

I have a TrackPlayer.addEventListener() triggering for the Event.PlaybackTrackChanged event. But I am confused as to when this event is supposed to fire.
The documentation says:

Fired when a track is changed.

What does this mean "track is changed"?
My expectation (and hope) is that this event only fires when the player changes from track 1 to track 2 during normal playback or via direct controls (such as skipToNext())
But what I am finding is that the PlaybackTrackChanged event is firing when I add stories to the queue using TrackPlayer.add(tracks). And because I am using this event to detect which track is playing and display the title and artwork on the UI, it means when I add 5 stories to the queue, 5 of these events are fired, resulting in my UI flashing 5 different stories.
Should this event be firing during .add(tracks)?? Or is this a bug?

To replicate...
TrackPlayer.addEventListener(Event.PlaybackTrackChanged, console.log);

await TrackPlayer.reset();
await TrackPlayer.add(tracks); // assuming tracks is an array of 5 valid Track objects

Output
 LOG  {"nextTrack": 0, "position": 0, "track": 0}
 LOG  {"position": 0, "track": 0}
 LOG  {"nextTrack": 0, "position": 0}

3x PlaybackTrackChanged events are fired by simply adding 5 stories to the queue. I realise that not only does this not match the number of stories I added (5), but also it's confusing because technically no tracks have "changed" I only added them to the queue. I haven't even started playing yet.
Thoughts?

@bradleyflood the log you sent mostly makes sense to me assuming there was a track in the queue initially.
// a track was added to the queue (looks like the repeat mode is queue or track)
LOG  #1 - {"nextTrack": 0, "position": 0, "track": 0}
// reset was called, removing the original track so the track has changed
LOG  #2 -  {"position": 0, "track": 0}
// you added some number of tracks to the queue again, so the track has changed
LOG #3 -  {"nextTrack": 0, "position": 0}

Some problems that I see with it are:

LOG #2 it doesn't entirely make sense to have this payload since there are no tracks, and thus there is no track at position 0.
LOG #3 I'm not sure why this event doesn't contain a track property, that looks like a bug.

All in all, we realize that there are problems with this particular event, which is why there's a feature on the v4 roadmap to do some deeper thinking about it https://github.com/doublesymmetry/react-native-track-player/issues/1293. With that said, changing things too much at this point is tricky as it can easily introduce breaking changes for folks (thus the v4 schedule). If you find something where the behavior between the platforms is different, or if its clearly a bug that can be addressed without a breaking change we can try to address it in v3.

I'll close this question for now, if there's something specific you want to address based on my feedback let me know.

Thanks @jspizziri


Minimization mangled my code

Bug report

What is the current behavior?
My function with minimization disabled looks like:
const getClassAndVisits = (siteId, classId, lastModifiedDate) => axios_mbAgentRe.get(siteId, 'class/classvisits', {
    params: {
        classId,
        LastModifiedDate: lastModifiedDate?.format(MB_DATE_FORMAT),
    },
})
    .then(({ data }) => data.Class);

terser apparently realized that my code never uses the third argument, and so minimized the code to replace the third arg with void 0.  However, it did so in a way that produces invalid javascript:
(e,t,r)=>x(e,"class/classvisits",{params:{classId:t,LastModifiedDate:(void 0)(je)}

If the current behavior is a bug, please provide the steps to reproduce.
I'm not sure what flags terser is being invoked with, but I suspect this could be replaced in terser...  Still, this broke my deploys in webpack so I'm filing here first.

What is the expected behavior?
The correct minimization should have LastModifiedDate:(void 0)?.format(je) or just simply LastModifiedDate:void 0.

Other relevant information:
webpack version:  5.47.1
terser-webpack-plugin: 5.1.4
Node.js version: v16.5.0

Please report that to terser.

Where can I find the options webpack invokes terser with
On Fri, Jul 30, 2021 at 2:16 PM Tobias Koppers @.***>
wrote:

Please report that to terser.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/webpack/webpack/issues/13895#issuecomment-890069405,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAH26LTWY34OMLXAAIJTM2TT2LT6DANCNFSM5BIU75BA
.

--
Isaac

Answered


Updated docker-gen version to 0.3.8

Update with the new version of docker-gen for additional features in templating.
Thanks for these awesome projects!

Thanks!

@jwilder I hate to bring it up now, but queryEscape and Swarm node metadata haven't been included in a docker-gen release yet :wink: :bow:
cf. https://github.com/jwilder/docker-gen/compare/0.3.8...master

@md5 Oh right.  I updated docker-gen/nginx-proxy to 0.3.9.


Check duplicate plugins in webhooks

Is there an existing issue for this?

[X] I have searched the existing issues

Problem Statement
Came from FTI-4640.
When multiple plugins with the same type attached to the same Kong entity(service/route/consumer...), we should reject them in admission webhooks.
Proposed Solution

Add checks in admission webhooks for resources that can have plugins attached (includeing Ingress,Service,KongConsumer,HTTPRoute and others)
Generate translation errors and reject them when duplicate plugins attached to the same entity

Additional information
No response
Acceptance Criteria

[ ] Resources with multiple plugins of the same type are rejected on webhook
[ ] Translation error event is attached when the resource is translated to a Kong entity attached to duplicated plugins

It overlaps with

https://github.com/Kong/kubernetes-ingress-controller/issues/5602

Logs & events are generated as expected see https://github.com/Kong/kubernetes-ingress-controller/issues/5602#issuecomment-2095448875
PR https://github.com/Kong/kubernetes-ingress-controller/pull/5972 introduced validation for

KongConsumer
Ingress
Service

validation is not yet implemented for

HttpRoute
ConsumerGroup


Consider making AmqpEnvelope generic

I noticed that the AmqpMessage class is generic, but the AmqpEnvelope class isn't. Is there a specific reason for that? Because it seems to me that making AmqpEnvelope generic would be quite useful, one often needs to pass around the payload together with the metadata (e. g. to Ack or Nack a message later).

If you're interested in this change, I can submit a pull request

Go ahead please! The payload was initially defined as a String for convenience and never changed.

OK, I can't really say when I'll get around to this though

No worries, if I can take it before hand I'll let you know here, I might have some time to kill this weekend while on a plane :)


regclient: 0.6.1 -> 0.7.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/regclient/regclient/releases.
meta.description for regclient is: Docker and OCI Registry Client in Go and tooling using those libraries
meta.homepage for regclient is: https://github.com/regclient/regclient
Updates performed

Golang update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.7.0 in filename of file in /nix/store/1bic4fk31x4g56bj8y1pbrdcxp1rjy6b-regclient-0.7.0

Rebuild report (if merged into master) (click to expand)

5 total rebuild path(s)

5 package rebuild(s)

First fifty rebuilds by attrpath

regbot
regclient
regctl
regsync

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/1bic4fk31x4g56bj8y1pbrdcxp1rjy6b-regclient-0.7.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A regclient https://github.com/r-ryantm/nixpkgs/archive/5daa6f210287cbd829593afab0e31486f20ed60b.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/5daa6f210287cbd829593afab0e31486f20ed60b#regclient

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/1bic4fk31x4g56bj8y1pbrdcxp1rjy6b-regclient-0.7.0
ls -la /nix/store/1bic4fk31x4g56bj8y1pbrdcxp1rjy6b-regclient-0.7.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

4 packages built:

regbot (regbot.regbot ,regbot.regctl ,regbot.regsync ,regclient.regbot)
regclient
regctl (regclient.regctl ,regctl.regbot ,regctl.regctl ,regctl.regsync)
regsync (regclient.regsync ,regsync.regbot ,regsync.regctl ,regsync.regsync)

Maintainer pings
cc @maxbrunet for testing.

Result of nixpkgs-review pr 326725 run on x86_64-linux 1

4 packages built:

regbot (regbot.regbot ,regbot.regctl ,regbot.regsync ,regclient.regbot)
regclient
regctl (regclient.regctl ,regctl.regbot ,regctl.regctl ,regctl.regsync)
regsync (regclient.regsync ,regsync.regbot ,regsync.regctl ,regsync.regsync)


[DEPRECATION] This gem (trollop)has been renamed to optimist and will no longer be supported. Please switch to optimist as soon as possible.

Hi
Looks like references to  trollop need to be replaced with optimist gem.
This warning message is from Gapri-4 to Gapri-5 upgrade (R1), See R2 also.
Warning message displayed every time when running /usr/local/bin/appliance_console command.
R1: MIQ VMWare Appliance Upgrade
R2: https://github.com/voxpupuli/hiera-eyaml/issues/267

@et3044383, Thanks for the fix.


Add admin and ability to update the marketplace address

Fixes #252
This makes use of admin controller to set and clear an admin. This admin can update the marketplace contract address.

Out of curiosity, why are the typescript files not properly "linted" with spaces?

Out of curiosity, why are the typescript files not properly "linted" with spaces?

It's using a tool that auto-generates them. Good point, should update the tool to also lint.

is marketplace addr optional to make contract instantiation order easier?

Yeah, i.e: It's possible to not know the marketplace contract address before instantiating this one.


Synthesis failed for nodejs-datacatalog

Hello! Autosynth couldn't regenerate nodejs-datacatalog. :broken_heart:
Here's the output from running synth.py:
b'ecloned repo /home/kbuilder/.cache/synthtool/googleapis\nDEBUG:synthtool:Using precloned repo /home/kbuilder/.cache/synthtool/googleapis\n2020-06-05 04:24:52,571 synthtool [DEBUG] > Pulling Docker image: gapic-generator-typescript:latest\nDEBUG:synthtool:Pulling Docker image: gapic-generator-typescript:latest\nlatest: Pulling from gapic-images/gapic-generator-typescript\nDigest: sha256:c9bc12024eddcfb94501627ff5b3ea302370995e9a2c9cde6b3317375d7e7b66\nStatus: Image is up to date for gcr.io/gapic-images/gapic-generator-typescript:latest\n2020-06-05 04:24:53,476 synthtool [DEBUG] > Generating code for: google/cloud/datacatalog/v1.\nDEBUG:synthtool:Generating code for: google/cloud/datacatalog/v1.\n2020-06-05 04:24:54,306 synthtool [DEBUG] > Wrote metadata to synth.metadata.\nDEBUG:synthtool:Wrote metadata to synth.metadata.\nTraceback (most recent call last):\n  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 193, in _run_module_as_main\n    "__main__", mod_spec)\n  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 85, in _run_code\n    exec(code, run_globals)\n  File "/tmpfs/src/github/synthtool/synthtool/__main__.py", line 102, in <module>\n    main()\n  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 829, in __call__\n    return self.main(*args, **kwargs)\n  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 782, in main\n    rv = self.invoke(ctx)\n  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 1066, in invoke\n    return ctx.invoke(self.callback, **ctx.params)\n  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 610, in invoke\n    return callback(*args, **kwargs)\n  File "/tmpfs/src/github/synthtool/synthtool/__main__.py", line 94, in main\n    spec.loader.exec_module(synth_module)  # type: ignore\n  File "<frozen importlib._bootstrap_external>", line 678, in exec_module\n  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed\n  File "/home/kbuilder/.cache/synthtool/nodejs-datacatalog/synth.py", line 41, in <module>\n    extra_proto_files=[\'google/cloud/common_resources.proto\'],\n  File "/tmpfs/src/github/synthtool/synthtool/gcp/gapic_microgenerator.py", line 66, in typescript_library\n    return self._generate_code(service, version, "typescript", **kwargs)\n  File "/tmpfs/src/github/synthtool/synthtool/gcp/gapic_microgenerator.py", line 195, in _generate_code\n    f"Code generation seemed to succeed, but {output_dir} is empty."\nRuntimeError: Code generation seemed to succeed, but /tmpfs/tmp/tmpz8brihxq is empty.\n2020-06-05 04:24:54,346 autosynth [ERROR] > Synthesis failed\n2020-06-05 04:24:54,346 autosynth [DEBUG] > Running: git reset --hard HEAD\nHEAD is now at 2bfb1cd build: update protos.js (#168)\n2020-06-05 04:24:54,351 autosynth [DEBUG] > Running: git checkout autosynth-self\nSwitched to branch \'autosynth-self\'\n2020-06-05 04:24:54,356 autosynth [ERROR] > Command \'[\'/tmpfs/src/github/synthtool/env/bin/python3\', \'-m\', \'synthtool\', \'--metadata\', \'synth.metadata\', \'synth.py\', \'--\']\' returned non-zero exit status 1.\n2020-06-05 04:24:54,492 autosynth [DEBUG] > Running: git checkout 2bfb1cd8a14d0226c8ebda282e9ded6516595490\nNote: checking out \'2bfb1cd8a14d0226c8ebda282e9ded6516595490\'.\n\nYou are in \'detached HEAD\' state. You can look around, make experimental\nchanges and commit them, and you can discard any commits you make in this\nstate without impacting any branches by performing another checkout.\n\nIf you want to create a new branch to retain commits you create, you may\ndo so (now or later) by using -b with the checkout command again. Example:\n\n  git checkout -b <new-branch-name>\n\nHEAD is now at 2bfb1cd build: update protos.js (#168)\n2020-06-05 04:24:54,497 autosynth [DEBUG] > Running: git checkout d53a5b45c46920932dbe7d0a95e10d8b58933dae\nPrevious HEAD position was 470789c chore(java): move version update end tag below client dependency (#579)\nHEAD is now at d53a5b4 docs: improve README (#600)\n2020-06-05 04:24:54,508 autosynth [DEBUG] > Running: git checkout cd804bab06e46dd1a4f16c32155fd3cddb931b52\nPrevious HEAD position was c4e37010 bazel: update protobuf, rules_go, gazelle, and gapic-generator-go versions - protobuf v3.12.1 - rules_go v0.23.0 - gazelle v0.21.0 - gapic-generator-go v0.14.1\nHEAD is now at cd804bab docs: cleaned docs for the Agents service and resource.\n2020-06-05 04:24:54,560 autosynth [DEBUG] > Running: git branch -f autosynth-48\n2020-06-05 04:24:54,564 autosynth [DEBUG] > Running: git checkout autosynth-48\nSwitched to branch \'autosynth-48\'\n2020-06-05 04:24:54,569 autosynth [INFO] > Running synthtool\n2020-06-05 04:24:54,569 autosynth [INFO] > [\'/tmpfs/src/github/synthtool/env/bin/python3\', \'-m\', \'synthtool\', \'--metadata\', \'synth.metadata\', \'synth.py\', \'--\']\n2020-06-05 04:24:54,571 autosynth [DEBUG] > Running: /tmpfs/src/github/synthtool/env/bin/python3 -m synthtool --metadata synth.metadata synth.py --\n2020-06-05 04:24:54,772 synthtool [DEBUG] > Executing /home/kbuilder/.cache/synthtool/nodejs-datacatalog/synth.py.\nOn branch autosynth-48\nnothing to commit, working tree clean\n2020-06-05 04:24:54,901 synthtool [DEBUG] > Ensuring dependencies.\nDEBUG:synthtool:Ensuring dependencies.\n2020-06-05 04:24:54,907 synthtool [DEBUG] > Cloning googleapis.\nDEBUG:synthtool:Cloning googleapis.\n2020-06-05 04:24:54,908 synthtool [DEBUG] > Using precloned repo /home/kbuilder/.cache/synthtool/googleapis\nDEBUG:synthtool:Using precloned repo /home/kbuilder/.cache/synthtool/googleapis\n2020-06-05 04:24:54,911 synthtool [DEBUG] > Pulling Docker image: gapic-generator-typescript:latest\nDEBUG:synthtool:Pulling Docker image: gapic-generator-typescript:latest\nlatest: Pulling from gapic-images/gapic-generator-typescript\nDigest: sha256:c9bc12024eddcfb94501627ff5b3ea302370995e9a2c9cde6b3317375d7e7b66\nStatus: Image is up to date for gcr.io/gapic-images/gapic-generator-typescript:latest\n2020-06-05 04:24:55,784 synthtool [DEBUG] > Generating code for: google/cloud/datacatalog/v1.\nDEBUG:synthtool:Generating code for: google/cloud/datacatalog/v1.\n2020-06-05 04:24:56,655 synthtool [DEBUG] > Wrote metadata to synth.metadata.\nDEBUG:synthtool:Wrote metadata to synth.metadata.\nTraceback (most recent call last):\n  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 193, in _run_module_as_main\n    "__main__", mod_spec)\n  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 85, in _run_code\n    exec(code, run_globals)\n  File "/tmpfs/src/github/synthtool/synthtool/__main__.py", line 102, in <module>\n    main()\n  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 829, in __call__\n    return self.main(*args, **kwargs)\n  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 782, in main\n    rv = self.invoke(ctx)\n  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 1066, in invoke\n    return ctx.invoke(self.callback, **ctx.params)\n  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 610, in invoke\n    return callback(*args, **kwargs)\n  File "/tmpfs/src/github/synthtool/synthtool/__main__.py", line 94, in main\n    spec.loader.exec_module(synth_module)  # type: ignore\n  File "<frozen importlib._bootstrap_external>", line 678, in exec_module\n  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed\n  File "/home/kbuilder/.cache/synthtool/nodejs-datacatalog/synth.py", line 41, in <module>\n    extra_proto_files=[\'google/cloud/common_resources.proto\'],\n  File "/tmpfs/src/github/synthtool/synthtool/gcp/gapic_microgenerator.py", line 66, in typescript_library\n    return self._generate_code(service, version, "typescript", **kwargs)\n  File "/tmpfs/src/github/synthtool/synthtool/gcp/gapic_microgenerator.py", line 195, in _generate_code\n    f"Code generation seemed to succeed, but {output_dir} is empty."\nRuntimeError: Code generation seemed to succeed, but /tmpfs/tmp/tmpd2mgx2f8 is empty.\n2020-06-05 04:24:56,694 autosynth [ERROR] > Synthesis failed\n2020-06-05 04:24:56,694 autosynth [DEBUG] > Running: git reset --hard HEAD\nHEAD is now at 2bfb1cd build: update protos.js (#168)\n2020-06-05 04:24:56,699 autosynth [DEBUG] > Running: git checkout autosynth\nSwitched to branch \'autosynth\'\n2020-06-05 04:24:56,704 autosynth [DEBUG] > Running: git clean -fdx\nRemoving __pycache__/\nTraceback (most recent call last):\n  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 193, in _run_module_as_main\n    "__main__", mod_spec)\n  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 85, in _run_code\n    exec(code, run_globals)\n  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 615, in <module>\n    main()\n  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 476, in main\n    return _inner_main(temp_dir)\n  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 595, in _inner_main\n    commit_count = synthesize_loop(x, multiple_prs, change_pusher, synthesizer)\n  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 371, in synthesize_loop\n    synthesize_inner_loop(toolbox, synthesizer)\n  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 381, in synthesize_inner_loop\n    synthesizer, len(toolbox.versions) - 1\n  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 266, in synthesize_version_in_new_branch\n    synthesizer.synthesize(synth_log_path, self.environ)\n  File "/tmpfs/src/github/synthtool/autosynth/synthesizer.py", line 119, in synthesize\n    synth_proc.check_returncode()  # Raise an exception.\n  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/subprocess.py", line 389, in check_returncode\n    self.stderr)\nsubprocess.CalledProcessError: Command \'[\'/tmpfs/src/github/synthtool/env/bin/python3\', \'-m\', \'synthtool\', \'--metadata\', \'synth.metadata\', \'synth.py\', \'--\']\' returned non-zero exit status 1.\n'

Google internal developers can see the full log here.

Autosynth is still having trouble generating nodejs-datacatalog. :sob:
Here's the output from running synth.py:
b'ecloned repo /home/kbuilder/.cache/synthtool/googleapis\nDEBUG:synthtool:Using precloned repo /home/kbuilder/.cache/synthtool/googleapis\n2020-06-05 10:15:30,506 synthtool [DEBUG] > Pulling Docker image: gapic-generator-typescript:latest\nDEBUG:synthtool:Pulling Docker image: gapic-generator-typescript:latest\nlatest: Pulling from gapic-images/gapic-generator-typescript\nDigest: sha256:c9bc12024eddcfb94501627ff5b3ea302370995e9a2c9cde6b3317375d7e7b66\nStatus: Image is up to date for gcr.io/gapic-images/gapic-generator-typescript:latest\n2020-06-05 10:15:31,426 synthtool [DEBUG] > Generating code for: google/cloud/datacatalog/v1.\nDEBUG:synthtool:Generating code for: google/cloud/datacatalog/v1.\n2020-06-05 10:15:32,321 synthtool [DEBUG] > Wrote metadata to synth.metadata.\nDEBUG:synthtool:Wrote metadata to synth.metadata.\nTraceback (most recent call last):\n  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 193, in _run_module_as_main\n    "__main__", mod_spec)\n  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 85, in _run_code\n    exec(code, run_globals)\n  File "/tmpfs/src/github/synthtool/synthtool/__main__.py", line 102, in <module>\n    main()\n  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 829, in __call__\n    return self.main(*args, **kwargs)\n  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 782, in main\n    rv = self.invoke(ctx)\n  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 1066, in invoke\n    return ctx.invoke(self.callback, **ctx.params)\n  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 610, in invoke\n    return callback(*args, **kwargs)\n  File "/tmpfs/src/github/synthtool/synthtool/__main__.py", line 94, in main\n    spec.loader.exec_module(synth_module)  # type: ignore\n  File "<frozen importlib._bootstrap_external>", line 678, in exec_module\n  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed\n  File "/home/kbuilder/.cache/synthtool/nodejs-datacatalog/synth.py", line 41, in <module>\n    extra_proto_files=[\'google/cloud/common_resources.proto\'],\n  File "/tmpfs/src/github/synthtool/synthtool/gcp/gapic_microgenerator.py", line 66, in typescript_library\n    return self._generate_code(service, version, "typescript", **kwargs)\n  File "/tmpfs/src/github/synthtool/synthtool/gcp/gapic_microgenerator.py", line 195, in _generate_code\n    f"Code generation seemed to succeed, but {output_dir} is empty."\nRuntimeError: Code generation seemed to succeed, but /tmpfs/tmp/tmpfuecmum8 is empty.\n2020-06-05 10:15:32,362 autosynth [ERROR] > Synthesis failed\n2020-06-05 10:15:32,362 autosynth [DEBUG] > Running: git reset --hard HEAD\nHEAD is now at 2bfb1cd build: update protos.js (#168)\n2020-06-05 10:15:32,367 autosynth [DEBUG] > Running: git checkout autosynth-self\nSwitched to branch \'autosynth-self\'\n2020-06-05 10:15:32,372 autosynth [ERROR] > Command \'[\'/tmpfs/src/github/synthtool/env/bin/python3\', \'-m\', \'synthtool\', \'--metadata\', \'synth.metadata\', \'synth.py\', \'--\']\' returned non-zero exit status 1.\n2020-06-05 10:15:32,533 autosynth [DEBUG] > Running: git checkout 2bfb1cd8a14d0226c8ebda282e9ded6516595490\nNote: checking out \'2bfb1cd8a14d0226c8ebda282e9ded6516595490\'.\n\nYou are in \'detached HEAD\' state. You can look around, make experimental\nchanges and commit them, and you can discard any commits you make in this\nstate without impacting any branches by performing another checkout.\n\nIf you want to create a new branch to retain commits you create, you may\ndo so (now or later) by using -b with the checkout command again. Example:\n\n  git checkout -b <new-branch-name>\n\nHEAD is now at 2bfb1cd build: update protos.js (#168)\n2020-06-05 10:15:32,538 autosynth [DEBUG] > Running: git checkout d53a5b45c46920932dbe7d0a95e10d8b58933dae\nPrevious HEAD position was 470789c chore(java): move version update end tag below client dependency (#579)\nHEAD is now at d53a5b4 docs: improve README (#600)\n2020-06-05 10:15:32,549 autosynth [DEBUG] > Running: git checkout cd804bab06e46dd1a4f16c32155fd3cddb931b52\nPrevious HEAD position was c4e37010 bazel: update protobuf, rules_go, gazelle, and gapic-generator-go versions - protobuf v3.12.1 - rules_go v0.23.0 - gazelle v0.21.0 - gapic-generator-go v0.14.1\nHEAD is now at cd804bab docs: cleaned docs for the Agents service and resource.\n2020-06-05 10:15:32,599 autosynth [DEBUG] > Running: git branch -f autosynth-48\n2020-06-05 10:15:32,603 autosynth [DEBUG] > Running: git checkout autosynth-48\nSwitched to branch \'autosynth-48\'\n2020-06-05 10:15:32,607 autosynth [INFO] > Running synthtool\n2020-06-05 10:15:32,607 autosynth [INFO] > [\'/tmpfs/src/github/synthtool/env/bin/python3\', \'-m\', \'synthtool\', \'--metadata\', \'synth.metadata\', \'synth.py\', \'--\']\n2020-06-05 10:15:32,610 autosynth [DEBUG] > Running: /tmpfs/src/github/synthtool/env/bin/python3 -m synthtool --metadata synth.metadata synth.py --\n2020-06-05 10:15:32,841 synthtool [DEBUG] > Executing /home/kbuilder/.cache/synthtool/nodejs-datacatalog/synth.py.\nOn branch autosynth-48\nnothing to commit, working tree clean\n2020-06-05 10:15:32,988 synthtool [DEBUG] > Ensuring dependencies.\nDEBUG:synthtool:Ensuring dependencies.\n2020-06-05 10:15:32,993 synthtool [DEBUG] > Cloning googleapis.\nDEBUG:synthtool:Cloning googleapis.\n2020-06-05 10:15:32,995 synthtool [DEBUG] > Using precloned repo /home/kbuilder/.cache/synthtool/googleapis\nDEBUG:synthtool:Using precloned repo /home/kbuilder/.cache/synthtool/googleapis\n2020-06-05 10:15:32,999 synthtool [DEBUG] > Pulling Docker image: gapic-generator-typescript:latest\nDEBUG:synthtool:Pulling Docker image: gapic-generator-typescript:latest\nlatest: Pulling from gapic-images/gapic-generator-typescript\nDigest: sha256:c9bc12024eddcfb94501627ff5b3ea302370995e9a2c9cde6b3317375d7e7b66\nStatus: Image is up to date for gcr.io/gapic-images/gapic-generator-typescript:latest\n2020-06-05 10:15:33,903 synthtool [DEBUG] > Generating code for: google/cloud/datacatalog/v1.\nDEBUG:synthtool:Generating code for: google/cloud/datacatalog/v1.\n2020-06-05 10:15:34,747 synthtool [DEBUG] > Wrote metadata to synth.metadata.\nDEBUG:synthtool:Wrote metadata to synth.metadata.\nTraceback (most recent call last):\n  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 193, in _run_module_as_main\n    "__main__", mod_spec)\n  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 85, in _run_code\n    exec(code, run_globals)\n  File "/tmpfs/src/github/synthtool/synthtool/__main__.py", line 102, in <module>\n    main()\n  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 829, in __call__\n    return self.main(*args, **kwargs)\n  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 782, in main\n    rv = self.invoke(ctx)\n  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 1066, in invoke\n    return ctx.invoke(self.callback, **ctx.params)\n  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 610, in invoke\n    return callback(*args, **kwargs)\n  File "/tmpfs/src/github/synthtool/synthtool/__main__.py", line 94, in main\n    spec.loader.exec_module(synth_module)  # type: ignore\n  File "<frozen importlib._bootstrap_external>", line 678, in exec_module\n  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed\n  File "/home/kbuilder/.cache/synthtool/nodejs-datacatalog/synth.py", line 41, in <module>\n    extra_proto_files=[\'google/cloud/common_resources.proto\'],\n  File "/tmpfs/src/github/synthtool/synthtool/gcp/gapic_microgenerator.py", line 66, in typescript_library\n    return self._generate_code(service, version, "typescript", **kwargs)\n  File "/tmpfs/src/github/synthtool/synthtool/gcp/gapic_microgenerator.py", line 195, in _generate_code\n    f"Code generation seemed to succeed, but {output_dir} is empty."\nRuntimeError: Code generation seemed to succeed, but /tmpfs/tmp/tmp9swltgq3 is empty.\n2020-06-05 10:15:34,792 autosynth [ERROR] > Synthesis failed\n2020-06-05 10:15:34,792 autosynth [DEBUG] > Running: git reset --hard HEAD\nHEAD is now at 2bfb1cd build: update protos.js (#168)\n2020-06-05 10:15:34,797 autosynth [DEBUG] > Running: git checkout autosynth\nSwitched to branch \'autosynth\'\n2020-06-05 10:15:34,802 autosynth [DEBUG] > Running: git clean -fdx\nRemoving __pycache__/\nTraceback (most recent call last):\n  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 193, in _run_module_as_main\n    "__main__", mod_spec)\n  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 85, in _run_code\n    exec(code, run_globals)\n  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 615, in <module>\n    main()\n  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 476, in main\n    return _inner_main(temp_dir)\n  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 595, in _inner_main\n    commit_count = synthesize_loop(x, multiple_prs, change_pusher, synthesizer)\n  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 371, in synthesize_loop\n    synthesize_inner_loop(toolbox, synthesizer)\n  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 381, in synthesize_inner_loop\n    synthesizer, len(toolbox.versions) - 1\n  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 266, in synthesize_version_in_new_branch\n    synthesizer.synthesize(synth_log_path, self.environ)\n  File "/tmpfs/src/github/synthtool/autosynth/synthesizer.py", line 119, in synthesize\n    synth_proc.check_returncode()  # Raise an exception.\n  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/subprocess.py", line 389, in check_returncode\n    self.stderr)\nsubprocess.CalledProcessError: Command \'[\'/tmpfs/src/github/synthtool/env/bin/python3\', \'-m\', \'synthtool\', \'--metadata\', \'synth.metadata\', \'synth.py\', \'--\']\' returned non-zero exit status 1.\n'

Google internal developers can see the full log here.

Autosynth is still having trouble generating nodejs-datacatalog. :sob:
Here's the output from running synth.py:
r.py", line 66, in typescript_library
    return self._generate_code(service, version, "typescript", **kwargs)
  File "/tmpfs/src/github/synthtool/synthtool/gcp/gapic_microgenerator.py", line 195, in _generate_code
    f"Code generation seemed to succeed, but {output_dir} is empty."
RuntimeError: Code generation seemed to succeed, but /tmpfs/tmp/tmprospkwzp is empty.
2020-06-05 15:41:43,322 autosynth [ERROR] > Synthesis failed
2020-06-05 15:41:43,323 autosynth [DEBUG] > Running: git reset --hard HEAD
HEAD is now at 2bfb1cd build: update protos.js (#168)
2020-06-05 15:41:43,328 autosynth [DEBUG] > Running: git checkout autosynth-self
Switched to branch 'autosynth-self'
2020-06-05 15:41:43,332 autosynth [ERROR] > Command '['/tmpfs/src/github/synthtool/env/bin/python3', '-m', 'synthtool', '--metadata', 'synth.metadata', 'synth.py', '--']' returned non-zero exit status 1.
2020-06-05 15:41:43,498 autosynth [DEBUG] > Running: git checkout 2bfb1cd8a14d0226c8ebda282e9ded6516595490
Note: checking out '2bfb1cd8a14d0226c8ebda282e9ded6516595490'.

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 2bfb1cd build: update protos.js (#168)
2020-06-05 15:41:43,503 autosynth [DEBUG] > Running: git checkout 9c2913e1831eb00fa01317f3fea4ce25d3f657eb
Previous HEAD position was 470789c chore(java): move version update end tag below client dependency (#579)
HEAD is now at 9c2913e feat: show output from microgenerator runs (#575)
2020-06-05 15:41:43,514 autosynth [DEBUG] > Running: git checkout 40a354b0f47454be4986f9db504cca4d4371c8c3
Previous HEAD position was c4e37010 bazel: update protobuf, rules_go, gazelle, and gapic-generator-go versions - protobuf v3.12.1 - rules_go v0.23.0 - gazelle v0.21.0 - gapic-generator-go v0.14.1
HEAD is now at 40a354b0 chore: add protoc proto3_optional flag in bazelrc
2020-06-05 15:41:43,567 autosynth [DEBUG] > Running: git branch -f autosynth-55
2020-06-05 15:41:43,571 autosynth [DEBUG] > Running: git checkout autosynth-55
Switched to branch 'autosynth-55'
2020-06-05 15:41:43,575 autosynth [INFO] > Running synthtool
2020-06-05 15:41:43,575 autosynth [INFO] > ['/tmpfs/src/github/synthtool/env/bin/python3', '-m', 'synthtool', '--metadata', 'synth.metadata', 'synth.py', '--']
2020-06-05 15:41:43,577 autosynth [DEBUG] > Running: /tmpfs/src/github/synthtool/env/bin/python3 -m synthtool --metadata synth.metadata synth.py --
2020-06-05 15:41:43,797 synthtool [DEBUG] > Executing /home/kbuilder/.cache/synthtool/nodejs-datacatalog/synth.py.
On branch autosynth-55
nothing to commit, working tree clean
2020-06-05 15:41:43,936 synthtool [DEBUG] > Ensuring dependencies.
DEBUG:synthtool:Ensuring dependencies.
2020-06-05 15:41:43,941 synthtool [DEBUG] > Cloning googleapis.
DEBUG:synthtool:Cloning googleapis.
2020-06-05 15:41:43,941 synthtool [DEBUG] > Using precloned repo /home/kbuilder/.cache/synthtool/googleapis
DEBUG:synthtool:Using precloned repo /home/kbuilder/.cache/synthtool/googleapis
2020-06-05 15:41:43,945 synthtool [DEBUG] > Pulling Docker image: gapic-generator-typescript:latest
DEBUG:synthtool:Pulling Docker image: gapic-generator-typescript:latest
latest: Pulling from gapic-images/gapic-generator-typescript
Digest: sha256:c9bc12024eddcfb94501627ff5b3ea302370995e9a2c9cde6b3317375d7e7b66
Status: Image is up to date for gcr.io/gapic-images/gapic-generator-typescript:latest
2020-06-05 15:41:44,857 synthtool [DEBUG] > Generating code for: google/cloud/datacatalog/v1.
DEBUG:synthtool:Generating code for: google/cloud/datacatalog/v1.
gapic-generator-typescript: https://github.com/googleapis/gapic-generator-typescript
Latest commit:
commit a858a371e225254fca1c32d8d6b142b42cb711ad
Author: release-please[bot]<EMAIL_ADDRESS>Date:   Thu Jun 4 16:54:54 2020 -0700

child_process.js:642
    throw err;
    ^

Error: spawnSync protoc EACCES
    at Object.spawnSync (internal/child_process.js:1041:20)
    at spawnSync (child_process.js:607:24)
    at Object.execFileSync (child_process.js:634:15)
    at Object.<anonymous> (/usr/local/lib/node_modules/@google-cloud/gapic-generator/build/src/gapic-generator-typescript.js:117:17)
    at Module._compile (internal/modules/cjs/loader.js:955:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:991:10)
    at Module.load (internal/modules/cjs/loader.js:811:32)
    at Function.Module._load (internal/modules/cjs/loader.js:723:14)
    at Function.Module.runMain (internal/modules/cjs/loader.js:1043:10)
    at internal/main/run_main_module.js:17:11 {
  errno: 'EACCES',
  code: 'EACCES',
  syscall: 'spawnSync protoc',
  path: 'protoc',
  spawnargs: [
<EMAIL_ADDRESS>    '--typescript_gapic_out=/out',
    '--gapic-validator_out=.',
    '--typescript_gapic_opt="grpc-service-config=google/cloud/datacatalog/v1/datacatalog_grpc_service_config.json"',
    '--typescript_gapic_opt="package-name=@google-cloud/datacatalog"',
    '--typescript_gapic_opt="main-service=DataCatalog"',
    '--experimental_allow_proto3_optional',
    '-I/in',
    '/in/google/cloud/common_resources.proto',
    '/in/google/cloud/datacatalog/v1/timestamps.proto',
    '/in/google/cloud/datacatalog/v1/common.proto',
    '/in/google/cloud/datacatalog/v1/schema.proto',
    '/in/google/cloud/datacatalog/v1/tags.proto',
    '/in/google/cloud/datacatalog/v1/table_spec.proto',
    '/in/google/cloud/datacatalog/v1/search.proto',
    '/in/google/cloud/datacatalog/v1/gcs_fileset_spec.proto',
    '/in/google/cloud/datacatalog/v1/datacatalog.proto',
    '-I/protos/api-common-protos-master'
  ],
  error: [Circular],
  status: null,
  signal: null,
  output: null,
  pid: 17,
  stdout: null,
  stderr: null
}
2020-06-05 15:41:45,721 synthtool [DEBUG] > Wrote metadata to synth.metadata.
DEBUG: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 "/home/kbuilder/.cache/synthtool/nodejs-datacatalog/synth.py", line 41, in <module>
    extra_proto_files=['google/cloud/common_resources.proto'],
  File "/tmpfs/src/github/synthtool/synthtool/gcp/gapic_microgenerator.py", line 66, in typescript_library
    return self._generate_code(service, version, "typescript", **kwargs)
  File "/tmpfs/src/github/synthtool/synthtool/gcp/gapic_microgenerator.py", line 195, in _generate_code
    f"Code generation seemed to succeed, but {output_dir} is empty."
RuntimeError: Code generation seemed to succeed, but /tmpfs/tmp/tmpz6srjgwf is empty.
2020-06-05 15:41:45,757 autosynth [ERROR] > Synthesis failed
2020-06-05 15:41:45,757 autosynth [DEBUG] > Running: git reset --hard HEAD
HEAD is now at 2bfb1cd build: update protos.js (#168)
2020-06-05 15:41:45,762 autosynth [DEBUG] > Running: git checkout autosynth
Switched to branch 'autosynth'
2020-06-05 15:41:45,766 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 615, in <module>
    main()
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 476, in main
    return _inner_main(temp_dir)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 595, in _inner_main
    commit_count = synthesize_loop(x, multiple_prs, change_pusher, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 371, in synthesize_loop
    synthesize_inner_loop(toolbox, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 381, in synthesize_inner_loop
    synthesizer, len(toolbox.versions) - 1
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 266, in synthesize_version_in_new_branch
    synthesizer.synthesize(synth_log_path, self.environ)
  File "/tmpfs/src/github/synthtool/autosynth/synthesizer.py", line 119, 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 passed, closing! :green_heart:


Setting maxWidth hide toggle

If maxWidth property was set to 980 (as you provided in your github doc) toggle button hides. Also adding display: block for this toggle is not working because navigation menu is blank after toggle click.

Hi @grayter1, sorry for late response, I was on vacation. Can you provide any demo for this?

Hi @grayter1, sorry for late response, I was on vacation. That is the desired behaviour, because you don't need a toggle button when the offcanvas nav is disabled.

The maxWidth is referred to screen width at which to show/hide the nav and the toggle.


pan bindings for Rust

working rust bindings for pan generated mostly with 'bindgen' from the C-bindings.
bindgen cant understand inlined functions, so the implementation of gohandle had to move from .hpp to .cpp.
The rust bindings provide poll based asynchronicity -> read/writes can be await'ed i async{} blocks. Instead of UnixDomain sockets, I use completion handlers to safe the unecessary copies.
Todo:

move GoHandleOwner trait into its own crate, so that it can be derived as a proc_macro
debug the build-script (for some reason it cannot call 'std::process::Command::new("clang++")'  on its own and you have to enter the command manually(see the comments) )
I use boost-asio instead of standalone
use faster Mutexes from parking_lot crate
provide more specific Error codes
replace raw GoHandles as parameters in public interface with strong types
i.e.   pub async fn write_to_via(   &mut self,     send_buff: &[u8],    to: PanUDPAddr,   via: PanPath,   ) -> Result<(), Box> {...}
PanUDPAddr ->instead Endpoint or snet::SocketAddrScion
PanPath ->rather &Path

Talked about this with @amdfxlucas offline. We recommend using the native SCION Rust library instead.


TRIVIAL: Upgrade Docsy

Build succeeded (check pipeline).

https://checklist.intgdc.com/job/compliance/job/gooddata-docs-theme-oss-check/82/ : SUCCESS in 3s


std.experimental.logger: file logger should use OS-specific directory separators on each platform

andrej.mitrovich (@AndrejMitrovic) reported this on 2022-09-10T09:57:03Z
Transfered from https://issues.dlang.org/show_bug.cgi?id=23330
Description
https://github.com/dlang/phobos/blob/e7cb981fa40bd77647da3dd708c7433724c6ab30/std/logger/filelogger.d#L129

This should use the OS-specific path separator, as on Windows it doesn't strip the path correctly due to using `/`.

andrej.mitrovich (@AndrejMitrovic) commented on 2022-09-10T09:58:15Z
I should say dir separator, not path separator. I'll fix up the issue name.


issue with host header

we should be VERY careful in trusting the input from the host header, it can be manipulated by the user.

https://httpd.apache.org/docs/2.4/mod/core.html#usecanonicalname
this should be On to make SERVER_NAME be something else than the HTTP HOST header value. What a tricky stuff!

for simple browser redirects it is okay, the user would just shoot themselves in the foot, but what if you depend on this value to determine which (virtual) instance the user wants to reach based on their HTTP request? That's not good.

Hm... and this one? https://httpd.apache.org/docs/2.4/mod/core.html#usecanonicalphysicalport

alright, in dev-master we now use SERVER_NAME and no longer HTTP_HOST.


Flag validator

Make rules around flag use, sketch FSM to check if flag input is correct

Rules

the First flag must be -f to determine to the program that it is used in 'flag mode' other first argument will lead to the collapse
Second must be util name (will be specified)
Next will be depended on specific util, they can be either order-sensitive or with -? prefix in any order


Crash loading from time to time

Sometimes this happens:

sometimes the subscription service breaks on certain state updating functions - I've seen this happening with the big MgnPoolState function that runs several. From what I've heard the TypeError: Cannot read property 'gasLimit' of null comes from Web3 and we're probably seeing a bunch of them since the subs are called heavily. I believe it's specifically web3.eth.getBlock which breaks


xPackage: fails if url doesn't end with .exe or .msi

Problem description
Hi! I'm trying to use the xPackage resource to install packages that are accessed from Azure Storage using a SAS uri and it fails saying that the file doesn't "appear" to be an exe or msi.
Verbose logs
Error: Failed to Run Consistency for 'ApplicationInstall' Error : PowerShell DSC resource DSC_xPackageResource  failed to execute Test-TargetResource functionality with error message: The specified Path 'https://azurepolicyartifacts.blob.core.windows.net/installers/WindowsSensor-651.exe?skoid=<clipped for privacy>' does not appear to specify an EXE or MSI file and as such is not supported. (Parameter 'Path')

DSC configuration
. .\classes.ps1
Configuration ApplicationInstall {
    param(
        [Application[]]$Applications
    )
    Import-DscResource -ModuleName xPSDesiredStateConfiguration -Name xPackage

    Node localhost {
        foreach ($application in $applications) {
            xPackage $application.Name {
                Name        = $application.Name
                Ensure     = "Present"
                ProductId  = $application.ProductId
                Path       = $application.Path
                Arguments  = $application.Arguments
                FileHash = $application.FileHash
                HashAlgorithm = "MD5"
            }
        }
    }
}

Suggested solution
it would seem to me that changing the test to strip off anything after a ? is the simple answer with converting it into a uri and using the localpath property the (lower performance) more slick option.
$pathExtension = [System.IO.Path]::GetExtension(($Path -replace '\?.*$',''))`
#or if you want to make sure you're really certain to get the right thing
$pathExtension = [System.IO.Path]::GetExtension(([uri]$Path).LocalPath)

https://github.com/dsccommunity/xPSDesiredStateConfiguration/blob/main/source/DSCResources/DSC_xPackageResource/DSC_xPackageResource.psm1#L1092
Operating system the target node is running
OsName               : Microsoft Windows 11 Pro
OsOperatingSystemSKU : 48
OsArchitecture       : 64-bit
WindowsVersion       : 2009
WindowsBuildLabEx    : 22000.1.amd64fre.co_release.210604-1628
OsLanguage           : en-US
OsMuiLanguages       : {en-US}

PowerShell version and build the target node is running
Name                           Value
----                           -----
PSVersion                      7.3.4
PSEdition                      Core
GitCommitId                    7.3.4
OS                             Microsoft Windows 10.0.22000
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0ΓÇª}
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
WSManStackVersion              3.0

xPSDesiredStateConfiguration version
Name                         Version Path
----                         ------- ----
xPSDesiredStateConfiguration 9.1.0   C:\Users\Batma\OneDrive\Documents\PowerShell\Modules\xPSDesiredStateConfiguration\9.1.0\xPSDesiredStateConfiguration.pΓÇª

Out of interest, if the check is dumb, have you tried to add a dummy get parameter like so:
https://azurepolicyartifacts.blob.core.windows.net/installers/WindowsSensor-651.exe?skoid=<clipped for privacy>&dummy=myexe.msi
Maybe that's enough of a workaround for now and the blob will ignore that unknown 'dummy' parameter.
Otherwise, I think that check is not really "modern" and should either be removed, or have a way to be ignored.

fantastic workaround, thank you


Adjust compare content signature

Compare content should be more explicit about the fact that it wants a folder.
And run_config can output the final folder path.
This should make it easier for more exotic test setups.

Codecov Report
Patch and project coverage have no change.

Comparison is base (e921001) 82.02% compared to head (e921001) 82.02%.

:exclamation: Current head e921001 differs from pull request most recent head 16374f3. Consider uploading reports for the commit 16374f3 to get more accurate results

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@           Coverage Diff            @@
##           develop     #213   +/-   ##
========================================
  Coverage    82.02%   82.02%
========================================
  Files           50       50
  Lines         3821     3821
========================================
  Hits          3134     3134
  Misses         687      687

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Trace plugin makes linear increase in heap size

In GitLab by @ksiero on Oct 19, 2021, 11:25
The problem found by Emilio. Trace plugin stores shared Refs in the unordered_set, but never really frees them (only at the end).

In GitLab by @ksiero on Oct 19, 2021, 11:40
mentioned in commit cc532e211bb4132b4ca5b22614add03ea18c479e

In GitLab by @ksiero on Oct 20, 2021, 10:31
mentioned in commit ccf66c0faee228d074434609c2c1f7d651b7744d

indeed, data_end should remove the ref from m_refs, good catch :thumbsup: !


[WSL2/Ubuntu] Can't connect to internet

I read the following similar issues, but I guess my problem is different from them.

#5286
#6427

The following is a list of my situations.
(1) With WSL2, I can't ping with IP address.
$ ping <IP_ADDRESS>
PING <IP_ADDRESS> (<IP_ADDRESS>) 56(84) bytes of data.
( No response)

The difference from other issues is that DNS seems to be working effectively in WSL2.
$ nslookup google.com
Server:         <IP_ADDRESS>
Address:        <IP_ADDRESS>#53

Non-authoritative answer:
Name:   google.com
Address: <IP_ADDRESS>
Name:   google.com
Address: 2404:6800:4004:80b::200e

(2) Convert to WSL1, the ping will work
$ wsl --set-version Ubuntu 1
$ wsl
$ ping <IP_ADDRESS>

(3) Network status
In WSL2
~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet <IP_ADDRESS>/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: bond0: <BROADCAST,MULTICAST,MASTER> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 4a:32:3c:d5:e5:f7 brd ff:ff:ff:ff:ff:ff
3: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 36:98:4e:e1:0e:af brd ff:ff:ff:ff:ff:ff
4: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:15:5d:14:06:ba brd ff:ff:ff:ff:ff:ff
    inet <IP_ADDRESS>/20 brd <IP_ADDRESS> scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::215:5dff:fe14:6ba/64 scope link
       valid_lft forever preferred_lft forever
5: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
    link/sit <IP_ADDRESS> brd <IP_ADDRESS>

In Windows 10
> ipconfig

Ethernet adapter vEthernet (WSL):

   Connection-specific DNS Suffix  .  :

I tried setting of @ericc, but it's not work for me. https://github.com/microsoft/WSL/issues/5286#issue-626621358

My environment is below.

Windows :  10.0.19042 Build 19042
Installed Ubuntu and Ubutnu 18.04 . Both had the same problems.
I'm not using VPN.

I never successful connect to
Failed to fetch http://archive.ubuntu.com/ubuntu/dists
if using WIFI at home (no VPN).
I have edited the /etc/wsl.conf and /etc/resolv.conf to contain same nameserver as my WIFI router box

I never successful connect to
Failed to fetch http://archive.ubuntu.com/ubuntu/dists
if using WIFI at home (no VPN).
I have edited the /etc/wsl.conf and /etc/resolv.conf to contain same nameserver as my WIFI router box

After running the commands in the comments below, my PC stopped connecting to WiFi, not just WSL2.
https://github.com/microsoft/WSL/issues/4926#issuecomment-679410653
I had to reinstall the drivers and no matter what I did, I could not get it fixed to the internet.
Therefore, I reinstalled Windows 10.
After that, I was able to connect to the Internet even with WSL2....

After running the commands in the comments below, my PC stopped connecting to WiFi, not just WSL2.
https://github.com/microsoft/WSL/issues/4926#issuecomment-679410653
I had to reinstall the drivers and no matter what I did, I could not get it fixed to the internet.
Therefore, I reinstalled Windows 10.
After that, I was able to connect to the Internet even with WSL2....


bootstrap and make file failed

I'm new for raspberry pi and I am setting up the development environment on raspbian following the tutorial.
when I executed the "./script/bootstrap" it told me
"Unable to locate package 'clang-format-5.0' "
and then I checked the bootstrap file and apt list, there is no clang-format-5.0 in apt list.
So I replaced the 5.0 with 4.0.
As a result, when I make file, there are a lot of nothing to be done error. and the test failed.
Can some one help?

clang-format 5.0 is required for automated code formatting using the make pretty target.  If you do not care about automated formatting, you can just comment that line out.
Rather than relying on apt-get, you could try to directly use the official build for Clang 5.  Then comment out the clang-format-5.0 install line in script/bootstrap.


[Preview 5] ExpressionObserver class is no longer accessible

Describe the bug
If using CommunityToolkit MVVM template and preview avalonia, the following line is present in App.xaml.cs to address #8397:
ExpressionObserver.DataValidators.RemoveAll(x => x is DataAnnotationsValidationPlugin);

However, In preview 5, ExpressionObserver class is made internal. So I had to remove the above line. This makes the original issue come back. In my VM class, I have:
public partial class MainWindowViewModel : ObservableValidator
{
 //...

    private DateTime? flightDate;

    [Required(ErrorMessage = "You must provide a valid flight date.")]
    public DateTime? FlightDate
    {
        get => flightDate;
        set
        {
            _ = SetProperty(ref flightDate, value, true);
            ValidateProperty(ReturnFlightDate, nameof(ReturnFlightDate));
        }
    }
 //...

and I see the Validation error twice:

What is the proper way to fix this?
To Reproduce
The test project is at https://github.com/nsrahmad/7GUI-Avalonia/tree/master/FlightBooker
Desktop (please complete the following information):

OS: Windows 10
Version 11.0.0 Preview 5

It's in BindingPlugins.DataValidators


Pass CaseInsensitiveEnumValues property value to InstanceChooser.Choose

 Issue by arutkowski00
Thursday Apr 13, 2017 at 13:56 GMT
Originally opened as https://github.com/gsscoder/commandline/pull/438

It is a bugfix for #289 and #326 . When using the ParserResult<object> ParseArguments(IEnumerable<string>, Type[]) method, CaseInsensitiveEnumValues property was not working, because it was not passed to InstanceChooser.Choose method.

arutkowski00 included the following code: https://github.com/gsscoder/commandline/pull/438/commits

 Comment by arutkowski00
Friday Sep 22, 2017 at 06:10 GMT

@gsscoder bump

 Comment by ericnewton76
Tuesday Oct 31, 2017 at 16:49 GMT

See Issue #488
Note: We have moved the project to a more team managed repository.  Please resubmit any pull requests to https://github.com/commandlineparser/commandline   Sorry for inconveniences.


Binding one component to multiple parameters

What's your idea?
Imagine a select representing how to sort something. You might have the same attributes listed twice, once for ascending and descending each. It's easy to serialize this to the URL as ?sort=attr_asc at the moment, but what if we want ?sort=attr&order=asc instead?
Describe the solution you'd like
Perhaps a viable solution would be to provide some wrapping component/directive which can take an array of queryParamName, some function(s) on how to do the (de-)serializer splitting and implements a ControlValueAccessor that redirects to the actual underlying component.
This is a very rough idea I haven't thought through yet. Alternative ideas or concrete proposals are welcome.

I've played with two ideas:

Continue using queryParamName, but allow the input to be an array of strings. This does make things pretty complicated, also since each param can be bound to multiple components.

Add a new directive which looks something like

<select [queryParamNames]="['sortBy', 'sortDirection']" [inflate]="fnInflate" [deflate]="fnDeflate">
  <option value="name_asc">Name (A→Z)</option>
</select>

with fnInflate: (value: unknown) => unknown[] and fnDeflate: (values: unknown[]) => unknown. This directive would expose a new ControlValueAccessor on the host which memorizes the latest values of all managed parameters and combines them whenever something updates.
There's two open points:

We need access to the "actual" ControlValueAccessor so we can wire them up.
We'd probably need a way for the user to select the correct ControlValueAccessor to be used, or we change selectControlValueAccessor to always prefer our special one.

One way to achieve this would be to just inject the accessors and filter out our own.

Yet another idea: splitting it in the model already, e.g.
this.paramGroup = this.qpb.group({
    sorting: qpb.combine([
      qpb.stringParam('sortBy'),
      qpb.stringParam('sortDirection'),
    ], { inflate, deflate }),
});


Extend conntrack API to allow both splitted and unsplitted aggregation

Currently, the configuration of an output field of a connection supports a boolean flag splitAB to control whether to split the aggregation by direction.
For example, the following configuration:
outputFields:
  - name: Bytes
	operation: sum
	splitAB: false

will add a single Bytes field to a connection which sums the bytes of flows from A to B and from B to A.
On the other hand, the following configuration
outputFields:
  - name: Bytes
	operation: sum
	splitAB: true

will add two fields (Bytes_AB and Bytes_BA) to the connection which sums the bytes separately for A->B and B->A respectively.
If we want to allow both splitted and unsplitted sums, and end up with 3 additional fields in the connection (Bytes, Bytes_AB and Bytes_AB), we need to write:
outputFields:
  - name: Bytes
	operation: sum
	splitAB: true
  - name: Bytes
	operation: sum
	splitAB: false

We need to think if we want to make the configuration more compact and clear.
Also, do we want to allow aggregation of only one direction but not the other?
If so, 2 options come to mind:

Replace splitAB with 3 booleans:

outputFields:
  - name: Bytes
	operation: sum
	aggregateAB: true
	aggregateBA: true
	aggregateBoth: true

Replace splitAB with a list:

outputFields:
  - name: Bytes
	operation: sum
	aggregateBy: [AB, BA, both]

@ronensc can we go with an enum approach that for the emit field (instead of splitAB) supports the following "AB" (only split), "Totals" (only totals), "AB&Totlas" (that emits both the split values and the totals). I think that splitting just on one of the sides is not very reasonable.


Unclear usage of user-assigned managed identity

The page says only a system-managed identity is supported. However, the Form Recognizer also allows you to create user-assigned managed identities. However, this identity seems 100% useless as it cannot be used for accessing a storage account. The page should clearly state that you can create user-assigned identities, but that they don't work.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 6fd007ac-0954-bb91-2ce8-8dbf0acb6115
Version Independent ID: fb756758-95b9-898b-08b0-8d9c5bb71cd2
Content: Create and use managed identities with Form Recognizer - Azure Applied AI Services
Content Source: articles/applied-ai-services/form-recognizer/managed-identities.md
Service: applied-ai-services
Sub-service: forms-recognizer
GitHub Login: @laujan
Microsoft Alias: lajanuar

@sdebruyn Thanks for reporting this. Yes, the user assigned identity can still be created from the portal.
@laujan Can we explicitly add a note that user assigned identity can still be created from Azure portal but cannot be used with Azure form recognizer? The current documentation only mentions that system managed identity is supported.

Currently, Form Recognizer supports system-assigned managed identity

Hi @sdebruyn , Thank you for your feedback. I have updated the managed identities documentation.
cc @RohitMungi-MSFT

#please-close


fix: post a success commit status if no release is required initially

post a success commit status if no release is required initially.
this fixes a blocked situations where no release would need to occur, thus no release notes would be posted, thus no checkbox would be ever posted and no success commit status sent.

Expected release notes (by @Shesekino)
fixes:
post a success commit status if no release is required initially (4586338)

[ ] I hereby acknowledge these release notes are 🥙 AWESOME 🥙

:tada: This PR is included in version 1.5.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Changed Footer

Description
Fixes #(issue_#125)
Screenshots
https://github.com/Counselllor/Counsellor-Web/assets/122550529/de0c73c3-6b67-4259-bde4-b144ebd72b53)
Checklist

[x] Footer has been added to this repository
[x] Code follows the established coding style guidelines
[x] All tests are passing

@Avinash905 I have already worked on issue , please review it and merge into master branch

Thanks for contributing but its effecting to all responsive part of webapp
Have a look

Hello @thestarsahil Now its working completely fine. please check out and merge the commit with responsive footer

Before Merging please update the pull request then commit the changes again !
Branch is conflicting


ctrl+N after find (ctrl+F) not working

Description of the problem or steps to reproduce

ctrl-F: search for something in a file
ctrl-N: it does nothing even if there are other occurrence of the term in the file

Specifications

ctrl-F: search for something in a file
ctrl-N: should find next occurrence of the term

Commit hash: f594686
OS: arch linux (5.6.3-arch1-1 #1 SMP PREEMPT Wed, 08 Apr 2020 07:47:16 +0000 x86_64 GNU/Linux)
Terminal: gnome-terminal

Did you try the current 2.0.3 version ? -- works just fine for me.
(tested on: Mac, Linux/x64, Linux/arm64)
Rgds, -Dimitri

Yep 2.0.3 here, works here as well.
Did you close the search menu before ctrl-N triggering?

Good point, you need to make sure that you press enter to complete the search before you can use CtrlN to find the next occurrence.

Silly me.. I didn't close the search menu
Cheers and thanks for the rapid support!
I love this terminal:

very similar to nano, which is the one I am used to work with
super intuitive default keys

:1st_place_medal:
Closing issue :)


🐛 [Firestore_Bundle] Permission Denied while I have Admin Rights

Bug report
Describe the bug
It should allow me to get the url download using command getDownloadURL(), but it rejected my request and said I don't have any permission to do this. I just created bundles from Node.js using Firebase Admin SDK and it seemed all files created from there cannot be accessed by Firebase Client SDK. I have removed important security rule in Cloud Storage as well. Besides, I have admin rights, I should be allowed to access the data right?
The codes:
class MusicDownload extends GetxController {
  static const bucket = "felix-366510.appspot.com";
  static const storage = "https://storage.cloud.google.com";
  final Message msg = Get.find();

  Future<QuerySnapshot<Map<String, dynamic>>> getEpic() async {
    QuerySnapshot<Map<String, dynamic>>? snapshot;
    final storageRef = FirebaseStorage.instance.ref();
    final islandRef = storageRef.child("music/bundles/epic_bundle.txt");
    try {
      String url = await islandRef.getDownloadURL();
      final response = await http.get(Uri.parse(url));
      Uint8List buffer = Uint8List.fromList(response.body.codeUnits);
      LoadBundleTask task = FirebaseFirestore.instance.loadBundle(buffer);

      task.stream.listen((taskStateProgress) async {
        if (taskStateProgress.taskState == TaskState.success) {
          snapshot = await FirebaseFirestore.instance.namedQueryGet("latest-epic", options: const GetOptions(source: Source.cache));

        } else if (taskStateProgress.taskState == TaskState.error) {
          log("Error");
        } else if (taskStateProgress.taskState == TaskState.canceled) {
          log("Cancelled");
        }
      });
    } on FirebaseException catch (e) {
      log(e.code);
    }
    return snapshot!;
  }
}

Steps to reproduce
Steps to reproduce the behavior:

Use FutureBuilder and call this mus.getEpic()
Permission Denied

Expected behavior
It should allow me to access the file as I have admin rights.
Sample project
Unfortunately, we don't have a working repository project

Additional context

Flutter doctor
Run flutter doctor and paste the output below:
Click To Expand
[√] Flutter (Channel stable, 3.3.1, on Microsoft Windows [Version 10.0.22000.613], locale en-US)
Checking Android licenses is taking an unexpectedly long time...[√] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
[√] Chrome - develop for the web
[√] Visual Studio - develop for Windows (Visual Studio Community 2019 16.11.17)
[√] Android Studio (version 2021.2)
[√] VS Code, 64-bit edition (version 1.72.2)
[√] Connected device (4 available)
[√] HTTP Host Availability

Flutter dependencies
Run flutter pub deps -- --style=compact and paste the output below:
Click To Expand
Dart SDK 2.18.0
Flutter SDK 3.3.1
felix_idn 1.0.0+1

dependencies:
- align_positioned 3.0.0 [matrix4_transform flutter]
- app_review 2.1.1+1 [http package_info url_launcher flutter]
- asset_cache 2.0.0 [flutter path]
- audio_service 0.18.6 [audio_service_platform_interface audio_service_web audio_session rxdart flutter_cache_manager clock js flutter flutter_web_plugins]
- audio_session 0.1.9 [flutter flutter_web_plugins rxdart meta]
- cached_network_image 3.2.1 [flutter flutter_cache_manager octo_image cached_network_image_platform_interface cached_network_image_web]
- circular_countdown_timer 0.2.2 [flutter]
- cloud_firestore 4.0.2 [cloud_firestore_platform_interface cloud_firestore_web collection firebase_core firebase_core_platform_interface flutter meta]
- cloud_functions 4.0.2 [cloud_functions_platform_interface cloud_functions_web firebase_core firebase_core_platform_interface flutter]
- collection 1.16.0
- connectivity_plus 2.3.4 [flutter connectivity_plus_platform_interface connectivity_plus_linux connectivity_plus_macos connectivity_plus_web connectivity_plus_windows]
- cupertino_icons 1.0.2
- date_time_picker 2.1.0 [flutter intl]
- device_info_plus 4.1.0 [flutter device_info_plus_platform_interface device_info_plus_macos device_info_plus_linux device_info_plus_web device_info_plus_windows]
- extended_image 6.2.1 [extended_image_library flutter meta]
- file_picker 5.0.1 [flutter flutter_web_plugins flutter_plugin_android_lifecycle plugin_platform_interface ffi path win32]
- firebase_app_check 0.1.1+1 [firebase_app_check_platform_interface firebase_app_check_web firebase_core firebase_core_platform_interface flutter]
- firebase_auth 4.0.2 [firebase_auth_platform_interface firebase_auth_web firebase_core firebase_core_platform_interface flutter meta]
- firebase_core 2.1.0 [firebase_core_platform_interface firebase_core_web flutter meta]
- firebase_database 10.0.2 [firebase_core firebase_core_platform_interface firebase_database_platform_interface firebase_database_web flutter]
- firebase_storage 11.0.2 [firebase_core firebase_core_platform_interface firebase_storage_platform_interface firebase_storage_web flutter]
- firestore_cache 2.3.0 [cloud_firestore flutter shared_preferences]
- flutter 0.0.0 [characters collection material_color_utilities meta vector_math sky_engine]
- flutter_app_badger 1.4.0 [flutter]
- flutter_background 1.1.0 [flutter]
- flutter_intro 3.0.2 [flutter]
- flutter_rating_bar 4.0.1 [flutter]
- flutter_staggered_animations 1.0.0 [flutter]
- flutter_svg 1.1.3 [flutter meta path_drawing vector_math xml]
- get 4.6.5 [flutter]
- get_it 7.2.0 [async collection]
- get_storage 2.0.3 [flutter get path_provider]
- getwidget 3.0.1 [flutter]
- google_fonts 3.0.1 [flutter http path_provider crypto]
- google_sign_in 5.4.2 [flutter google_sign_in_android google_sign_in_ios google_sign_in_platform_interface google_sign_in_web]
- group_button 5.2.0 [flutter]
- hexagon 0.2.0-nullsafety.1 [flutter]
- hive 2.2.3 [meta crypto]
- http 0.13.5 [async http_parser meta path]
- import_sorter 4.6.0 [args tint yaml]
- intl 0.17.0 [clock path]
- introduction_screen 3.0.2 [flutter dots_indicator collection]
- just_audio 0.9.27 [just_audio_platform_interface just_audio_web audio_session rxdart path path_provider async uuid crypto meta flutter]
- just_the_tooltip 0.0.11+2 [flutter]
- lottie 1.3.0 [archive flutter path vector_math]
- money2 3.1.2 [decimal fixed intl meta]
- neat_periodic_task 2.0.0 [retry slugid json_annotation meta logging collection]
- new_version 0.3.0 [flutter package_info_plus http html url_launcher collection]
- octo_image 1.0.2 [flutter flutter_blurhash]
- overlay_tooltip 0.1.0 [flutter]
- parallax_rain 1.1.0 [flutter]
- path 1.8.2
- path_provider 2.0.10 [flutter path_provider_android path_provider_ios path_provider_linux path_provider_macos path_provider_platform_interface path_provider_windows]
- pdf 3.8.1 [archive barcode crypto image meta path_parsing vector_math xml]
- purchases_flutter 3.10.0 [flutter freezed_annotation json_annotation]
- readmore 2.2.0 [flutter]
- responsive_framework 0.2.0 [flutter collection]
- rive 0.8.4 [collection flutter graphs http meta]
- rxdart 0.26.0
- safe_device 1.1.1 [flutter trust_location]
- settings_ui 2.0.2 [flutter]
- sweetsheet 0.4.0 [flutter]
- syncfusion_flutter_datagrid 20.1.58 [flutter syncfusion_flutter_core collection]
- theme_provider 0.5.0 [flutter shared_preferences]
- timer_builder 2.0.0 [flutter]
- update_available 2.1.0 [flutter update_available_android update_available_ios update_available_platform_interface]
- wakelock 0.6.1 [flutter meta wakelock_macos wakelock_platform_interface wakelock_web wakelock_windows]

dev dependencies:
- flutter_lints 2.0.1 [lints]
- flutter_test 0.0.0 [flutter test_api path fake_async clock stack_trace vector_math async boolean_selector characters collection matcher material_color_utilities meta source_span stream_channel string_scanner term_glyph]

dependency overrides:
- path 1.8.2

transitive dependencies:
- _flutterfire_internals 1.0.5 [cloud_firestore_platform_interface cloud_firestore_web collection firebase_core firebase_core_platform_interface flutter meta]
- archive 3.3.1 [crypto path]
- args 2.3.1
- async 2.9.0 [collection meta]
- audio_service_platform_interface 0.1.0 [flutter plugin_platform_interface meta]
- audio_service_web 0.1.1 [audio_service_platform_interface rxdart js flutter flutter_web_plugins]
- barcode 2.2.3 [meta qr]
- boolean_selector 2.1.0 [source_span string_scanner]
- cached_network_image_platform_interface 1.0.0 [flutter flutter_cache_manager]
- cached_network_image_web 1.0.1 [flutter flutter_cache_manager cached_network_image_platform_interface]
- characters 1.2.1
- clock 1.1.1
- cloud_firestore_platform_interface 5.8.2 [_flutterfire_internals collection firebase_core flutter meta plugin_platform_interface]
- cloud_firestore_web 3.0.2 [_flutterfire_internals cloud_firestore_platform_interface collection firebase_core firebase_core_web flutter flutter_web_plugins js]
- cloud_functions_platform_interface 5.1.21 [firebase_core flutter meta plugin_platform_interface]
- cloud_functions_web 4.3.10 [cloud_functions_platform_interface firebase_core firebase_core_web flutter flutter_web_plugins js]
- connectivity_plus_linux 1.3.1 [flutter connectivity_plus_platform_interface meta nm]
- connectivity_plus_macos 1.2.4 [connectivity_plus_platform_interface flutter]
- connectivity_plus_platform_interface 1.2.1 [flutter meta plugin_platform_interface]
- connectivity_plus_web 1.2.3 [connectivity_plus_platform_interface flutter_web_plugins flutter]
- connectivity_plus_windows 1.2.2 [connectivity_plus_platform_interface flutter]
- convert 3.0.2 [typed_data]
- crypto 3.0.2 [typed_data]
- csslib 0.17.2 [source_span]
- dbus 0.7.8 [args ffi meta xml]
- decimal 1.5.0 [rational]
- device_info_plus_linux 2.1.1 [device_info_plus_platform_interface file flutter meta]
- device_info_plus_macos 2.2.3 [device_info_plus_platform_interface flutter]
- device_info_plus_platform_interface 2.6.1 [flutter meta plugin_platform_interface]
- device_info_plus_web 2.1.0 [device_info_plus_platform_interface flutter_web_plugins flutter]
- device_info_plus_windows 3.0.3 [device_info_plus_platform_interface ffi flutter win32]
- dots_indicator 2.1.0 [flutter]
- extended_image_library 3.3.0 [crypto flutter http_client_helper path path_provider]
- fake_async 1.3.1 [clock collection]
- ffi 2.0.1
- file 6.1.4 [meta path]
- firebase_app_check_platform_interface 0.0.5+4 [_flutterfire_internals firebase_core flutter meta plugin_platform_interface]
- firebase_app_check_web 0.0.7+4 [_flutterfire_internals firebase_app_check_platform_interface firebase_core firebase_core_web flutter flutter_web_plugins js]
- firebase_auth_platform_interface 6.10.4 [_flutterfire_internals collection firebase_core flutter meta plugin_platform_interface]
- firebase_auth_web 5.0.2 [firebase_auth_platform_interface firebase_core firebase_core_web flutter flutter_web_plugins http_parser intl js meta]
- firebase_core_platform_interface 4.5.1 [collection flutter flutter_test meta plugin_platform_interface]
- firebase_core_web 2.0.0 [firebase_core_platform_interface flutter flutter_web_plugins js meta]
- firebase_database_platform_interface 0.2.2+10 [_flutterfire_internals collection firebase_core flutter meta plugin_platform_interface]
- firebase_database_web 0.2.1+12 [firebase_core firebase_core_web firebase_database_platform_interface flutter flutter_web_plugins js]
- firebase_storage_platform_interface 4.1.21 [collection firebase_core flutter meta plugin_platform_interface]
- firebase_storage_web 3.3.12 [_flutterfire_internals async firebase_core firebase_core_web firebase_storage_platform_interface flutter flutter_web_plugins http js meta]
- fixed 1.1.0 [decimal intl]
- flutter_blurhash 0.7.0 [flutter]
- flutter_cache_manager 3.3.0 [clock collection file flutter http path path_provider pedantic rxdart sqflite uuid]
- flutter_plugin_android_lifecycle 2.0.7 [flutter]
- flutter_web_plugins 0.0.0 [flutter js characters collection material_color_utilities meta vector_math]
- freezed_annotation 1.1.0 [collection json_annotation meta]
- google_sign_in_android 6.1.0 [flutter google_sign_in_platform_interface]
- google_sign_in_ios 5.5.0 [flutter google_sign_in_platform_interface]
- google_sign_in_platform_interface 2.3.0 [flutter plugin_platform_interface quiver]
- google_sign_in_web 0.10.2 [flutter flutter_web_plugins google_sign_in_platform_interface js]
- graphs 2.1.0 [collection]
- html 0.15.0 [csslib source_span]
- http_client_helper 2.0.3 [http]
- http_parser 4.0.1 [collection source_span string_scanner typed_data]
- image 3.2.0 [archive meta xml]
- js 0.6.4
- json_annotation 4.6.0 [meta]
- just_audio_platform_interface 4.2.0 [flutter plugin_platform_interface]
- just_audio_web 0.4.7 [just_audio_platform_interface flutter flutter_web_plugins]
- lints 2.0.0
- logging 1.0.2
- matcher 0.12.12 [stack_trace]
- material_color_utilities 0.1.5
- matrix4_transform 2.0.1 [flutter]
- meta 1.8.0
- nm 0.5.0 [dbus]
- package_info 2.0.2 [flutter]
- package_info_plus 1.4.3+1 [flutter package_info_plus_platform_interface package_info_plus_linux package_info_plus_macos package_info_plus_windows package_info_plus_web]
- package_info_plus_linux 1.0.5 [package_info_plus_platform_interface flutter path]
- package_info_plus_macos 1.3.0 [flutter]
- package_info_plus_platform_interface 1.0.2 [flutter meta plugin_platform_interface]
- package_info_plus_web 1.0.5 [flutter flutter_web_plugins http meta package_info_plus_platform_interface]
- package_info_plus_windows 2.0.0 [package_info_plus_platform_interface ffi flutter win32]
- path_drawing 1.0.1 [vector_math meta path_parsing flutter]
- path_parsing 1.0.1 [vector_math meta]
- path_provider_android 2.0.20 [flutter path_provider_platform_interface]
- path_provider_ios 2.0.11 [flutter path_provider_platform_interface]
- path_provider_linux 2.1.7 [ffi flutter path path_provider_platform_interface xdg_directories]
- path_provider_macos 2.0.6 [flutter path_provider_platform_interface]
- path_provider_platform_interface 2.0.4 [flutter platform plugin_platform_interface]
- path_provider_windows 2.1.3 [ffi flutter path path_provider_platform_interface win32]
- pedantic 1.11.1
- petitparser 5.0.0 [meta]
- platform 3.1.0
- plugin_platform_interface 2.1.2 [meta]
- process 4.2.4 [file path platform]
- pub_semver 2.1.1 [collection meta]
- qr 3.0.1 [meta]
- quiver 3.1.0 [matcher]
- rational 1.2.1
- retry 3.1.0
- shared_preferences 2.0.15 [flutter shared_preferences_android shared_preferences_ios shared_preferences_linux shared_preferences_macos shared_preferences_platform_interface shared_preferences_web shared_preferences_windows]
- shared_preferences_android 2.0.12 [flutter shared_preferences_platform_interface]
- shared_preferences_ios 2.1.1 [flutter shared_preferences_platform_interface]
- shared_preferences_linux 2.1.1 [file flutter path path_provider_linux path_provider_platform_interface shared_preferences_platform_interface]
- shared_preferences_macos 2.0.4 [flutter shared_preferences_platform_interface]
- shared_preferences_platform_interface 2.1.0 [flutter plugin_platform_interface]
- shared_preferences_web 2.0.4 [flutter flutter_web_plugins shared_preferences_platform_interface]
- shared_preferences_windows 2.1.1 [file flutter path path_provider_platform_interface path_provider_windows shared_preferences_platform_interface]
- sky_engine 0.0.99
- slugid 1.1.1 [convert meta]
- source_span 1.9.0 [collection path term_glyph]
- sqflite 2.0.3+1 [flutter sqflite_common path]
- sqflite_common 2.2.1+1 [synchronized path meta]
- stack_trace 1.10.0 [path]
- stream_channel 2.1.0 [async]
- string_scanner 1.1.1 [source_span]
- syncfusion_flutter_core 20.2.46 [vector_math flutter]
- synchronized 3.0.0+3
- term_glyph 1.2.1
- test_api 0.4.12 [async boolean_selector collection meta source_span stack_trace stream_channel string_scanner term_glyph matcher]
- tint 2.0.0
- trust_location 2.0.13 [flutter]
- typed_data 1.3.1 [collection]
- update_available_android 2.1.0 [flutter update_available_platform_interface]
- update_available_ios 2.1.0 [flutter http meta package_info_plus update_available_platform_interface pub_semver]
- update_available_platform_interface 2.1.0 [meta plugin_platform_interface]
- url_launcher 6.1.5 [flutter url_launcher_android url_launcher_ios url_launcher_linux url_launcher_macos url_launcher_platform_interface url_launcher_web url_launcher_windows]
- url_launcher_android 6.0.17 [flutter url_launcher_platform_interface]
- url_launcher_ios 6.0.17 [flutter url_launcher_platform_interface]
- url_launcher_linux 3.0.1 [flutter url_launcher_platform_interface]
- url_launcher_macos 3.0.1 [flutter url_launcher_platform_interface]
- url_launcher_platform_interface 2.1.0 [flutter plugin_platform_interface]
- url_launcher_web 2.0.13 [flutter flutter_web_plugins url_launcher_platform_interface]
- url_launcher_windows 3.0.1 [flutter url_launcher_platform_interface]
- uuid 3.0.6 [crypto]
- vector_math 2.1.2
- wakelock_macos 0.4.0 [flutter flutter_web_plugins wakelock_platform_interface]
- wakelock_platform_interface 0.3.0 [flutter meta]
- wakelock_web 0.4.0 [flutter flutter_web_plugins js wakelock_platform_interface]
- wakelock_windows 0.2.0 [flutter wakelock_platform_interface win32]
- win32 2.7.0 [ffi]
- xdg_directories 0.2.0+2 [meta path process]
- xml 6.1.0 [collection meta petitparser]
- yaml 3.1.1 [collection source_span string_scanner]

I changed the path to put bundles.txt as public and now it is working, but it still loaded with error.
  static const bucket = "felix-366510.appspot.com";
  static const storage = "https://storage.cloud.google.com";
  final Message msg = Get.find();

  Future<QuerySnapshot<Map<String, Object?>>> getEpic() async {
    QuerySnapshot<Map<String, Object?>>? bundleData;
    const path = "$storage/$bucket/epic_bundle.txt";
    try {
      final response = await http.get(Uri.parse(path));
      Uint8List buffer = Uint8List.fromList(response.body.codeUnits);
      LoadBundleTask task = FirebaseFirestore.instance.loadBundle(buffer);

      await task.stream.last;
      bundleData = await FirebaseFirestore.instance.namedQueryGet('latest-epic-query', options: const GetOptions(source: Source.cache));
    } on FirebaseException catch (e) {
      log(e.code);
    }
    return bundleData!;
  }

@gOzaru
Thanks for the report. Can you provide the complete error log ?
From the code sample provided, you seem to be using Getx which is third party plugin. Do you get same behavior by only using cloud_firestore ? If so, would be good to get a complete code sample.

GetX is only used as dependency injection.
So the error log, uhm,.. where did I get it?

Here is the screenshot when I run the query normally without any bundle at all.

Please provide a complete minimal code sample that we can use to verify this behavior further.

https://github.com/gOzaru/felix_idn
Try:

Login using gmail
Tap on top icon from HIVE
Tap on Piano icon
Tap on Relax tab
It will give error

The error:

W/Firestore(24980): (24.4.0) [Firestore]: Loading bundle failed : java.lang.NumberFormatException: For input string: "<!doctype html>

This is how I generated bundle in Cloud Function:
// @ts-check
const functions = require("firebase-functions");
const admin = require("firebase-admin");
const firestore = admin.firestore();
const fs = require("fs");

// This will create it every month
exports.BundleRelax = functions.pubsub.schedule("0 0 1 * *").retryConfig({
  retryCount: 3,
  maxRetryDuration: "30s",
}).onRun(async (context) => {
  const bundleId = "latest-relax";
  const bundle = firestore.bundle(bundleId);
  const querySnapshot = await firestore.collection("Music_Relax").where("status.state", "==", 1).get();

  // Build the bundle
  const bundleBuffer = bundle.add("latest-relax-query", querySnapshot).build();

  // Create tmp local file to upload
  const bundledFilePath = "/tmp/bundle.txt";
  fs.writeFileSync(bundledFilePath, bundleBuffer);

  // Upload bundle file to Storage
  const bucket = "felix-366510.appspot.com";
  const destination = "relax_bundle.txt";
  await admin.storage().bucket(bucket).upload(bundledFilePath, {
    destination,
    public: true,
    metadata: {
      cacheControl: "public, max-age=3110400",
    },
  }).then((value) => {
    return Promise.resolve("success");
  });
});

Probably I should add information that all my Firestore documents have 2 map variables. Maybe this is what cause loadBundle failed to read. Because I run the query normally and it gives data very well. So probably, it is map variables.
Maybe not.

If this issue wasted time almost to one week or more, I will close this repository as public and use another approach to save Firestore reads, like what I found in dart-package: firestore-cache. It is just more saving time and reads. I will leave this bundle issue and continue progress to finish my project.
Thank you guys.

https://github.com/gOzaru/felix_idn

From the repo, I don't see any firebase related code and lib just contains default counter code. Am I missing something here ?
Also, what platform are you seeing this error on ? Android, iOS or web ?

Probably I should add information that all my Firestore documents have 2 map variables. Maybe this is what cause loadBundle failed to read. Because I run the query normally and it gives data very well. So probably, it is map variables.
Maybe not.

Since I don't have the code sample to look at, can you try to use namedQueryGet and see if it helps ?

Yeah @darshankawar it should be on branch starting, not master.
I am on Android.
The code is located in lib>menu>music>download.dart.
There you can see that I input namedQueryGet only to derived bundle's content.

Thanks for the update and patience. Keeping this issue open for further insights from the team.
/cc @russellwheatley

Hi @gOzaru, this looks odd to me. It looks like you're trying to bundle HTML code rather than the Firestore query snapshot.

The error:

W/Firestore(24980): (24.4.0) [Firestore]: Loading bundle failed : java.lang.NumberFormatException: For input string: "<!doctype html>


incompatabily with smart dealer...?

SmarterDealer-2.0.0 btw
if first turn is anything but "always first", the dealer can either softlock at start, or hang so bad, it can lag or even crash the game, I'm unsure if this is a compatibility issue, or a smart dealer issue, as I don't know how to debug anything nor retrieve any crash logs

This issue is probably related to the mod loader itself. There are some errors when multiple mods try to modify game scripts.
I tested the game with the SmarterDealer mod. Now, with v1.4.1, SmarterDealer is just ignored during loading due to load errors.
I'll leave this issue open in the hope that the mod loader will be fixed someday.


datadog-plugin: Set metrics.required to be false

Summary
The Datadog plugin is configured to set DEFAULT_METRICS; meaning you don't have to manually configure any metrics to send to Datadog (which is great!). However, when the schema sets required = true alongside a default value, the Admissions Controller will fail with the following error if no metrics are provided:
Error: UPGRADE FAILED: cannot patch "global-datadog" with kind KongClusterPlugin: admission webhook "validations.kong.konghq.com" denied the request: plugin failed schema validation: schema violation (config.metrics: required field missing)

In order to use the default Datadog metrics values and the Admissions Controller in parallel, this value needs to be false.
Full changelog

[Datadog Plugin] Update Datadog schema, to set the config for metrics.required to false

Issue reference
Instead of creating a new issue, I've raised this PR to address the issue myself.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Please disregard the temporary closing of this PR; I merged an internal PR that referenced this PR and Git did some unexpected magic.

What's the usecase of configuring the plugin without metrics? then maybe not configure it at all?

What's the usecase of configuring the plugin without metrics? then maybe not configure it at all?

When you configure the plugin without metrics, it will configure the default metrics. This would mean the config looks like so, which is much cleaner and ensures we do not lose out on any newly introduced metrics:
apiVersion: configuration.konghq.com/v1
kind: KongClusterPlugin
metadata:
  name: global-datadog
  annotations:
    kubernetes.io/ingress.class: kong
  labels:
    global: "true"
config:
  host: <host>
  port: 8125
  metrics:
  prefix: <prefix>
  service_name_tag: kong_upstream
plugin: datadog

However, because of the schema for metrics being set to required = true, despite it setting the default value for those metrics anyway the Kong Admissions Controller will result in an error as stated in the description of the PR.
Our config has had to be set as following:
apiVersion: configuration.konghq.com/v1
kind: KongClusterPlugin
metadata:
  name: global-datadog
  annotations:
    kubernetes.io/ingress.class: kong
  labels:
    global: "true"
config:
  host: <host>
  port: 8125
  metrics:
  prefix: <prefix>
  service_name_tag: kong_upstream
  # Defaults copied from: https://github.com/Kong/kong/blob/2.8.1/kong/plugins/datadog/schema.lua#L28-L66
  metrics:
    - name: request_count
      stat_type: counter
      sample_rate: 1
      consumer_identifier: custom_id
      tags:
        - app:{{ . }}
    - name: latency
      stat_type: timer
      consumer_identifier: custom_id
      tags:
        - app:{{ . }}
    - name: request_size
      stat_type: timer
      consumer_identifier: custom_id
      tags:
        - app:{{ . }}
    - name: response_size
      stat_type: timer
      consumer_identifier: custom_id
      tags:
        - app:{{ . }}
    - name: upstream_latency
      stat_type: timer
      consumer_identifier: custom_id
      tags:
        - app:{{ . }}
    - name: kong_latency
      stat_type: timer
      consumer_identifier: custom_id
      tags:
        - app:{{ . }}
plugin: datadog

Aside from this, it's generally not recommended to require a value to be passed when defaults are configured. My change shouldn't break anything for others, as anyone who has configured the metrics themselves to date will have them configured, and anyone who doesn't will continue to have the defaults configured.
This will mean that anyone using the Datadog plugin is able to also use the Kong Admissions Controller in line with the Datadog default metrics and keep their plugin config clean.

what's the "Kong Admissions Controller", do you mean the Ingress Controller?
Looks like a bug on that end to me. The Kong managament API will accept the empty setting and fill in the defaults.

what's the "Kong Admissions Controller", do you mean the Ingress Controller?
Looks like a bug on that end to me. The Kong managament API will accept the empty setting and fill in the defaults.

The Admissions Controller ships with the Ingress Controller, and it validates plugin schema. [Kong Admission Controller docs]
Admissions Controller will read the schema of a plugin, such as the Datadog plugin in this case, and prevent a plugin from being deployed with invalid config to a Kubernetes cluster.
Currently, the Datadog plugin schema is incorrectly configured which is what my change is trying to correct. It is not a bug on the Admissions Controller side, as it is behaving as expected based on the Datadog plugin schema.
Based on the current configuration, you must configure metrics in your plugin config, despite there being default values available. This is an anti-pattern.
If there are default values available, then the schema should not require that value to be set. That's what my change is doing.

The field is still required despite the default because that's how it prevents subsequent updates from deleting it AFAIK. It's irrelevant on create actions, but relevant for updates.
This is another instance of https://github.com/Kong/kong/issues/8093. The admission webhook POSTs the proposed configuration to the admin API's /schemas/plugins/validate, which returns if true if the configuration would be accepted or false if it would not be.
That endpoint is not able to fill in default fields, and the subsequent validation does not allow them to be empty (sorta? there's the full_check option but I'm not sure of its intended use--it looks more intended to ignore required entirely in some cases, default or no). That's what would need to change to allow this.
That comes with its own problem, however: the update case still matters, and the endpoint can't distinguish between a new or modified object. AFAIK simply populating the default would allow you to create (at least on the Kubernetes side) invalid configuration that will break updates. I think we could remedy this with separate POST/PUT/PATCH handlers that mimic their admin API counterparts (POST populates defaults, the others do not). This might be a bit weird since you'd be PATCHing nothing, but it'd hopefully work.

Thank you @rainest for the additinoal context.
Given that, I'll close this PR. Is there a plan to visit the issue you linked to solve the underlying issue?


[TEST COVERAGE] Improve test coverage of time-series graph submodule

Signed-off-by: Adam Li<EMAIL_ADDRESS>Fixes: #52
Changes proposed in this pull request:

Add tests for time series graphs

Before submitting

[ ] I've read and followed all steps in the Making a pull request
section of the CONTRIBUTING docs.
[ ] I've updated or added any relevant docstrings following the syntax described in the
Writing docstrings section of the CONTRIBUTING docs.
[ ] If this PR fixes a bug, I've added a test that will fail without my fix.
[ ] If this PR adds a new feature, I've added tests that sufficiently cover my new functionality.

After submitting

[ ] All GitHub Actions jobs for my pull request have passed.

Codecov Report

Merging #37 (5f5aeb2) into main (ba73b32) will increase coverage by 2.50%.
The diff coverage is 81.81%.

@@            Coverage Diff             @@
##             main      #37      +/-   ##
==========================================
+ Coverage   68.98%   71.49%   +2.50%
==========================================
  Files          27       27
  Lines        2038     2059      +21
  Branches      510      527      +17
==========================================
+ Hits         1406     1472      +66
+ Misses        526      477      -49
- Partials      106      110       +4

Impacted Files
Coverage Δ

pywhy_graphs/classes/timeseries/pag.py
78.66% <70.00%> (+31.52%)
:arrow_up:

pywhy_graphs/classes/timeseries/cpdag.py
87.27% <71.42%> (+42.17%)
:arrow_up:

pywhy_graphs/networkx/classes/mixededge.py
81.45% <76.92%> (+0.03%)
:arrow_up:

pywhy_graphs/classes/pag.py
79.03% <100.00%> (+1.44%)
:arrow_up:

pywhy_graphs/classes/timeseries/base.py
84.77% <100.00%> (+0.12%)
:arrow_up:

pywhy_graphs/classes/timeseries/mixededge.py
40.70% <100.00%> (+2.11%)
:arrow_up:

pywhy_graphs/simulate.py
87.09% <100.00%> (+0.14%)
:arrow_up:

pywhy_graphs/classes/admg.py
85.36% <0.00%> (+2.43%)
:arrow_up:

... and 2 more

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more