Starting the RxJS docs initiative

Hi everyone!
Here is an update -

If you have emailed me<EMAIL_ADDRESS>about your desire to contribute, I have you on a list and will add you to meetings, etc. If you have not, then I have no way of communicating with you effectively. :)

TODO

[x] This repo was created (woot!)
[x] Initial Angular site setup for the RxJS docs
[ ] Brian Troncone will be adding operator descriptions and working on the operators component based off of his already awesome work.
[ ] Tracy King and John N will be working on creating issues on the RxJS repo for contributing to these docs and the action items needed before October 16th.
[ ] On October 16th, we will have a kick off meeting that all who have emailed me will be invited to to get things going!
[ ] After that, yolo! :)

@tracyalison11 @rhgeek @btroncone FYI // @benlesh @kwonoj @jayphelps

Feel free to comment on this with ideas/suggestions to enhance our docs initiative.

@rhgeek @tracyallison11 feel free to document what you've been doing here or the plan to keep folks in the know of progress!

It would be interesting to configure server-side rendering, so one can get a static version of the documentation.

@ladyleet How about A Progressive Web App?
People would be able to browse docs offline :), A Nice read while traveling

@inf3cti0n95 that sounds like a great idea! optimizing for this and converting the site to that sounds perf.

@feloy agreed! that would be lovely too! i love these ideas.

What about creating a personalized Schematics collection so one can easily add a new rxjs operator?
ng generate rx-operator pluck

@feloy that question will have to be bikeshedded by @benlesh and @kwonoj

@inf3cti0n95 I will convert to a PWA in an early PR. 👍🏻 @ladyleet

@btroncone yeah baby!

@btroncone I am in for PWA, I'll tag along 😉

@feloy omg let's do this pls.

@inf3cti0n95 https://github.com/ReactiveX/rxjs-docs/pull/5 PWA awesomeness from @btroncone

just created a bunch of issues for translating the docs.

For creating issues related to the operators that need added, we've been compiling a list of what is missing. We'll then be adding issues for each of these, possibly multiple for the different pieces that are needed to fully document each (i.e. description, example...).
Here is the current working list

Ajax

get
post
delete
put
patch
getJSON

distinctUntilChanged
finally
forkJoin
if
let
publishBehavior
publishLast
publishReplay
shareReplay
skipLast
Subject.create
Timeinterval
timeout
timeoutWith
timestamp
toArray
zipAll
zipProto

Other Updates Needed

installation guide on http://reactivex.io/rxjs
All of the RxJS related documentation on the ReactiveX website (not the ESDoc RxJS generated one) is out of date, referencing v4 (or an even older version) http://reactivex.io/documentation/operators.html

@RHGeek That's what I'm 🌮 ing about! 🍕  create those issues when you can! :) 🍌  waiting for these docs forever! 💯

Any thoughts or ideas on the best way to maintain operator information? One of the things I like about GitBook is how easy it is for others to contribute by modifying the corresponding markdown file. How can we keep this simple for contributors to add or extend explanations and examples in the new docs?

Hey @btroncone just to get things going - @benlesh and I talked about this - why don't we just create a service with the array of data that folks can update + abstract away the array by creating methods to call the data so we can change it later. Thoughts?

@ladyleet That works for me. 👍

I'd love to contribute when you have more concrete issues ready to be worked on :)

@fredrik-lundin actually Issue https://github.com/ReactiveX/rxjs-docs/issues/10 and Issue https://github.com/ReactiveX/rxjs-docs/issues/14 could be worked on now! :) If you're up for it!

@ladyleet i've made 2 proposals yesterday about SSR and Schematics. But I'm not sure of the order of your replies...

@feloy both sound like great ideas. :) feel free to take and implement! :) i esp love the idea of schematics.

@RHGeek while y'all are doing that do you want to take the other issues related to translation? and generating issues for each individual operator there?

@ladyleet when I work on SSR, I would be happy to work on a travisCI (or equivalent) config to automatically generate indexable pages  and deploy them on a website.
Have you already chosen a platform to deploy the website to?

@feloy not yet :( @benlesh? Thoughts?

@ladyleet @feloy I can enable travis, but not sure about auto-deploy at this moment. probably better to discuss separately (build / test on travis first, deploy as separate topic).

@feloy we currently use github pages so will probably stay with that. thx for checking! travisCI would be perf. <3

@kwonoj agreed OJ! thx for noticing and paying attention to the progress done here. :) // @feloy

Let me try to enable travis tonight and will create separate issue for those.

@kwonoj ok thx oj! :) // @feloy

Related issue https://github.com/ReactiveX/rxjs-docs/issues/18 created, and travis is enabled for this repo.

Just a quick update, I'm working on operator UI right now. I hope to have a first version available with at least a sample of operators to poke around with by the end of this weekend or early next week. I'll post as soon as it's available. 👍

@btroncone awessome!

Hey @ladyleet do you know how/if we currently track docs usage? Is there any interest in tracking which operators get the most traffic, or monitoring how users will interact with the new docs?

@xtianjohns sure that'd be so cool!

@ladyleet sorry for the delay in getting back, but yeah, we can add translation related issues to go with all the new operators. I will search to see what issues are created for particular languages (I've seen you tag me in some), but we can also identify any more that we want to proactively.

translations - we are bikeshedding here https://github.com/ReactiveX/rxjs-docs/issues/29

I've added 3 issues as examples for how all the rest from the list can be added. Please let me know if these look ok, before the rest then get added. These would be the three "pieces" needed to complete the documentation for that operator.
https://github.com/ReactiveX/rxjs/issues/2939
https://github.com/ReactiveX/rxjs/issues/2940
https://github.com/ReactiveX/rxjs/issues/2941

@rhgeek this is perfect thanks! :)

Maybe better to create single issue for each operator, then list todo as checkboxes? (though not sure which'll be better, concerning numbers of issue might get exploded)

@kwonoj yeah but closing issues just feels so good and allows easy individual contributors to work through things easier IMO.

@ladyleet yup, that's reason I'm not suggesting to do so at this moment. Have to see for few cycles to make decision.

@kwonoj @ladyleet Yeah, that was the general idea, creating them separate to make it easier for people to contribute to a piece of the documentation. If they only feel comfortable with writing descriptions and maybe not examples, they can close that out and it might be less intimidating to contribute then if all 3 pieces were in one issue. If it does seem to be too much, we can consolidate them as well.

The status in our meeting about the operators visualization, we have three options:

rxviz
rxmarbles
rxfiddle

Which will we use?

Guys i have a question. Cant we create the branch on github which i can checkout and do my work on it and then later create the pull request to merge to master. I see i do not have the permission to create the branch . How should we go about it ?

Hey @arat3091, you won't be able to create a branch in this repository. However, you can fork this repository and create a branch in your fork. When you feel like your work is ready, you can submit your pull request from your fork into this repo. Make sense?

Shout out to @hermanbanken - would RxFiddle be a match to render the operator visualisations?

Well this is awesome, thanks for kicking this off!

Thx Kyle!

Hey all. I'm keen to contribute. Thinking of documenting publishReplay. Shall I create an issue?

@jonathanconway yes please do!

Closing this issue out as we have kicked off the docs! If anyone in this thread still needs help contributing you can always email me at<EMAIL_ADDRESS>and I'm happy to be of service. Or, email me so I can add you to our slack channel!

@benlesh thx ben for pinging me to close this!

Hi was just wondering if StackBlitz was in talks for being used and or perhaps dynamic marbles like below (granted the marbles need an auto expanding line and perhaps using svg or canvas might be better) or is there a site that already has this?
SB Code and Demo
Interval Observable Example Site

@cschomer yes on stackblitz!


[Bug] OAuth2 authentication failed

Search before asking

[X] I searched in the issues and found nothing similar.

Version

Broker: Pulsar <IP_ADDRESS> (StreamNative's release)
Client: Pulsar C++ Client 3.1.1
OS: Windows 11 (Visual Studio 2019) and Ubuntu 20.04 WSL (GCC 9)

Minimal reproduce step
Set up an account on StreamNative cloud, create the topic my-topic in advance and grant the produce permission. The following example uses test-auth instance under the sndev organization, replace YOUR-KEY-FILE-PATH to the path of the credential file.
#include <pulsar/Client.h>
using namespace pulsar;

int main(int argc, char *argv[]) {
  std::string params = R"({
    "issuer_url": "https://auth.streamnative.cloud/",
    "private_key": "YOUR-KEY-FILE-PATH",
    "audience": "urn:sn:pulsar:sndev:test-auth"})";
  ClientConfiguration config;
  config.setAuth(AuthOauth2::create(params));
  Client client("pulsar+ssl://test-auth.sndev.snio.cloud:6651", config);

  Producer producer;
  auto result =
      client.createProducer("persistent://public/default/my-topic", producer);
  if (result != ResultOk) {
    std::cerr << "Failed to create producer: " << result << std::endl;
    return 1;
  }

  MessageId id;
  result = producer.send(MessageBuilder().setContent("hello").build(), id);
  if (result == ResultOk) {
    std::cout << "Sent to " << id << std::endl;
  } else {
    std::cerr << "Failed to send: " << result << std::endl;
  }

  client.close();
  return 0;
}

