Undeprecate TagContextBuilder and Tag's put  without TagMetadata

What version of OpenCensus are you using?
0.20.0
What did you do?
When upgrading the lib to 0.20.0 some methods got deprecated without no good reasoning. TagContextBuilder method put(TagKey key, TagValue value) was deprecated in favor for put(TagKey key, TagValue value, TagMetadata tagMetadata) but I'm having hard time understanding why TagMetadata should be obligatory for everyone.
What did you expect to see?
Remove the deprecation for put(TagKey key, TagValue value). We should aim for simplicity while designing an API and this changes makes the current one unnecessarily complicated.
I would like to be able to simply do:
put(someTag, TagValue.create(someValue));

What did you see instead?
I'm forced to either do:
put(someTag, TagValue.create(someValue), null)

or
put(someTag, TagValue.create(someValue), tagMetadata.create(TagTtl.UNLIMITED_PROPAGATION))

Which is overly verbose.

TagContextBuilder method put(TagKey key, TagValue value) was deprecated in favor for put(TagKey key, TagValue value, TagMetadata tagMetadata) but I'm having hard time understanding why TagMetadata should be obligatory for everyone.

The reason is TagContextBuilder.put(TagKey key, TagValue value) used to be the only API that generates tags, and it produced propagating tags by default. After the discussion in https://github.com/census-instrumentation/opencensus-specs/pull/233, we agreed that most of time tags are only used to group metrics and most tags should only be within the process (non-propagating). To avoid breaking the existing behavior but also bringing this to users' attention, we decided to deprecate the old API. With the new API
put(TagKey key, TagValue value, TagMetadata tagMetadata) users should be very aware of which tags they created are propagating and which are not.

We should aim for simplicity while designing an API and this changes makes the current one unnecessarily complicated.

Agree, but still we want to discourage users (or at least give a warning) on producing propagating tags unintentionally. An alternative approach is to add a new convenient API like putLocal(TagKey key, TagValue value) which produces non-propagating tags while doesn't need to take a metadata every time.

I understand the problem and the reasons why now. I think the putLocal solution is more than fine for me.

Thanks, https://github.com/census-instrumentation/opencensus-java/pull/1851 should address it.


Cilium status JSON output: fix error encoding

Please ensure your pull request adheres to the following guidelines:

[x] For first time contributors, read Submitting a pull request
[x] All code is covered by unit and/or runtime tests where feasible.
[x] All commits contain a well written commit description including a title,
description and a Fixes: #XXX line if the commit addresses a particular
GitHub issue.
[x] If your commit description contains a Fixes: <commit-id> tag, then
please add the commit author[s] as reviewer[s] to this issue.
[x] All commits are signed off. See the section Developer’s Certificate of Origin
[ ] Provide a title or release-note blurb suitable for the release notes.
[ ] Are you a user of Cilium? Please add yourself to the Users doc
[ ] Thanks for contributing!

Currently, the JSON output from cilium status -o json does not actually marshal the errors correctly.
eg. From summary -
Errors:                cilium             cilium          2 pods of DaemonSet cilium are not ready
                       cilium             cilium          daemonset cilium is rolling out - 2 out of 4 pods updated
Warnings:              cilium             cilium-c94lk    pod is pending
                       cilium             cilium-x9s8v    pod is pending

