Problems with build on macOS Sierra

Hi,
thanks for great project, awesome work. I've had some problems trying to build tf-coriander from sources on macOS Sierra. At first, I want to point out that maybe I've misunderstood the instructions in the https://github.com/hughperkins/tf-coriander/blob/master/doc/build-from-source.md article, or maybe I've just missed something and I am doing something completely wrong. In this case, I apologize.
If I understand correctly, according to mentioned page, I normally clone the repository, go to it and call
bash ./install_deps.sh. This worked, or seemed to work. Than, I've called bash ./build.sh from the same folder. This is output from repeated call, so something is expected to be already up to date:
+ . env3/bin/activate
++ deactivate nondestructive
++ '[' -n '' ']'
++ '[' -n '' ']'
++ '[' -n /bin/bash -o -n '' ']'
++ hash -r
++ '[' -n '' ']'
++ unset VIRTUAL_ENV
++ '[' '!' nondestructive = nondestructive ']'
++ VIRTUAL_ENV=/Users/tomasv/work/github/tf-coriander/env3
++ export VIRTUAL_ENV
++ _OLD_VIRTUAL_PATH=/Users/tomasv/work/github/tf-coriander/env3/bin:/Users/tomasv/coriander/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/share/dotnet:/usr/local/go/bin:/Library/Frameworks/Mono.framework/Versions/Current/Commands
++ PATH=/Users/tomasv/work/github/tf-coriander/env3/bin:/Users/tomasv/work/github/tf-coriander/env3/bin:/Users/tomasv/coriander/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/share/dotnet:/usr/local/go/bin:/Library/Frameworks/Mono.framework/Versions/Current/Commands
++ export PATH
++ '[' -n '' ']'
++ '[' -z '' ']'
++ _OLD_VIRTUAL_PS1=
++ '[' 'x(env3) ' '!=' x ']'
++ PS1='(env3) '
++ export PS1
++ '[' -n /bin/bash -o -n '' ']'
++ hash -r
+ CLANG_HOME=/Users/tomasv/work/github/tf-coriander/soft/llvm-4.0
+ util/build_coriander.sh
+ git submodule update --init --recursive
+ pushd third_party/coriander
~/work/github/tf-coriander/third_party/coriander ~/work/github/tf-coriander
+ [[ ! -d build ]]
+ cd build
+ [[ x/Users/tomasv/work/github/tf-coriander/soft/llvm-4.0 != x ]]
+ cmake -DCMAKE_BUILD_TYPE=Debug -DCLANG_HOME=/Users/tomasv/work/github/tf-coriander/soft/llvm-4.0 ..
-- Configuring done
CMake Warning (dev):
  Policy CMP0042 is not set: MACOSX_RPATH is enabled by default.  Run "cmake
  --help-policy CMP0042" for policy details.  Use the cmake_policy command to
  set the policy and suppress this warning.

  MACOSX_RPATH is not specified for the following targets:

   clblast
   clew
   cocl
   cocl_gtest
   easycl

This warning is for project developers.  Use -Wno-dev to suppress it.

-- Generating done
-- Build files have been written to: /Users/tomasv/work/github/tf-coriander/third_party/coriander/build
+ make -j 8
[  1%] Built target clew
[  9%] Built target patch_hostside
[ 15%] Built target easycl
[ 50%] Built target clblast
[ 96%] Built target cocl
[100%] Built target ir-to-opencl
+ SUDO=sudo
++ cat /proc/1/sched
++ head -n 1
++ grep '[init|systemd]'
cat: /proc/1/sched: No such file or directory
+ [[ ! -n '' ]]
+ echo running in docker
running in docker
+ SUDO=
++ uname
+ [[ Darwin == Darwin ]]
+ SUDO=
+ make install
[  1%] Built target clew
[ 35%] Built target clblast
[ 42%] Built target easycl
[ 89%] Built target cocl
[ 92%] Built target ir-to-opencl
[100%] Built target patch_hostside
Install the project...
-- Install configuration: "Debug"
-- Up-to-date: /usr/local/include/cocl/__clang_cuda_runtime_wrapper.h
-- Up-to-date: /usr/local/include/cocl/cocl.h
-- Up-to-date: /usr/local/include/cocl/cocl_blas.h
-- Up-to-date: /usr/local/include/cocl/cocl_clsources.h
-- Up-to-date: /usr/local/include/cocl/cocl_context.h
-- Up-to-date: /usr/local/include/cocl/cocl_defs.h
-- Up-to-date: /usr/local/include/cocl/cocl_device.h
-- Up-to-date: /usr/local/include/cocl/cocl_deviceside.h
-- Up-to-date: /usr/local/include/cocl/cocl_dnn.h
-- Up-to-date: /usr/local/include/cocl/cocl_dnn_act.h
-- Up-to-date: /usr/local/include/cocl/cocl_dnn_conv.h
-- Up-to-date: /usr/local/include/cocl/cocl_dnn_core.h
-- Up-to-date: /usr/local/include/cocl/cocl_dnn_gemm.h
-- Up-to-date: /usr/local/include/cocl/cocl_dnn_pooling.h
-- Up-to-date: /usr/local/include/cocl/cocl_error.h
-- Up-to-date: /usr/local/include/cocl/cocl_events.h
-- Up-to-date: /usr/local/include/cocl/cocl_hostside.h
-- Up-to-date: /usr/local/include/cocl/cocl_kernellaunch.h
-- Up-to-date: /usr/local/include/cocl/cocl_memory.h
-- Up-to-date: /usr/local/include/cocl/cocl_properties.h
-- Up-to-date: /usr/local/include/cocl/cocl_streams.h
-- Up-to-date: /usr/local/include/cocl/cublas_v2.h
-- Up-to-date: /usr/local/include/cocl/cuda.h
-- Up-to-date: /usr/local/include/cocl/cuda_config.h
-- Up-to-date: /usr/local/include/cocl/cuda_runtime_api.h
-- Up-to-date: /usr/local/include/cocl/cudnn.h
-- Up-to-date: /usr/local/include/cocl/fake_funcs.h
-- Up-to-date: /usr/local/include/cocl/hostside_opencl_funcs.h
-- Up-to-date: /usr/local/include/cocl/local_config.h.templ
-- Up-to-date: /usr/local/include/cocl/math_constants.h
-- Up-to-date: /usr/local/include/cocl/cuda_device_runtime_api.h
-- Up-to-date: /usr/local/include/cocl/cuda_runtime.h
-- Up-to-date: /usr/local/include/cocl/device_launch_parameters.h
-- Up-to-date: /usr/local/include/cocl/driver_types.h
-- Up-to-date: /usr/local/include/cocl/math_functions.hpp
-- Up-to-date: /usr/local/include/cocl/vector_types.h
-- Up-to-date: /usr/local/bin/cocl_wrapped
-- Up-to-date: /usr/local/bin/cocl
-- Up-to-date: /usr/local/include/clew.h
-- Up-to-date: /usr/local/include/EasyCL/CLArray.h
-- Up-to-date: /usr/local/include/EasyCL/CLArrayFloat.h
-- Up-to-date: /usr/local/include/EasyCL/CLArrayInt.h
-- Up-to-date: /usr/local/include/EasyCL/CLFloatWrapper.h
-- Up-to-date: /usr/local/include/EasyCL/CLFloatWrapperConst.h
-- Up-to-date: /usr/local/include/EasyCL/CLIntWrapper.h
-- Up-to-date: /usr/local/include/EasyCL/CLKernel.h
-- Up-to-date: /usr/local/include/EasyCL/CLKernel_structs.h
-- Up-to-date: /usr/local/include/EasyCL/CLUCharWrapper.h
-- Up-to-date: /usr/local/include/EasyCL/CLWrapper.h
-- Up-to-date: /usr/local/include/EasyCL/DeviceInfo.h
-- Up-to-date: /usr/local/include/EasyCL/DevicesInfo.h
-- Up-to-date: /usr/local/include/EasyCL/EasyCL.h
-- Up-to-date: /usr/local/include/EasyCL/EasyCL_export.h
-- Up-to-date: /usr/local/include/EasyCL/ICLArray.h
-- Up-to-date: /usr/local/include/EasyCL/deprecated.h
-- Up-to-date: /usr/local/include/EasyCL/deviceinfo_helper.h
-- Up-to-date: /usr/local/include/EasyCL/mystdint.h
-- Up-to-date: /usr/local/include/EasyCL/platforminfo_helper.h
-- Up-to-date: /usr/local/share/cocl/cocl.cmake
-- Up-to-date: /usr/local/share/cocl/cocl_impl.cmake
-- Installing: /usr/local/lib/libeasycl.dylib
-- Installing: /usr/local/lib/libclew.dylib
-- Installing: /usr/local/lib/libclblast.dylib
-- Installing: /usr/local/lib/libcocl.dylib
-- Up-to-date: /usr/local/bin/patch_hostside
-- Up-to-date: /usr/local/lib/cocl/cocl-targets.cmake
-- Installing: /usr/local/lib/cocl/cocl-targets-debug.cmake
+ popd
~/work/github/tf-coriander
+ echo Installed coriander
Installed coriander
+ util/run_configure.sh
+ cat
+ ./configure
~/work/github/tf-coriander ~/work/github/tf-coriander
No Google Cloud Platform support will be enabled for TensorFlow
No Hadoop File System support will be enabled for TensorFlow