What did you expect to see?
It should succeed
What did you see instead?
Ubuntu:
2023-02-01 22:58:13.267 DEBUG [139889604585216] ClientConnection:591 | [<none> -> pulsar+ssl://test-auth.sndev.snio.cloud:6651] Resolved hostname test-auth.sndev.snio.cloud to SECRET_IP:6651
2023-02-01 22:58:14.564 INFO  [139889604585216] ClientConnection:387 | [MY_LOCAL_IP:38550 -> SECRET_IP:6651] Connected to broker
2023-02-01 22:58:15.378 ERROR [139889604585216] ClientConnection:497 | [MY_LOCAL_IP:38550 -> SECRET_IP:6651] Failed to establish connection: AuthenticationError
2023-02-01 22:58:15.378 ERROR [139889604585216] ClientConnection:1646 | [MY_LOCAL_IP:38550 -> SECRET_IP:6651] Connection closed with AuthenticationError

Windows:

2023-02-01 23:05:55.508 ERROR [11216] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\ClientConnection:497 | [MY_LOCAL_IP:6224 -> SECRET_IP:6651] Handshake failed: unregistered scheme (STORE routines)
2023-02-01 23:05:55.508 INFO  [11216] D:\a\pulsar-client-cpp\pulsar-client-cpp\lib\ClientConnection:1646 | [MY_LOCAL_IP:6224 -> SECRET_IP:6651] Connection closed with ConnectError

Anything else?
No response
Are you willing to submit a PR?

[X] I'm willing to submit a PR!

It seems to be caused by the packaging style. It's very similar to this issue: https://github.com/apache/pulsar-client-node/issues/281
I did some experiements with the Python client. Given the following similar Python script.
#!/bin/env python3
import pulsar

pulsar_url = "pulsar+ssl://test-auth.sndev.snio.cloud:6651"
pulsar_oauth_params = '''{
    "issuer_url": "https://auth.streamnative.cloud/",
    "private_key": "YOUR-KEY-FILE-PATH",
    "audience": "urn:sn:pulsar:sndev:test-auth"
}'''

pulsar_topic = "persistent://public/default/my-topic"

if __name__ == "__main__":
    client = pulsar.Client(
        pulsar_url,
        authentication=pulsar.AuthenticationOauth2(pulsar_oauth_params),
    )
    producer = client.create_producer(topic=pulsar_topic)
    producer.send(f"hello".encode('utf-8'))
    producer.close()
    client.close()

I tried two ways to install the Python wheel (on Ubuntu 20.04).
1. [OK] Build from source.
git clone git@github.com:apache/pulsar-client-python.git -b v3.1.0-candidate-1
git submodule update --init
cmake -B build
cmake --build build
cp build/lib_pulsar.so .
python3 ./setup.py bdist_wheel
sudo pip3 install dist/pulsar_client-3.1.0a1-cp38-cp38-linux_x86_64.whl --force-reinstall

The output:
2023-02-01 23:32:32.731 INFO  [139771614631680] ClientConnection:189 | [<none> -> pulsar+ssl://test-auth.sndev.snio.cloud:6651] Create ClientConnection, timeout=10000
2023-02-01 23:32:32.739 INFO  [139771614631680] ConnectionPool:97 | Created connection for pulsar://test-auth-broker-0.test-auth-broker-headless.sndev.svc.cluster.local:6650
2023-02-01 23:32:33.027 INFO  [139771614631680] ClientConnection:388 | [MY_LOCAL_IP:42426 -> REMOTE_IP:6651] Connected to broker through proxy. Logical broker: pulsar://test-auth-broker-0.test-auth-broker-headless.sndev.svc.cluster.local:6650

We can see the handshake succeeded and the client connected to the proxy
2. [FAILED] Install the existing wheel
curl -O -L https://dist.apache.org/repos/dist/dev/pulsar/pulsar-client-python-3.1.0-candidate-1/linux-glibc-x86_64/pulsar_client-3.1.0a1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
sudo pip3 install dist/pulsar_client-3.1.0a1-cp38-cp38-linux_x86_64.whl --force-reinstall

The output:
2023-02-01 23:34:37.694 ERROR [139763784525632] AuthOauth2:223 | Response failed for getting the well-known configuration https://auth.streamnative.cloud/. Error Code 77: error setting certificate verify locations:  CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath: none
2023-02-01 23:34:37.695 INFO  [139763784525632] ConnectionPool:97 | Created connection for pulsar+ssl://test-auth.sndev.snio.cloud:6651
2023-02-01 23:34:38.058 INFO  [139763747448576] ClientConnection:386 | [MY_LOCAL_IP:48482 -> REMOTE_IP:6651] Connected to broker
2023-02-01 23:34:38.819 ERROR [139763747448576] ClientConnection:496 | [MY_LOCAL_IP:48482 -> REMOTE_IP:6651] Failed to establish connection: AuthenticationError

Conclusion
The cause might be https://github.com/apache/pulsar/pull/16064, which is related to a CVE. We need to document the workround or change the way to build the client library.
/cc @merlimat @shibd @RobertIndie

Updated:
Building the C++ client from source works. I think the main reason is the LINK_STATIC=ON build. I built the C++ client on Ubuntu 20.04 with the dependencies installed from the APT source and it worked well.
Boost_INCLUDE_DIRS: /home/xyz/software/boost-1.81/include
OPENSSL_INCLUDE_DIR: /usr/include
OPENSSL_LIBRARIES: /usr/lib/x86_64-linux-gnu/libssl.so/usr/lib/x86_64-linux-gnu/libcrypto.so
Protobuf_INCLUDE_DIRS: /usr/include
Protobuf_LIBRARIES: /usr/lib/x86_64-linux-gnu/libprotobuf.so-pthread
CURL_INCLUDE_DIRS: /usr/include/x86_64-linux-gnu
CURL_LIBRARIES: /usr/lib/x86_64-linux-gnu/libcurl.so

I think the key point is the libcurl and OpenSSL dependencies. I'm still investigating and testing it.

The root cause is that the OAuth2 client credential flow does not configure any CA cert for verification.
TL; DR, just see the following workaround section.
Workaround
Just take Ubuntu 20.04 for example, whose default CA file is /etc/ssl/certs/ca-certificates.crt.
C++ client: pass the CA cert path to ClientConfiguration:
ClientConfiguration config;
config.setTlsTrustCertsFilePath("/etc/ssl/certs/ca-certificates.crt")
Client client(serviceUrl, config);

Python and Node.js clients: though they also have the related configs to set the CA cert path, it does not work actually. (See the following section for detailed explanation). You have to copy the CA cert file to the specific path, which is determined by your system.
# All Python wheels for Linux use /etc/pki/tls/certs/ca-bundle.crt as the path of the CA cert
sudo mkdir -p /etc/pki/tls/certs
sudo cp /etc/ssl/certs/ca-certificates.crt /etc/pki/tls/certs/ca-bundle.crt

Analysis
From https://curl.se/docs/sslcerts.html we can see

If the remote server uses a self-signed certificate, if you do not install a CA cert store, if the server uses a certificate signed by a CA that is not included in the store you use or if the remote host is an impostor impersonating your favorite site, and you want to transfer files from this server, do one of the following:

Tell libcurl to not verify the peer. With libcurl you disable this with curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, FALSE);

Before Pulsar C++ client 3.0.0, the OAuth2 client credential flow didn't verify the peer, which leads to the CVE-2022-33684. Then https://github.com/apache/pulsar/pull/16064 fixes it by enabling the option to verify the peer.
However, the libcurl dependency is built from source and linked statically by:

Pre-built C++ libraries, e.g. the deb package
Python wheels
Node.js C++ Add-ons

When it's built from source, the default path of the CA cert is detected automatically and determined by the OS. e.g. the Python wheels for Linux are built on manylinux2014 images, the bundled path is /etc/pki/tls/certs/ca-bundle.crt. You can see the path from any workflow here:

The only workaround for Python and Node.js clients on Linux is copying your CA cert file into that path. The C++ client can work by configuring tlsTrustCertsFilePath because the deb package is compiled on Debian, rpm package is compiled on CentOS, the default path of the CA cert file is the same with the path on Debian-based distros and RedHat-based distros. However, the Python client for Linux is built on manylinux image, which is based on a RedHat-based distro, so the path is different with the Debian-based distros.
How to reproduce
Create an account on StreamNative cloud to get the client id and client secret. You can switch to your own vendor if you have an Pulsar service with OAuth2 authentication enabled.
TlsOauth2Example.cc
#include <pulsar/Client.h>
using namespace pulsar;

int main(int argc, char *argv[]) {
    std::string params = R"({
    "issuer_url": "https://auth.streamnative.cloud/", // St
    "client_id": "<your-client-id>",
    "client_secret": "<your-client-secret>",
    "audience": "<your-audience>"})";
    ClientConfiguration config;
    config.setAuth(AuthOauth2::create(params));
    // NOTE: here we use a customized CA cert path
    config.setTlsTrustCertsFilePath("/app/ca-certificates.crt");
    Client client("pulsar+ssl://<your-host>:<your-port>", config);

    Producer producer;
    auto result = client.createProducer("persistent://public/default/my-topic", producer);
    if (result != ResultOk) {
        std::cerr << "Failed to create producer: " << result << std::endl;
        return 1;
    }

    client.close();
    return 0;
}

Start a docker container:
docker run -v $PWD:/app -it ubuntu:20.04 /bin/bash

Run the following commands inside the container:
cd /app
apt update -y
apt install -y curl g++
curl -O -L https://archive.apache.org/dist/pulsar/pulsar-client-cpp-3.1.1/deb-x86_64/apache-pulsar-client-dev.deb
curl -O -L https://archive.apache.org/dist/pulsar/pulsar-client-cpp-3.1.1/deb-x86_64/apache-pulsar-client.deb
apt install ./apache-pulsar-client*.deb
# NOTE: move the CA file from the default path to /app
mv /etc/ssl/certs/ca-certificates.crt .
g++ TlsOauth2Example.cc -std=c++11 -lpulsar
./a.out

You will see the following output:
2023-02-07 10:05:33.619 ERROR [139656646591168] AuthOauth2:224 | Response failed for getting the well-known configuration https://auth.streamnative.cloud/. Error Code 77: error setting certificate verify locations:  CAfile: /etc/ssl/certs/ca-certificates.crt CApath: none
...
2023-02-07 10:05:37.566 ERROR [139656646563584] ClientImpl:184 | Error Checking/Getting Partition Metadata while creating producer on persistent://public/default/my-topic -- AuthenticationError
Failed to create producer: 2023-02-07 10:05:37.566 INFO  [139656646563584] ClientConnection:267 | [<IP_ADDRESS>:55690 -> <IP_ADDRESS>:6651] Destroyed connection
AuthenticationError

Solution
We should use the tlsTrustCertsFilePath for HTTP requests in OAuth2's client credential flow, just like HTTPLookupService does: https://github.com/apache/pulsar-client-cpp/blob/0631e366708fefff399a6d224674428a048e8d37/lib/HTTPLookupService.cc#L260-L262
I will push a PR soon.

Nice catch! Node.js 1.8.0 oauth2 auth failed is the same as this.

When it's built from source, the default path of the CA cert is detected automatically and determined by the OS. e.g. the Python wheels for Linux are built on manylinux2014 images, the bundled path is /etc/pki/tls/certs/ca-bundle.crt. You can see the path from any workflow here:

I checked cross-compile logs on the macOS system, and the cert bundle and path is not set on arm64.

I'll use your PR to verify if this can be fixed.

It can solve this problem by configuring tlsTrustCertsFilePath.


Blog Submission successful page

Create the Blog submission successful page as seen in the Figma design.
With the help of already created components such as

Top Navigation,
Bottom Navigation bar,
Join Our Community button

seen in closed issues here, create the Blog submission successful page.

let me do this last one
and then move to my responsiveness


Updated README with slightly more detail

Just a couple of proposed changes based on my own experience with trying to integrate the plugin.
Thanks for the framework; very slick!

+1

Merged as part of https://github.com/omniauth/omniauth-identity/commit/0da8d20a6761f6de561086c7aff24f02a23d168b


Add bvh for generate_sdf method