But the JSON output would be -
 "errors": {
  "cilium": {
   "cilium-c94lk": {
    "Errors": null,
    "Warnings": [
     {}
    ],
    "Disabled": false
   },
   "cilium-x9s8v": {
    "Errors": null,
    "Warnings": [
     {}
    ],
    "Disabled": false
   }

After this change, the errors and warnings will be correctly marshaled into JSON format.
Correctly format `cilium status -o json` CLI output for errors and warnings

@derailed thanks for the ✅, I had to update my account email for the sign-off to work properly, could you tell me how to re-trigger the build? Also how do I get rid of the dont-merge/needs-release-note-label label? I didn't format my release note correctly? (Sorry, new here)

Please rebase on top of the main branch to remove the "merge" commit. Also, the format for the Signed-off-by tag is incorrect, which is why the maintainer's little helper is complaining. Please ensure it follows the standard format per the linked documentation from MLH bot. If you are using the command-line, then using git commit -s for --signoff will add your signoff based on your git author settings (you can also use --amend to update the latest commit).

The sign-off line was still malformed, so I fixed it and re-pushed.

/test

/test

@joestringer - might need your help to re-trigger tests 👀

Thanks for the contribution @nimishamehta5 !


https://discordapp.com/invite/h3qqg6F

 [https://www.google.com/?client=safari]

#2864
28331.27.2<PHONE_NUMBER>)
Device: iPhone 8 Plus (iOS 13.3)
TestFlight:()UIDU-707

#386

@ROO7-SERVER
Sent with GitHawk

#2168
Sent with GitHawk


renoise: add mpg123 to runtime deps

Motivation for this change
Renoise cannot read/use MP3 samples unless mpg123 is available to it.
It's an optional dependency and maybe there's a better way to provide this.
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Fits CONTRIBUTING.md.

@the-kenny for review?

Sorry for the noise…
PR is now using wrapProgram


Improved temporary website

added links section in compliance with https://www.apache.org/foundation/marks/pmcs#introduction
Reformated mission statement
Fixed social icons in footer and
linked to Github repository and ASF mailing list

thanks @ottlinger !


bump up minSdkVersion from 8 to 11 (android v3)

Current Adroid v5 backwards supporting until android v3; seems fair.

created pull request:
https://github.com/googlesamples/android-NetworkConnect/pull/5

I'm not sure I understand what this issue here is. The app runs correctly on Gingerbread.

Looks good from my POV as well.
Closing this issue.
Feel free to re-open with a comment on why this version bump might be necessary.


glamoroustoolkit: 1.1.0 -> 1.1.2

Description of changes
Upgrade the GlamorousToolkit VM from 1.1.0 to 1.1.2.  Package is version number and hash change only.
Details at: https://github.com/feenkcom/gtoolkit-vm/releases/tag/v1.1.2
Details at
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Thanks, @NickCao


Client.init() got an unexpected keyword argument ‘proxies’

Looks like this package is also effected by the httpx package changing a method signature:
https://community.openai.com/t/error-with-openai-1-56-0-client-init-got-an-unexpected-keyword-argument-proxies/1040332
We fixed this locally by doing the same as they suggest in the thread above:
httpx<0.28

This is already fixed in the latest version!

Still seeing this error message on anthropic==0.39.0 on Python 3.12.8
Downgrading to http<0.27 fixes it.


Bug: [/scripts-131430-121129324/step_script: /root/.sdkman/bin/sdkman-init.sh: line 75: syntax error: unexpected "("]

Bug report

$ source "/root/.sdkman/bin/sdkman-init.sh"
/scripts-131430-121129324/step_script: /root/.sdkman/bin/sdkman-init.sh: line 75: syntax error: unexpected "("

To reproduce

Step 1: in Gitlab CI/CD, build a very simple job which only runs SDKMAN:
build-without-sock:
  image: docker:stable
  stage: build
  script:
    - apk add curl
    - apk add bash
    - apk add unzip
    - apk add zip
    - curl -s "https://get.sdkman.io" | bash
    - source "/root/.sdkman/bin/sdkman-init.sh"
    - sdk version

Reproducible 100%, the line source "/root/.sdkman/bin/sdkman-init.sh" would yield /scripts-131430-121129324/step_script: /root/.sdkman/bin/sdkman-init.sh: line 75: syntax error: unexpected "("
System info

It is a base very famous docker:stable image

This is happening to me as well, would love a solution. Running on an Alpine 3.14 Docker. I was able to get it to work on Amazon Linux, my version was running bash 4.2.46 from 2011, and Alpine 3,14 uses a much more modern version. Maybe related?

Hi @basolopl!
SDKMAN! currently doesn't work with Alpine.

That's right, the underlying problem is that we require bash or zsh as she'll, and alpine only provides sh. You could install bash before installing SDKMAN.

@patpatpat123 In the YAML snippet above, your script installs SDKMAN using bash, but then, on the following line, you attempt to source it with the current shell (Alpine's shell is sh, not bash). You need to install bash, assume that shell, and then install and source SDKMAN.

Hi @basolopl!
SDKMAN! currently doesn't work with Alpine.

thanks for getting back with me! I've been trying to run it with bash but maybe it isn't taking. To be honest, this is my first unfortunate run in with Alpine, so I probably am not doing it right. I've had bash installed, but it seems it won't pick it up. Any advice on how to get bash to be used? I've tried stuff like source ~/.bashrc and even calling bash instead of source, which runs bash but then sdk isn't found as a command and also bash -c "source [etc...]".


Directives with templateURL

Hey, I am slightly confused as to how I am supposed to create a directive that uses a templateURL.
I currently have a structure of /views/templates/directiveItem.html
But every time I reference that it just returns the http://localhost:3001 index.html.
Would I have to create routes for each directiveItem and if could you please give me an example?

The problem is that you're referencing a template file that doesn't actually exist in the build directory. The gulp views task concatenates all html files, converting them to Javascript, which is later included in the Browserify task.
 In your example, it would just be directiveItem.html I believe.

Is this not connected to the same issue we found with browserify? :)

@jakemmarsh, I attempted to setup a route for the templateURL but it didn't seem to work, it may be just because I'm new to Angular anyway. Maybe I should just configure the build to include a /views/templates/ folder.

Took the wrong approach with this one.
Solved the issue by wrapping the targetUrl with require() like so.
templateUrl: require('path/to/file.html')

Glad you were able to solve it, thanks for the update! :+1:

Hey Usain,
I am having the same issue, so tried wrapping my templateUrl, in routes.js, path to template with require but Gulp spits out an error saying it cannot find the module.
I have the path correct so I'm confused, I too am still inly getting index.html loaded up.
Did you have to modify any other files?

@philglen, I have updated my comment above, i meant to say template instead of templateUrl. Hope this helps!


No connection possible

Hello, everyone,
I get the following error message when setting up: No connection possible. Is the API key correct and is the internet connection OK?
"""Config flow for Govee integration."""
import logging
from govee_api_laggat import Govee, GoveeNoLearningStorage
from govee_api_laggat.govee_api_laggat import GoveeError
from homeassistant import config_entries, core, exceptions
import homeassistant.helpers.config_validation as cv
from homeassistant.const import CONF_API_KEY, CONF_DELAY
from homeassistant.core import callback
import voluptuous as vol
from typing import Any
from .const import (
CONF_DISABLE_ATTRIBUTE_UPDATES,
CONF_OFFLINE_IS_OFF,
CONF_USE_ASSUMED_STATE,
DOMAIN,
)
_LOGGER = logging.getLogger(name)
async def validate_api_key(hass: core.HomeAssistant, user_input):
"""Validate the user input allows us to connect.
Return info that you want to store in the config entry.
"""
api_key = user_input[CONF_API_KEY]
async with Govee(api_key, learning_storage=GoveeNoLearningStorage()) as hub:
    _, error = await hub.get_devices()
    if error:
        raise CannotConnect(error)

# Return info that you want to store in the config entry.
return user_input

can anyone help

Same Problem here


Avoid redundant binary operator mutations

Exploit constant folding to reduce the number of mutations applied to binary operators in the case when one of the operands is 0, 1 or -1.
Fixes #89.

@JamesLee-Jones Here's what I would like you to do for the single file tests:

Change the check and regenerate scripts (both the "all" and "one" versions) so that they do the "run dredd then compile" step twice: once with optimizations enabled (no flag), and once with no optimizations (the flag).
In the case where optimizations are enabled they should check against the blah.c/cc.expected file (or generate this if it doesn't exist, in the regenerate cases)
In the case where optimizations are disabled they should check against a blah.c/cc.noopt.expected (or generate this if it doesn't exist)

This will lead to many cases where blah.c/cc.expected is identical to blah.c/cc.noopt.expected, but I think that's OK because:

as we implement more optimisations the differences will decrease
I don't think it matters if there's some redundancy (I toyed with the idea of having the .noopt file only be expected / generated if it's different from the other expectation file, but that makes the testing code more complex)


cleaner tests, use promises rather than 'done' argument

Promises :heart: :heart_eyes_cat: :dancers:

Sure, thanks!


feat: tls connectivity for grpc syncs

This PR
Note - based on open pr https://github.com/open-feature/flagd/pull/297
Introduce TLS connectivity for GRPC sync provider.
TLS can be enabled using schema grpcs://. For example,
./flagd start --uri grpcs://localhost:8090
Further, a self-sign certificate can be provided for TLS connectivity using startup arguments -g, --grpc-cert-path string. For example,
./flagd start --uri grpcs://localhost:8090 -g <CA_CERT>
Additional

Refactoring to isolate grpc connection handling
Unit tests to cover connection retry attempts

How to test
Start mock server impl - https://github.com/Kavindu-Dodan/flagd-grpc-sync-server & then run flagd with grpc tls

Closing as diverged too much from main 😞
Will work on a fresh PR when time permits.


Recursions Folder with some programs added

I added a recursions section with some programs in it.
Please check it out and accept my pull request so that it gets merge with the main upstream.

Nice work!✨


Tqdm loader

In builder.py add tqdm loader showing progress. Allowing users to see progress of documents getting ingested into the vectorstore when loading large files

I would like to work on it but i need more info about this issue like where need to apply tqdm and some more if there anything else.

@PentW0lf
When we run builder a loader like animation should come showing the progress of number of files in documents directory converted into vectors. Also you can extend this for URL's too.

@neokd
Do you mean 'docs' directory ??

I mean documents folder which is there in neogpt folder

I mean documents folder which is there in neogpt folder

Gotcha, gimme some time.

@PentW0lf yeah sure

I'm bit confuse that where to show progress animation.
look:

do you want animation in progress of between max_seq_length 512 and last two line which is conversion into vectors (correct me if I'm wrong)  or just file count like Loading document or Loading batch etc...

You can show it After Loading document batch as one progress bar.


Language settings not clear

Should be clearer what setting the language preference does.  I assumed it would flip the UI language but it seems to have no effect.

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

ID: d28a6661-50d4-527e-9727-ab5974da951d
Version Independent ID: fdac329a-b9b4-77d0-916a-dee6d2576379
Content: Set your preferences - Azure DevOps
Content Source: docs/organizations/settings/set-your-preferences.md
Product: devops
Technology: devops-settings
GitHub Login: @chcomley
Microsoft Alias: chcomley

Thanks for your feedback, @nephinj. I'll make this clear in the article. You'll know when it's live, as this issue will automatically be closed at that point. Thanks again.


Windows build fails with "pywrap_tensorflow_import_lib_file: variable '$<' : no input file"

Click to expand!
Issue Type
Build/Install
Have you reproduced the bug with TF nightly?
Yes
Source
source
Tensorflow Version
2.11
Custom Code
Yes
OS Platform and Distribution
Windows 10
Mobile device
No response
Python version
3.10.9
Bazel version
5.2.0
GCC/Compiler version
MSVC 2019
CUDA/cuDNN version
No response
GPU model and memory
CPU build
Current Behaviour?
When building `tensorflow 2.11` (and nightly) for Windows (CPU), the bazel build step fails.

`ERROR: C:/tensorflow211/tensorflow/python/BUILD:3776:8: in cmd attribute of genrule rule
//tensorflow/python:pywrap_tensorflow_import_lib_file: variable '$<' : no input file
ERROR: C:/tensorflow211/tensorflow/python/BUILD:3776:8: Analysis of target '//tensorflow/python:pywrap_tensorflow_import_lib_file'
failed
ERROR: Analysis of target '//tensorflow/tools/pip_package:build_pip_package' failed; build aborted:`

The failure occurs at this genrule in python/BUILD:

`tensorflow/python/BUILD:3633`
`genrule(
    name = "pywrap_tensorflow_import_lib_file",
    srcs = [":get_pywrap_tensorflow_import_lib_file"],
    outs = ["_pywrap_tensorflow_internal.lib"],
    cmd = select({
        "//tensorflow:windows": "cp -f $< $@",
        "//conditions:default": "touch $@",  # Just a placeholder for Unix platforms
    }),
    visibility = ["//visibility:public"],
)`

My knowledge of bazel is limited, but it seems that "$<" is blank due to the empty array for //tensorflow:windows here:

`tensorflow/python/BUILD:366`
`dynamic_deps = [":_pywrap_tensorflow_internal.so"] + select({
        "//tensorflow:macos": ["//tensorflow:libtensorflow_framework.%s.dylib" % VERSION],
        "//conditions:default": ["//tensorflow:libtensorflow_framework.so.%s" % VERSION],
        "//tensorflow:windows": [],
    }),`

Any help getting this to build is appreciated. Thanks!

Standalone code to reproduce the issue
/c/tf211/tensorflow-base/_h_env/Library/bin/bazel build --config=mkl --define=no_tensorflow_py_deps=true --verbose_failures --config=opt
--copt=-D_copysign=copysign --host_copt=-D_copysign=copysign --cxxopt=-D_copysign=copysign --host_cxxopt=-D_copysign=copysign
--python_path=/c/tf211/tensorflow-base/_h_env/python.exe
--action_env=PYTHON_BIN_PATH=/c/tf211/tensorflow-base/_h_env/python.exe
--action_env=PYTHON_LIB_PATH=/c/tf211/tensorflow-base/_h_env/Lib/site-packages
'--linkopt=-LC:\tf211\tensorflow-base\_h_env\Library' --strip=always --experimental_cc_shared_library //tensorflow/tools/pip_package:build_pip_package

Relevant log output
+ /c/tf211/tensorflow-base/_h_env/Library/bin/bazel build --config=mkl --define=no_tensorflow_py_deps=true --verbose_failures --config=opt
--copt=-D_copysign=copysign --host_copt=-D_copysign=copysign --cxxopt=-D_copysign=copysign --host_cxxopt=-D_copysign=copysign
--python_path=/c/tf211/tensorflow-base/_h_env/python.exe
--action_env=PYTHON_BIN_PATH=/c/tf211/tensorflow-base/_h_env/python.exe
--action_env=PYTHON_LIB_PATH=/c/tf211/tensorflow-base/_h_env/Lib/site-packages
'--linkopt=-LC:\tf211\tensorflow-base\_h_env\Library' --strip=always --experimental_cc_shared_library //tensorflow/tools/pip_package:build_pip_package
Starting local Bazel server and connecting to it...
WARNING: Option 'java_toolchain' is deprecated
WARNING: Option 'host_java_toolchain' is deprecated
WARNING: Option 'experimental_strict_action_env' is deprecated: Use --incompatible_strict_action_env instead
INFO: Reading 'startup' options from c:\tf211\tensorflow-base\work\.bazelrc: --output_user_root=C:/tmp
INFO: Options provided by the client:
  Inherited 'common' options: --isatty=0 --terminal_columns=80
INFO: Reading rc options for 'build' from c:\tf211\tensorflow-base\work\.bazelrc:
  Inherited 'common' options: --experimental_repo_remote_exec
INFO: Options provided by the client:
  'build' options: --python_path=C:/tf211/tensorflow-base/_h_env/python.exe
INFO: Reading rc options for 'build' from c:\tf211\tensorflow-base\work\.bazelrc:
  'build' options: --define framework_shared_object=true --java_toolchain=@tf_toolchains//toolchains/java:tf_java_toolchain
--host_java_toolchain=@tf_toolchains//toolchains/java:tf_java_toolchain --define=use_fast_cpp_protos=true --define=allow_oversize_protos=true --spawn_strategy=standalone -c opt
--announce_rc --define=grpc_no_ares=true --noincompatible_remove_legacy_whole_archive --enable_platform_specific_config --config=short_logs --config=v2
INFO: Reading rc options for 'build' from c:\tf211\tensorflow-base\work\.tf_configure.bazelrc:
  'build' options: --action_env PYTHON_BIN_PATH=C:/tf211/tensorflow-base/_h_env/python.exe --action_env
PYTHON_LIB_PATH=C:/tf211/tensorflow-base/_h_env/Lib/site-packages
--python_path=C:/tf211/tensorflow-base/_h_env/python.exe --define=with_xla_support=false
--define=PREFIX=C:/tf211/tensorflow-base/_h_env --copt=/d2ReducedOptimizeHugeFunctions --host_copt=/d2ReducedOptimizeHugeFunctions
--define=override_eigen_strong_inline=true
INFO: Found applicable config definition build:short_logs in file c:\tf211\tensorflow-base\work\.bazelrc: --output_filter=DONT_MATCH_ANYTHING
INFO: Found applicable config definition build:v2 in file c:\tf211\tensorflow-base\work\.bazelrc: --define=tf_api_version=2 --action_env=TF2_BEHAVIOR=1
INFO: Found applicable config definition build:mkl in file c:\tf211\tensorflow-base\work\.bazelrc: --define=build_with_mkl=true
--define=enable_mkl=true --define=tensorflow_mkldnn_contraction_kernel=0 --define=build_with_openmp=true -c opt
INFO: Found applicable config definition build:opt in file c:\tf211\tensorflow-base\work\.tf_configure.bazelrc: --copt=/arch:AVX --host_copt=/arch:AVX
INFO: Found applicable config definition build:windows in file c:\tf211\tensorflow-base\work\.bazelrc: --copt=/W0 --copt=/D_USE_MATH_DEFINES
--host_copt=/D_USE_MATH_DEFINES --cxxopt=/std:c++17 --host_cxxopt=/std:c++17 --config=monolithic --copt=-DWIN32_LEAN_AND_MEAN --host_copt=-DWIN32_LEAN_AND_MEAN --copt=-DNOGDI
--host_copt=-DNOGDI --copt=/experimental:preprocessor --host_copt=/experimental:preprocessor --linkopt=/DEBUG --host_linkopt=/DEBUG --linkopt=/OPT:REF --host_linkopt=/OPT:REF
--linkopt=/OPT:ICF --host_linkopt=/OPT:ICF --experimental_strict_action_env=true --verbose_failures --distinct_host_configuration=false --copt=/Zc:__cplusplus
INFO: Found applicable config definition build:monolithic in file c:\tf211\tensorflow-base\work\.bazelrc: --define framework_shared_object=false
Loading:
Loading: 0 packages loaded
Loading: 0 packages loaded
Loading: 0 packages loaded
Loading: 0 packages loaded
Loading: 0 packages loaded
Loading: 0 packages loaded
Loading: 0 packages loaded
Loading: 0 packages loaded
Loading: 0 packages loaded
Loading: 0 packages loaded
Loading: 0 packages loaded
Loading: 0 packages loaded
Analyzing: target //tensorflow/tools/pip_package:build_pip_package (1 packages loaded, 0 targets configured)
Analyzing: target //tensorflow/tools/pip_package:build_pip_package (285 packages loaded, 4132 targets configured)
ERROR: C:/tf211/tensorflow-base/work/tensorflow/python/BUILD:3633:8: in cmd attribute of genrule rule
//tensorflow/python:pywrap_tensorflow_import_lib_file: variable '$<' : no input file
ERROR: C:/tf211/tensorflow-base/work/tensorflow/python/BUILD:3633:8: Analysis of target '//tensorflow/python:pywrap_tensorflow_import_lib_file' failed
ERROR: Analysis of target '//tensorflow/tools/pip_package:build_pip_package' failed; build aborted:

@AndrewVallette I was getting a similar error and I resolved it by creating a fresh virtual environment and cloning TensorFlow. Please let us know if this helps.

@mraunak Thank you, but this did not solve my issue. Today I tried another build in a fresh environment, just in case, but no luck.

@AndrewVallette try command:   "bazel clean --expunge" and then re-rerun the build, I observed, you are using --config=mkl,
https://github.com/tensorflow/tensorflow/blob/master/.bazelrc#L222 as per the documentation it is yet to be supported on windows. you may need to remove --config=mkl.

Hi, @AndrewVallette
Could you please check above workaround from @mraunak which may help you to resolve your issue ?
@sachinprasadhs, Could you please look into this issue ? Thank you!

@AndrewVallette , Thanks for your time and effort on reporting and investigating on this issue.
We will look into this issue, meanwhile, can you check the above suggestion and check if that works.
Also, TensorFlow 2.12 is released, could you please give it a try and let us know the outcome. Thanks!
@nitins17 , Do you have any pointers regarding this issue.
cc: @learning-to-play

Thank you all for the responses. I don't believe my issue is related to mkl, since I know that this is supported (the referenced comment is out of date).
I'll try a build of 2.12, and I will let you know how that goes!

2.12 still has the same issue.

@AndrewVallette please try the command: "bazel clean --expunge" to clean the bazel cache and then re-rerun the build

Thank you, but I have tried that and it does not resolve the issue.

Hi @AndrewVallette and @sachinprasadhs, I ran the bazel build command with all the arguments mentioned in the code to reproduce but was not able to reproduce the error. The build was successful on my end. In such cases, we recommend users start with the basic build command("bazel build --config=opt  //tensorflow/tools/pip_package:build_pip_package") and then add the arguments one by one. Also can you please change the location of TensorFlow folder, (as it will create a new bazel output folder and will refresh the third-party dependency files download)

@mraunak , Thanks for verifying from your end.
@AndrewVallette , Could you please follow the above comment and try from your side with the latest stable branch as well as Master branch.
For detailed guide on installing from source on Windows machine, you can follow this link https://www.tensorflow.org/install/source_windows

@mraunak Thanks for trying out the build yourself. I can make another attempt next week, where I will start with pruning down the arguments. I still think something is funky with the recent changes to the bazel script.. I'll let you know what I find :)

The issue is still present when building with just bazel build --config=opt //tensorflow/tools/pip_package:build_pip_package.
I still think the problem lies with the empty "//tensorflow:windows" field found in tensorflow/python/BUILD, which was shown in my original report: https://github.com/tensorflow/tensorflow/blob/d5b57ca93e506df258271ea00fc29cf98383a374/tensorflow/python/BUILD#L369)

@learning-to-play , Looks like it is related to the changes you have authored in the change list here https://github.com/tensorflow/tensorflow/commit/4ac2641eadd1d190196f1bcd26b5efdc616d90a3, Could you please take a look into this. Thanks

Can you update the Bazel version?

Thanks for mentioning that, I did just notice the docs say 5.3.0 for Windows CPU builds, but, 5.2.0 is the latest version I've been able to use at this time. I'll look into updating that, and will provide another update soon.

I updated to bazel 5.4.1 and the issue is no longer present, so we can consider this resolved.  It looks like Windows (and only Windows) really does need 5.3.0+. Thanks again for the help everyone!


create scorecards-analysis.yml

This action is used to validate the repository follows security best practices.
Pre-launch Checklist

[X] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[X] I read the Tree Hygiene wiki page, which explains my responsibilities.
[X] I read and followed the relevant style guides and ran the auto-formatter. (Unlike the flutter/flutter repo, the flutter/plugins repo does use dart format.)
[X] I signed the CLA.
[X] The title of the PR starts with the name of the plugin surrounded by square brackets, e.g. [shared_preferences]
[X] I listed at least one issue that this PR fixes in the description above.
[ ] I updated pubspec.yaml with an appropriate new version according to the pub versioning philosophy, or this PR is exempt from version changes.
[X] I updated CHANGELOG.md to add a description of the change, following repository CHANGELOG style.
[X] I updated/added relevant documentation (doc comments with ///).
[X] I added new tests to check the change I am making, or this PR is test-exempt.
[X] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on Discord.

Results will look like this https://github.com/flutter/engine/security/code-scanning


Run Python command is available in Jupyter Notebook Cell

I wonder if we want to hide this command for Jupyter notebook as it feels weird to run python in repl when users are already in Jupyter environment.

Hello! The Python team seems pretty positive about hiding this for Jupyter, but also curious to see any complains from users once we actually hide it.

TODO: should add another expression in "when" clause to not show Run selection in Terminal or Run selection in REPL when user is in Jupyter notebook.


Create ISSUE_TEMPLATE.md

Create initial ISSUE_TEMPLATE.md to help users supply us with the information needed
to quickly reproduce issues.

+1


Categories by most popular ??

Is it possible for /categories/list to have a query string to filter by most popular? Or maybe that is impossible for you to know?

Perhaps. I’ll have to look it over and see what the difficulty level is for that.

Thanks @daveajones .
This is certainly NOT a priority. No need to kill yourself over it.


NO-ISSUE: Update versions of GitHub actions

Description
GitHub deprecated some time ago version 12 of Node.js for actions.  But some of the actions that we use still use Node.js. That generates warnings when running the actions. This patch updates those actions to avoid the warnings.
Related: https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12
Type of change
Please select the appropriate options:

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update
[ ] This change is a documentation update

Testing
Tested running the actions.
Checklist

[x] I have performed a self-review of my own code
[ ] If a change is adding a feature, it should require a change to the README.md and the review should catch this.
[ ] If the change is a fix, it should have an issue. The review should make sure the comments state the issue (not just the number) and it should use the keywords that will close the issue on merge.
[ ] A change should not be merged unless it passes CI or there is a comment/update saying what testing was passed.
[ ] PRs should not be merged unless positively reviewed.

@flaper87 please review.


Fix presubmit errors

Fix some minor errors after running make presubmit.

Codecov Report

Merging #571 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #571   +/-   ##
=======================================
  Coverage   59.94%   59.94%
=======================================
  Files          30       30
  Lines        2142     2142
=======================================
  Hits         1284     1284
  Misses        589      589
  Partials      269      269

Continue to review full report at Codecov.

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


Invalid input syntax for the type timestamp

Hello,
thank you very much for the nice tool. I am evaluating it for a data integration use case and am experiencing issues when I initialize a new Postgres slave. The process is not successful for a table that contains NULLable DATETIME fields.
I am using:

pg_chameleon 2.0.6
MySQL 5.6 (source)
Postgres 9.6 (target)

The replication process starts without errors, but when it reaches said table, I receive the following error for about 90% of the rows, because the DATETIME column is not set (which is legal in my data model):
2018-05-17 15:01:17 MainProcess ERROR pg_lib.py (3414): error when inserting the row, skipping the row
2018-05-17 15:01:17 MainProcess WARNING pg_lib.py (3409): character mismatch when inserting the data, trying to cleanup the row data

Looking at the Postgres log, I could see the following error message:
ERROR:  invalid input syntax for type timestamp: "None" at character 596

The charater position is at an INSERT statement where the value is 'None' for a DATETIME field. I would expect that to be translated by psycopg2, but this seems  not to be the case. I can see that the error occurs always when the MySQL DATETIME field of that table is NULL. It seems that the script tries to insert 'None' strings instead of NULL which causes Postgres to complain, if I am not misstaken
The method causing the error is this, starting at line 3388 of pg_lib.py where the ValueError is thrown.
	def insert_data(self, schema, table, insert_data , column_list):
		"""
			The method is a fallback procedure for when the copy method fails.
			The procedure performs a row by row insert, very slow but capable to skip the rows with problematic data (e.g. encoding issues).

			:param schema: the schema name where table belongs
			:param table: the table name where the data should be inserted
			:param insert_data: a list of records extracted from the database using the unbuffered cursor
			:param column_list: the list of column names quoted  for the inserts
		"""
		sample_row = insert_data[0]
		column_marker=','.join(['%s' for column in sample_row])

		sql_head='INSERT INTO "%s"."%s"(%s) VALUES (%s);' % (schema, table, column_list, column_marker)
		for data_row in insert_data:
			try:
				self.pgsql_cur.execute(sql_head,data_row)
			except psycopg2.Error as e:
					self.logger.error("SQLCODE: %s SQLERROR: %s" % (e.pgcode, e.pgerror))
					self.logger.error(self.pgsql_cur.mogrify(sql_head,data_row))
			except ValueError:
				self.logger.warning("character mismatch when inserting the data, trying to cleanup the row data")
				data_row = [str(item).replace("\x00", "") for item in data_row]
				try:
					self.pgsql_cur.execute(sql_head,data_row)
				except:
					self.logger.error("error when inserting the row, skipping the row")

			except:
				self.logger.error("unexpected error when processing the row")
				self.logger.error(" - > Table: %s.%s" % (schema, table))

Any ideas if that is really the cause?

Hi, thanks for the feedback.
do you have a sample of dataset and the DML you are running so  I can test it?
it's ok a table with the pk and the offending field if you don't want to share the entire table definition.
Many thanks

Hi, the issue was caused by the row cleanup (which is triggered for example by NUL markers in text \x00). The cleanup wrongly did a cast for all the dictionary's values to text, therefore the literal None instead of the python's None.
I've added a skip for the None values as they get NULL during the replay process implicitly.
Can you please test if the fix is working as expected?
Thanks

I think I've found the real issue and I've additionally fixed the same problem during the replica.
The last commit should make it work properly.

the release 2.0.7 is out with the fix.
thanks for the feedback.


fix: use window ID when querying active tab

Context

Part of #292.
There was another edge case, but the video is not available anymore. It can be fixed in another PR or we keep this as draft until then.
Changes proposed in this pull request

Aparently this is a known bug: https://issues.chromium.org/issues/41160154.
In the video that was provided in the initial issue, when the extension popup is open and the focus is on the DevTools. moving focus to the extension's popup, we will get an empty array when we query the active tab.
The false positive is happening because of this return statement:
https://github.com/interledger/web-monetization-extension/blob/bf1baff5802a4472045c1bcca094873b3f4b919a/src/background/services/monetization.ts#L201-L203
Any suggestions for a good error message?

Extension builds preview

Name
Link

Latest commit
0408491d5352be5a82e5f443518809abc9714bc4

Latest job logs
Run #9502392977

DownloadDownload

Any suggestions for a good error message in case this is going to happen again? The false positive was happening because we did not throw an error when the tab ID was not defined, here:
https://github.com/interledger/web-monetization-extension/blob/740821ab1633fa14ac6125b433afa13ff81e3c82/src/background/services/monetization.ts#L203

Re https://github.com/interledger/web-monetization-extension/pull/333#issuecomment-2178059932
Does this happen only when devtools are open? When the tab.id may be undefined?

Re #333 (comment)
Does this happen only when devtools are open? When the tab.id may be undefined?

At one point I was able to reproduce it when switching between different window applications (another browser window or another app).

@raducristianpopa I could not reproduce this. Maybe we can add a simple error like "Could not find active tab" so we know what caused it in future.

Unrelated/related: I get this randomly sometimes

sessions undefined for some reason (just for additional safety, that check should be on sessions?.size, so we don't accidentally get divide by zero error.
https://github.com/interledger/web-monetization-extension/blob/740821ab1633fa14ac6125b433afa13ff81e3c82/src/background/services/monetization.ts#L207-L212


⚠ Bofrost.at has degraded performance

In c945bf4, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 805 ms

Resolved: Bofrost.at performance has improved in 088795a.


Delete by type query with DiscriminatorColumn generates SQL with missing join

Hey @dreab8 ,
I was working on some Search stuff and stumbled upon this. I'm not sure whether this is a bug or not so I thought it would be easier to show you a test 😃. If it is -- let me know, I'll submit a JIRA for it. As for the "bug", here's what's happening: If the joined entity hierarchy has a @DiscriminatorColumn  and I try to delete some records by type while not using the type where the discriminator column is defined (BaseEntity) to create a query, ORM generates one of the SQLs that is missing a join and results in an exception.

https://hibernate.atlassian.net/browse/HHH-17667

Hi @marko-bekhta ,
to it seems a bug.

Thanks for taking a look! 😃
I've added a JIRA ticket and updated a test a bit to clean up after itself 🙈

Superseded by #7737, thanks for the test!

nice, that was fast ! 😃


Ensure consistency of methods signatures

Bug:
The library assumes signatures of methods to be, somewhat:
methodName(requiredParam1, requiredParam2, form = {})

where requiredParam1 (requiredParam2, ..., requiredParamN)
are parameters that MUST be provided, and
form is an optional object allowing supplying any additional,
optional parameters that the Bot API allows.
This allows any new parameters added by Telegram to be
readily-supported by our library.
Notes:
This fix is backwards-compatible; while we should
notify the community of the change in method signatures,
old code using the old method signatures will not
break.
In the future, when we decide to release a major release
(i.e. bump major version), we could remove the code
providing this backwards-compatibility.

I also suggest:

Documenting the old signatures (for completeness)
Deprecation notice to allow users to migrate to new API with time

Should I proceed to include the above additions?

Current coverage is 78.77% (diff: 83.33%)

Merging #245 into master will decrease coverage by 0.03%

@@             master       #245   diff @@
==========================================
  Files             3          3
  Lines           538        556    +18
  Methods          97         97
  Messages          0          0
  Branches        100        111    +11
==========================================
+ Hits            424        438    +14
- Misses          114        118     +4
  Partials          0          0

Powered by Codecov. Last update ce4dff7...e6cfe90


Backup/Restore not working

The backup/restore function is not working. It restarts from the beginning in an endless loop.
The reason is a bug in the implementation of a partial page read.

Commit de598dccb32d146e8b2ae0e040b4a86fae3d3fee fixes the issue.


Normalize auto generated frontend-rule (docker)

What version of Traefik are you using (traefik version)?

I use docker 1.13 rc7, with a docker-compose file and the docker stack deploy command
This create a service (swarm mode) named
<stack>_<service>

What did you expect to see?
I want traefik create a frontend rule like
<stack>-<service>.<default_domain>

What did you see instead?
Traefik take the service name, so
<stack>_<service>.<default_domain>

So what can we do?
Can traefik change the underscore to hyphen in the normalize process ?
Cause underscores are not valid URI character
See https://tools.ietf.org/html/rfc1035
<domain> ::= <subdomain> | " "

<subdomain> ::= <label> | <subdomain> "." <label>

<label> ::= <letter> [ [ <ldh-str> ] <let-dig> ]

<ldh-str> ::= <let-dig-hyp> | <let-dig-hyp> <ldh-str>

<let-dig-hyp> ::= <let-dig> | "-"

<let-dig> ::= <letter> | <digit>

<letter> ::= any one of the 52 alphabetic characters A through Z in
upper case and a through z in lower case

<digit> ::= any one of the ten digits 0 through 9

Thanx for reading

I think we have to do that in that line :
https://github.com/containous/traefik/blob/913a297e8d2f5279bef79b29cb803f30e5aa5ef1/provider/docker.go#L398
We can't use normalize function as we need to keep dot in url :)

I made a PR for that : #1061
WDYT @emilevauge


Add option for signal quality checker when running experiments

When running experiments, users should be able to verify the quality of their signal right before starting an experiment.

fingers-crossed looking to focus on this now and link to PR


Nagative Sample Set for Custom Wake Word Generation

Hello @dscripka,
first thanks a lot for your efforts with providing an open source wake word solution - this is really great!
I'm currently preparing the data set to train a custom model based on your great tutorial and with the help of your "synthetic_speech_dataset_generation" repository I was also easily able to generate the ~100,000 positive samples.
But honestly, I'm struggling a bit with the negative ones. In all your pre-generated openWakeWord models it mentions this big data set for negative data:
The model was trained on approximately ~31,000 hours of negative data, with the approximate composition shown below:

    ~10,000 hours of noise, music, and speech from the [ACAV100M dataset](https://acav100m.github.io/)
    ~10,000 hours from the [Common Voice 11 dataset](https://commonvoice.mozilla.org/en/datasets), representing multiple languages
    ~10,000 hours of podcasts downloaded from the [Podcastindex database](https://podcastindex.org/)
    ~1,000 hours of music from the [Free Music Archive dataset](https://github.com/mdeff/fma)

In addition to the above, the total negative dataset also includes reverberated versions of the ACAV100M dataset (also using the simulated room impulse responses from the [BIRD Impulse Response Dataset](https://github.com/FrancoisGrondin/BIRD) dataset), and adversarial synthetic generations designed to be phonetically similar to the wakeword (e.g., "annex uh").

In the tutorial only a small sample data set is provided. While I could start now downloading similar amount of data from the various sources mentioned above, especially also generating the reverberated versions seems challenging.
As you obviously used the same big negative data set for all the 5 pre-generated wake words, I would assume that you put quite a bit of effort getting the negative samples "right".
And while the positive sample set is obviously very different for each wake word, I would expect the negative one can be very similar if not even the same.
Would you therefore mind just sharing the full big set of ~31,000 hours of negative samples, so other people like me can just download and re-use the same negative sample set you used for generating the existent wake words?
Thanks again for all your efforts
Andreas

Thanks for the great feedback, @ab-tools! I'm glad that you are finding openWakeword and the tutorials useful.
You raise an excellent point about the negative datasets, they are indeed very important to the overall performance of the models. I am considering different ways to potentially share a version of the negative dataset that could be used by others for training new models, but the main challenge is scale: the negative dataset represents nearly a terabyte of raw audio, and I don't currently have a way to efficiently (and cost effectively) host that amount of data. Another option is sharing just the pre-computed openWakeWord features (which are significantly smaller), but that approach greatly limits the amount of customization and augmentation that users can apply to the dataset.
I'm working now on a updated training notebook that significantly streamlines the training process, and perhaps then I can identify a reasonably sized subset of the negative data that is small enough to share but can still yield good performance when used for custom models.

I think sharing a reasonably sized dataset of pre-computed features for negative data makes sense, I'll plan to release that along with the updated training notebook soon. In the future, I agree that sharing the complete data preparation code for larger datasets is the best option.
I'm glad that you were able to fix the issue with the different number of time steps. As for the number of epochs, it often varies depending on the model, but typically it is more than 10. The best way to determine the optimal number of epochs for training is to have a small development set so that you can determine if the model is overfitting.

Yes, that's the type of approach I would recommend. In fact, the closer your development set is to a deployment scenario, the better performance will be. For example, I will often use a dev set of a few hundred positive examples, and then a few hours of negative examples (the Dipco corpus is a good option for this). That way you can estimate both recall and the false positive rate per hour, and then determine the best point to stop training.


exportPathMap is now getStaticPaths

[Enter feedback here]
The article, while being really clear and precise, is referring to an old version of Next.js
exportPathMap in next.config.js has been replaced by getStaticPaths on each page.
https://github.com/vercel/next.js/issues/9524#issue-528348833
https://resir014.xyz/posts/2020/03/07/supercharging-your-nextjs-site-with-getstaticprops-and-getstaticpaths

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

ID: 32207331-764e-7954-b175-53928cf39a1e
Version Independent ID: 3b4dada0-3b79-774e-7e25-2732e5c7a8ae
Content: Tutorial: Deploy static-rendered Next.js websites on Azure Static Web Apps
Content Source: articles/static-web-apps/deploy-nextjs.md
Service: static-web-apps
GitHub Login: @christiannwamba
Microsoft Alias: chnwamba

@jonashaefele Thanks for the feedback! We are taking a look into this and will get back to you soon.

Thanks! Let me know if you need more details.
Haven't used Azure yet, but a client of mine is 100% on Azure, so will have to get my head around deploying to Azure and guides like this one are gold for that.
Will be trying to deploy a next.js app soon. So can feedback more after having gone through the whole process, if needed.

@jonashaefele Thanks again for the feedback.  Requesting you to share more details to help you better on this.

@jonashaefele Thank you for raising this up. We checked and as far as we are aware there is no limitation to run the newer version of Next.js.
As a result, we have gone ahead and assigned your feedback to the doc author, @christiannwamba, to review further and see if there are any changes required to bring the documentation in line with the newer APIs.

Thanks, @jonashaefele! The article is now updated to use exportPathMap and getStaticPaths. The new version should be available in production in a few hours.
#please-close


Fix to the wandb and tensorboard sync issue (#323)

initialize the wandb logger before the tensorboard logger, to solve the wandb logging problem (solution inspired by this issue: https://github.com/wandb/client/issues/493)

This solves issue #323

Hi @ira7bar
Thanks for contributing.
One question: have you tested this modification and verified it?

Hi @ira7bar
Thanks for contributing.
One question: have you tested this modification and verified it?

Yes, I have tested it with torch==1.7.1, wandb==0.10.12 and it works nicely (wandb logging everything that tensorboard logs, including system data, metrics and images).
If you can double check on your environment as well, it would be nice and assuring :)

Yes, I have tested it with torch==1.7.1, wandb==0.10.12 and it works nicely (wandb logging everything that tensorboard logs, including system data, metrics and images).
If you can double check on your environment as well, it would be nice and assuring :)

@ira7bar
Thanks:-)
trust your testing 😄

@ira7bar
Thanks:-)
trust your testing 😄


ESP-IDF Build Project

I'm using the examples https://github.com/espressif/tflite-micro-esp-examples/tree/master/examples and the 3 examples have the same error in Visual code with the extension of esp-idf.
C:/Users/USER/esp/esp-idf/tools/cmake/build.cmake:574 (__build_expand_requirements)
C:/Users/USER/esp/esp-idf/tools/cmake/project.cmake:440 (idf_build_process)
CMakeLists.txt:4 (project)
-- Configuring incomplete, errors occurred!
See also "D:/ProjetoVSC/tflite-micro-esp-examples-master/examples/person_detection/build/CMakeFiles/CMakeOutput.log".

O processo de terminal "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -Command cmake -G Ninja -DPYTHON_DEPS_CHECKED=1 -DESP_PLATFORM=1 -B d:\ProjetoVSC\tflite-micro-esp-examples-master\examples\person_detection\build -S d:\ProjetoVSC\tflite-micro-esp-examples-master\examples\person_detection" was terminated with exit code: 1.

The error is the same in all 3 examples.

Can you please share some more logs?
Please make sure if the tflite-micro-esp-examples clone you have done is recursive. If not you may simply run git submodule update under the cloned directory.

Thanks a lot for the help. It worked out. I ran the following commands:
git clone --recurse-submodules https://github.com/espressif/tflite-micro-esp-examples.git
cd tflite-micro-esp-examples
It worked. Now understand how you make the inference.

Closing this issue as resolved


Delete files automatically after expiry

I'm unclear if this should be done and my config is incorrect or this needs to be a feature request. Once an item expires or has reached the maximum views, can an option be created to clean up and wipe them from my drive? It will eventually have a lot of junk files otherwise. Thank you and love the work so far.

There is a job, that runs every hour, that should delete these files. Are you sure the files didn't get deleted after an hour?

I had suspected as much. The files and their folders remain but the interface removes them when they expire. Perhaps this is a permissions issue since I've mapped it to a folder on the Ubuntu host machine?

Actually I noticed that all jobs don't get executed. It is fixed 05cbb7b27ef98a3a80dd9edc318f1dcc9a8bd442 and will be released in the next release. Thanks for your report!


make clean for Makefile in docs broken

Description of bug / unexpected behavior
The command removes content of the directory ../build.
Expected behavior
It should remove content of build. This is caused by a recent change (#699) of the corresponding paths.

/cc @MysaaJava

Indeed ... I will make a PR to quickly fix this. When i will make a PR for i18n, i will refactor make a bit and add tests for docs build.

Well ......... @behackl Isn't it supposed to do that ? Every doc building process is done in the source/ folder, and build files are at ../build, relative to this folder. Do you have files that are not cleared ? Because, on my computer, it seems like everything is done correctly.

Let me check again later to make sure, but I think my build directory was not emptied when I used it earlier. Will report back.

what about ./source/media? Should that not be cleared as well?
On a related note, if you have one version of manim in your local working directory and another version installed, then make html will generate a hybrid Frankenstein's Documentation -- namely, Sphinx takes the local directory for the local .rst files, but the module docstrings will be taken from the installed manim version ...

what about ./source/media? Should that not be cleared as well?
On a related note, if you have one version of manim in your local working directory and another version installed, then make html will generate a hybrid Frankenstein's Documentation -- namely, Sphinx takes the local directory for the local .rst files, but the module docstrings will be taken from the installed manim version ...

I am not sure that there is a way around that -- and I don't think we should start supporting having multiple installations of manim next to each other.

This is not a feature request. All I am saying is that typing make html inside a github-checked-out manim/docs directory does not compile docs from within that directory... and that was not clear to me and caused me headaches earlier today.

I see. We should probably document it somewhere!

I'll see if i can do something about it this week-end. (I'm adding this to my big docs PR todolist ^^)

There must have been some other issue with me using the makefile, it does clean the correct directory for me.
Sorry for the noise.


Fix banner image on opera

the banner image is not resizing correctly on opera mini

potentially fixed. needs to be tested

@KaitCrawford I'm guess this got tested and closed at some point. Closing now since it's an old issue.


fix(useTransitionStatus): set status to unmounted

@atomiks Thank you for the fix. I've confirmed that this change fixed the issues we were encountering.


go/cmd, crypto/x509, net/textproto, html/template: fix minor issues with nil values

Remove redundant checks for nil value, add missing nil checks to prevent tests from failing with 'nil pointer dereference'.
Fixes #30208.

Removed additional spaces in the pull request name.


Timed out while trying to connect to Unreal Engine.

I have this issue when I start the code completion command in vscode.
"Timed out while trying to connect to Unreal Engine."
The UE 5.1.1 is running, python plugin enabled.

I think I got it, I have to enable remote execution for the project...
https://github.com/nils-soderman/vscode-unreal-python/wiki/Failed-to-connect-to-Unreal-Engine-[Troubleshooting]


Feature request: separable convolutions in 3D

I would like a tf.nn.separable_conv3d identical to tf.nn.separable_conv2d except with separability between dimentions [1,2,3] and 4, for use with 3D CNNs.
Rationale: separable convolutions perform very well in 2D (see: Xception architecture https://arxiv.org/abs/1610.02357 ).  In 3D, the number of parameters grows even faster for non-separable convolutions, so the reduction in parameters from using separable convolutions would be relatively even bigger.  This is one of the reasons 3D networks tend to have a simpler architecture than 2D.
Necessity: There doesn't seem to be any way to implement this other than in the TF core. (Suggestions?)

@aizvorski TensorFlow's 2-D separable convs are built out of normal convs and depthwise convs.  The first bit already exists in 3-D.  The second bit can be implemented in Python by splitting, but it's slower than a native op (this is how separable convs in 2D used to work, I think).  We'd be happy to accept a native 3-D version of depthwise conv, but I don't know of plans to do it ourselves.  I also be happy to give some more detail on the no-new-op version of separable conv if you want, though of course it'll be less performant than a native version.

@girving Thank you!  Yes I would really like some detail on how to do the no-new-op version of separable conv.  The depthwise part seems easy, just with a 1x1x1xN kernel; I couldn't figure out a good way to do the pure spatial conv. I can try to do a native version later if this shows good performance.

@aizvorski Here's the commit that turned the depthwise conv native: https://github.com/tensorflow/tensorflow/commit/975094c8382ee15dad434278804cb096f9bac84f.  You should be able to do an analogous thing to the 2D case to make a non-native depthwise conv for 3D, and then a separable conv is just depthwise followed by normal conv.

I second that, separable 3D convs are vital to export Xception type architectures to video and medical imaging. What bits of code would need to change to implement a native 3D version?
@girving There is no nn_ops.depthwise_conv3d_native, so not sure how to address this, I may be missing something.
Thanks in advance!

@alexvicegrab I don't know of any plans, but we'd be happy to accept contributions.

@alexvicegrab Also, as I noted above, it's possible to write a slower version of separable convolutions in pure Python.

@girving True, but making a slower version (how much slower?) to some extent defeats the point of implementing separable convolutions, I was hoping to use (or create) a fast version that can take advantage of hardware acceleration, but I'm not sure how to go about it, since I can't seem access the native code of the nn_ops.depthwise_conv2d_native, unless I've been looking in the wrong places. Otherwise I'd be happy to have a go at trying to implement it :)

Here's the native op: https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/kernels/depthwise_conv_op.cc

@chsigg Do you plan to implement separable conv3d or depthwise conv3d?

Hey! Is anybody working on this?

@AnishShah I'm not working on that project anymore, so I am not. Still think it's an important thing to do, but don't have the time or the nitty-gritty expertise to address it.

I also wish a separable convolution for 3D image. Signals in 3D is more difficult to learn, and training is slow.

I'll make an attempt to continue what @AnishShah started. We'll see how it goes...

Hi @nio1814, can you tell us how it goes with this implementation?

@nio1814 Do you plan to open a PR with your code?

I think this will be quite strategic. Check CVPR 2018 accepted https://github.com/kenshohara/3D-ResNets-PyTorch/

Google @s9xie and @murphyk have also a related work Rethinking Spatiotemporal Feature Learning For Video Understanding

Any news about the implementation @nio1814

@nio1814 What about https://github.com/tensorflow/tensorflow/pull/17961#issuecomment-381127268? /cc @chsigg

I have found a temporally solution to this using tf.scan to iterate over the feature dimension.
I think that this is not as efficient as a native function, but low level programming of tensorflow
is too hard for me :-)
I have checked it using the 2d depth wise convolution first. The extension to 3d is inmediate:
def tf_scan_depthwise_conv2d():
#First check that we get the same results as with  tf.nn.depthwise_conv2d
#using tf.nn.conv2d and tf.scan

    def f( old,input):
        x_sample = input[0]
        kernel_sample = input[1]

        y_sample = tf.nn.conv2d(x_sample,kernel_sample,[1,1,1,1],"SAME")
        return y_sample
    x_values = np.random.randn(4,5,5,3).astype('float32')
    kernel_values = np.random.randn(2,2,3,2).astype('float32')

    x = tf.constant(x_values)
    kernel = tf.constant(kernel_values)

    y = tf.nn.depthwise_conv2d(x,kernel,[1,1,1,1],"SAME")

    kernel_scan = tf.transpose(kernel,[2,0,1,3])
    kernel_scan = tf.expand_dims(kernel_scan,axis=3)
    x_scan = tf.transpose(x,[3,0,1,2])
    x_scan = tf.expand_dims(x_scan,axis=-1)

    c = tf.scan(f, (x_scan,kernel_scan) ,initializer = tf.zeros((4,5,5,2)))

    c = tf.transpose(c,[1,2,3,0,4])
    c = tf.reshape(c,[4,5,5,6])
    with tf.Session() as sess:
         y_values,kernel_scan_values,x_scan_values,c_values  = sess.run([y,kernel_scan,x_scan,c])

    #check input shapes for the scanned version
    print(kernel_scan_values.shape)
    print(x_scan_values.shape)
    #check output shapes
    print(c_values.shape)
    print(y_values.shape)
    #check values using depthwise_conv2d or the scanned version
    print(y_values[0,0,0,:])
    print(c_values[0,0,0,:])

def tf_scan_depthwise_conv3d():
#Now extend the results to 3D
    def f( old,input):
        x_sample = input[0]
        kernel_sample = input[1]

        y_sample = tf.nn.conv3d(x_sample,kernel_sample,[1,1,1,1,1],"SAME")
        return y_sample

    x_values = np.random.randn(4,5,5,5,3).astype('float32')
    kernel_values = np.random.randn(2,2,2,3,2).astype('float32')

    x = tf.constant(x_values)
    kernel = tf.constant(kernel_values)

    kernel_scan = tf.transpose(kernel,[3,0,1,2,4])
    kernel_scan = tf.expand_dims(kernel_scan,axis=4)
    x_scan = tf.transpose(x,[4,0,1,2,3])
    x_scan = tf.expand_dims(x_scan,axis=-1)
    c = tf.scan(f, (x_scan,kernel_scan) ,initializer = tf.zeros((4,5,5,5,2)))
    c = tf.transpose(c,[1,2,3,4,0,5])
    c = tf.reshape(c,[4,5,5,5,6])

    with tf.Session() as sess:
         kernel_scan_values,x_scan_values,c_values  = sess.run([kernel_scan,x_scan,c])

    print(kernel_scan_values.shape)
    print(x_scan_values.shape)
    print(c_values.shape)
    print(c_values[0,0,0,0,:])

@nio1814 Check the performance with https://github.com/tensorflow/tensorflow/pull/17961#issuecomment-388372269

Any updates for this? I test the code by @alalbiol and the run time results are shown as below:
normal conv2d 0.3061046600341797ms native time 0.29351091384887695ms scan time 1.5845508575439453ms
Was running on tensorflow version 1.13.0-dev20181017 on GTX 1080 TI, cuda 9.0, cudnn 7.

Yes, any updates? Would be super useful to have a tf.nn.separable_conv3d function!

For anyone using Keras, this implementation addresses this issue
https://github.com/alexandrosstergiou/keras-DepthwiseConv3D

For anyone using Keras, this implementation addresses this issue
https://github.com/alexandrosstergiou/keras-DepthwiseConv3D

No, it doesn't. It implements just the first step of the Depthwise Separable Convolution.

I have opened a PR for native 3D Group Convolutions which enable Depth-wise 3D Convolutions natively as well  #31492

My commit was accepted.
Using the benchmark code here  and replacing group number to the channel number, you get about 2x speedup over manually concatenating the channels over 256 channels.
Loop=True, Forward: 15.444471641506786 itr/s
Loop=True, Backward: 4.057799918417722 itr/s

Loop=False, Forward: 29.1905996890655 itr/s
Loop=False, Backward: 8.75012744363749 itr/s

Making it separable would mean executing another convolution over the channels.

Cool. These are benchmarks on GPU or CPU?

On a 2060 mobile RTX GPU

@danganea are you providing just the conv3d operation for using depthwise3d or a tf keras layer.

I have opened a PR for native 3D Group Convolutions which enable Depth-wise 3D Convolutions natively as well #31492

Also how would you use the depthwise3d portion?

The tensorflow commit does not include a keras layer.
The separable operation is a depthwise part + a pointwise part. Meaning what you'd do is have a filter of shape (D,H,W,1,input_depth * depth_multiplier) which you use in a initial tf.nn.conv3d operation. This is the group convolution that does the depthwise part. There will be input_depth * depth_multiplier groups.  Generally it's easy to reason about if depth_multiplier == 1, where there will be as many groups as input channels.
After this depthwise part, you'd do a pointwise kernel to get the desired final depth.
In any case, here's a preliminary keras layer that uses my operation, as a branch of an existing CPU implementation:
https://github.com/danganea/keras-DepthwiseConv3D
Along with a gist of it in action: https://gist.github.com/danganea/01756783499ab3b9524bb495f0d1203b

I tried your keras layer implimentation, but it seems to fail on simple example.
import keras
x = keras.layers.Input([64,224,224,3])
kernel_size=3
strides=1
o = DepthwiseConv3D(kernel_size,
                        strides=strides,
                        padding='same',
                        use_bias=False)(x)

---------------------------------------------------------------------------
InvalidArgumentError                      Traceback (most recent call last)
/usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/ops.py in _create_c_op(graph, node_def, inputs, control_inputs)
   1863   try:
-> 1864     c_op = c_api.TF_FinishOperation(op_desc)
   1865   except errors.InvalidArgumentError as e:

InvalidArgumentError: Dimensions must be equal, but are 3 and 1 for 'depthwise_conv3d_3/Conv3D' (op: 'Conv3D') with input shapes: [?,64,224,224,3], [3,3,3,1,3].

During handling of the above exception, another exception occurred:

ValueError                                Traceback (most recent call last)
9 frames
/usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/ops.py in _create_c_op(graph, node_def, inputs, control_inputs)
   1865   except errors.InvalidArgumentError as e:
   1866     # Convert to ValueError for backwards compatibility.
-> 1867     raise ValueError(str(e))
   1868
   1869   return c_op

ValueError: Dimensions must be equal, but are 3 and 1 for 'depthwise_conv3d_3/Conv3D' (op: 'Conv3D') with input shapes: [?,64,224,224,3], [3,3,3,1,3].

@nio1814  looks like you're not using the version of Tensorflow that includes my commit. Are you?

I see that makes sense. Is there a nightly version that this commit is featured in?

Closing this issue, as the feature seems to have been implemented for both tf.keras and TensorFlow core. Thanks for the suggestion, @aizvorski, and for the add, @danganea! 👍

Closing this issue, as the feature seems to have been implemented for both tf.keras and TensorFlow core. Thanks for the suggestion, @aizvorski, and for the add, @danganea! 👍

Which Keras and Tensorflow version do I need for this feature?

My commit was accepted.
Using the benchmark code here and replacing group number to the channel number, you get about 2x speedup over manually concatenating the channels over 256 channels.
// With manual concatenation
Loop=True, Forward: 15.444471641506786 itr/s
Loop=True, Backward: 4.057799918417722 itr/s
// Native group convolution
Loop=False, Forward: 29.1905996890655 itr/s
Loop=False, Backward: 8.75012744363749 itr/s

Making it separable would mean executing another convolution over the channels.

I am getting this error:
ValueError: Dimensions must be equal, but are 8 and 1 for 'depthwise_conv3d_4/Conv3D' (op: 'Conv3D') with input shapes: [?,14,14,14,8], [3,3,3,1,8].

Can't find it either.

@dynamicwebpaige can you reopen, as this feature seems to be missing in Tensorflow 2.1?

In Keras, you can do depthwise separable convolution (i.e. what a DepthwiseConv3D layer would do, if implemented), by using the Conv3D layer with groups=filters, where filters is the number of channels in your input tensor (which equals the number of channels in your output tensor, too). The only thing that's slightly annoying is that you need to know your number of input channels when you create the layer, rather than when the model is built.
To achieve SeparableConv3D, you then just have to put a pointwise convolution layer after this depthwise separable convolution, for example Conv3D with a kernel size of (1, 1, 1) (though it might be more performant to wrap a Conv2D layer with kernel size (1, 1) in a TimeDistributed layer; both approaches do exactly the same thing).
In pure tensorflow can do depthwise separable convolution with tf.nn.convolution. Just pass a kernel that has 1 for the input channel dimension size. This is what Conv3D with groups=filters does under the hood.

Thank you @hunse . That will have to do as a fix for now.
I too would like this to be re opened as a feature request. I think both DepthwiseConv3D and SeparableConv3D are missing in tensorflow.


Have default

as this plugin versioning follows protobuf versions,  it can have defaults.
E.g. <IP_ADDRESS> -> 3.1.0
result together with #21  will be no need for <configuration> section at all in the simplest case.

Released <IP_ADDRESS>

Well, this issue was not addressed, I guess.
http://os72.github.io/protoc-jar-maven-plugin/run-mojo.html still does not mention default version

It's implemented. Forgot to update doc but it's mentioned in release notes
https://github.com/os72/protoc-jar-maven-plugin/blob/master/RELEASE_NOTES.md

few people read README, and even less RELEASE_NOTES


WIP: testing travis. DO NOT MERGE

pls ignore

Have it working in a preliminary form. Can flesh things out over time.


[ts-transformers] Add idiomatic decorator transform for @lit/context decorators

Should this be an RFC?

[X] This is not a substantial change

Which package is this a feature request for?
Other/unknown (please mention in description)
Description
It would be nice to get idiomatic decorator transforms for @lit/context decorators.
Alternatives and Workarounds
n/a

Looking at it more, this might be harder to do when trying to consider situations like combining @provide() with @property().


AL Code Bug in BC 17.0.16993.0 - Copying Text50 Field into a Code20 Field

This GitHub repository is dedicated to handling issues and feedback for the latest Developer Preview releases of the AL development tools for Dynamics 365 Business Central.
We suggest that you open a support case or file a bug in Collaborate, to ensure that all Business Central users benefit from your catch as soon as possible.
You can open Support Request to CSS through PartnerSource portal or contact your Service Account Manager (SAM) in the local subsidiary to understand what is included in your contract as of support incident and PAH (Partner Advisory Hours). Your SAM might also step by step direct you how to open a support request or how to get credentials if this is the first time for you / your company.

Sorry to log this one here... I've tried logging in PartnerSource, however as I don't have a service contract (and I don't want to spend £200 in reporting the bug):
There is a bug in Codeunit 5702.
FillItemCrossReferenceFromItemVendor Function
This line of code:
ItemCrossReference."Cross-Reference No." := ItemVend."Vendor Item No.";
Cross Reference No. is a Code 20 field
Vendor Item No. is a Text 50 field.

Sorry to log this one here... I've tried logging in PartnerSource, however as I don't have a service contract (and I don't want to spend £200 in reporting the bug):
There is a bug in Codeunit 5702.
FillItemCrossReferenceFromItemVendor Function
This line of code:
ItemCrossReference."Cross-Reference No." := ItemVend."Vendor Item No.";
Cross Reference No. is a Code 20 field
Vendor Item No. is a Text 50 field.

Hi! Welcome to the AL repository! Please take a minute to familiarize yourself with the purpose of this repository https://github.com/microsoft/AL/blob/master/README.MD and with the FAQ https://github.com/microsoft/AL/wiki/Frequently-Asked-Questions .
We believe that the issue you have opened is outside the scope of this repository. Please open it in the correct repository.

Hi! Welcome to the AL repository! Please take a minute to familiarize yourself with the purpose of this repository https://github.com/microsoft/AL/blob/master/README.MD and with the FAQ https://github.com/microsoft/AL/wiki/Frequently-Asked-Questions .
We believe that the issue you have opened is outside the scope of this repository. Please open it in the correct repository.


Added a new rebus

Summary of Changes

added a new rebus

Pull Request Test Coverage Report for Build 824

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 87.143%

Totals

Change from base Build 514:
0.0%

Covered Lines:
158

Relevant Lines:
180

💛  - Coveralls


support storyboard

I want to use this library with Storyboard.
I add awakeFromNib() method for supporting storyboard and implement to call initView() in it because initView() is internal.
And then I modify README.md to represent the example.

Thank you for support of Storyboard.


Add nimbench package

nimbench is supported on platforms windows, macos and posix.
Request to add nimbench 0.1.1 to nimble package listing.

Nice. Welcome to Nim land :)


Update PubSub dependencies

Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

It will help us expedite review of your Pull Request if you tag someone (e.g. @username) to look at it.
 Should we close it?

Yes, please close as this upgrade is handled in https://issues.apache.org/jira/browse/BEAM-5539


Remove duplicate copy of util funcs

Use pkg/util as the common spot for these.
Signed-off-by: Doug Davis<EMAIL_ADDRESS>

LGTM

LGTM! Thanks for doing this, it was bugging me.


Core: await narrowing cast warning

D:\a\swift-build\swift-build\SourceCache\swift-llbuild\lib\Core\BuildEngine.cpp(138): error C2397: conversion from 'int' to 'unsigned int' requires a narrowing conversion ~~~

This repairs a build error when building with `cl`.

@swift-ci please smoke test


Google Maps Wont restoreState properly when using restoreState = true while navigating.

Environment details

Library: com.google.maps.android:maps-compose:6.2.0
Navigation library: androidx.navigation:navigation-compose:2.7.7

Steps to reproduce

Clone this repo.
Add google api key to manifest file.
Navigate to Map screen and then try to navigate to Map screen again.

Observation
Lifecycle observer goes to ON_DESTROY and never makes it's way to ON_RESUME, which keeps the map in "destroyed" state and it is not usable (cannot scroll, zoom or anything else).
While not using restoreState or saveState set to true the map works fine. Also when downgrading compose map library to 6.0.0  it works properly.
It might be related to already resolved issue: https://github.com/googlemaps/android-maps-compose/issues/112. But due to refactor in https://github.com/googlemaps/android-maps-compose/pull/436 it probably happens again. Not really connected to animations this time. It is probably connected to the restoreState.
Sample video of the issue.

@Del-S I am not a project maintainer, but I guided the implementation of #436. What I see in the video is the user clicking the Map icon to switch to the Map screen, and then clicking the Map icon again while on the Map screen, resulting in the Map no longer working.
Can you explain why you think that there is a problem with GoogleMap()?
 It needs to be guarded by androidx.navigation and/or user code: "user tries to go to screen, but is on screen already".
Instead I see some lifecycle changes happening when I debug. I don't see how this is GoogleMap()'s problem.
I see that there is a need to harden navigation-related code against lifecycle problems in user code, these issues point at some recipes:
https://issuetracker.google.com/issues/317230685
https://issuetracker.google.com/issues/324170134

@bubenheimer Hi, I would agree with that if that did not happen with Deeplinking (and fast clicking in some cases) as well. I just created the easiest case to implement. Basically when you are on a screen and you navigate to it with new intent (and/or new data) it should just restore the state, if it can right, and then deliver the new data into it. But the map (or the listener) end's up in "destroyed" state even when it is on screen and should be interactible. Not sure that should ever happen.
But if you say that it is "us" issue then I guess I can do nothing with that. I just can't imagine it's a good thing that the map is not usable even when on screen. :shrug:

@Del-S What I see in the case of the workflow from the video is the GoogleMap View lifecycle ending up in CREATED state after the user clicks the map navigation button while on the Map screen; the View sees Lifecycle.Event.PAUSE, then Lifecycle.Event.STOP, which puts it into CREATED state. I do not see the lifecycle ending up in DESTROYED state; there is no Lifecycle.Event.DESTROY.
When I fast click to switch from Map screen to Main screen then Map screen while the transition animation to Main screen is ongoing I can get the GoogleMap View lifecycle temporarily stuck in CREATED state, upon re-entering the Map screen. Once I switch back to Main screen a second time after that, the GoogleMap View lifecycle goes to DESTROYED, and everything is back to normal when re-entering the GoogleMap screen the next time, the GoogleMap View is re-created in this case.
The behavior in the latter case suggests to me that guarding the screen switches with lifecycle barriers would help; similar guardrails may help in the former case, too.
The former case does not seem to behave for me in the manner that you describe: the lifecycle does not go to DESTROYED.
Also, what I observe is the GoogleMap View behaving as desired once it actually goes to DESTROYED lifecycle state.
If you have a repro for the case that actually interests you, it may help, to see what's going on in that case.
It may also help you to dig more into potential problems with Navigation behaviors, as opposed to GoogleMap behaviors.
I can only look at it from the perspective of what GoogleMap() sees in terms of lifecycle signals and view hierarchy changes, and its response to them. I don't see anything actionable at this point. Someone else may have other insights.

I've looked at it once more and I see that there is more complexity involved. Will look into it some more.

What I see now (in the case from the video) is that the LifecycleOwner changes. The View does see the ON_DESTROY lifecycle event from the old lifecycle owner, and around the same time a new LifecycleOwner is installed on the composition. The View is not detached from the hierarchy, and the composition is not disposed.
Someone with better knowledge of androidx.navigation needs to look at this:

Either the repro is invalid usage of Navigation.
Or it is valid. In this case I'd expect AndroidView to provide an option to handle this, as it affects all Views. Once a View sees ON_DESTROY it should be assumed to be dead. I don't see ready-made support for observing changes of LifecycleOwner directly from a View to prevent it from dying or to resurrect it. (Which again makes me wonder if this is a valid example.) Navigation may have something else to offer to address the situation at the View level.

If necessary, I think it could be worked around in different ways. For example, one could observe changes to LifecycleOwner from the composition, and cleanly recreate AndroidView in this case. Essentially key(lifecycleOwner) { AndroidView(...) }. This is pretty destructive, and more subtle alternatives may be preferable.

Ah right it makes sense that the LifecycleOwner changes that seems to be the main "problem".
The repo is not a proper way of using bottom navigation -> I agree that the secondary click should result with a no-op but still there are cases when you are navigating to the screen for which you already have a savedState . For example deeplinking like I mentioned. I could add a deeplink to the same location with restore state because I do not want the map to reset on me when I deliver a new data into the screen (using a notification for example). And if the map cannot actually "restore" the state it is not really that good right?
We wanted to allow:

Deeplinking with the restoreState.
Restoring the state when the user navigates away and back to the screen. Example: map is used, user moves it from default position to some other and zooms. Clicks away to check other part of the app and then returns by clicking on the bottom menu with the Map again. We would like to have the map in the state that they left, which is not currently possible because if we restoreState it will not be usable. Well I am actually not sure if maps supports this. :D

Hmmm I'm thinking about key(lifecycleOwner) { AndroidView(...) } and shouldn't only the lifecycleObserver and maybe the onAttachStateListener be recreated when LifecycleOwner changes and then provided to the map view? Basically recreate only parts/component (whatever the name) that are dependent on the LifecycleOwner? Not sure if that can be done, I'm not an expert in compose maps.
Side-note: during the holidays I am planning to refactor navigation in the app so I might try/find some ways to make this work. :)
Anyway thanks for the help. :+1:

@Del-S for the time being you could try applying the key(lifecycleOwner) workaround yourself, wrap it around the GoogleMap(). Thinking about it, you will lose everything you remembered in the GoogleMap {...} block, so not actually a feasible workaround in the general case. Maybe you can make it work for your specific case.

@Del-S the other workaround that you are suggesting may be feasible. I did not mention it, because the exact desired implementation and behavior at the time of View seeing ON_DESTROY and lifecycleOwner being replaced seem a little unclear, and it will take a bit of extra hacking to make it work, you could try it in a private fork. As my other workaround idea wouldn't pan out, this may be worth pursuing for you for now, if you do not find a different Navigation approach. You could possibly override setTag() on the MapView, too, and wait for a LifecyleOwner tag to be set. setTag because passing things around between Composition and View can get a tad messy in general. Also, it could be useful to understand how composition detects the change of LifecycleOwner and replicate that.
Because this looks somewhat murky, I think an actual solution should be deferred to AndroidView() and/or Navigation; like I said, all Views in AndroidView would share this problem, not just MapView. If it is a valid problem.

Ok, great. Thanks for the help. :+1:


Release notes fixes for appropriate Towncrier header underlines

As titled.

Should this be part of 0.59.0rc2/0.59.0?


Documentation for extension development insufficient

Describe the bug
The current document for writing a extensions are lacking key information:

For each hook, what are the data types passed to the handler?
For each hook, what is expected to be done by the handler?

Is the handler supposed to only read the information supplied?
Is the handler allowed to—or expected to—modify any of the passed data structures?

If so, in what way should they be modified? Removing data? Mutating? Adding?

In what order are the hooks invoked, and what causes each to be invoked?
How is an exporter expected to modify the final exported JSON?

By creating instances of existing glTF classes, or mutating existing classes, on the fly?
Somehow subclassing or overriding existing classes?
Waiting until gather_gltf_extensions_hook and modifying the glTF only then?

Assuming a single add-on wants to round-trip their extension, how should the exporter and importer be structured?

Expected behavior
The documentation and examples should clearly show a user how to do a concrete task. I'd suggest that in addition to the existing bare-bones, examples, a semi-real-world example is added, with both exporter and importer round-tripping the information.

In case it helps, I derived this hook order (which I think is correct) for the importer. I personally would have found something like this helpful for both import and export:
gather_import_gltf_before_hook
gather_import_scene_before_hook

for each node:
    gather_import_node_before_hook
    if node has a mesh:
        gather_import_mesh_before_hook
            gather_import_mesh_options
            for each primitive:
                gather_import_decode_primitive
            for each material:
                gather_import_material_before_hook
                gather_import_texture_before_hook
                gather_import_image_before_hook
                gather_import_image_after_hook
                gather_import_texture_after_hook
                gather_import_material_after_hook
        gather_import_mesh_after_hook

    else if it is a camera:
        gather_import_camera_before_hook
        gather_import_camera_after_hook

    else if it is a light:
        gather_import_light_before_hook
        gather_import_light_after_hook

    gather_import_node_after_hook

gather_import_scene_after_nodes_hook

gather_import_animations
for each animation:
    gather_import_animation_before_hook
    gather_import_animation_channel_before_hook
    gather_import_animation_channel_after_hook
    gather_import_animation_weight_before_hook
    gather_import_animation_weight_after_hook
    gather_import_animation_after_hook

gather_import_scene_after_animation_hook

I spent a few hours tracing the export hooks in order. This might be roughly correct:
gather_asset_hook

for each scene:
    vtree_before_filter_hook
    gather_tree_filter_tag_hook
    vtree_after_filter_hook

    for each node:
        if it is not a bone:
            gather_node_mesh_hook
            for each material:
                gather_attributes_change
                gather_image_hook
                gather_sampler_hook
                gather_texture_hook
                gather_texture_info_hook
                gather_material_pbr_metallic_roughness_hook
                gather_material_hook
                for each attribute:
                    gather_attribute_change
                gather_node_name_hook
                gather_node_hook
            gather_mesh_hook
        else:
            gather_joint_hook
        gather_node_name_hook
        gather_node_hook
    gather_scene_hook

    if Animation mode is "Actions" or "Active actions merged":
        for each exported node:
            pre_gather_actions_hook kinkangle
            gather_actions_hook kinkangle

        for each collected action:
            animation_switch_loop_hook(post=False)
            pre_animation_switch_hook
            post_animation_switch_hook

            if sample animations:
                for each channel:
                    switch on type:
                        gather_animation_object_sampled_channel_target_hook
                        gather_animation_bone_sampled_channel_target_hook
                    animation_gather_object_sampler
                    gather_animation_channel_hook
                animation_gather_object_channel
                animation_action_object_sampled
            else:
                animation_gather_fcurve_channel_target
                animation_gather_fcurve_channel_sampler
                animation_gather_fcurve_channel         # see issue #2351
                animation_gather_fcurve
            animation_switch_loop_hook(post=True)

    elsif mode is "Scene":
        ???
    elsif gathering as "NLA Tracks":
        ???

gather_gltf_hook
gather_gltf_extensions_hook
gather_gltf_encoded_hook

Not covered by the above are the following hooks that I didn't experience in my testing:
animation_action_sk_sampled
animation_action_sk_sampled_target
animation_gather_sk_channel
animation_gather_sk_channels
animation_track_switch_loop_hook
gather_animation_channel_target_hook
gather_attribute_keep
gather_camera_hook
gather_gltf_additional_textures_hook
gather_material_unlit_hook
gather_skin_hook
gather_tracks_hook
post_animation_track_switch_hook
pre_animation_track_switch_hook
pre_gather_tracks_hook


floating window goes under.

Even if I have yabai -m config window_topmost on I see the floating window under another one not floating. Plus the search result goes under again the floating window making impossible to read.
I am using yabai-v4.0.0 on MacOS 10.15.7
Here my .yabairc
yabai -m config layout bsp
yabai -m config debug_output      on
yabai -m config window_topmost on
yabai -m config window_shadow float
yabai -m config window_border on
yabai -m config external_bar main:0:0
yabai -m config window_placement first_child
yabai -m rule --add label="System Preferences" app="^System Preferences$" title=".*" manage=off

yabai -m config mouse_modifier fn
yabai -m config mouse_action1 move
yabai -m config mouse_action2 resize

Has somebody have the same issue?

The problem was the lest window was set to be always on top. I don't know why also the search result of System Preferences were going under. Anyway closing the always on top window solve the issue.


GridModel.js warning when selecting "DockContainer"

Navigate to Toolbox -> Containers
Click "DockContainer" subtab
Warning
Called GridModel.js:267 selectFirst before the grid was ready!

This occurs because the agGrid is only initialized when it is rendered, but we load data into it (and call selectFirst) before it is rendered.

And I caused it!
https://github.com/xh/toolbox/issues/240

I added a check so that the SampleGridModel will only try to select the first row if the grid is ready, i.e. rendered.


api doc: explicitly tell set only works when the prop doesn't exist yet

Note: Here I'm all talking about a prop that doesn't exist in data in the first place.
The api says:

If the object is reactive, ensure the property is created as a reactive property and trigger view updates.

At least for me, it's not clear "does set work if the prop isn't in data, and I've already added it diredtly without set?". So I tried the source code and the comment made it clear:

Adds the new property and triggers change notification if the property doesn't already exist.

Then I altered my code to use set at prop addition and the not-properly-re-rendering problem was fixed.
So I think it may be better to explicitly tell in the api that set only works when the prop doesn't exist yet? Like the comment does?

Set should also work with a property that already exists, like here - it's just not necessary. Could you provide a pen/fiddle demonstrating the situation you found where it doesn't work?

Ah, I see the issue here. It's:

I've already added it directly without set

The reason set exists is because you can't add new, reactive properties without it. And in the docs, we specify that Vue.set is only for property creation/addition:

Set a property on an object. If the object is reactive, ensure the property is created as a reactive property and trigger view updates. This is primarily used to get around the limitation that Vue cannot detect property additions.

To me, that already specifies that set is only for new (non-existing) properties, but I'm also open to alternate phrasing or adding an example if you think that would be helpful. What are your thoughts? 🙂

On a related note, it's bad practice to add new root properties to $data outside of the data function and Vue actually warns you about this in the console:

[Vue warn]: Avoid adding reactive properties to a Vue instance or its root $data at runtime - declare it upfront in the data option.

Of the phrasing, I'm not sure, I'm Chinese and your name suggests you're a native English speaker so... I feel: "created", can I recreated it with $set? Because I don't need view update when the prop is added, but do when I used $set. "cannot detect addition", sure, can I make up for it using $set after addition? Feels somehow vague, but I'm not sure if it's necessary to stress using $set later won't help. Maybe we should wait for someone else's opinion.

Not declaring in data is obviously not good practice and can be found wrong (not only reduce readability) with the help of the warning, but my actual use case is kind of like adding to an object in an array in data, where it's a bit harder to find what's wrong.

Hm, what would you think about this rewording?

Adds a property on a reactive object, ensuring the new property is also reactive, so triggers view updates. This must be used to add new properties to reactive objects, as Vue cannot detect normal property additions (e.g. myObject.newProperty = 'hi').

I think this is more clear if anyone has the same doubt as me:

...This must be used at new property addition, using it after normal property addition (e.g. myObject.newProperty = 'hi') won't make the property reactive.

Somehow I feel this behavior itself is not intuitive. I've opened an issue for vue, let's see what people say about that then.

Excellent! I just made that update to the docs. I also left a comment on your issue. I don't think Vue.set should work to make existing properties reactive, because not doing it initially leaves open a window for bugs. I do agree we can improve the experience, however, and suggested that Vue emit a warning instead so that users know what they've done wrong. 🙂


Auth final

Final part to the authentication library! Next up is either charts or maps...might use a coin flip to decide which one as both are equally interesting.

Final part to the authentication library! Next up is either charts or maps...might use a coin flip to decide which one as both are equally interesting.

Did you know that if you type "flip a coin" into Google it will do it for you.  It even has an animation :)


🐛 BUG: tail workers not work and break the dashboard

Which Cloudflare product(s) does this pertain to?
Workers for Platforms
What version(s) of the tool(s) are you using?
3.1.2 [wrangler]
What version of Node are you using?
v18.15.0
What operating system are you using?
Mac
Describe the Bug
I tried to set up a consumer worker as described in the docs, however, that will crash the Cloudflare Dashboard UI after I deploy the worker :NotLikeThis:  Also the tailing does not work, the tail worker does not receive any events.
Please provide a link to a minimal reproduction
No response
Please provide any relevant error logs
No response

Sorry you're running into this. Since this issue isn't directly related to wrangler or any projects contained in this repo, I'll close those and open an internal ticket to track this elsewhere. If you could provide more detail about the specific error you received in the Dashboard, the URL you were visiting when you saw the error page, and how you deployed the worker it would help us a lot in fixing the issue. Thanks!

Hi, @1000hz Sorry for that, but the tail worker broke the other worker's dashboard and did not work.
The context is, I create a tail worker, the code is very simple:
export interface Env {
  NEWRELIC_API_ENDPOINT: string
  NEWRELIC_API_KEY: string
}

export default {
  async tail(events: TailEvent, env: Env, ctx: any) {
		const { NEWRELIC_API_ENDPOINT, NEWRELIC_API_KEY } = env
		console.log('NEWRELIC_API_KEY', NEWRELIC_API_KEY)
		console.log('tail', events)
		// TODO: send log one by one, newrelic can parse json array
    const res = await fetch(NEWRELIC_API_ENDPOINT, {
      method: "POST",
			headers: {
				"Content-Type": "application/json",
				"Api-Key": NEWRELIC_API_KEY,
			},
      body: JSON.stringify({}),
    })
		const json = await res.json()
		console.log('res', json)
  }
}

But when I deploy the production, I need to connect it to other workers like:

After I click the button Save and deploy in the dashboard and the dashboard is broken like:

And if I need the dashboard back, I need to use the wrangler in CLI to redeploy the worker without the tail worker.
And most important, the tail worker can not receive any logs from other workers bound to it.
So could you help to report this issue to the internal team? Because it stop me to use the tail worker to collect the logs and it is important to me.
Thanks.

Hi @madawei2699, thanks for adding that information! This should now be fixed.