After that, according to instruction page, there should be whl wheel in soft/tensorflowpkg folder. But these instructions are IMHO wrong, because no TF build have taken place. This is confirmed by the absence of the tensorflowpkg subfolder in soft folder and also the whl file is of course not present. But as I remember, TF must be built by calling bazel, so I have tried to build TF by using:
bazel build --jobs 4 //tensorflow/tools/pip_package:build_pip_package
This yielded a lot of errors, saying that set() syntax is deprecated and I should use depset(). I have replaced all set() calls with depset() calls in main bzl file and re-run command. This is what I got:
DEBUG: /private/var/tmp/_bazel_tomasv/f8bf8395d5f33d0a7fe51eea33d94dd9/external/bazel_tools/tools/osx/xcode_configure.bzl:85:5: Invoking xcodebuild failed, developer dir: /Applications/Xcode.app/Contents/Developer ,return code 256, stderr: Process terminated by signal 15, stdout:
ERROR: /Users/tomasv/work/github/tf-coriander/tensorflow/python/BUILD:1667:1: Traceback (most recent call last):
	File "/Users/tomasv/work/github/tf-coriander/tensorflow/python/BUILD", line 1667
		tf_proto_library_py(name = "compare_test_proto", testo..., ..."])
	File "/Users/tomasv/work/github/tf-coriander/tensorflow/core/platform/default/build_config.bzl", line 62, in tf_proto_library_py
		py_proto_library(name = (name + "_py"), srcs = srcs, <6 more arguments>)
	File "/private/var/tmp/_bazel_tomasv/f8bf8395d5f33d0a7fe51eea33d94dd9/external/protobuf/protobuf.bzl", line 335, in py_proto_library
		py_libs += [default_runtime]
trying to mutate a frozen object
ERROR: /Users/tomasv/work/github/tf-coriander/tensorflow/python/BUILD:231:1: Target '//tensorflow/python:python_op_gen' contains an error and its package is in error and referenced by '//tensorflow/python:python_op_gen_main'
ERROR: /Users/tomasv/work/github/tf-coriander/tensorflow/python/BUILD:231:1: Target '//tensorflow/python:framework/python_op_gen_main.cc' contains an error and its package is in error and referenced by '//tensorflow/python:python_op_gen_main'
ERROR: /Users/tomasv/work/github/tf-coriander/tensorflow/models/embedding/BUILD:107:1: Target '//tensorflow/python:python_op_gen_main' contains an error and its package is in error and referenced by '//tensorflow/models/embedding:gen_gen_word2vec_py_wrappers_cc'
ERROR: /Users/tomasv/work/github/tf-coriander/tensorflow/models/embedding/BUILD:107:1: Target '//tensorflow/python:framework_for_generated_wrappers' contains an error and its package is in error and referenced by '//tensorflow/models/embedding:gen_word2vec'
ERROR: /Users/tomasv/work/github/tf-coriander/tensorflow/tools/pip_package/BUILD:23:1: Target '//tensorflow/python:util_example_parser_configuration' contains an error and its package is in error and referenced by '//tensorflow/tools/pip_package:build_pip_package'
ERROR: Analysis of target '//tensorflow/tools/pip_package:build_pip_package' failed; build aborted: Loading failed
INFO: Elapsed time: 1,946s
FAILED: Build did NOT complete successfully (7 packages loaded)

I think that most important is the trying to mutate a frozen object part...But I do not know how to fix the build in this stage. Am I doing it absolutely wrong or did I understand something wrong? Is documentation correct?
Thanks for the response,
Tom

I'm doing the same as you did but after replacing set() to depset() I got this different error:
ERROR: /Users/acrogenesis/Downloads/tf-coriander/WORKSPACE:23:1: Traceback (most recent call last):
	File "/Users/acrogenesis/Downloads/tf-coriander/WORKSPACE", line 23
		check_version("0.3.0")
	File "/Users/acrogenesis/Downloads/tf-coriander/tensorflow/tensorflow.bzl", line 35, in check_version
		fail("\nCurrent Bazel version is {}, ...))

Current Bazel version is 0.11.1-homebrew, expected at least 0.3.0
ERROR: Error evaluating WORKSPACE file
ERROR: Skipping '@grpc//:grpc_cpp_plugin': error loading package 'external': Package 'external' contains errors
WARNING: Target pattern parsing failed.
ERROR: error loading package 'external': Package 'external' contains errors
INFO: Elapsed time: 0.248s
FAILED: Build did NOT complete successfully (0 packages loaded)

@MyOwnClone could you finish the installation?

Is there any update on this issue? I'm facing with the exactly same problem of not having the whl file.

I am having this exact issue. No whl file to be found.

Same problem here.  whl file is not produced.  Building on Mac OS 10.13.6 (Mojave).

Hi, i expect that the version of bazel has changes since the instructions
were written and is incompatible. I think the easiest way forward would be
to figure out which version of bazel was available at the time of the
instructions, and explicitly use that version.
On Sun, Oct 14, 2018, 17:51 Raymond Phan<EMAIL_ADDRESS>wrote:

Same problem here. whl file is not produced. Building on Mac OS 10.13.6
(Mojave).
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/hughperkins/tf-coriander/issues/82#issuecomment-429666335,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAHiqIwjwOwN-0KxPcLr0uvH33Kjg6mwks5uk7HmgaJpZM4STnCq
.

Looking for similar solution, think I sort of found two possible avenues of solution i'm going to test this weekend. @acrogenesis, @MyOwnClone @bcaldir, @rayryeng, @KendallPark, @hughperkins

@datatalking Thanks for this, but I've moved onto a Macbook with a M1 chip and there's already an established pipeline for getting TF. I don't think I'll need (or am able) to test things out for you.

Thanks for replying, are you familiar with any other repos for GPU similar to yours?

On Jan 3, 2023, at 5:25 PM, Ray Phan @.***> wrote:
@datatalking https://github.com/datatalking Thanks for this, but I've moved onto a Macbook with a M1 chip and there's already an established pipeline for getting TF. I don't think I'll need (or am able) to test things out for you.
—
Reply to this email directly, view it on GitHub https://github.com/hughperkins/tf-coriander/issues/82#issuecomment-1370389772, or unsubscribe https://github.com/notifications/unsubscribe-auth/AC2ECWL3KR3LSO7E4CIQ62LWQTGRHANCNFSM4ESOOCVA.
You are receiving this because you were mentioned.


Handle Multiple Sequences

Codecov Report
Base: 68.05% // Head: 68.05% // No change to project coverage :thumbsup:

Coverage data is based on head (c87db43) compared to base (2511c1c).
Patch has no changes to coverable lines.

Additional details and impacted files
@@           Coverage Diff           @@
##              dev     #320   +/-   ##
=======================================
  Coverage   68.05%   68.05%
=======================================
  Files          71       71
  Lines        5466     5466
=======================================
  Hits         3720     3720
  Misses       1746     1746

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

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

Pending solution here https://github.com/populationgenomics/sample-metadata/issues/321

Current test run broke on
exceptionMessage: "'SequenceApi' object has no attribute 'get_sequence_by_external_id'"
So I believe this is pending the changes here https://github.com/populationgenomics/sample-metadata/pull/325

Ah look at that, I actually made an issue for this https://github.com/populationgenomics/sample-metadata/issues/284


SocketIOClient implementation test fails with Async callback not invoked

🐛 Bug Report
To Reproduce

import SocketIO from 'socket.io-client'
import { chatHandler } from '../source'

let socket: SocketIOClient.Socket

afterAll((done) => {
	chatHandler.close()
	done()
})

beforeEach((done) => {
	socket = SocketIO.connect('https://localhost:8087')
	socket.on('connect', () => {
		done()
	})
})

afterEach((done) => {
	if (socket.connected) {
		socket.disconnect()
	}
	done()
})

describe('Chat implementation tests', () => {
	test('EVENT - requestDisconnect', (done) => {
		socket.emit('requestDisconnect')
		socket.once('disconnect', () => {
			expect(socket.connected).toBe(false)
			done()
		})
	})
})

Where the chatHandler is the SocketIOServer and the requestDisconnect event disconnects the client.
Expected behavior
Test to pass, as socket.connected should be false
Current behavior

 FAIL  tests/Implementation.spec.ts (12.19s)
  ● Console

    console.log source/communication/http/HTTPManager.ts:21
      [SOCKET] Server started on port 8087

  ● Chat implementation tests › EVENT - requestDisconnect

    Timeout - Async callback was not invoked within the 5000ms timeout specified by jest.setTimeout.Error: Timeout - Async callback was not invoked within the 5000ms timeout specified by jest.setTimeout.

      at mapper (node_modules/jest-jasmine2/build/queueRunner.js:27:45)

  ● Chat implementation tests › EVENT - requestDisconnect

    : Timeout - Async callback was not invoked within the 5000ms timeout specified by jest.setTimeout.Timeout - Async callback was not invoked within the 5000ms timeout specified by jest.setTimeout.Error:

      24 |
      25 | describe('Chat implementation tests', () => {
    > 26 |      test('EVENT - requestDisconnect', (done) => {
         |      ^
      27 |              socket.emit('requestDisconnect')
      28 |              socket.once('disconnect', () => {
      29 |                      expect(socket.connected).toBe(false)

      at new Spec (node_modules/jest-jasmine2/build/jasmine/Spec.js:116:22)
      at Suite.<anonymous> (tests/Implementation.spec.ts:26:2)

Test Suites: 1 failed, 1 passed, 2 total
Tests:       1 failed, 1 passed, 2 total
Snapshots:   0 total
Time:        12.994s
Ran all test suites.
A worker process has failed to exit gracefully and has been force exited. This is likely caused by tests leaking due to improper teardown. Try running with --runInBand --detectOpenHandles to find leaks.```

## envinfo

System:
OS: macOS Mojave 10.14.4
CPU: (12) x64 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz
Binaries:
Node: 12.1.0 - /usr/local/bin/node
Yarn: 1.22.4 - /usr/local/bin/yarn
npm: 6.14.2 - /usr/local/bin/npm
npmPackages:
jest: ^25.2.3 => 25.2.3

This still keeps happening, even with 30 second timeout. Sometimes the socket connects successfully and sometimes it just fails and times out.

Still not resolved


Show warnings for referenced packages that are out of date

When you pin package versions, there's nothing to remind you when package updates are available. If there was a warning shown at the end of each script execution, it would provide awareness to folks who aren't thinking about loading up their various packages' websites to check manually.
Similar to https://github.com/cake-build/cake/issues/2260, so I'll copy this part:

Could a warning be too strong? Information might be a better fit except that it might fail in its purpose of drawing attention during a normal script execution. On the other hand, there's occasionally a CVE associated with a new update.
Since the update check isn't mission-critical, it could be started asynchronously before compiling the script. If there is no network connectivity, the check can time out silently or be canceled silently when the script execution is finished.
There should be a configuration setting for folks to opt out.

Not sure if I agree that this functionality should be present on every execution as it will have significant impact on wxecution time. Checking each package will result in a fair amount of HTTP requests. Instead I suggest implementing this feature as a separate command. The command should also support updating the versions.

@mholo65 If the HTTP requests are sent asynchronously and the results are only shown after the script is finished executing, the wall time shouldn't be any shorter for the entire execution.

(Does the NuGet protocol have a single-roundtrip way to check for package updates?)

Async could be nice, however quickly thinking it through it feels like it would require some breaking changes which then could have impact on some modules, etc. Speaking if modules, this functionality should be implemented in a way that it’s opt-in for other modules to implement (e.g. Choco, Paket, Apt-Get etc.)
Back to NuGet (which is the only module maintained by Cake core), glad you asked about NuGet V3 protocol (which is implemented using JSON-LD) :smile: Simple answer, no there isn’t a quick way to check if package is outdated. From the top of my head, here’s how it goes:

First query service index (https://api.nuget.org/v3/index.json) to get the Registration url.
For each package, query the registration for that specific package and parse that. If you’re lucky, and the registration doesn’t contain many versions it will look something like this https://api.nuget.org/v3/registration3/cake/index.json. If you’re unlucky, it will look like this https://www.myget.org/F/cake/api/v3/registration1/cake/index.json and you will need to go one level deeper lile this https://www.myget.org/F/cake/api/v3/registration1/cake/page/0.29.0-alpha0023/0.31.0-alpha0002.json

Just look at that amount of JSON and take a moment to reflect over why NuGet is slow :smile: Fortunately, we don’t need to implement the protocol as we can rely on the NuGet Client libraries.


Preview url of PDF does not work in Office Add-in / Edge

[ ] Question
[ ] Documentation issue
[x] Bug

Expected or Desired Behavior
We can see the preview of a pdf when we navigate to the preview link in at least Chrome, Internet Explorer, Edge (both older ver. and chronium Edge) and Firefox, as long as access_token is valid.
Observed Behavior
In Edge and in Office add-in for Windows 10 ver. >= 1903 / Office 365 ver >= 16.0.11629, the preview doesn't show up.
Occasionally, the link works and shows preview once, but only once.
We get "Hmm... looks like this file doesn't have a preview we can show you" message.
When we open the link in Chrome, Internet Explorer and Firefox, the preview shows up without any problem.
(Opened in Edge)

(Opened in Chrome)

(In Console in Edge)

Steps to Reproduce
POST request to : https://graph.microsoft.com/v1.0/drives/{driveId}/items/{itemId}/preview
Navigate to "getUrl" in the response in Edge.
If the link works, open an another tab, and open the link again.
(Edge version used)
Microsoft Edge 44.18362.449.0
Microsoft EdgeHTML 18.18362
(example of response)
{"@odata.context":"https://graph.microsoft.com/v1.0/$metadata#microsoft.graph.itemPreviewInfo",
"getUrl":"https://{tenant}/sites/{sitename}/_layouts/15/embed.aspx?uniqueId={uniqueId}&access_token={access_token}",
"postParameters":null,
"postUrl":null}

As part of a repository clean up effort we are closing older issues. If this issue remains, please: open a new issue, reference this issue, and provide any additional details that may help in resolution. Thank you for your understanding as we work to improve our responsiveness.


build: support ingress-nginx

Description
Generate compatible module that can be loaded by ingress-nginx controller.
Changes:

Refactor bin/release.py to handle releasing the ingress-nginx init container.
Add bin/ingress-nginx.py script to build a module version compatible with the ingress-nginx controller.
Add CI jobs for building and testing ingress-nginx modules.
Add a new Makefile target to build the ingress-nginx module.
Include documentation and examples for using ingress-nginx.
Skip features incompatible with the ingress-nginx controller.
Update tests to remove the root directive, which is not supported by ingress-nginx.
Modify orchestrator.py to restart the nginx service using the default config.
Enforce the creation of a PID file for the nginx service.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 69.16%. Comparing base (a01af12) to head (3a290f1).
Report is 2 commits behind head on master.

Additional details and impacted files

@@           Coverage Diff           @@
##           master     #128   +/-   ##
=======================================
  Coverage   69.16%   69.16%
=======================================
  Files          36       36
  Lines        3963     3963
  Branches      669      669
=======================================
  Hits         2741     2741
  Misses        874      874
  Partials      348      348

Work as expected, however, we are tracing healthcheck:

Solution: drop-in support.


Demo structure cleanup

The current structure is done in a way that we can just straight merge master to gh-pages branch and it will work.  I think it would be better to just have a demo folder with all the files we need for gh-pages and publish just that folder to the gh-pages branch (see https://gist.github.com/cobyism/4730490).
Basically all this entails is moving the index.html to the demo folder and creating a deployment script for gh-pages, but there will be  few smaller changes that will need to be made to accomplish this, so I'm creating an issue for now.

I don't think this is a good idea anymore.


fix: set cov matrixes to defined values

What is this PR for

The filters used on pose_estimation need the covariance for position and orientation.
For Z, the choice was 0.1m. For orientation, we used 1 deg in radians squared. These are just educated guesses after operating with the ROV.
How I did it

Results, How I tested

TBD
Checklist

[x] Assign yourself  in the PR
[ ] Write unit tests (when relevant)
[ ] Run rubocop and rake tests locally
[ ] If this PR initialize a CMAKE package please enable styling and linting
[ ] Analyse if this PR modifies the UI, if so:

[ ] Tested Tupan's simulation (Charts) :world_map:
[ ] Tested Tupan's simulation (Hud) :joystick:
[ ] Tested ROV's simulation :joystick:

Include it in the unit tests !

Include it in the unit tests !

Yep, it's TBD


Add Benchmarks to compare with native modules

BankMsg and ExecuteMsg on cw20-base is the simplest comparison.
Starting with the benchmark in x/bank, let's:

[x] batch multiple messages per block (eg. 20) (#638)
[x] use leveldb as a backing store (#639)
[x] set up the equivalent for cw20 (use the same setup, just different messages) (#638)
[x] set up significant state first (eg. 10k accounts for both bank and cw20) (#639)
[x] have bank messages send from different pairs of accounts (not all same sender and same receiver) (#639)
[ ] Run in go-bencher

Basically done.
One last follow up in #652


Pixi 3 loader won't load a json file

Uncaught TypeError: Cannot read property 'image' of undefined

var loader = new PIXI.loaders.Loader('assets/NPC_RoseyParker', 10);

loader.add('NPC_RoseyParker', 'NPC_RoseyParker.json', {xhrType:'json', loadType:1});
//or
loader.add('NPC_RoseyParker', 'NPC_RoseyParker.json');
loader.load(...);

Can you show a running example please?

Also, make sure your webserver has a mimetype configured for .json files.
.json    text/json
otherwise your server might simply not be giving you the json file.


Show more indicators for pre-selected attributions

Show the new icon in report table view.
(This makes it necessary to increase the row height.)

Show a hint in the attribution details column.

When running the app on Mac, the text "Attribution was pre-selected" is not left-aligned with the content above.

Why do we have different blue tones for the icons? Should not the blue icons have the same color?

When running the app on Mac, the text "Attribution was pre-selected" is not left-aligned with the content above.

That one is really strange, I cannot reproduce it on different sizes and zoom levels. Seems to be OS dependent. (See screenshot in description.)

Why do we have different blue tones for the icons? Should not the blue icons have the same color?

I thought the idea was to have different colors for every icon. Matter of taste though.

As discussed in person, we'll make the icon orange.

As discussed we agreed to keep the colors as they are

When running the app on Mac, the text "Attribution was pre-selected" is not left-aligned with the content above.

Looks like it was a difference between the auto-update version and the built version of the app (weird...). I think I fixed it. Can you try again?

When running the app on Mac, the text "Attribution was pre-selected" is not left-aligned with the content above.

Looks like it was a difference between the auto-update version and the built version of the app (weird...). I think I fixed it. Can you try again?

Great, it works now as expected.


python310Packages.yfinance: 0.1.77 -> 0.1.84

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python310Packages.yfinance is: "Yahoo! Finance market data downloader (+faster Pandas Datareader)"
meta.homepage for python310Packages.yfinance is: "https://aroussi.com/post/python-yahoo-finance"
meta.changelog for python310Packages.yfinance is: ""
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.1.79 with grep in /nix/store/ixqxvj9zj8vmdnpvwy0c7n51dgfys8k7-python3.10-yfinance-0.1.79
found 0.1.79 in filename of file in /nix/store/ixqxvj9zj8vmdnpvwy0c7n51dgfys8k7-python3.10-yfinance-0.1.79

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

6 total rebuild path(s)

6 package rebuild(s)

First fifty rebuilds by attrpath
python310Packages.qiskit
python310Packages.qiskit-finance
python310Packages.yfinance
python39Packages.qiskit
python39Packages.qiskit-finance
python39Packages.yfinance

Instructions to test this update (click to expand)

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

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

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/ixqxvj9zj8vmdnpvwy0c7n51dgfys8k7-python3.10-yfinance-0.1.79
ls -la /nix/store/ixqxvj9zj8vmdnpvwy0c7n51dgfys8k7-python3.10-yfinance-0.1.79/bin

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

4 packages failed to build:

python310Packages.qiskit
python310Packages.qiskit-finance
python39Packages.qiskit
python39Packages.qiskit-finance

2 packages built:

python310Packages.yfinance
python39Packages.yfinance

Maintainer pings
cc @drewrisinger for testing.

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python310Packages.yfinance is: "Yahoo! Finance market data downloader (+faster Pandas Datareader)"
meta.homepage for python310Packages.yfinance is: "https://aroussi.com/post/python-yahoo-finance"
meta.changelog for python310Packages.yfinance is: ""
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.1.84 with grep in /nix/store/5k1024mj6ah9bzmzhbs93br1wlw3h77v-python3.10-yfinance-0.1.84
found 0.1.84 in filename of file in /nix/store/5k1024mj6ah9bzmzhbs93br1wlw3h77v-python3.10-yfinance-0.1.84

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

6 total rebuild path(s)

6 package rebuild(s)

First fifty rebuilds by attrpath
python310Packages.qiskit
python310Packages.qiskit-finance
python310Packages.yfinance
python39Packages.qiskit
python39Packages.qiskit-finance
python39Packages.yfinance

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/5k1024mj6ah9bzmzhbs93br1wlw3h77v-python3.10-yfinance-0.1.84 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

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

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/5k1024mj6ah9bzmzhbs93br1wlw3h77v-python3.10-yfinance-0.1.84
ls -la /nix/store/5k1024mj6ah9bzmzhbs93br1wlw3h77v-python3.10-yfinance-0.1.84/bin

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

4 packages failed to build:

python310Packages.qiskit
python310Packages.qiskit-finance
python39Packages.qiskit
python39Packages.qiskit-finance

2 packages built:

python310Packages.yfinance
python39Packages.yfinance

Maintainer pings
cc @drewrisinger for testing.


feat: add ComboBox wds component

Description

[!TIP]
Add a TL;DR when the description is longer than 500 words or extremely technical (helps the content, marketing, and DevRel team).
Please also include relevant motivation and context. List any dependencies that are required for this change. Add links to Notion, Figma or any other documents that might be relevant to the PR.

Fixes #Issue Number
or
Fixes Issue URL

[!WARNING]
If no issue exists, please create an issue first, and check with the maintainers if the issue is valid.

Automation
/ok-to-test tags=""
:mag: Cypress test results

[!WARNING]
Tests have not run on the HEAD aae4644c2b309747396604dc20429ec5b52fe4cf yet
Wed, 04 Sep 2024 10:10:06 UTC

Communication
Should the DevRel and Marketing teams inform users about this change?

[ ] Yes
[ ] No

Summary by CodeRabbit

New Features

Introduced a customizable and accessible ComboBox component for item selection.
Added support for loading states, validation, and contextual help within the ComboBox.
Integrated new configuration options for widget behavior and appearance.

Bug Fixes

Enhanced validation logic to ensure proper input formatting for ComboBox options.

Documentation

Added Storybook stories to demonstrate various ComboBox states and functionalities.

Style

Implemented a comprehensive CSS module for consistent styling of the ComboBox component.

Chores

Updated widget mapping to include the new ComboBox widget in the application.

The design seems wrong -

@znamenskii-ilia @ichik

/build-deploy-preview skip-tests=true


jsonArrayFrom dates have Date type but are returned as a string

Hi there,
Thanks for the time and effort on this library, really enjoy working with it on my current project!
I do however have a question. I notice the Date's retrieved by using jsonArrayFrom are returned as a string instead of a Date. The types expect i should get a Date back, but in fact i'm getting a string. Is this expected behaviour?
Due to not giving away my database architecture in the open, i've reduced it down to it's most basic form below.
Typescript sees both createdAt with a Date type. But only the createdAt from the jsonArrayFrom is actually a string, which is not what we expect.
const a = await kysely
  .selectFrom('a')
  .select((eb) => [
    jsonArrayFrom(
      eb
        .selectFrom('b')
        .select([
          'b.createdAt',
        ])
        .whereRef('b.aId', '=', 'a.id'),
    ).as('b'),
  ])
  .select(['a.createdAt'])
  .where('id', '=', id)
  .executeTakeFirst();

console.log(
  'typeof a?.createdAt',
  typeof a?.createdAt,
  a?.createdAt,
);
// typeof a?.createdAt object 2023-05-02T21:57:15.466Z
// This is a Date, correct!

a?.b.forEach((b) =>
  console.log('typeof b.createdAt', typeof b.createdAt, b.createdAt),
);
// typeof b.createdAt string 2023-05-11 14:16:36.483000
// This is a string, not correct

The types:
export type A = {
  id: Generated<number>;
  createdAt: Generated<Timestamp>;
};

export type B = {
  id: Generated<number>;
  aId: number;
  createdAt: Generated<Timestamp>;
};

Some context: i'm using Kysely with the Planetscale Dialect together with prisma-kysely to have the correct types.
edit: can confirm jsonObjectFrom is also having this same behaviour.

Yep, this is expected.

Ok, is it something that can be fixed? Either as a fix in this library or a workaround I can use? As it's not really type-safe here, which is a bit of a bummer

JSON is JSON. There's no Date type in JSON. There's nothing we can do. The word JSON is in the name of the function, so you shouldn't be that surprised.

JSON is JSON. There's no Date type in JSON. There's nothing we can do. The word JSON is in the name of the function, so you shouldn't be that surprised.

True true, but would have expected the types to pick that up too. If the method could return non-JSON types as string, I think that would already fix it?

Here's the workaround I'm using in case it helps anyone
export type CastDatesToStrings<O> = {
    [K in keyof O]: O[K] extends Date ? string : O[K];
};

// https://github.com/kysely-org/kysely/issues/482
export function typesafeJsonArrayFrom<O>(
    expr: Expression<O>,
): RawBuilder<CastDatesToStrings<Simplify<O>>[]> {
    // @ts-expect-error #TS2322
    return jsonArrayFrom(expr);
}

I also find this devilish; it makes the linter and typescript think everything's find and than -- out of nothing -- things break terribly! :smiling_imp:
Therefore I extended the casting type from above
export type JSONValue =
	| string
	| number
	| boolean
	| null
	| { [x: string]: JSONValue }
	| Array<JSONValue>

export type CastDatesToStrings<O> = {
	[K in keyof O]: O[K] extends JSONValue
		? O[K] // it's a JSONValue, we are good
		: O[K] extends Date // it's a Date, we need to cast it to string
		? string
		: never // otherwise, we don't know what to do, better error out.
}

True true, kinda forgot it only returns JSON because the types were not representing that. Would have expected the types to pick that up too. If the method could return non-JSON types as string, I think that would already fix it?

Recursively traversing the output type and transforming all non-JSON properties to JSON would be terribly slow and it would be done for all outputs of those JSON functions, not just the problematic ones. We could destroy the typescript performance for everyone that uses those functions.
Since the typescript compiler is super slow, we need to constantly balance between type-safety and keeping the IDEs and your compilation step fast.

Here's the workaround I'm using in case it helps anyone
export type CastDatesToStrings<O> = {
    [K in keyof O]: O[K] extends Date ? string : O[K];
};

// https://github.com/kysely-org/kysely/issues/482
export function typesafeJsonArrayFrom<O>(
    expr: Expression<O>,
): RawBuilder<CastDatesToStrings<Simplify<O>>[]> {
    // @ts-expect-error #TS2322
    return jsonArrayFrom(expr);
}

What's the downside of this, and why can't Kysely adopt it natively?

Here's the workaround I'm using in case it helps anyone
export type CastDatesToStrings<O> = {
    [K in keyof O]: O[K] extends Date ? string : O[K];
};

// https://github.com/kysely-org/kysely/issues/482
export function typesafeJsonArrayFrom<O>(
    expr: Expression<O>,
): RawBuilder<CastDatesToStrings<Simplify<O>>[]> {
    // @ts-expect-error #TS2322
    return jsonArrayFrom(expr);
}

got caught by this one as well, thanks for the workaround 🫡

FYI we got also caught by this offguard. I don't really mind working with date strings as long as it's the same everywhere. We wrote a simple plugin which rewrites all dates as date strings:
export class DateStringPlugin implements KyselyPlugin {
  transformQuery(args: PluginTransformQueryArgs): RootOperationNode {
    return args.node;
  }

  async transformResult(args: PluginTransformResultArgs): Promise<QueryResult<UnknownRow>> {
    if (args.result.rows && Array.isArray(args.result.rows)) {
      return {
        ...args.result,
        rows: this.mapRows(args.result.rows),
      };
    }

    return args.result;
  }

  private mapRows(rows: UnknownRow[]): UnknownRow[] {
    return rows.map((row) => this.mapDates(row) as UnknownRow);
  }

  private mapDates(data: unknown | unknown[]): unknown {
    if (Array.isArray(data)) {
      return data.map((d) => this.mapDates(d));
    }

    // Won't work in difference window contexts. No problem as this is only in a single node process.
    if (data instanceof Date) {
      return data.toISOString();
    }

    if (typeof data === "object" && data !== null) {
      return Object.fromEntries(
        Object.entries(data).map(([key, value]) => [key, this.mapDates(value)]),
      );
    }

    return data;
  }
}

Then simply search and replace your Timestamp (and other date definitions) with your custom DateString type:
export type DateString = string & {};
export type Timestamp = ColumnType<DateString, Date | string, Date | string>;

⬆ This types all selects for Timestamps to return Datestring instead of Date. The conversion of the result is then done by the plugin.


Add Govee Glide Hexa and Ledvance Planon

I've added two lighs.
Govee Glide Hexa which is controlled by the VERY basic Govee integration.
and
LEDVANCE SMART+ WIFI PLANON FRAMELESS RGB TW which is controlled by Localtuya.

Nice thanks.
Can you rename "Govee" to "govee" please to be consistent with the other manufacturer folders?

Yes of course, sorry
man. 14. nov. 2022 18.47 skrev Bram Gerritsen @.***>:

Nice thanks.
Can you rename "Govee" to "govee" please to be consistent with the other
manufacturer folders?
—
Reply to this email directly, view it on GitHub
https://github.com/bramstroker/homeassistant-powercalc/pull/1274#issuecomment-1314145639,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADIHDTOPLFZJ3WWBD6ZHV3DWIJ3MHANCNFSM6AAAAAAR763EAU
.
You are receiving this because you authored the thread.Message ID:
@.***>

Folders are now lower case, hope it is ok now?


fix: work around for webpack parse error.

Description:
The integrated webpack in react 18 cannot parse the media-time-slider calculation:
postcss-calc:: Parse error on line 1:
min(calc(var(--media-buffered) / max(var(--media-duration), 1)), 1) * 10...
--------------------------------------------------------------^
Expecting end of input, "ADD", "SUB", "MUL", "DIV", got unexpected "RPAREN" webpack://./node_modules/vidstack/styles/defaults.css:169:2

This change uses a temporary variable to work around this parsing problem.
Ready?
Yes
Anything Else?
n/a
Review Process:
Confirm that the styles pass regression tests.  Our builds succeed with this change.

Thanks heaps for the PR @tfield! Sorry we were in the middle of a large release and I missed this. We've moved the buffered percent calculation to JS and remove this troublesome line from CSS as part of some other changes. It should be resolved now 👍

This issue is happening for me only with ./node_modules/@vidstack/react/player/styles/default/theme.css:418:2

Thanks for letting me know @colin-oos. I've fixed it and should be released some time today or tomorrow.

Thanks @mihar-22, I can confirm this is resolved now in v1.5.7 🎉


Add stand-alone example resources

What would you like to be added:
Stand-alone example json/yaml files, instead of just embedding them into an MD file
Why is this needed:
Allows SDKs and other implementations to unit test the successfull parsing of official, up-to-date examples
Other thoughts:
Now, what would be really awesome IMHO is to use factual examples, instead of theoretical ones, so that runtime implementations can test them to. The idea is to create some out-of-the-box examples for which runtime can be validated/tested.
We could use Swagger's Pet Store Api for demonstrating OpenApi function calls, and something like a free webhook tool for testing events.

What do you guys think?

@Neuroglia I was actually working on this hehe :)
I just wish there was a way to embed the files into the examples.md so we don't have to maintain both sides...

@Neuroglia do you think doing this for the comparison examples: https://github.com/serverlessworkflow/specification/tree/main/comparisons
would be beneficial as well?

@tsurdilo Niiiice x)
Ah yes, I hear you: I face the exact same problem in some private repos. The only "sane(ish)" way to do so, IMO, is by using a pipeline to replace values in your MD with the contents of the examples. Less user-friendly to write, but at least it's up to date.

@Neuroglia we can host all OpenApi defs on serverlessworkflow.io ;)
+100 for "running" examples
Those can also become the start of our TCK tests as well.

@Neuroglia do you think doing this for the comparison examples: https://github.com/serverlessworkflow/specification/tree/main/comparisons
would be beneficial as well?

@tsurdilo I'm not sure. I must say I only did go once or twice on that specific page, as there was no need to sell me the spec further x) But I can see the added value for more analytical brains than mine I guess!

@Neuroglia if it helps, i do have (i hope all) examples here: https://github.com/serverlessworkflow/sdk-java/tree/main/api/src/test/resources/examples
but the problem with that is its a pain to maintain them all the time so they might not be all up to date with the spec examples, but the workflow dsl used there is validated against v0.6. Hope this helps for now until we work on this

@tsurdilo Aaaaah! Awesome! I'll use that to add some unit test before the commit that adds the reader/writer!

@Neuroglia This might help also: https://github.com/serverlessworkflow/sdk-java/blob/main/api/src/test/java/io/serverlessworkflow/api/test/MarkupToWorkflowTest.java
to see whats tested in https://github.com/serverlessworkflow/sdk-java/tree/main/api/src/test/resources/features
Need to add more tests tho :( ....

@Neuroglia one more thing, we have our dsl schemas also exposed on the website: https://serverlessworkflow.io/schemas/latest/workflow.json
this is used by the vscode plugin and the diagram generation project as well
the "latest" always points to the latest release of the spec
you can use "previous" to access v0.5 and "snapshot" to access the latest (main branch)

@Neuroglia idk how to reach you on slack so adding it here - we are recording our kubecon pres video tomorrow and we have a little "open source integration/collaboration" slide that shows off some cncf and non-cncf projects that are collaborating with SW . If you are interested I can add your stuff there, if not its fine also, just asking if you would like provide me with a logo image and thats it :)

@Neuroglia
looking at this tool to possible be able to do this: https://github.com/temporalio/snipsync

@tsurdilo Should this be re-opened?

@tsurdilo @cdavernas  Any update of this？When we implement sdk-go we facing this which describe at https://github.com/serverlessworkflow/sdk-go/issues/115#issuecomment-1301560340.
A standalone example json/yaml files should helpful.

@tsurdilo Wanna take care of it? Otherwise I'll do it, no worries - even though I resent too 🤣 -: this has been opened for far toooo long (like two years).

on it

You rule thanks bro!

Ping me if you need any help

Same here; I can do it as well. Or we can share, divide, and conquer!

It will be done as part of the migration work: https://github.com/serverlessworkflow/specification-docs/pull/1

@ricardozanini this is a bit more involved. the intent was not for docs, but for sdks, as in all sdks would use same samples for their tests

Yeah I know! I was going to add the examples in the docs directory as part of this migration. So we would have URLs like docs.serverlessworkflow.io/0.8/examples/heartmonitor.yaml
The docs URLs are versioned by default. Every release Antora will add a new directory for the given version. Would simplify a little bit.

im not sure our tests should be downloading yaml from url. this should be imo separate repo that sdks consume and read from file system

@tsurdilo I see what you mean, and I'd tend to agree. However, I prefer having those examples available, in any shape or form, rather than having to wait for the hypothetical time where we will have enough slack to make that repo happen...
I see it that way: it'd be infinitely better than nothing 😜

Additionally, we use CI to download (cache) and run these tests. MD5 features in GitHub actions work pretty neatly.

was looking at structuring sdks so can take advantage of git submodules maybe. wdyt?

honestly, the tradeoff of having the examples online vs configuration bottlenecks doesn't seem a bad option IMO. These files can be cached locally by the SDKs as well. At least in Go, we will do a local cache.

This has been addressed in 0.10, and is closed as part of https://github.com/serverlessworkflow/specification/issues/843
In 0.10, we did even better than what was suggested by adding a list of Gherkin features for conformance testing and Behavior Driven Development.
Example:
Feature: Flow Directive
  As an implementer of the workflow DSL
  I want to ensure that tasks are executed in the correct order
  So that my implementation conforms to the expected behavior

  Scenario: Implicit Sequence Flow
    Given a workflow with definition:
    """yaml
    document:
      dsl: 0.10
      namespace: default
      name: implicit-sequence
    do:
      setRed:
        set:
          colors: '${ .colors + [ "red" ] }'
      setGreen:
        set:
          colors: '${ .colors + [ "green" ] }'
      setBlue:
        set:
          colors: '${ .colors + [ "blue" ] }'
    """
    When the workflow is executed
    Then the workflow should complete with output:
    """yaml
    colors: [ red, green, blue ]
    """
    And setRed should run first
    And setGreen should run after setRed
    And setBlue should run after setGreen


DOCs improve consistency and update to new API's

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

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

Files with Coverage Reduction
New Missed Lines
%

.nox/test-3-10/lib/python3.10/site-packages/cogent3/core/alignment.py
1
94.42%

.nox/test-3-10/lib/python3.10/site-packages/cogent3/evolve/likelihood_function.py
1
96.3%

.nox/test-3-10/Lib/site-packages/cogent3/evolve/likelihood_function.py
1
96.3%

.nox/test-3-9/lib/python3.9/site-packages/cogent3/core/alignment.py
1
94.38%

.nox/test-3-10/Lib/site-packages/cogent3/maths/scipy_optimize.py
3
84.92%

.nox/test-3-11/Lib/site-packages/cogent3/maths/scipy_optimize.py
3
84.92%

.nox/test-3-8/Lib/site-packages/cogent3/maths/scipy_optimize.py
3
84.87%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
235716

Relevant Lines:
257508

💛  - Coveralls


Always render ListBox section headers in RSP for dividers

Closes #6490
Alternative approach to #6490. Adds an option to ListLayout instead of modifying the collection.

@snowystinger you can test the "listbox w/sections and no title" story for this, just need to confirm that the divider shows up. For now apply this in the ListBoxBase's ListLayout should be good enough since I believe ListBox is the only collection component with Sections and components like Picker/ComboBox use it directly.


WIP: Serde support

This is just a skeleton code for #82
Currently, it's mostly unimplemented I'm sharing it with you so you can take a glance and give some recommendations before I've written tons of boilerplate code.
The major issue is error handling. Currently, we panic on error because can't propagate it through ToLua trait.
It uses quick_error for reducing boilerplate for errors, I can remove it if you wish. Also, now I see that I should reformat code to 2-space indent, but that's an easy part.

Okay, now it supports enough to serialize any Json. Other things are not obvious how to serialize properly (like tuple structs and similar).

serde_json treats tuple structs just like sequences. I think it would be reasonable to do the same.


Change ThumbnailImpl to use the Thumbnail servlet instead of the 319x319 rendition

Is your feature request related to a problem? Please describe.
Not a problem, but can potentially be a problem. Currently the ThumbnailImpl class uses the cq5dam.thumbnail.319.319.png rendition to display in the search results component. This results in a img src as /content/dam/myasset.jpg/_jcr_content/renditions/cq5dam.thumbnail.319.319.png. This path can potentially become a problem when caching on the dispatcher since it'll create the myasset.jpg as a folder.
Describe the solution you'd like
In the ThumbnailImpl class, we can use the thumb selector, so the img src becomes something like /content/dam/myasset.jpg.thumb.319.319.png

Using the OOTB servlet, the missing image placeholder is automatically used; but then we should remove the custom missing placeholder image.... or perform some logic that checks if 319/319 exists and if not, then returns null, else the servlet path?
I actually like just using the OOTB servlet as it simplifies everything (less config, less code, etc.)  but there are some other considerations.

@davidjgonzalez need to look at the code again, but how do we end up with the screenshot above instead of the 319x319 rendition for the assets?

By doing what you suggest. The screenshot above uses the aem OOTB missing thumbs image vs. the ASC missing placeholder images. If the 319x319 rendition existed for the assets above, hey would be used, but since they are 0 byte binaries, they of course don’t have renditions, this the AEM OOTB placeholder by way of the OOTB thumb servlet

Thanks, @davidjgonzalez makes sense. Only if the OOTB servlet provided a way to configure the default thumbnail....
Can we just leave it like this and drop the default thumbnail feature?

Seems reasonable to me - but maybe leave ~ old code that can be toggled on via osgi config? (Maybe move that path into config and remove from page props?)
I’d hate to rip out func completely Incase someone does like/use it

agreed. want me to work on it? push your branch?

Sure - go for it, either way.
It might be nice to update current logic to still use the thumb 319 319 servlet IF That rendition exists rather than using the full rendition url (which as you call out in the original issue is an anti pattern)

Instead of thumb rendition, is there a way to get web rendition?

I have created audio component in ASC and everything is working fine but i am able to get the thumbnail image.Is there anyway that we can fix it. PFB Screen-Shot

@rakeshkonda you should be able to register an "asset rendition" that maps to any static rendition: https://adobe-marketing-cloud.github.io/asset-share-commons/pages/development/asset-renditions/ and then use that. You could even create a mapping w/ a higher service ranking than the OOTB and use the .card. and .list. selectors!

@khanaaqib can you provide a screenshot of those renditions in the AEM Assets author UI so we can see wht they should be? Those are audio files, so im not sure what you're expecting as thumbnails.

Hi @davidjgonzalez PFB screenshot of audio(.mp3) file.

see here there is no rendition is present instead of original.
PFB screenshot of video file.

see here along with original renditions there is other thumbnail images is present but in audio file by default there is no thumbnail  is present.I don't want to do it manually,like copy thumbnail to the other file and paste it here it is working fine by doing this but i don't want to do this(manually) like that.
when i developed audio component in home page it is appear in following way.PFB Screenshot.

see here no thumbnail images is present in audio file.
But in Video file thumbnail images is present.PFB screenshot.
.
I think you got some idea what i am looking for.Please help me how can i do this to get the desired output.

This is in 1.9.6 or 2.x


add bath_dynamics module to init.py

Very minor change adding bath_dynamics module to __init__.py
Pull Request Check List
This checklist serves as a guid for contributors and maintainers to assess
whether a contribution can be merged into the master branch and thus serves
to guarantee the quality of the package. Please also read the
contribution guidline.
Before you submit a pull request, please go through this checklist once
more, as it will decrease the number of unnecessary review cycles.
However, this list is there to help all contributors to produce high
quality code, not to deter you from contributing. If you can't tick some of the
boxes, feel free to submit the pull request anyway and report about it in the
pull request message.
Some of the boxes might not apply to the specific type of your contribution. In
this case you can consider the particular box as checked.

[ ] The contribution has been discussed and agreed on in the Issue section.
[ x] Code contributions do its best to follow the zen of python.
[ x] The automated test are all positive:

[ x] tox -e py36 (to run pytest) the code tests.
[ x] tox -e style (to run pylint) the code style tests.
[ x] tox -e docs (to run sphinx) generate the documentation.

[ ] Added test for changed/added code.
[ ] API code contributions include input checks.
[ ] API code contributions include helpful error messages.
[ ] The documentation has been updated:

[ ] docstring for all functions/methods/classes/modules.
[ ] consistant style of all docstrings.
[ ] for new modules: /docs/pages/modules.rst has been updated.
[ ] for api contributions: /docs/pages/api.rst has been updated.
[ ] for api contributions: tutorials and examples have been updated.

Codecov Report

Merging #43 (0fa9ca3) into OQuPy-dev (10af1b1) will increase coverage by 0.59%.
The diff coverage is 100.00%.

@@              Coverage Diff              @@
##           OQuPy-dev      #43      +/-   ##
=============================================
+ Coverage      84.20%   84.80%   +0.59%
=============================================
  Files             23       23
  Lines           2552     2553       +1
=============================================
+ Hits            2149     2165      +16
+ Misses           403      388      -15

Impacted Files
Coverage Δ

oqupy/__init__.py
100.00% <100.00%> (ø)

oqupy/bath_dynamics.py
13.15% <0.00%> (+13.15%)
:arrow_up:

Continue to review full report at Codecov.

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


V0.5.2 hotfix Expo SDK33

Removed Expo from Galio and modified certain components

Related to #89


Add CMake support

Reasons:

CMake is probably the most common C++ build system these days.
Although still quite insane, it is far far less insane than Autotools.
It's much easier to read.
Supports IDEs
Doesn't make the source tree dirty (running ./configure seems to modify configure itself, and create autom4te.cache.

perhaps try the C++11 version?
https://github.com/sparsehash/sparsehash-c11/

Ah didn't know about that - will do! You should add a link to it in the readme.


[AutoPR storage/resource-manager] Remove x-ms-external to unblock SDK generation

Created to sync https://github.com/Azure/azure-rest-api-specs/pull/7119

(message created by the CI based on PR content)


[FancyZones] Opening the layout selector with the global hotkey takes too long

Environment
Windows build number: Version 10.0.18363.900
PowerToys version:
PowerToy module for which you are reporting the bug (if applicable): FanzyZones

Steps to reproduce
With FanzyZones, and the global hotkey for opening it enabled. Open fancyzones using the hotkey.
Expected behavior
The layout selection window to appear instantly (< 250 ms) so that I jump between different layouts with minimal friction.
Actual behavior
The layout selection window takes most of a second to appear. This is annoying when switching between several different layouts, something I did immediately when I first started using FancyZones and it really hurt my impression of quality in the app since it (arguably) should be very light weight, or at least feel that way when using it.
I've attached a screenshot of an ETW trace open in WPA (if needed I could capture another trace and provide that directly).
I've zoomed the trace so it begins as I complete pressing the global hotkey and ends when the layout selection window gains focus. In all it takes just under 800ms, which, to me, is long enough to be noticeably annoying.
I haven't dug too too deeply into the codebase yet, but my best guess base at where the time is being spent is as follows (assuming I'm reading the ETW trace correctly):

The selection window process, FancyZonesEditor is taking around 300ms to start up.
Before showing the dialog, graphics resources for the transparent overlay are allocated, taking around 400ms. I have an ultrawide monitor, so it may be taking longer to allocate a larger render target

Screenshots

Hi @OneGeek
thanks for looking in to this, we know that it's slow especially on cold start https://github.com/microsoft/PowerToys/issues/186
We will redesign it for the v2 version https://github.com/microsoft/PowerToys/issues/1032
Feel free to add you comments there.
Closing this as duplicate.
Thanks.


luci-app-statistics: fix mistranslation of Japanese

Fixed some mistranslations of Japanese.
Signed-off-by: INAGAKI Hiroshi<EMAIL_ADDRESS>

Sorry, I found a mistranslation part in addition, so close this PR and post again later.


Giant bug

The selection seems to work properly ✅
The node with multiple out edges doesn't seem correct 🐞
Toy Domain
After the first selection, the choice infos for the second one is incorrect. The choice is correct but the associated node is empty.

Travel Domain
First choice info has one of the nodes, it corresponds to only one first achiever but unless the nodes in the list has all the nodes with all the first achievers in it, then we cannot highlight properly if the first achievers are not at the same node as in this case 👇

Maybe nodes_with_multiple_out_edges is not the right name for it coz the first achievers may be distributed across the graph but the idea is to pool together all the nodes producing the first achievers for each choice so we can highlight them together (if it's one node then great if it's more than one then the highlights are distributed across the graph).

The code for creating nodes_with_multiple_edgeswas copied from the issue under the wrong assumption. Let me write an actual implementation.


Upgrade Clang based static analysis and linting tools

What
Update to the latest feasible clang-tidy and clang-format tools
Why
At time of writing GitHub CI is still on v12 when v18 is the latest stable release. Local usage of later clang-tidy versions shows that they do find more and genuine issues, as well as fix bugs in older versions, especially false negatives.

### Tasks
- [ ] Remove clang-tidy suppressions from external macros e.g. assert, Catch2

See comments on https://github.com/OpenAssetIO/OpenAssetIO/issues/812 for some initial investigation re. upgrading Clang tooling.

Interestingly, I found that I've been running clang-tidy 13 locally (vs. 12 on CI).  When I try clang-tidy 12 I get unknown compiler option errors (-flto=auto). My theory why CI works is that even though clang-tidy 12 is used, clang itself is newer (v13-v15).  Since I'm using conda locally, I can't have a mismatched clang and clang-tidy version.
One more reason to upgrade the clang tooling.

Can you grab them from PyPi instead?
https://pypi.org/project/clang-tidy/ v19
https://pypi.org/project/clang-format/ v19

Can you grab them from PyPi instead?
https://pypi.org/project/clang-tidy/ v19 https://pypi.org/project/clang-format/ v19

Yeah, I noticed this last year (https://github.com/OpenAssetIO/OpenAssetIO/issues/812#issuecomment-1458226505), should make adopting them on CI much easier.  The real work is in fixing (or suppressing) all the issues it raises.


[FEATURE] Support reading/writing to global variables in firmware

Is your feature request related to a problem? Please describe.
I want support for reading/writing to global variables in the firmware shared lib.
Describe the solution you'd like
Similar to tagged data, there should be a simple interface for accessing/modifying global variables from the test code.
So test code provides variable name -> sim core fetches data from loaded object -> sim core returns data as Python object
Things to consider:

We'll need some way to fetch the address/size of data by symbol name (Also not sure how simple it is to support array/struct accesses)

Please implement this


Document access controls based on search criteria

Coverage remained the same at 94.533% when pulling a34067f87ac3241d43cd4e5a7a7e04b3d61c0613 on rahul-document-criteria-based-access-control into 73df058debae5427d2ae4eb93f0598594776dd4f on main.


oodle hash mismatch expected: 4bcc73614cb8fd2b0bce8d0f91ee5f3202d9d624 got: 94cbe010b822bfa2aa0fe46658917238a85caf7f

Happens when I try to install the mods. Mod list for reference attached.

You managed to find some other version of oo2core_9_win64.dll so mint will refuse to load it for security reasons. See https://github.com/trumank/mint/issues/134


Back button: Make use of widget WillPopScope instead of BackButtonDispatcher if possible

Use case
When using the navigator 2.0 with routes it becomes really hard to listen to the back button in screens that wouldn't need a router otherwise.
Examples:

User is on page A, adds page B to the stack and then as one presses back on page B, a confirmation dialog should be shown to confirm the intent to leave.

User is on page A with a PageView widget. User swipes right and then after pressing the back button, the user expects to be taken to the previous page of the PageView instead of leaving the app.

Proposal
I may be simplifying things, but it seems to me that it would be better if we had WillPopScope wrapping the router/navigator widget instead of having a thing such as BackButtonDispatcher, which depends on the router. This would also allow each screen to wrap itself with WillPopScope if it wants to do something before the user leaves.
Ideally this solution should call the farthest WillPopScope element on the tree before the one on top and so forth, following the chain of responsibility pattern.
Right now the only solution I see is to wrap ScreenB with a router element and implement another routerDelegate (with a single screen), which seems unnecessary for such a simple thing.
Am I missing something from the current API?
@chunhtai

I was able to get it working with a not so elegant solution:
class BackButtonListener extends StatelessWidget {
  final Widget child;
  final Future<bool> Function() onBackPressed;

  const BackButtonListener({
    this.child,
    this.onBackPressed,
  });

  @override
  Widget build(BuildContext context) {
    BackButtonDispatcher dispatcher = Router.of(context)
        .backButtonDispatcher
        .createChildBackButtonDispatcher()
          ..takePriority();

    return Router(
      routerDelegate: BackButtonRouterDelegate(
        child: child,
        onBackPressed: onBackPressed,
      ),
      backButtonDispatcher: dispatcher,
    );
  }
}

class BackButtonRouterDelegate extends RouterDelegate with ChangeNotifier {
  final Widget child;
  final Future<bool> Function() onBackPressed;

  BackButtonRouterDelegate({@required this.child, this.onBackPressed});

  @override
  Widget build(BuildContext context) {
    return child;
  }

  @override
  Future<void> setNewRoutePath(configuration) {
    return null;
  }

  @override
  Future<bool> popRoute() {
    return onBackPressed();
  }
}

and the usage with a simple widget is like so:
return BackButtonListener(
      onBackPressed: () {
        //do something and return true when it is handled and false if you want to pass it to the next one
      },
      child: ...
);

I was able to get it working with a not so elegant solution:
class BackButtonListener extends StatelessWidget {
  final Widget child;
  final Future<bool> Function() onBackPressed;

  const BackButtonListener({
    this.child,
    this.onBackPressed,
  });

  @override
  Widget build(BuildContext context) {
    BackButtonDispatcher dispatcher = Router.of(context)
        .backButtonDispatcher
        .createChildBackButtonDispatcher()
          ..takePriority();

    return Router(
      routerDelegate: BackButtonRouterDelegate(
        child: child,
        onBackPressed: onBackPressed,
      ),
      backButtonDispatcher: dispatcher,
    );
  }
}

class BackButtonRouterDelegate extends RouterDelegate with ChangeNotifier {
  final Widget child;
  final Future<bool> Function() onBackPressed;

  BackButtonRouterDelegate({@required this.child, this.onBackPressed});

  @override
  Widget build(BuildContext context) {
    return child;
  }

  @override
  Future<void> setNewRoutePath(configuration) {
    return null;
  }

  @override
  Future<bool> popRoute() {
    return onBackPressed();
  }
}

and the usage with a simple widget is like so:
return BackButtonListener(
      onBackPressed: () {
        //do something and return true when it is handled and false if you want to pass it to the next one
      },
      child: ...
);

something like this should work.
class BackButtonListener extends StatefulWidget {
  final Widget child;
  final Future<bool> Function() onBackPressed;

  const BackButtonListener({
    this.child,
    this.onBackPressed,
  });
  @override
  BackButtonListenerState createState()=>BackButtonListenerState();
}

class BackButtonListenerState extends State<BackButtonListener> {

  BackButtonDispatcher dispatcher;
  @override
  void didChangeDependencies() {
    super.didChangeDependencies();
    if (dispatcher != null) {
      dispatcher.removeCallback(widget.onBackPressed);
    }
    dispatcher = Router.of(context)
        .backButtonDispatcher
        .createChildBackButtonDispatcher();
    dispatcher.addCallback(widget.onBackPressed);
    dispatcher.takePriority();
  }

  @override
  Widget build(BuildContext context) {
    return widget.child;
  }
}

something like this should work.
class BackButtonListener extends StatefulWidget {
  final Widget child;
  final Future<bool> Function() onBackPressed;

  const BackButtonListener({
    this.child,
    this.onBackPressed,
  });
  @override
  BackButtonListenerState createState()=>BackButtonListenerState();
}

class BackButtonListenerState extends State<BackButtonListener> {

  BackButtonDispatcher dispatcher;
  @override
  void didChangeDependencies() {
    super.didChangeDependencies();
    if (dispatcher != null) {
      dispatcher.removeCallback(widget.onBackPressed);
    }
    dispatcher = Router.of(context)
        .backButtonDispatcher
        .createChildBackButtonDispatcher();
    dispatcher.addCallback(widget.onBackPressed);
    dispatcher.takePriority();
  }

  @override
  Widget build(BuildContext context) {
    return widget.child;
  }
}

So there's no need to use a new router? This looks much better, thanks.
In spite of that, I still believe it would be beneficial if we didn't have to implement this manually. Do you think this Widget could be inserted into the lib?

So there's no need to use a new router? This looks much better, thanks.
In spite of that, I still believe it would be beneficial if we didn't have to implement this manually. Do you think this Widget could be inserted into the lib?

yes, I think this can be a useful widget. I will update this issue

yes, I think this can be a useful widget. I will update this issue

Changed! Thank you again, @chunhtai :)
That code worked perfectly. Same result as the previous one.

Changed! Thank you again, @chunhtai :)
That code worked perfectly. Same result as the previous one.

@chunhtai I need to prevent swiping back iOS style (dragging from the edges) depending on a variable (I got a slider near the edges which are causing unintended swipe backs, so I want to prevent swiping if slider is moving).
The above does not work for me as it is triggered post swipe. I'm using nested navigation from @johnpryan https://gist.github.com/johnpryan/bbca91e23bbb4d39247fa922533be7c9 any ideas?

@idkq I think this is a separate issue, I took a look at how willpopcallbacks is tied to cupertinopagetransition, and found it quite weird that we just disable pop animation when there is will pop callback. I think we have to rework this part a little bit, can you file a new issue with this?

Here https://github.com/flutter/flutter/issues/76621 I just found a workaround btw

@chunhtai I'll open up a PR for this. I may need some help in the near future regarding the tests, but I'll give it a try first :)

@douglasiacovelli Much appreciate! Feel free to ping me on the PR, I can definitely help with the test.

Fixed by https://github.com/flutter/flutter/pull/79642


De-obfuscate ids on html page

Currently, with base64-obfuscated IDs, our html page looks like this:
Data

ReferenceSets

DataSets

ZGF0YXNldDE=

VariantSets

ZGF0YXNldDE6MWtnLXBoYXNlMQ==
ZGF0YXNldDE6MWtnLXBoYXNlMw==
ZGF0YXNldDE6dW1k
ReadGroupSets

ZGF0YXNldDE6cmVtb3Rl
ZGF0YXNldDE6cmVtb3RlOndnRW5jb2RlVXdSZXBsaVNlcUJnMDJlc0cxYkFsblJlcDFfc2FtcGxl
ZGF0YXNldDE6ZGFudms=
ZGF0YXNldDE6ZGFudms6Y2hyMTcuMS0yNTA=
ZGF0YXNldDE6bG93LWNvdmVyYWdl
ZGF0YXNldDE6bG93LWNvdmVyYWdlOkhHMDAwOTYubWFwcGVkLklMTFVNSU5BLmJ3YS5HQlIubG93X2NvdmVyYWdlLjIwMTIwNTIy
ZGF0YXNldDE6bG93LWNvdmVyYWdlOkhHMDA1MzMubWFwcGVkLklMTFVNSU5BLmJ3YS5DSFMubG93X2NvdmVyYWdlLjIwMTIwNTIy
ZGF0YXNldDE6bG93LWNvdmVyYWdlOkhHMDA1MzQubWFwcGVkLklMTFVNSU5BLmJ3YS5DSFMubG93X2NvdmVyYWdlLjIwMTIwNTIy

I get that we don't want people relying on an ad-hoc convention, but perhaps there is a way to make this page more useful as a sanity check?  For instance, displaying the de-obfuscated ids alongside the obfuscated ones?  Thoughts?

How about we use the names as well to make it more clear? So, everywhere we have an ID now, we'd put a pair (name, id) to make it more readable.

Fixed in #586


onDidTerminatePendingState ➡ onItemDidTerminatePendingState

Continuation of #10959

This PR renames Pane::onDidTerminatePendingState to Pane::onItemDidTerminatePendingState and makes the following API changes:

Calling Pane::setPendingItem(item) always calls back to onItemDidTerminatePendingState callbacks assuming the item being set as pending isn't the same as the currently pending item (if any)
Callbacks for onItemDidTerminatePendingState are passed the item that is no longer pending as the first parameter

Most of the package code that was utilizing this API wanted to answer the question, "Was the thing that just stopped being pending the item I'm managing?" and tended to do so via awkward internal tracking of state and a check to pane.getPendingItem() is @myItem; this should simplify most of these use cases to
pane.onItemDidTerminatePendingState (item) =>
  @doSomethingWhenNotPending() if @myItem is item

I think there is a little problem with this pr.
clearPendingItem() calls @setPendingItem(null), which doesn't call terminatePendingState() on the item and therefore doesn't emit onDidTerminatePendingState on the item.
I think this should be:
  setPendingItem: (item) =>
    if @pendingItem isnt item
      mostRecentPendingItem = @pendingItem
      @pendingItem = item
      mostRecentPendingItem.terminatePendingState()
      @emitter.emit 'item-did-terminate-pending-state', mostRecentPendingItem

@paulpflug A method called terminatePendingState() on items, with an associated onDidTerminatePendingState, was used briefly to control the pending-ness of pane items. Starting in v1.6.0, however, we don't call terminatePendingState() on items — the pendingness of items is controlled exclusively through the Pane; see this comment for a little discussion around why we made that change.
We do still have a clause for supporting item.onDidTerminatePendingState for backward compatibility with items that don't know about the new API; if the callback we pass in is called, then we assume the item is trying to make itself permanent. As far as notifications go, going forward, if an item needs to be notified when it has been made permanent, it can subscribe to (the as of yet undocumented) onItemDidTerminatePendingState callback.
I hope that helps; please let me know if I've misunderstood your comment!

hmm I understand..
I wanted to use paneItem.hasTerminatedPendingState
but that isn't working either..
What would be the right way to get the containing pane of a paneItem?
atom.workspace.observeTextEditors (editor) =>
  # get the containing pane
  pane.isItemPending(editor) #right?

@paulpflug Unfortunately, there's not a great API for this right now; I had planned on adding one, but some potential changes to some APIs made me hold off. For now, you could use Workspace::getPanes and check for the item in each Pane manually.

New problem: onItemDidTerminatePendingState gets called on the old item when I open a new one in pending state and the old gets destroyed.
atom.workspace.observeTextEditors (editor) =>
  pane = atom.workspace.paneForItem(editor)
  if pane.getPendingItem() != editor
    # not pending
  else
    disposable = pane.onItemDidTerminatePendingState (paneItem) =>
      if paneItem == editor
        # pending terminated
        # gets called when I open 2 pending items consecutively
        disposable.dispose()
     disposable2 = editor.onDidDestroy ->
        disposable.dispose()
        disposable2.dispose()

other question, is there an easier way of achieving, what I want?
thanks for your fast and profound help btw ;)

this could be fixed like this
addItem: (item, options={}) ->
    # ...
    lastPendingItem = @getPendingItem()
    @pendingItem = null
    @setPendingItem(item) if pending
    # ...

  setPendingItem: (item) =>
    if @pendingItem isnt item
      mostRecentPendingItem = @pendingItem
      @pendingItem = item
      if mostRecentPendingItem?
        @emitter.emit 'item-did-terminate-pending-state', mostRecentPendingItem
```

here my workaround:
````coffee
destroyed = false
disposable = pane.onItemDidTerminatePendingState (paneItem) =>
  if paneItem == editor
    setTimeout ( =>
      unless destroyed
        # actually terminated pending state
        disposable.dispose()
      ),100
disposable2 = editor.onDidDestroy ->
  destroyed = true
  disposable.dispose()
  disposable2.dispose()
```

@paulpflug

New problem: onItemDidTerminatePendingState gets called on the old item when I open a new one in pending state and the old gets destroyed.

I apologize, maybe it's just the ☀ early morning time ☀ for me but I read over this a couple times and I'm not sure I'm fully understanding the problem; the behavior described there is, I think, correct. It'd be helpful for me to understand the problem well enough to be able to write a failing test for Pane.

I will try to clarify:
In my opinion onItemDidTerminatePendingState should ONLY get called when an item is made permanent (however this is achieved).
If this is wrong, the behavior is right, otherwise the following would be necessary to replicate the problem:

open item1 in pending state
open item2 in pending state

item1 will get closed but onItemDidTerminatePendingState will be called on item1 here, despite it isn't made permanent but closed

@paulpflug Thanks for the clarification; I see what you mean now. I've created #11352 to address this.


<EMAIL_ADDRESS>

Clubhouse Story
Submitter checklist

[ ] Test covering functionality added/fixed in
Check the linked story includes the following:

[ ] Steps to reproduce
[ ] Screenshot (If applicable)

Reviewer Checklist

[ ] Test/lint pass

Just fixes normtime geth for @JohnDanz and whatever bug fixes were added to augur.js


Cache the SVG icon HTML fragment

The {% icons %} tag runs on every admin page render, and without caching, this will perform a template fetch for every .svg file - which is exceptionally slow on environments with shared filesystems (e.g. Vagrant). Adding this cache reduces the runtime of wagtail.admin.tests.pages.test_create_page from 89 to 57 seconds.

Note that #6243 will also solve this issue (and improve performance further, as there is no need to include the SVG data in the page response) - get_sprite_hash still needs to load all .svg files, but as this happens at the point of building the urlconf, it will happen once at server startup rather than on every page request.


Problem running multiple TGI containers on same machine

I am attempting to start two separate instances of TGI on a local workstation with 4xA6000 GPUs. Using the latest docker image, I can start two separate containers, each pointing at separate GPUs (via --gpus flag) with different external port numbers.
However, when I run inference on the servers, only the second instance I created is able to generate successfully. Attempting to curl the first server on its dedicated port results in:
{"error":"Request failed during generation: Server error: CUDA error: device-side assert triggered
CUDA kernel errors might be asynchronously reported at some other API call, so the stacktrace below might be incorrect.
For debugging consider passing CUDA_LAUNCH_BLOCKING=1.
Compile with `TORCH_USE_CUDA_DSA` to enable device-side assertions.\n","error_type":"generation"}

First off, is it possible to run separate instances of TGI on the same local machine? If so, what am I missing in my setup?
Thank you in advance for your help.

Update - the issue above seems to be related to models I was loading, not an issue with TGI itself. For those wondering - yes you can run multiple TGI servers on the same node, use the --gpus flag as described above.

Update - the issue above seems to be related to models I was loading, not an issue with TGI itself. For those wondering - yes you can run multiple TGI servers on the same node, use the --gpus flag as described above.


How can we pass session in bot.use ?

bot.use({
builder: function (session, next) {
session.beginDialog('/apology'); // session not accessible here
},

receive: function (event,session, next) {
    if (event.text !== undefined) {

console.error("receive");
next();
}
},
send: function (event, next) {
    if (event.text !== undefined) {
       console.error("send");
    }
    next();
}

});

replace builder with botbuilder has worked for me.


Css variables

Adds easily adjustable css variables for easier theming. Will close #32

I'll wait for project migrate to TypeScript (#33) to merge this feature.

It is only css so having type script wont make any difference at all to this PR.


Integrate with SendGrid

https://sendgrid.com/docs/Integrate/index.html
hi,
im in period of integration and testing, and now i got this notification
Your account has been suspended for review. Please respond to the email sent to your contact address on file<EMAIL_ADDRESS>but i didn receive any message on my mailbox<EMAIL_ADDRESS>thanks

Please email<EMAIL_ADDRESS>for more information. This is due to our provisioning process and it just means that you may have a request for more information from our support team.


Packet Processing Error

On running main.py I get multiple errors, Then the program exits. I can see the scapy packet ok in the debugger.
Error processing packet: Expected 3D (unbatched) or 4D (batched) input to conv2d, but got input of size: [1, 1, 1, 1, 2]
This is running in capture mode using the WiFi card on a Mac running Sonoma 14.3.1

Unable to test right now but have updated the shape and removed some extra processing steps let me know if it helps :)

Still get same issue
Error processing packet: Expected 3D (unbatched) or 4D (batched) input to conv2d, but got input of size: [1, 1, 1, 1, 2]

Updated the shape and logic again to match the 2d data after conversion, will spin this back up tomorrow if this latest change doesnt help :)

Yes this is running now. I will have a play and hopefully a few PRs. Thanks


Stop presenting need ids

Looks good! I'm assuming there are no applications using this field?

Great. I don't know of anything still using this, but I'm going round and checking just in case. The Publishing E2E tests should give some reassurance that the tested functionality in the tested applications works.


Shadow effect modeling in PV systems.

I couldn't find in PVlib-Python any thread about shadow effect modeling in PV systems which is very important for energy yield prediction. Do you have any idea about this topic?

Currently pvlib-python doesn't include code for near or far-field shading.  There are models in literature and some modeling package (e.g., FirstSolar's PlantPredict) are using some of them.  pvlib-python is open source, we'd welcome a pull request if you've got a well-documented shading model that could be included.

#1017 partially meets this request. I would like to see #758 completed and merged before we close this issue.

Diffuse and horizon shading are good steps forward but I think adding a model for row-to-row direct shading as well would make it easier to say "yes, pvlib-python models shading".  Doesn't necessarily have to be at the level of detail of PVMismatch; there are some pretty straightforward models out there like Thakkar et al. "A simple non-linear model for the effect of partial shade on PV systems" https://ieeexplore.ieee.org/document/5614450, and I used a similar model in a PVSC paper this year (preprint).

the infinite sheds pr #717 provides row-to-row shading

@mikofski, @kanderso-nrel, we are looking at adding some self-shading to our fork and we'd love to do this in a way that allows us to make a useful contribution to the core project.  Is the current expectation that the 'infinite sheds' work will cover this need entirely, or would you want to support multiple models of varying complexity?  I think we'd be happy to tackle one of the "pretty straightforward models" with some guidance.  What would be most valuable to the project?

+1 from me for having multiple shading models available in pvlib.  I'd be happy to help with a python version of the SAM model or any other model of interest.

@cpr-chas I think pvlib.shading should contain both effects-level shading models (e.g., Deline's approach), functions that adjust direct and diffuse irradiance for far- or near-field objects, and also detailed, geometric functions that e.g. calculate the shaded area on an adjacent row as a function of sun position and array geometry. The latter (detailed) functions should be designed to be able to be used in future pvlib.bifacial models.  Does the shading model you have in mind fall into one of these categories?

I'm also +1 for having multiple shading models

@cpr-chas I think pvlib.shading should contain functions for:
* effects-level shading models (e.g., [Deline's ](https://www.researchgate.net/publication/273227488_A_simplified_model_of_uniform_shading_in_large_photovoltaic_arrays)approach)

* functions that adjust direct and diffuse irradiance for far- or near-field objects, e.g. #758

* detailed, geometric functions that e.g. calculate the shaded area on an adjacent row as a function of sun position and array geometry. These detailed functions should be designed to be able to be used in future `pvlib.bifacial` functions.

Does the shading model you have in mind fall into one of these categories?

Right now I only see 3 methods in shading.py, and they seem to be focused on calculating diffuse shading based on geometry.  If I understand it correctly, that ignores direct shading and our short term goal would be to model loss from direct shading as well, also based on geometry.  It is, of course, possible that I'm misunderstanding what's in shading.py or not aware of some incoming code in another branch.  I'd also like to learn more about your first bullet point, but reading scientific papers isn't my forte so it might take me a while to wade through it.
As for near- and far-field object shading, that's definitely of interested to us, but likely further out.  Is PR #758 still active?  I don't see any recent updates.


Bot settings: Adding copy buttons for bot email and API key

This pull request adds two copy buttons in the Bot settings, beside the bot email and API key, which copies there content.
Fixes:  #19884

Screenshots and screen captures:
https://github.com/zulip/zulip/assets/96657269/4b4e117a-5d8c-47ac-a2e9-282f0a69abeb

Self-review checklist

[x] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[x] Explains differences from previous plans (e.g., issue description).
[x] Highlights technical choices and bugs encountered.
[ ] Calls out remaining decisions and concerns.
[ ] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[x] Each commit is a coherent idea.
[x] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[x] Visual appearance of the changes.
[x] Responsiveness and internationalization.
[ ] Strings and tooltips.
[x] End-to-end functionality of buttons, interactions and flows.
[x] Corner cases, error conditions, and easily imagined bugs.

Thanks! The issue was out of date -- we should use the icon from #28700.

I added some notes to the issue.

@alya I think the issue #28700 should be resolved to do further changes here because the new icon is not available in the code yet. I see someone is working on the issue #28700, after their PR is merged can you give me a heads-up so I can change the icon here?

I won't be able to give you a heads up, but you can subscribe to follow the other issue yourself, so that you get notified.

Is this issue still open?

@zulipbot @Anand-ReddyK  hello!! is this issue still up for grabs?

@alya Is the issue still open so i could work on it?

Closing this PR as we've decided to deprecate this bots panel. Thanks for the work here, @Jay-Lokhande !


Loading models

I have noticed that the app loads the model twice, using more RAM than need it. Is there a reason for that or is it just a bug?

I have noticed that the app loads the model twice, using more RAM than need it. Is there a reason for that or is it just a bug?

Okay, solved, looks like it is because the debug option is set to True by default, changing It to False in the privateGPT.py file solves the problem.

Changed the default load now. Thanks


code improvements

This PR adds a new cs rule and provide some minor code improvements (suggested by a mix of phpstan, code inspector, and cs-fixer)


add object type to editorToolbar

toolbar prop can also be something like this:
var quill = new Quill('#editor', {
  modules: {
    toolbar: {
      container: ['bold']
      handlers: {
        'formula': customFormulaHandler
      }
    }
  }
});

I've the same problem... maybe start with removing the type in prop and later set a function for the type???


[coreos] Missing ${ROOTFS}

On Container Linux 1353.1.0 the script fails with:
/entrypoint.sh: line 97: /etc/systemd/network/50-cni.network: No such file or directory
Installed 50-cni.network in /etc/systemd/network/50-cni.network
(...)

core@kovh ~ $ ls -l /etc/systemd/network/
total 0

That's because of a missing ${ROOTFS}/ on the line cat > /etc/systemd/network/50-cni.network.
I can't send  PR because the script distributed with the luxas/kubeadm-installer on the Docker Hub doesn't match the script in the current repo.

I think we can close this issue with the upcoming changes.

SGTM

@xakraz could you clarify "upcoming changes"?

@antoineco I was meaning the ones from #9


LineWrap stops working when lines are added to text that exceeds one page

I have found the following problem where line wrap stops working sometimes:
Reproduction:

open the RichText demo
turn off LineWrap
Paste the text from the attached file sampleContent.txt
add one linebreak at the end of the text content (by pressing ENTER)
klick at the Wrap CheckBox to turn on LineWrapping again
Result:
LineWrap is not applied anymore

Yup. That's a bug! but the code seems to have been implemented correctly, so I think this might be a bug with JavaFX, not with RTFX

Even forcing the layout via layout does nothing.

I came across this issue again in #504 when I was implementing NavigationTests.MuliLineTests. I found one solution by hiding and then re-showing the stage.

This only happens if the vertical scrollbar IS being displayed.


Update fr.json

Update for french language translation and human review, some parts were not translated by the google translation.

Thank you!


Swiper in Material Tab not refreshing after slides update

I have a simple component presenting a Swiper in the Material Tab (Angular). All works fine until the images array gets updated in Angular. Once it is done and I switch to the Swiper's Material Tab I get never loading blank slide. Only moving right / left the sliders initiates a slider working properly.
Below is an extract from my TS and HTML files. Importantly - and this is probably the core of a problem - I am not able to add [observer] = "true" attribute to the Swiper component as the following error is shown after component execution:
error NG8002: Can't bind to 'observer' since it isn't a known property of 'swiper'.
#TYPESCRIPT COMPONENT FILE:
import { Component, ViewEncapsulation, OnInit, AfterViewInit, Input, OnChanges } from '@angular/core';
import { SwiperOptions } from 'swiper';
import Swiper from "swiper";
import 'swiper/swiper-bundle.css';
import { SwiperComponent } from "swiper/angular";
import SwiperCore, {
Navigation,
Pagination,
Mousewheel,
Keyboard,
Lazy,
} from "swiper/core";
// install Swiper modules
SwiperCore.use([Lazy, Navigation, Pagination, Mousewheel, Keyboard]);
#COMPONENT's HTML FILE
<swiper [observeParents]="true" [preloadImages]="false" [lazy]="true" [preloadImages]="false" [navigation]="true"
[pagination]="{ clickable: true }" [scrollbar]="{ draggable: true }" [mousewheel]="true" [keyboard]="true"
(swiper)="onSwiper($event)" (slideChange)="onSlideChange()" class="mySwiper">
<ng-container *ngFor="let slide of slidesArray">

Expected Behavior
after Swiper slides are updated outside of a Material tab the Swiper resides and clicking back on Swiper's tab the slides are refreshed.
Actual Behavior
after Swiper slides are updated outside of a Material tab the Swiper resides and clicking back on Swiper's tab the first slide is not shown and only resize of the window or clicking next slide brings back proper working of a Swiper.

Can you make codeSandBox / stacblitz?

Do not really know how to do it. If from the code elements quoted there is no idea where the problem might be then probably issue goes beyond the examplary code. :/

Would be good to see the example, you can use one of the templates available when you create an issue. Also observer in Angular version is always enabled by default