generate_sdf now takes a AccelerationMethod parameter, that can be either AccelerationMethod::Bvh (default) or AccelerationMethod::None.
Bvh is recommended unless you're really tight on memory or your query is very small (couple hundreds of queries and triangles).
For example, a query of 15k points with 100k triangles is 10 times faster with a bvh, and twice faster for 500 queries and 10k triangles.
Bvh is also optimised for the SignMethod::Raycast sign method.

BVH point queries are in the process of being upstreamed here: https://github.com/svenstaro/bvh/pull/108


Interpreting output of 3d data.

I have a data in the form [(varx1,vary1,varz1),.....,(varx100,vary100,varz100)]
There are more than 100 values, I have given 100 here for example.
I'm looking spatio-temporal data.
The output I get after running kalmanfilter.smooth or filter is a 2d list. I'm not sure how to interpret it. Can you please guide me.

Hi @duckworthd ,
I am trying to do something similar to the OP here but I am a little confused with the inputs to the KalmanFilter object.
I have a numpy array, called alignedstack, which represents 256x256 pixel images taken over time.  I am going to use the Kalman filter as a low-pass filter to reduce noise in the "video" as per your comment:
tm = np.zeros([256,256,61])
for i in range(alignedstack.shape[0]-1):
    tm[:,:,i] = lstsq(a = alignedstack[i,:,:], b = alignedstack[i+1,:,:])[0]
kf=KalmanFilter(transition_matrices  = tm)

When I attempt to smooth the "image stack", using:
kf.smooth(alignedstack)

I get ValueError: operands could not be broadcast together...
Any chance you can point me in the right direction?
Thanks.
Best,
Noah


请问这段逻辑的目的是什么？

https://github.com/lisong/code-push-server/blob/42f8e7672db9d8a1f84133c961c2373b03fbfb60/core/services/client-manager.js#L147
正常来说应该是收到最新的更新，但是这里为什么要加入版本区间判断呢。

I don't think this is intuitive or practical, and I propose we change it.
When you deploy a new build via code-push, you specify which app versions are compatible and should get this update. This is based on your current knowledge of historical versions. An older deployment specified a different set of versions, based on the knowledge of compatibility at that time.
Here's a concrete example. An app is deployed to the store as v1.0.0. A minor change is required, so a code-push deployment targets "1.0.0", because that is the only app version that exists (there's no way to know whether a future version of the app should receive this deployment). Now you publish a new minor version of the app to the store as v1.1.0. Again, a small change is required, and you want those with v1.0.0 to get it too, so a code-push deployment targets "1.0.0 - 1.1.0". With the current implementation of code-push-server, the users of 1.0.0 won't receive this update.
Even if you use semantic versions, you can easily run into the same issue. Imagine the first deployment targets "~1.0.0" and the second targets "^1.0.0". Users with v1.0.0 will not receive the second update.
Having to manually delete old deployments is not a good solution.
I propose we change updateCheck to return the most recent deployment that matches the requested version. Please let me know if I should submit a Pull Request.

I propose we change updateCheck to return the most recent deployment that matches the requested version. Please let me know if I should submit a Pull Request.

@byronigoe I agree with you that the most recent deployment should be the version that the app should receive. I would be interested to see your PR 👍
For example, if server has this:
v1.0.5 deployed on 10Jan22, targeting versions 1.0.0-1.0.4
v1.0.4 deployed on 8Jan22, targeting versions 1.0.0-1.0.3
When an app with version 1.0.1 looks for an update, it should be served v1.0.5


Background Worker

Provide api to run jobs in background and collect progress changed and worker completed.
Like https://docs.microsoft.com/ru-ru/dotnet/api/system.componentmodel.backgroundworker?view=netcore-2.2

Issue is postponed until the release of 1C:Enterprise version 8.3.18 with new async concept.


stack build fails

Hi!
when trying to build the project I get the following error:
    [14 of 25] Compiling IHaskell.Eval.Hoogle ( src/IHaskell/Eval/Hoogle.hs, .stack-work/dist/x86_64-linux/Cabal-<IP_ADDRESS>/build/IHaskell/Eval/Hoogle.o )

    /Haskell/IHaskell/src/IHaskell/Eval/Hoogle.hs:57:14: Not in scope: `parseUrlThrow'

Any idea?

Adressed in https://github.com/gibiansky/IHaskell/pull/712, alternatively b52d484fd112048cf101f34af930d5017c825684.

Closing.


Build: Implements GH API to upload binaries

This is first in the series of overhauling build steps. Find the related discussion at: https://github.com/sass/node-sass/issues/712.
The public access token can be generated from: https://github.com/settings/applications#personal-access-tokens.
Usage:
Anyone with write-access to sass/node-sass can run:

node scripts/upload --auth MyGitHubOAuthToken

This will upload the binary file to the latest release (for instance, current is v2.0.1).
To upload the asset to specific release:

node scripts/upload --auth MyGitHubOAuthToken --tag 2.0.0

To upload the asset from a custom paths:

node scripts/upload --auth MyGitHubOAuthToken --path ~/docs/my_emails/someoneITrust/blah.node

//cc @nschonni, @xzyfer

Thanks @izuzak for help with curl connect (via email). That helped me figuring out how to pass the token and fetch the upload URL!
@callicles, based on the comment on SO FYI. Your answer really helped! :smiley:

@nschonni, @xzyfer, we can upload the asset to existing release by editing the release.
This script will be useful when were are text-only/CLI-mode in headless CentOS for instance, to build binaries. We don't need to scp to host OS to drag drop in browser. :sunglasses:

:+1:

@am11 glad it could be help full :)

May seem silly, but I'd almost think this should live in the node-sass-binaries repo


[vcr-2.0] Impl findKey and findMissingKey

This patch implements findKey and findMissingKey for Azure blob storage

Codecov Report
Patch coverage has no change and project coverage change: -39.24% :warning:

Comparison is base (462c01e) 72.58% compared to head (4e02336) 33.34%.

:exclamation: Current head 4e02336 differs from pull request most recent head 1dfbe77. Consider uploading reports for the commit 1dfbe77 to get more accurate results

Additional details and impacted files
@@              Coverage Diff              @@
##             master    #2550       +/-   ##
=============================================
- Coverage     72.58%   33.34%   -39.24%
+ Complexity    11297     5028     -6269
=============================================
  Files           801      801
  Lines         64240    64261       +21
  Branches       7835     7839        +4
=============================================
- Hits          46630    21431    -25199
- Misses        15044    41142    +26098
+ Partials       2566     1688      -878

Files Changed
Coverage Δ

.../java/com/github/ambry/cloud/CloudBlobStoreV2.java
0.00% <0.00%> (ø)

...ava/com/github/ambry/cloud/azure/AzureMetrics.java
0.00% <0.00%> (-100.00%)
:arrow_down:

... and 534 files with indirect coverage changes

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


feat: provide next affiliation ID and expert panel ID

Description

Add "New Affiliation" or "Sibling Affiliation" radio button for user to select type of affiliation being added.
Add custom JS functionality to toggle dropdown list of existing affiliations in DB if sibling affiliation option has been selected. Also to hide Affiliation ID and Expert Panel ID input fields from user. Based on documentation: https://docs.djangoproject.com/en/5.1/ref/contrib/admin/javascript/
Add functionality to calculate next available Affiliation ID if New based on last largest Affil ID in DB.
Add functionality to calculate EP ID based on Type and Affiliation ID.
Add thread safety and atomic database interactions based on documentation: https://docs.djangoproject.com/en/5.1/topics/db/transactions/#module-django.db.transaction
Update clean method in admin.py to validate user input information.
Update tests in test.py to test for updated validation errors.

Issue Ticket Number and Link

Closes #133
Checklist

Remove any options that are not applicable

[X ] I have reviewed the how-to guide and the contributing file.

[X] I have run required code checks and resolved any blockers.

[X] I have created the necessary tests to show my changes are effective and work as intended.

[X] I have thoroughly commented my code, especially in more complex areas.

[X] I have updated any necessary documentation.
Screenshots / Recordings

Refactor based on conversations from Matt Wright in slack about SC-VCEPs.


Release v2.0.0 the annotator can also download data

I create a Organization，and make an member as worker，it can also download dataset
look at it，didn't solve the problem https://github.com/openvinotoolkit/cvat/issues/3950

@fanasite , by the description nobody can help or investigate the issue. See permissions in the file: https://github.com/openvinotoolkit/cvat/blob/develop/cvat/apps/iam/rules/tasks.csv
If your worker is an assignee or owner of the task, he/she can download the dataset. If the worker is an assignee for the job, he/she should not be able to download the dataset.
Feel free to add more details how to reproduce the issue. For now I will close the issue.


[GH-18621] : Add capability in plugin/apps forms to resize textarea via draggable corner

Summary
in this pull request the i make the resizable prop from false to true of app-form-field.

Ticket Link
Fixes https://github.com/mattermost/mattermost-server/issues/18621
Related Pull Requests

Has server changes (please link here)
Has mobile changes (please link here)

Screenshots

Release Note

updates : components/apps_form/apps_form_field/apps_form_field.tsx

Hello @jatinmark,
Thanks for your pull request! A Core Committer will review your pull request soon. For code contributions, you can learn more about the review process here.
Per the Mattermost Contribution Guide, we need to add you to the list of approved contributors for the Mattermost project.
Please help complete the Mattermost contribution license agreement?
Once you have signed the CLA, please comment with /check-cla and confirm that the CLA check is green.
This is a standard procedure for many open source projects.
Please let us know if you have any questions.
We are very happy to have you join our growing community! If you're not yet a member, please consider joining our Contributors community channel to meet other contributors and discuss new opportunities with the core team.

E2E tests not automatically triggered, because PR has no approval yet. Please ask a developer to review and then try again to attach the QA label.

@jatinmark Could you please update the description with more details

Now , you can see the description i added the details regarding changes

Now , you can see the description i added the details regarding changes

@jatinmark I don’t see the need of duplicating the whole file, I think setting the resizable prop to true should do the trick.
Could you please go to this https://developers.mattermost.com/contribute/more-info/getting-started/ and make sure everything is there?
About CLA, it will update the next time you push a commit.

I want to ask that for the second link  i have to make another pr ?

i make an another PR with proper protocol and also make changes in the second link provided in the issue.

@jatinmark could please make both changes in same pr.

I make both the changes in second PR you can check  it and consider it to be as Main PR.

So , if you agree with that i can close this PR .

closing in favour of https://github.com/mattermost/mattermost-webapp/pull/11321


Feature request: Signing MSIX packages

Signing MSIX packages with the "makemsix pack" command seems to be not supported. However, for the installation of msix files under Win 10 the package has to be signed.
This missing feature would be highly appreciated because I am using makemsix in a crosscompiling environment (Windows executables are built under macOS). Everything up to creating the misx file is possible except for the final step: getting a signed msix which can be installed under Win 10.
Using "signtool.exe" under Windows is a hassle as there seems no be no way to sign msix by means of openssl tools under macOS / Unix.

There is a work in progress branch that unfortunately has not had enough time to become integrated to master: https://github.com/microsoft/msix-packaging/tree/johnmcpms/signing
If you would like to try it out and provide feedback here that would be most helpful.
It only supports signing using PFX files right now, and I cannot remember if it properly inserts the full cert chain into the signature.

Hi John,
is there a plan when the branch: https://github.com/microsoft/msix-packaging/tree/johnmcpms/signing will be integrated to master? We do a lot of dirty hacks to sign MSIX in a linux infrastructure.
kind regard

I will ask about getting some time to get it to a usable state. If you have tried it and can give feedback on whether it is working for your use case, that would help.  If it will take a lot more work then it will be a harder sell to management, but it would also be a specific target.
Below is the makemsix command definition.  So something like:
makemsix sign -p <package> -c <pfx> -cf pfx

    Command result{ "sign", "Signs an existing package in-place",
        {
            Option{ "-p", "Package file path.", true, 1, "package" },
            Option{ "-c", "Certificate file path.", true, 1, "cert" },
            Option{ "-cf", "Certificate format.", false, 1, "format" },
            // TODO: Potentially support other types of certificate files, along with separate private keys.
            // TODO: Support passing in the certificate chain separately.
            // TODO: Windows signing allows choosing whether to validate the block hashes, could add here.
            // TODO: Potentially allow non-inplace by making an output file param.
            // TODO: Full package content hash is optional
            // TODO: Flag to control CI catalog generation
            Option{ TOOL_HELP_COMMAND_STRING, "Displays this help text." },
        }
    };

Hi John,
thank you for your prompt reply.
compiling master with makewin.cmd x86 --pack works.
compiling johnmcpms/signingwith makewin.cmd x86 --pack is not working.
compiling johnmcpms/signingwith makewin.cmd x86 (without --pack) works, but has no sign option.
Error: Unrecognized command: sign
comile.log

I've merged master into the signing branch, and was able to build makewin.cmd x86 --pack locally.

Sorry, to be clear, I also pushed the merge back to https://github.com/microsoft/msix-packaging/tree/johnmcpms/signing.

Hello John,
I was able to build it locally.Tthe merge with stable solved the problem. Very good!
Unfortunately I get the following error when signing:
C:\temp>call "C:\temp\msix-packaging-johnmcpms-signing.vs\bin\makemsix.exe" sign -p C:\temp\Client.msix -c C:\Temp\MSIX.pfx -cf pfx
Microsoft (R) makemsix version 0.0.0
Copyright (C) 2017 Microsoft.  All rights reserved.
WARNING: The signing feature is not complete, see the help for this command for more information.
Error: 0x80070032
LOG:
Removing files from the middle of the archive is not supported
Call failed in C:\temp\msix-packaging-johnmcpms-signing\src\msix\pack\ZipObjectWriter.cpp on line 176

Debugging that might take a bit longer to get to than just merging.  I suspect that it is a result of the merge, because I did some pretty major refactoring of the zip handling.  I promise it really was working when I wrote it 😉

I tried to get this working on Linux. I'm building the signing branch with ./makelinux.sh --pack --validation-parser and do see the sign option. When I attempt to sign a .msix with it though, I get the following error:
Microsoft (R) makemsix version 1.7.129
Copyright (C) 2017 Microsoft.  All rights reserved.
WARNING: The signing feature is not complete, see the help for this command for more information.

Error: 0x80fa11ed
LOG:

Unable to open PFX file
OpenSSL Error Data:
  at /home/nephatrine/Projects/msix-packaging/lib/openssl/crypto/pkcs12/p12_kiss.c[116]
    error:23076071:PKCS12 routines:PKCS12_parse:mac verify failure

Call failed in /home/nephatrine/Projects/msix-packaging/src/msix/PAL/Crypto/OpenSSL/SignatureCreator.cpp on line 53
ninja: build stopped: subcommand failed.

And this leaves the msix in a bad/invalid state afterwards as well unfortunately where it cannot even be read as an unsigned package.
I've tested the pfx itself on Windows using signtool and it seems to have no issues, though the cert is self-signed. I assume the actual issue is probably because there doesn't seem to be any way to specify the password/credentials for the certificate using makemsix? Is there going to be a syntax added for providing that added?

Hi John,
will there be a way to pass a password to the makemsix in the way signtool does ist? Or is a password not required?
Kind regards

Yes, adding support for a password would definitely be part of getting it to a shippable state.
I'm quite surprised about that behavior @nephatrine , as I thought that I tried to ensure that everything was going to succeed before modifying the file.

Yeah I wasn't expecting that either. There are some msix files that I do get the other error @floppinger reported about removing files in the middle of the archive and that doesn't do anything to corrupt the file, but the unable to open pfx error does.
The following is a screenshot of the hexdiff and the depicted region is the only part of the resulting file that was changed by the failed signing operation. It's towards the tail end of the file and I'm not sure what the structure of these files is, but if I had to guess maybe the compressed contents of [Content_Types].xml? In any case, it's the area immediately preceding what appears to be a file listing or table of contents at the end of the file. It's literally just that small block that is changed by the operation and whatever change it performs corrupts the package.
https://imgur.com/L94AdvD

Hi John,
any news about the signing feature?
Do you need some testing support?
Kind regards

I'm sorry, but I haven't had any time to work on it.

Hi guys,
In the absence of completed code here, could you maybe put together some notes on the exact signing process? I'm trying to implement this with independent code, but it is proving remarkably difficult. If MSIX signatures were better documented perhaps other people could provide signing tools.
The sticking point is the hash calculation. The MSIX format has an interesting design in which the zip file effectively contains its own hash. Because you can't hash something that contains its own hash, the writing process has to be done in the following stages:

Write out the first part of the zip, adding all the files. When you write out the manifest, blockmap and content types file, hash their raw (uncompressed contents) and record it.
Hash everything written so far, make a note of that.
Create a fake central directory header, hash that.
Glue together these hashes in a little custom format prefixed by type codes.
Use this small serialized data structure as the digest field in an Authenticate P7X signature file.
Write out the resulting file as another zip file entry.
Write out a new central directory structure containing the signature file as well.

The high level approach is clear, but the devil is in the details. The problem is that without being able to see the Windows code it's extremely unclear how this is validated. Presumably Windows is editing the central directory or reformatting it to reproduce the original "fake" central directory table, so it can hash that and compare it to the signed digest. But ... how? I've tried writing out the zip, hashing the CD and then using a normal ZIP library to add the P7X file, but it doesn't work, the digests don't match what Windows expects. Presumably the ZIP library is editing the CD in a way that breaks the reconstruction, but because these are hashes of large complex binary structures I am at a bit of a loss.
The source code in this repository leaves a few questions open I'm hoping you can answer:

It always generates Zip64 and this is deliberate. Do MSIX files have to be Zip64? Windows can read non-zip64 msix files, but presumably this choice is made for a reason (or is it just implementation complexity?).
Do the "extra local headers" matter at all? I'm assuming the axpc hash is just the entire file up to the start of the central directory but is that right?
How exactly does Windows reconstruct/edit the CD to get the CD hash? Does it simply delete that table entry and then adjust the final end-of-directory section to reduce the number of included files or is there more to it?
Is there any way to get detailed debug logging from Windows about the validation process?


Use .NET Core 2.2 in workshop

The example code is .NET Core 2.2 but the workshop examples were for 2.1.
Also fixed some text.

By the way. You also have the word 'using' twice in the title of https://github.com/EdwinVW/pitstop/wiki/Run the application using using Docker Compose.
Not sure if I can change this myself because it's on the wiki.

By the way. You also have the word 'using' twice in the title of https://github.com/EdwinVW/pitstop/wiki/Run the application using using Docker Compose.
Not sure if I can change this myself because it's on the wiki.

I fixed that.

Thanks @ronaldbosma!


Colorpicker zoom inconsistant

Microsoft PowerToys version
"0.37.2"
Running as admin

[X] Yes

Area(s) with issue?
ColorPicker
Steps to reproduce
It's a bit difficult to reproduce this exactly, but it happens when I try and zoom via mousewheel.  Sometimes it works correctly, sometimes not.   The only difference is that when I scroll my mousewheel slower, it seems to have a higher success rate.  The gifs below demonstrate expected behavior and frequently behavior.
✔ Expected Behavior
Normally sized zoom window to select from - as below:

❌ Actual Behavior
Zoom window has limited size - won't get bigger.

Other Software
No response

We have a fix for this in 0.39 (https://github.com/microsoft/PowerToys/issues/11058).  Lets revisit this once 0.39 ships shortly.


Naming DMplex of adapted meshes

Closes #14.
One-line addition. I am following firedrake's convention here to name the topology mesh.name + "_topology" (as in firedrake.mesh._generate_default_mesh_topology_name)

@jwallwork23 Sorry, I already merged this but it just occurred to me now... maybe I should have set
newplex.setName(firedrake.mesh._generate_default_mesh_topology_name(self.name)) ?


 I want to cut a new release. Is there anything else you'd like to see added in?

I'm implementing some git extensions to optimise some repetitive tasks I do with GitHub, and it's been a pleasure working in Rust and your library. The next things I need also need adding here:

Create a commit: https://developer.github.com/v3/git/commits/#create-a-commit
Create a reference: https://developer.github.com/v3/git/refs/#create-a-reference

But I build from source, so I don't mind you cutting a release soon or later. Up to you.


Rws network

All code to create the hws and lhm 2024.2.X model-versions.
@visr, curious to your thoughts on how we merge models. I resetting a model index and concatting multiple models is defined here
https://github.com/Deltares/Ribasim-NL/blob/RWS-network/src/ribasim_nl/ribasim_nl/reset_index.py
https://github.com/Deltares/Ribasim-NL/blob/RWS-network/src/ribasim_nl/ribasim_nl/concat.py
For that I need to know tables with node_id columns from ribasim. Would be great if I could read that from the module directly instead of having my own global variable:
https://github.com/Deltares/Ribasim-NL/blob/1262ebd23c24c20aac736766c469251c6aee0f2b/src/ribasim_nl/ribasim_nl/model.py#L11-L22

@visr; actually I think it will make merging (reindexing) a little bit more complex. I would like to have all nodes a unique id so I can create a networkx object (using Node and Edge) and route trought the network. But I can concat node_id and type and do the same for edge, so that's OK.

This should work:
CLASS_TABLES = {}
for node in model.nodes().values():
    CLASS_TABLES[node.get_input_type()] = node.fields()

Downside is that it requires a model instance. But the results doesn't depend on the model.


ci: automatically update the readme and golden files on PRs

Which problem does the PR fix?

Related: https://github.com/camunda/distribution/issues/276
What's in this PR?

Checklist
Please make sure to follow our Contributing Guide.

Before opening the PR:

[ ] In the repo's root dir, run make go.update-golden-only.
[ ] There is no other open pull request for the same update/change.
[ ] Tests for charts are added (if needed).
[ ] In-repo documentation are updated (if needed).

After opening the PR:

[ ] Did you sign our CLA (Contributor License Agreement)? It will show once you open the PR.
[ ] Did all checks/tests pass in the PR?

automatic golden files update is working. We can see from the PR above.

Would it make sense to join both the update-goldenfiles and update-readme workflow together?

I'd suggest doing that, so we can combine all chores in the same commit.
we also could reuse most of this workflow (e.g. split part of it into an action)
https://github.com/camunda/camunda-platform-helm/blob/7d8028a47c2adb91e0830036ed4c0db0c9418d73/.github/workflows/chart-release-chores.yml


Errors not going through DataException

I had a problem because my json didn't contain a 'rows' property but couldn't diagnose it because the error was
Uncaught (in promise) TypeError: Cannot set property 'message' of undefined
This can be fixed by re-writing the exceptions like this
 const DataException = function(message) {    this.message = message;    this.name = "DataException";  };  const EditorException = function(message) {    this.message = message;    this.name = "EditorException";  };

Hi, this error probably accruing because of uninstalled/non-configured es presets like in project's webpack cnofig ex.:
   module: {
      loaders: [
         {
            test: /\.jsx?$/,
            exclude: /node_modules/,
            loader: 'babel-loader',
            query: {
               presets: ['es2015', 'react']
            }
         },

so this is rather es6 issue, where arrow functions were introduced.

I have those exact configured presets. Also used the npm package which uses a pre-compiled version of the files. But if the errors work for you it might be an issue on my side. As far as I know arrow functions don't rebind 'this' which makes the this.message undefined

Thx for contribution and actual pull request, I've analyzed the problem - you were right.


Introduce check on version tag before Golang release

In most of our projects, CI/CD checks that versions and tags are correct before deploying releases. We haven't done so on this repo up to now, because Go automatically picks up the release based on the tag itself, rather than having us deploy ourselves.
This leaves the release process open to errors which can be messy. I think we can address this and introduce a version check with a change to the release process:

Add a VERSION file
Once PR is merged, developer creates a tag of the format X.X.X (eg. 0.2.0) - since Go requires format vX.X.X this won't get published to the go cache
CI/CD runs on master only, checks that tag version == VERSION file
If version is correct, CD tags latest commit as vVERSION

This would only run on the master branch, if we wish to publish a pre-release from a branch we can do so by manually tagging the branch with format vX.X.X-beta.1.

This should come alongside some documentation on release process.

Also of interest - looks like there's a beta feature for protected tags: https://github.com/github/feedback/discussions/10906

With the JS tracker, I introduced a Workflow Dispatch action, which needs manually triggering from within Github.
https://github.com/snowplow/snowplow-javascript-tracker/blob/master/.github/workflows/publish.yml
Creates this UI (see run workflow button, you can push it to see the pop up): https://github.com/snowplow/snowplow-javascript-tracker/actions/workflows/publish.yml
You could perhaps bring these two ideas together, so you don't need the x.x.x tag which is only being used to trigger the CI/CD. You could even make sure its only being triggered on master too.

Yeah that's interesting


Touch Events Stop Working During HTML Video Playback on Mobile Devices

Version

Phaser Version: 3.20

Operating system: iOS 12.1

Browser: Mobile Safari

Description

On iOS devices, as you could see from the code below, I have added using JS a HTML Video element as a tutorial video before the game and then after the video ends, it should automatically switch to another scene for the game.
However after the user hits play on the video, the game seems to freeze. Only the video works. No touch events or other interactions work. However this works perfectly on desktop devices. Any ideas?
Example Test Code
 A live example is at https://jsfiddle.net/ja4g1b6k/1/.
 this.video = document.createElement('video');
 this.video.src = "assets/video.mp4";
 this.video.style.position = 'absolute';
 this.video.style.left = "75px";
 this.video.style.top = "50px";
 this.video.width = 650;
 this.video.height = 550;
 this.video.controls = true;
 this.video.addEventListener("ended", function() {
     this.video.pause();
     document.body.removeChild(this.video);
     bgMusic.setVolume(1);
     if (launch == 1) {
         this.scene.start('Game');
     } else {
         this.scene.start('About');
     }
 }.bind(this));
 bgMusic.setVolume(0.3);
 document.body.appendChild(this.video);
 this.video.play();

Additional Information

It's working for me:
// I detect mobile devices because the PC version is breaking
if (isMobile) this.input.manager.touch.capture = false;

Have you tried to trigger focus on your game's canvas after showing video ?

How do you trigger focus on the game's canvas after showing video?

I figured it out.
Just added to my game config:
input: {
	windowEvents: false
}

https://jsfiddle.net/yqw92krm/


:sparkles:MultiCohorts:sparkles:

Closes https://github.com/populationgenomics/production-pipelines/issues/710
Currently, for each pipeline run a ‘cohort’ is defined, comprising a list of one or more ‘datasets’, comprising a list of one or more ‘sgs’
In this PR, we propose that for each pipeline a ‘multicohort’ will be defined, comprising a list of one or more ‘cohorts’, comprising a list of one or more ‘datasets’, comprising a list of one or more ‘sgs’. 🤯
This means that a user can specify a list of custom cohort ID's (rather than just one), and stages will be generated accordingly.
The key changes here

The addition of a new MultiCohortStage, which will act on all of the cohorts at once.
The addition of a new MultiCohort Input, to facilitate the above.
Switching out the existing cohort global variable, with a multicohot

It is important to note, that we are still supporting a non-cohort run of production pipelines, which means there needs to be some logic to support the old way of doing things (pre-multi-cohorts) for the time being.
TODO
metamist.py

[x] Create get_multi_cohort method

targets.py

[x] Create a new MultiCohort Target.

[x] Add get_cohorts method
[x] Add create_cohort method

inputs.py

[x] Modify get_cohort -> get_multicohort()
[x] Modify create_cohort() -> create_multi_cohort()
[x] Consider how to handle current instances of get_cohort(), for example intervals_path=inputs.as_path(get_cohort(), PrepareIntervals, 'preprocessed'), in a SequencingGroupStage where the dependent stage is a CohortStage. *
[x] Add validation for input_cohorts to ensure it is a list, otherwise a string will be list-ified.

workflow.py

[x] Create MultiCohortStage
[x] Update all instances of get_cohort, as well as relevant implementation changes.
[x] Update set_stages, L1148
[x] Update queue jobs with checks
[x] Update _prefix
[x] Update queue for cohort
[x] Update batch name, L883

test_*.py

[x] Update Existing Tests

test_cohort.py

[x] Add test_multi_cohort()

sample_qc.py

[x] Switch get_cohort to get_inputs.

combbiner.py

[x] Switch get_cohort to get_inputs

Note for VB, add co-author credit in merge.
*actually I think this is fine, because it will return the outputs for each cohort, but we need to make sure that the new return structures here are suitable.

We need to review all the existing Cohort stages to see if they are eligible (or more suited) to be a MultiCohort stage.

We need to review all the existing Cohort stages to see if they are eligible (or more suited) to be a MultiCohort stage.

I meant to also say: I guess we can do this at our leisure and on a case-by-case basis. It probably doesn't need to be included in this base infrastructure update PR.

I meant to also say: I guess we can do this at our leisure and on a case-by-case basis. It probably doesn't need to be included in this base infrastructure update PR.

@jmarshall, the only issue would be if someone supplied multiple cohorts. If most users are using a single cohort at a time, then you're right we can do it case by case.


Proxy Support

Is your feature request related to a problem? Please describe.
My company blocks any outgoing requests not made through their https proxy.
Describe the solution you'd like
Allow a toggeld setting in the config that allows me to input IP,Port and auth info for a https proxy.
Describe alternatives you've considered
I have tried different proxy tunneling apps as well as running the java container with parameters to connect to the proxy, which works but doesn't alllow me to interact with the API any longer since the API Server is also going into the proxy.

can it be that proxy does not work with authentication enabled?
means config.toml
[proxy] ### Proxy ### enabled = true # Whether the proxy is enabled type = "HTTP" # The proxy type (HTTP, SOCKS) address = "<IP_ADDRESS>" # The proxy hostname port = 1234 # The proxy port auth = true # Whether authentication is enabled on the server username = "user123" # Basic auth username password = "pass123" # Basic auth password
proxy does work, but not when auth set to true and username+password set like above

@Shinoby92 Seems unlikely, the only problem I can see is the server having issues with HTTP 1.0 since I've hardcoded the version.

I tried now:
proxy false -> librespot working
proxy true authentification=false (auth with my ip address)  -> librespot working
proxy true authentification=true (with username & password)  -> librespot not working
I tried simple requests and other stuff with authentification username+password and it does work everywhere else only librespot does not work when using proxy with username & password authentification.
so im pretty sure its not proxy or system based, there is something not working with authentification. How can i check out if the proxy uses some hardcoded "must use" http 2.0 or what ever seems like there's a conflict then, if you can get it work with auth, then it has to be maybe the http version that's not working with my proxy used

Try editing this line: https://github.com/librespot-org/librespot-java/blob/f69d3ed7992069eca345a5da89ad414d1d5dfac3/lib/src/main/java/xyz/gianlu/librespot/core/Session.java#L1231
It that's not the problem, please open a new issue.

fixed it and created a pull request


firecracker: 1.9.0 -> 1.9.1, build from source

Build from source instead of using prebuilt binaries.

Work around a dependency compilation error.
Skip tests that will fail in sandbox.

Things done

Built on platform(s)

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

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

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

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

[x] Fits CONTRIBUTING.md.

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

cc @thoughtpolice @qjoly @techknowlogick

I have tested firecracker with /dev/kvm, and it works with the example in getting-started. I will test against jailer and others when I have time.
I did some work on passthru.updateScript previously on another package so I think I can do that in the future.


3level priviliges bufixes 20190603

这个 PR 实现什么功能/修复什么问题:
修正3级权限的一些BUG
是否需要 backport 到之前的 release 分支:

release/2.10.0

Codecov Report

Merging #1036 into master will increase coverage by <.01%.
The diff coverage is 0%.

@@            Coverage Diff            @@
##           master   #1036      +/-   ##
=========================================
+ Coverage    7.92%   7.92%   +<.01%
=========================================
  Files         356     356
  Lines       56274   56308      +34
=========================================
+ Hits         4461    4464       +3
- Misses      51419   51450      +31
  Partials      394     394

Flag
Coverage Δ

#aFlag
7.92% <0%> (ø)
:arrow_up:

Impacted Files
Coverage Δ

pkg/cloudcommon/db/external.go
0% <ø> (ø)
:arrow_up:

pkg/keystone/tokens/auth.go
0% <ø> (ø)
:arrow_up:

pkg/keystone/tokens/token.go
13.59% <ø> (+0.06%)
:arrow_up:

pkg/cloudcommon/policy/resources.go
0% <ø> (ø)
:arrow_up:

pkg/cloudcommon/policy/policy.go
1.93% <0%> (-0.08%)
:arrow_down:

pkg/cloudcommon/db/standalone.go
1.04% <0%> (+0.01%)
:arrow_up:

pkg/compute/models/wires.go
2.18% <0%> (-0.02%)
:arrow_down:

pkg/cloudcommon/db/db_dispatcher.go
0% <0%> (ø)
:arrow_up:

pkg/compute/models/guests.go
0.73% <0%> (ø)
:arrow_up:

pkg/compute/models/hosts.go
0.4% <0%> (-0.01%)
:arrow_down:

... and 4 more

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 2d04d44...ce55986. Read the comment docs.


feature request: source for beeper client

just wondering, its awesome to have the bridges to be open sourced for self hosting purposes,
but what about the beeper client? i might not have searched properly but i don't see a source for it. is there a reason why?

I am not developer of Beeper or otherwise engaged with it, but I see that a very large amount of webUI is identical as https://github.com/element-hq/element-web
Of course, Beeper-web has many fixes and a better look.
Beeper-android or  Beeper-ios that's a different topic.
Here you have quite a few other clients to choose from: https://matrix.org/ecosystem/clients/
Most work without any issues with the beeper.com Homeserver
I assume that company Beeper has to make money from something and doesn't want to open source everything.


Blank page shown while selecting the curriculam link

While clicking the curriculum link blank page was shown for first time, then the actual page is rendering only after the reload.
Browser and operating system

Browser Name: firefox
Browser Version: 60.0.1
Operating System: Windows 7

If possible, add a screenshot here

same problem here!
Browser name: Chrome
Browser Version: 66.0.3359.181
Operation system: MacOs

We had an issue of an over-active service worker not letting go of the cache. We have pushed a fix for this. Hopefully you will not see it again

Same problem here. Every time I try to access my curriculum I got a problem.
Clicking on the curriculum button I would go to a blank page and lots of errors in the console.
Now, when I click on the curriculum button from the settings page, I am redirected to the curriculum page but I am not logged in anymore. In that case I can not see my real progress and choose the next challenge


cannot format if javascript added to blade

Template
Please write your blade template that occurs issues.
Context (Environment)

write your environment

Description

Any other informations

Close this due to the lack of information. see: https://github.com/shufo/vscode-blade-formatter/issues/372


Feature request: recycling and reuse of inode ID

Is your feature request related to a problem? Please describe.
In ChubaoFS, based on POSIX-compatible metadata design, each file will have a unique and self-incrementing inode ID.
The ChubaoFS supports scalable metadata by slicing based on the Inode ID range. Specific implementation can refer to the paper CFS: A Distributed File System for Large Scale Container Platforms.
In practice, it is always accompanied by a large number of file creation and deletion requests. The new file will be performed on the metadata shard that has a high upper boundary and the upper boundary is not exhausted. As the file system is used more and more MetaPartitions will be created, and on the old MetaPartition the released Inode ID due to file deletion cannot be used.
Describe the solution you'd like
Requires an inode ID recycling and reuse mechanism, so that old MetaPartition can assign the inode ID of the deleted file to the new file.
Describe alternatives you've considered
None.
Additional context
None.

Inode recovery involves data security issues, and the implementation complexity is high, so it is temporarily not supported


feat: multi tenancy basic tenants management

Please check if the PR fulfills these requirements

[x] The commit message follows our guidelines
[x] Tests for the changes have been added (for bug fixes/features)
[x] Docs have been added / updated (for bug fixes / features)

What kind of change does this PR introduce?
It is introducing basic actions for Tenant management - creating, updating and removing. Also introducing new Access Policies for tenant dependent objects and middleware to load tenant and user_role into graphQL context based on arguments.

@wojcikmat sonar cloud check on the backend is failing:/ Do you think we could fix it?

@mkleszcz Sonarcloud check is fixed now. I feel like we have some misconfiguration for it. I firstly created test in subdirectory tests/test_schema/test_tenant_crud.py and Sonarcloud spotted issue that this file (with tests) is not covered by tests. As for now I moved this file to main test directory and it fixed issue and Sonarcloud check, but I believe that there might be a minor need to change a configuration to make it possible to have tests subdirectories. Also I believe that it might (I didn't check it) generate wrong numbers on general test coverage, because I saw that in a few places on backend there are subdirectories with tests in main test directory.


Error trying to run the code on windows

Following the readme instructions for cloning, after getting dependencies with yarn I get the following error when running yarn dev:
$ yarn dev
yarn run v1.22.21
$ yarn run build-deps && DEBUG=greenlight:* nextron
$ ls xal-node/dist/xal-node.node || npm run rebuild-deps
ls: cannot access 'xal-node/dist/xal-node.node': No such file or directory

><EMAIL_ADDRESS>rebuild-deps
> cd xal-node && npm ci

><EMAIL_ADDRESS>install
> npm run build-release

><EMAIL_ADDRESS>build-release
> ( bash -c 'uname -a | grep -q -i Darwin' && npm run build-release-osx ) || npm run build -- --release

><EMAIL_ADDRESS>build
> rm -rf dist/ && tsc && chmod +x dist/bin/auth.js && cargo-cp-artifact -nc dist/xal-node.node -- cargo build --message-format=json-render-diagnostics --release

   Compiling openssl-sys v0.9.80
error: failed to run custom build command for `openssl-sys v0.9.80`

Caused by:
  process didn't exit successfully: `C:\Users\futplus\Downloads\greenlight\xal-node\target\release\build\openssl-sys-73b0d91677602af5\build-script-main` (exit code: 101)
  --- stdout
  cargo:rustc-cfg=const_fn
  cargo:rustc-cfg=openssl
  cargo:rerun-if-env-changed=X86_64_PC_WINDOWS_MSVC_OPENSSL_NO_VENDOR
  X86_64_PC_WINDOWS_MSVC_OPENSSL_NO_VENDOR unset
  cargo:rerun-if-env-changed=OPENSSL_NO_VENDOR
  OPENSSL_NO_VENDOR unset
  running "perl" "./Configure" "--prefix=C:\\Users\\futplus\\Downloads\\greenlight\\xal-node\\target\\release\\build\\openssl-sys-e9ea9503ecd234f1\\out\\openssl-build\\install" "--openssldir=SYS$MANAGER:[OPENSSL]" "no-dso" "no-shared" "no-ssl3" "no-unit-test" "no-comp" "no-zlib" "no-zlib-dynamic" "no-md2" "no-rc5" "no-weak-ssl-ciphers" "no-camellia" "no-idea" "no-seed" "no-engine" "no-asm" "VC-WIN64A"
  Configuring OpenSSL version 1.1.1t (0x1010114fL) for VC-WIN64A
  Using os-specific seed configuration

  --- stderr

  ******************************************************************************
  This perl implementation doesn't produce Windows like paths (with backward
  slash directory separators).  Please use an implementation that matches your
  building platform.

  This Perl version: 5.36.1 for x86_64-msys-thread-multi
  ******************************************************************************
  thread 'main' panicked at C:\Users\futplus\.cargo\registry\src\index.crates.io-6f17d22bba15001f\openssl-src-111.25.0+1.1.1t\src\lib.rs:499:13:

  Error configuring OpenSSL build:
      Command: "perl" "./Configure" "--prefix=C:\\Users\\futplus\\Downloads\\greenlight\\xal-node\\target\\release\\build\\openssl-sys-e9ea9503ecd234f1\\out\\openssl-build\\install" "--openssldir=SYS$MANAGER:[OPENSSL]" "no-dso" "no-shared" "no-ssl3" "no-unit-test" "no-comp" "no-zlib" "no-zlib-dynamic" "no-md2" "no-rc5" "no-weak-ssl-ciphers" "no-camellia" "no-idea" "no-seed" "no-engine" "no-asm" "VC-WIN64A"
      Exit status: exit code: 127

  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Did not copy "cdylib:xal-node"
npm ERR! code 101
npm ERR! path C:\Users\futplus\Downloads\greenlight\xal-node
npm ERR! command failed
npm ERR! command C:\Windows\system32\cmd.exe /d /s /c npm run build-release

npm ERR! A complete log of this run can be found in: C:\Users\futplus\AppData\Local\npm-cache\_logs\2023-11-24T10_00_26_262Z-debug-0.log
error Command failed with exit code 101.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
error Command failed with exit code 101.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

I run this in git bash inside windows 10. Installed rust using its official installation exe file. And have nodejs 20 installed according to official doc. installed yarn using the instruction on their site which was installing using npm :)
The error seems to be about openssl library not being installed in windows. I tried to install it following the instruction in rust readme here but didn't succeed: https://github.com/sfackler/rust-openssl/tree/5948898e54882c0bedd12d87569eb4dbee5bbca7#windows-msvc
I think it'll be nice to add the instruction of how to setup and run the code inside windows in the README of this project.
Any idea how can I fix this error and run the code in windows? I've made some modifications and need to run it to make sure it works.

Fix this issue by installing windows version of perl (Strawberry perl) and changing PATH of git bash to not use its own perl implementation.
So to for building in windows I had to do this:

Install git (https://github.com/git-for-windows/git/releases/download/v2.43.0.windows.1/Git-2.43.0-64-bit.exe)
Install nodejs (https://nodejs.org/dist/v20.10.0/node-v20.10.0-x64.msi)
Install yarn with npm (npm i --global yarn)
Install rust (https://static.rust-lang.org/rustup/dist/x86_64-pc-windows-msvc/rustup-init.exe)
Install openssl (https://slproweb.com/products/Win32OpenSSL.html)
Install perl (Strawberry perl)
Change git bash PATH env to use perl implementation installed in step 6)

Good luck to all :)


(Chore) #2250 User should see FaceVerification liveness best practices

Description
Set custom text for liveness best practices on retry screen.
About #2250
How Has This Been Tested?
Need to get on retry screen - I think need to try pass FV with bad lightning.
see the text below the images.
Checklist:

[x] PR title matches follow: (Feature|Bug|Chore) Task Name
[x] My code follows the style guidelines of this project
[x] I have followed all the instructions described in the initial task (check Definitions of Done)
[x] I have performed a self-review of my own code
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] I have added reference to a related issue in the repository
[x] I have added a detailed description of the changes proposed in the pull request. I am as descriptive as possible, assisting reviewers as much as possible.
[x] I have added screenshots related to my pull request (for frontend tasks)
[ ] I have pasted a gif showing the feature.
[x] @mentions of the person or team responsible for reviewing proposed changes

Screenshot:

@yaroslav-fedyshyn-nordwhale please also pass tests. There were some tests fixes so pls merge with latest master before


ChromeCast support

As suggested by @jgrowl.

Fixed in https://github.com/cheshire137/huxleyfm/commit/94d54f86a2396240b2c5da229ea4aba5fd000d24 and later commits.


Copy FEN to kill ring

With prefix-arg, pygn-mode-echo-fen-at-point will copy the fen to kill-ring.

Try
(defun pygn-mode-echo-fen-at-point (pos arg)
…
(interactive "d\nP")
…

then arg is populated with the prefix argument for you.  You can even combine that with
(defun pygn-mode-echo-fen-at-point (pos &optional arg)

Oh nice. Updated!


Replace Audio Directly

Add as an alternative option to Randomise Stage Music, allowing the game to physically swap the XMAs rather than just changing a Lua value. This would probably be not recommended, as it could result in jingles playing as a stage song, thus, not looping.
Maybe also just add the jingles to the song selection as well for completion's sake.

Thinking this over, probably won't bother with it actually.


Route#options and Route#settings are confusing

Following the documentation, we can use Route#options and Route#settings.

Note that difference of Route#options and Route#settings.
The options can be referred from your route, it should be set by specifing key and value on verb methods such as get, post and put. The settings can also be referred from your route, but it should be set by specifing key and value on route_setting.

Somehow, its all mixed up and data can be accessed through options, attributes and settings
class MyApi < Grape::API
  namespace 'ns' do
    desc 'ns second', foo: 'bar', params: { a_desc_param: { desc: 'A described param', type: 'string' } }
    route_setting :a_route_setting, :a_route_setting_value
    params do
      optional :a_param, type: Integer
    end
    get(a_verb_setting: :a_verb_setting_value) { }
  end
end

MyApi::routes[0].options
# {
#   :params=>{
#     "a_param"=>{:required=>false, :type=>"Integer"},
#     :a_desc_param=>{:desc=>"A described param", :type=>"string"}
#   },
#   :foo=>"bar",
#   :description=>"ns second",
#   :a_verb_setting=>:a_verb_setting_value,
#   :namespace=>"/ns",
#   :version=>nil,
#   :requirements=>{},
#   :prefix=>nil,
#   :anchor=>true,
#   :settings=>{
#     :description=>{
#       :foo=>"bar",
#       :params=>{
#         :a_desc_param=>{:desc=>"A described param", :type=>"string"}
#       }, :description=>"ns second"
#     },
#     :a_route_setting=>:a_route_setting_value
#   },
#   :forward_match=>nil,
#   :suffix=>"(.:format)",
#   :method=>"GET"
# }
MyApi::routes[0].attributes.to_h
# {
#   :params=>{
#     "a_param"=>{:required=>false, :type=>"Integer"},
#     :a_desc_param=>{:desc=>"A described param", :type=>"string"}
#   },
#   :foo=>"bar",
#   :description=>"ns second",
#   :a_verb_setting=>:a_verb_setting_value,
#   :namespace=>"/ns",
#   :version=>nil,
#   :requirements=>{},
#   :prefix=>nil,
#   :anchor=>true,
#   :settings=>{
#     :description=>{
#       :foo=>"bar",
#       :params=>{:a_desc_param=>{:desc=>"A described param", :type=>"string"}},
#       :description=>"ns second"
#     },
#     :a_route_setting=>:a_route_setting_value
#   },
#   :forward_match=>nil,
#   :suffix=>"(.:format)",
#   :request_method=>"GET"
# }
MyApi::routes[0].settings
# {
#   :description=>{
#     :foo=>"bar",
#     :params=>{
#       :a_desc_param=>{:desc=>"A described param", :type=>"string"}
#     },
#     :description=>"ns second"
#   },
#   :a_route_setting=>:a_route_setting_value
# }

params can be defined through the desc DSL and it is merged with the params DSL which is confusing
desc attributes can be accessed through options[], settings[] and like a getter e.g MyApi::routes[0].description == MyApi::routes[0].options[:description]`

Should options contains just the verb options (if any) and settings just the route options ?
Should we keep internal values somewhere else ? For instance, a user could override requirements through the desc DSL.
Thanks

Eh, this is indeed confusing. I like both suggestions, would start with internal values, moving those should probably not break specs.


timer with popup breaks incsearch

Steps to reproduce

Start vim this way:

vim -Nu NONE -S <(cat <<EOF
	vim9script
	set incsearch
	autocmd CmdlineChanged /,\? timer_start(0, (_) => popup_menu(['foo'], {}))
EOF
)

Insert some text, say asdf.
Search for letter a by typing /a.
A popup opens but letter a is not highlighted.

Expected behaviour
Now compare the behavior without using a timer:
vim -Nu NONE -S <(cat <<EOF
	vim9script
	set incsearch
	autocmd CmdlineChanged /,\? popup_menu(['foo'], {})
EOF
)

You will find that a will be highlighted when you search /a. This is the behavior I expect even when using a timer.
Version of Vim
9.0 (2022 Jun 28, compiled Jun 03 2023 16:11:47)
Environment
macOS version - arm64
iTerm2
xterm-256color
zsh
==
VIM - Vi IMproved 9.0 (2022 Jun 28, compiled Jun 03 2023 16:11:47)
macOS version - arm64
Included patches: 1-1600
Compiled by Homebrew
Huge version without GUI.  Features included (+) or not (-):
+acl               +comments          +find_in_path      +lispindent        +multi_byte        +rightleft         +terminal          +wildignore
+arabic            +conceal           +float             +listcmds          +multi_lang        +ruby              +terminfo          +wildmenu
+autocmd           +cryptv            +folding           +localmap          -mzscheme          +scrollbind        +termresponse      +windows
+autochdir         +cscope            -footer            +lua               +netbeans_intg     +signs             +textobjects       +writebackup
-autoservername    +cursorbind        +fork()            +menu              +num64             +smartindent       +textprop          -X11
-balloon_eval      +cursorshape       +gettext           +mksession         +packages          +sodium            +timers            -xfontset
+balloon_eval_term +dialog_con        -hangul_input      +modify_fname      +path_extra        +sound             +title             -xim
-browse            +diff              +iconv             +mouse             +perl              +spell             -toolbar           -xpm
++builtin_terms    +digraphs          +insert_expand     -mouseshape        +persistent_undo   +startuptime       +user_commands     -xsmp
+byte_offset       -dnd               +ipv6              +mouse_dec         +popupwin          +statusline        +vartabs           -xterm_clipboard
+channel           -ebcdic            +job               -mouse_gpm         +postscript        -sun_workshop      +vertsplit         -xterm_save
+cindent           +emacs_tags        +jumplist          -mouse_jsbterm     +printer           +syntax            +vim9script
-clientserver      +eval              +keymap            +mouse_netterm     +profile           +tag_binary        +viminfo
+clipboard         +ex_extra          +lambda            +mouse_sgr         -python            -tag_old_static    +virtualedit
+cmdline_compl     +extra_search      +langmap           -mouse_sysmouse    +python3           -tag_any_white     +visual
+cmdline_hist      -farsi             +libcall           +mouse_urxvt       +quickfix          -tcl               +visualextra
+cmdline_info      +file_in_path      +linebreak         +mouse_xterm       +reltime           +termguicolors     +vreplace
   system vimrc file: "$VIM/vimrc"
     user vimrc file: "$HOME/.vimrc"
 2nd user vimrc file: "~/.vim/vimrc"
      user exrc file: "$HOME/.exrc"
       defaults file: "$VIMRUNTIME/defaults.vim"
  fall-back for $VIM: "/opt/homebrew/share/vim"
Compilation: clang -c -I. -Iproto -DHAVE_CONFIG_H -DMACOS_X -DMACOS_X_DARWIN -g -O2 -D_REENTRANT -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
Linking: clang -o vim -lm -lncurses -lsodium -liconv -lintl -framework AppKit -L/opt/homebrew/opt/lua/lib -llua5.4 -mmacosx-version-min=12.6 -fstack-protect
or-strong -L/opt/homebrew/opt/perl/lib/perl5/5.36/darwin-thread-multi-2level/CORE -lperl<EMAIL_ADDRESS>s/3.11/lib/python3.11/config-3.11-darwin -lpython3.11 -framework CoreFoundation -lruby.3.2 -L/opt/homebrew/Cellar/ruby/3.2.2/lib

Logs and stack traces
No response

I think what is happening is, that in the timer case, incsearch highlighting will be done, and then the timer causes a redraw, which overwrites the incsearch highlighting. In the other case, the CmdlineChanged autocommand creates the popup first and then the incsearch highlighting applies and therefore is still visible.
It may be hard to fix this. Also note, that the help for timer_start() includes this:

If you want to show a message look at popup_notification() to avoid interfering with what the user is doing.

which I believe is what your popup_menu() is already doing.

You may be right. I actually see a flicker when 'incsearch' highlights the text but highlighting quickly vanishes.
It is still a bug since -

I do not expect highlighting to vanish after redraw is called,
I am calling popup_show() first and then passing the typed character (keycode) back to Vim (by returning 'false' from filter function of popup); In this case I expect popup to display first followed a redraw, and followed by highlighting.

I am closing this issue, since it is not a bug.


Consider post processing for imagery layers to enable analysis

This came up on the forum. The idea is to be able to do some basic image processing in real-time, so you might have one imagery layer that has elevation data, one that has sunlight data, and one that has temperature data, and you can combine them in a small custom shader to highlight expected plant growing zones based on some model.
So this shader could have as input one or more imagery layers. Even just having one imagery layer as input would be useful in dynamically discarding values based on a slider for example.
OpenLayers does something like this on the CPU side with web workers (see https://openlayers.org/en/latest/examples/raster.html).

This is actually pretty similar to https://github.com/AnalyticalGraphicsInc/cesium/issues/6449.

Came up again on the forum:

We have raster information that we'd like to apply directly to the terrain. Rather than have a fixed colours in the imagery, we'd like to use a channel in the imagery such as alpha to control a ramp between two colours, configurable in the viewer.
For example use alpha channel to control a ramp between blue and red which is applied to the satellite imagery with 50% opacity. (Rather than build in the colour ramp into the source imagery)

And here as well to change the imagery's "color table" at runtime:

At first, I load a imagery in WMS server.
Second, suppose the value of this image is just 0 and 1 and the 0 is shown as black and the 1 is shown as red.
Third, I want change the colorTable of my imagery, such as change the color of value 1 to blue

I would like to suggest an implementation for this feature. I have been experimenting with this to use a separate imagery layer as water mask for a custom water shader.
The general idea is to push imagery layer data to a globe material.
For this purpose, I add a "vec4 layerColor" field to the materialInput struct. This field can then be set in the GlobeFS.glsl sampleAndBlend function based on some condition.
In my case, I pass an extra argument to that function which contains the imagery layer index and only set materialInput.layerColor for a given layer index. The layer index is passed to sampleAndBlend as a new uniform added to the tileProvider uniformMap (createTileUniformMap).
However, it would be more generic to add something like a "pushToMaterial" option to the imageryLayer constructor.
All this is necessary as there is no direct way to pass imageryLayer index between the javascript generated "sampleAndBlend" calls and the runtime execution as a shader.
Ideally, any existing imageryLayer could be sent to the material as an array of layerColors[] if its "pushToMaterial" option is set to true. However, my limited experience with GLSL got me in trouble when dealing with the constraints around using arrays and loops in a dynamic fashion. The only option I found was to loop though all TEXTURE_UNITS at each call of sampleAndBlend and test and set imagery layer color in a materialInput.layerColors array.
I also noticed an increase in shader compilation time that hangs the application for a short while before all variations of the shaders are cached. This may simply mean my implementation is not optimal.
I am happy to discuss this further and see if it can be added in a clean way to CesiumJS.

how to add cockpit like compass,speed meter


KIndly replace "fox" with "lion" in readme

Replace all occurrences of fox with lion in README.md file

hey @mahendrashinde2023 can we create a new file atendee.md to add all atendee names who currently joined.


Support for OpenBSD

Unfortunately OpenBSD only supports FUSE2 and fuser really doesn't want to work for OpenBSD.
My idea would be to split the UFS-relevant parts into a library and to create two wrappers:

fuser
OpenBSD (uses C bindings directly to libfuse in base)

This is out of scope for GSoC 2024, though. We need to focus on basic functionality first.

I know, this is for later.

This being worked on in #77.


feat: add option to fetch multiple layers at once

Current Implementation
The current api statsigServer.getLayerSync(user, layerName, new GetLayerOptions()) allows pulling one layer at a time
Problem
In an api server, it is sometimes beneficial to fetch multiple layers at once and add them to the request context. So that it is can be easily used in different api handlers.
Solution
Add an api to fetch multiple layers at once ex: statsigServer.getLayersSync

It should be easy enough to write a method that takes in an array of layer names, and returns the layers for each of those - I dont think the SDK needs to add support for this as a top level API as you can currently compose the exposed API into this type of method if you need it.
It also seems like you might be overfetching data in some cases and want to leave the layer fetching to the particular callsite, adding caching for that if there are multiple callsites.  Again, all implementation details for your own webserver.


how to pass textInputProps

How can i pass textInputProps, like I need to pass the RightIcon Props to this component, Thanks

Just pass the righticon as a prop like normal. You are deconstructing the textInputProps, which includes onChangeText, onSelectionChange and children. You can then add any other Props you want to the TextInput.

I'm closing the issue due to the lack of new questions and activity.
You are welcome to add comments or create an issue if you'll get new questions.


Can we make AAR with flutter build aar and add into Android project to access dart classes?

I made an AAR file of my flutter module with flutter build aar command according to this official documentation, but is this just for calling a flutter activity from native? Or we can access dart classes and  methods in Android side by this AAR? I couldn't  actually do that

Hi @msndvlpr
This issue doesn't seem to describe a bug or a feature request. Please see https://flutter.dev/community for resources and asking questions like this,
you may also get some help if you post it on Stack Overflow and if you need help with your code, please see https://www.reddit.com/r/flutterhelp/
Closing, as this isn't an issue with Flutter itself. If you disagree, please write in the comments and I will reopen it.
Thank you


Started adding spec for coverage

My first contribution to ruby/spec, so I expect to have to change a lot.
First question is that the specs seem organized around methods, but coverage is typically the interaction between the Coverage.start and Coverage.result methods.  How should the specs for this interaction be organized?

Hi @donv!
The current organization seems fine, I believe there is no strict rule.
Specifying result in the start spec would seem strange to me.

Looks good overall!
There are a few stylistic issues which I commented.

OK, applied all the comments except the separate spec for disabled coverage since there is no query.
Looks good?

What's the deal with the failing AppVeyor check?

Ah!  It is for windows.  Does this mean MRI on windows is failing Ruby Spec?

Ah! It is for windows. Does this mean MRI on windows is failing Ruby Spec?

Rather than Ruby Spec is still having too many expectations for Windows.

Thank you for your contribution!

Thank you for this vital project!


Error on CI [Error: local-exec provisioner error]

Description
I have the same code deployed to different accounts, using Github Actions. I've implemented the solution described here, but am getting the following error, as Github cannot find the package.
##[debug]│ Error: local-exec provisioner error
##[debug]│
##[debug]│   with module.lambda_function.null_resource.archive[0],
##[debug]│   on .terraform/modules/lambda_function/package.tf line 67, in resource "null_resource" "archive":
##[debug]│   67:   provisioner "local-exec" {
##[debug]│
##[debug]│ Error running command
##[debug]│ './.terraform/lambda-builds/package_dir/NotificationHandler-dev/dev/aeb134742ebf21621c1345f9560df33ade546d008e322876157bea4e1ebdf5f7.plan.json':
##[debug]│ exit status 1. Output: Traceback (most recent call last):
##[debug]│   File "/home/runner/work/infrastructure/infrastructure/terraform/push-notifications/.terraform/modules/lambda_function/package.py", line 1627, in <module>
##[debug]│     main()
##[debug]│   File "/home/runner/work/infrastructure/infrastructure/terraform/push-notifications/.terraform/modules/lambda_function/package.py", line 1623, in main
##[debug]│     exit(args.command(args))
##[debug]│   File "/home/runner/work/infrastructure/infrastructure/terraform/push-notifications/.terraform/modules/lambda_function/package.py", line 1494, in build_command
##[debug]│     with open(args.build_plan_file) as f:
##[debug]│ FileNotFoundError: [Errno 2] No such file or directory:
##[debug]│ './.terraform/lambda-builds/package_dir/NotificationHandler-dev/dev/aeb134742ebf21621c1345f9560df33ade546d008e322876157bea4e1ebdf5f7.plan.json'
##[debug]│
##[debug]╵
##[debug]
##[debug]exitcode: 1

Versions

Module version [Required]: v4.10.1

Terraform version: 1.3.9

Provider version(s):

Providers required by configuration:
.
├── provider[registry.terraform.io/hashicorp/random] ~> 3.0
├── provider[terraform.io/builtin/terraform]
├── provider[registry.terraform.io/hashicorp/aws] ~> 4.0
├── module.lambda_function
│   ├── provider[registry.terraform.io/hashicorp/local] >= 1.0.0
│   ├── provider[registry.terraform.io/hashicorp/null] >= 2.0.0
│   ├── provider[registry.terraform.io/hashicorp/aws] >= 4.44.0
│   └── provider[registry.terraform.io/hashicorp/external] >= 1.0.0
├── module.log_bucket
│   └── provider[registry.terraform.io/hashicorp/aws] >= 4.9.0
└── module.s3_bucket_lambda
    └── provider[registry.terraform.io/hashicorp/aws] >= 4.9.0

Reproduction Code [Required]
module "lambda_function" {
  source  = "terraform-aws-modules/lambda/aws"
  version = "v4.10.1"

  function_name = local.function_name
  description   = "Client Email/SMS reminder function"
  handler       = "app.handler"
  runtime       = "nodejs16.x"
  publish       = false

  source_path = "./src/nodejs-app"

  store_on_s3               = true
  s3_bucket                 = module.s3_bucket_lambda.s3_bucket_id
  s3_server_side_encryption = "aws:kms"

  create_async_event_config      = true
  reserved_concurrent_executions = 1
  timeout                        = 900 # 15 minutes

  artifacts_dir = "${path.root}/.terraform/lambda-builds/package_dir/${local.function_name}/${terraform.workspace}"

My pipeline runs terraform plan, uploads the plan file to Github and in another moment, when the PR is merged, Github downloads that plan file and runs terraform apply.
I don't know if that process is the reason I see this error: ##[debug]module.lambda_function.null_resource.archive[0] (local-exec): FileNotFoundError: [Errno 2] No such file or directory: './.terraform/lambda-builds/package_dir/NotificationHandler-dev/dev/aeb134742ebf21621c1345f9560df33ade546d008e322876157bea4e1ebdf5f7.plan.json'?

@lpossamai had the same issue, fixed by storing builds folder on plan step and restore it on apply step.

I have the same issue with my gitlab project containing a lambda + 3 layers.
I'm using the standard template: https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Terraform.gitlab-ci.yml

I have the same issue with my gitlab project containing a lambda + 3 layers. I'm using the standard template: https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Terraform.gitlab-ci.yml

After further digging, I resolved my problem: I have to add the builds directory content to the git and remove it from .gitignore. The pipeline is working perfectly after that.

@lpossamai had the same issue, fixed by storing builds folder on plan step and restore it on apply step.

Hi @MichielBijland Are you able to share some of the solution here, please? The build file the lambda creates is a .zip file but the name is random, so it's hard to specify it using the actions/upload-artifact@v3 action.

@lpossamai Sure, we use an s3 bucket to store plans and build artefacts using merge requests flows.
plan job
- name: Store terraform plan
        run: aws s3 cp --sse AES256 --recursive --exclude '*' --include "deployments/*/terraform.plan" --include "deployments/*/builds/*.plan.json" . s3://${{ env.AWS_PLAN_BUCKET }}/plans/${{ github.event.pull_request.number }}/

apply job
- name: Retrieve terraform plan
        run: aws s3 cp --sse AES256 --recursive s3://${{ env.AWS_PLAN_BUCKET }}/plans/${{ github.event.pull_request.number }}/ .

- name apply terraform

- name: Cleanup terraform plan
        run: aws s3 rm --recursive s3://${{ env.AWS_PLAN_BUCKET }}/plans/${{ github.event.pull_request.number }}/


onItemRelease not working with PaginatedView

The check is only being applied to View items, which have been statically defined so it'll not work with items set in context.
https://github.com/DevNatan/inventory-framework/blob/2e09622589c0ae27fc2d31b0dacc2e0d2a2517c2/src/main/java/me/saiintbrisson/minecraft/ViewListener.java#L138
Reproducible code:
slot(1, new ItemStack(Material.REDSTONE));
context.slot(2, new ItemStack(Material.DIAMOND));

...

@Override
protected void onItemRelease(ViewSlotContext from, ViewSlotContext to) {
    from.getPlayer().sendMessage("Item released");
}

Hold and release the REDSTONE, will work fine, prints "Item released".
Hold and release the DIAMOND, nothing happens.
Also, it won't work with PaginatedViewContext as these contexts don't store item information.

Fixed in https://github.com/DevNatan/inventory-framework/commit/ee815a2ad2b818da9bbcc09b7713df97ed0b1d0e.