sometimes the connection closed before the video appear

Sometimes (not always, but usually) the connection disconnected before the video appear.
The error message is (chrome console):
"RTCMultiConnection.js:1459 Peer connection is closed between you &  otherside Object {} state: failed", after the "candidate pairs" logs are displayed in console.
Is there any way to investigate it , why not establish a connection ?

This part of the code :
 connection.onPeerStateChanged = function(state) {
            if (connection.enableLogs) {
                if (state.iceConnectionState.search(/closed|failed/gi) !== -1) {
                    console.error('Peer connection is closed between you & ', state.userid, state.extra, 'state:', state.iceConnectionState);
                }
            }
        };


Revert "JBDS-4330 PGP ASCII armored clearsign signature verification"

This reverts commit fae80efd23b1647b9ca29c63a7ed10559b81fa15.

Codecov Report

Merging #827 into master will decrease coverage by 0.15%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #827      +/-   ##
==========================================
- Coverage   96.51%   96.35%   -0.16%
==========================================
  Files          36       35       -1
  Lines        3210     3374     +164
  Branches      267      480     +213
==========================================
+ Hits         3098     3251     +153
- Misses        112      114       +2
- Partials        0        9       +9

Impacted Files
Coverage Δ

browser/model/helpers/downloader.js
96.94% <0%> (-1.52%)
:arrow_down:

browser/model/jbosseap.js
98.8% <0%> (-1.2%)
:arrow_down:

browser/pages/about/controller.js
21.05% <0%> (-1.17%)
:arrow_down:

browser/directives/componentPanel.js
14.28% <0%> (-1.1%)
:arrow_down:

browser/pages/confirm/controller.js
89.71% <0%> (-0.93%)
:arrow_down:

browser/services/data.js
97.03% <0%> (-0.92%)
:arrow_down:

browser/model/jbossfuse.js
99.21% <0%> (-0.79%)
:arrow_down:

browser/model/cdk.js
99.22% <0%> (-0.78%)
:arrow_down:

browser/model/jdk-install.js
97.29% <0%> (-0.45%)
:arrow_down:

browser/model/devstudio.js
89.13% <0%> (-0.41%)
:arrow_down:

... and 21 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 34490ce...c6c1b41. Read the comment docs.


potential issue related to user-defined ps providers

If the user has configured a PS Provider for the filesystem and it is the location returned by get-location when scoop install xxx.json is used, scoop may fail to locate the manifest.
Example: https://github.com/lukesampson/scoop/pull/372

@guillermooo Do you have a link to some decent docs on PS Providers? I don't really know how they work


Copy folder/file name from file explorer

I right-click on a file/folder on the file explorer, then I select copy, then I go to the Markdown/HTML file I'm editing and I try to paste it (^V or Edit/Paste as usually), nothing happens.
I'd like the file/folder name to be pasted when in a text editor. Copy relative path is not enough when I just want the file name. 'Copy name' on the right click menu would be a good alternative. At the moment, I can do this by means of Right Click -> Rename -> Copy the selected name -> Esc, which obviously is not so comfortable.

Duplicate of #69022, as suggested by the bot.


Change user output with term upsert to insert or update

Describe the bug
While the term upsert is very technical, it may cause confusion when used in output messages. For example:
2023/04/28 14:08:01 INFO  Projects to be deployed:
2023/04/28 14:08:01 INFO    - srg-config-as-code
2023/04/28 14:08:01 INFO  Environments to deploy to:
2023/04/28 14:08:01 INFO    - pvy27067
2023/04/28 14:08:01 INFO  Deploying configurations to environment `pvy27067`...
2023/04/28 14:08:01 INFO        Deploying config srg-config-as-code:app:dynatrace.site.reliability.guardian:guardians:srg
2023/04/28 14:08:02 WARN  Failed to upsert config "srg". Waiting for 5s before retrying...
2023/04/28 14:08:07 WARN  Failed to upsert config "srg". Waiting for 5s before retrying...
2023/04/28 14:08:12 WARN  Failed to upsert config "srg". Waiting for 5s before retrying...

Note: Definition of term:
The term upsert is a portmanteau – a combination of the words “update” and “insert.” In the context of relational databases, an upsert is a database operation that will update an existing row if a specified value already exists in a table, and insert a new row if the specified value doesn't already exist.

Expected behavior
Please change the output messages from upsert to insert or update.
Additional context
Add any other context about the problem here.

wording changed as of 2.0.3


Replace pyuavcan-cli invocation with yakut commands in comments

pyuavcan-cli was replaced with yakut.
Commands have sligthly changed.

This fixes #61.

This fixes #61.

@pavel-kirienko could you please take a look at this?

@pavel-kirienko could you please take a look at this?


Fix resources overlap

Mark one string as public. Hopefully this should mark all other as 'private', preventing merging resources with same names for apps using this sdk.
We have a problem:

We have string "Downloaded" with text1
You have string "Downloaded" with text2

In our app, in place not about stickers it displays text2
First solution is try to make library resources private, hope after that build tool with ignore them when merging resources
Second is to add "stipop_" prefix to all resources

Hello, I'm Stipop's mobile SDK developer kyum.
I created public.xml and added prefix 'sp_' to values in version 0.9.5-beta.3'.
Thank you for your efforts and Please update SDK version.
Thanks.


Bulk CSV search fails

Hi Bud,
I'm not sure why this fails when I run with parameter -i host.csv - I'm running against the example file, also happens if I make one myself. Any obvious quick solution to this?
Error:
└─$ bin/mangobars -i  host.csv
panic: runtime error: index out of range [1] with length 1
goroutine 1 [running]:
main.dispatch({0x6b5ac0?, 0xc000014098})
/home/floks/Downloads/mangobars/cmd/mangobars/mangobars.go:147 +0x4f7
main.process()
/home/floks/Downloads/mangobars/cmd/mangobars/mangobars.go:117 +0x332
main.start()
/home/floks/Downloads/mangobars/cmd/mangobars/mangobars.go:49 +0x4d
main.main()
/home/floks/Downloads/mangobars/cmd/mangobars/mangobars.go:40 +0x19

Make sure your CSV is formatted correctly. I think it's missing the port number.
Example -
amazon.com,443
google.com,443
cloudflare.com,443

If you have this correct already, can you please paste the CSV file (host.csv) used?
I have tested this quickly using the CSV file from the repo and it worked for me..
$ bin/mangobars -i host.csv
   VALID    cloudflare.com:443 (cloudflare.com | 63 days | 2023-05-07 23:59:59 +0000 UTC)
  EXPIRED   instagram.com:443 (*.instagram.com | 10 days | 2023-03-15 23:59:59 +0000 UTC)
  EXPIRED   facebook.com:443 (*.facebook.com | 10 days | 2023-03-15 23:59:59 +0000 UTC)
   VALID    google.com:443 (*.google.com | 58 days | 2023-05-03 04:34:29 +0000 UTC)
   VALID    youtube.com:443 (*.google.com | 58 days | 2023-05-03 04:34:29 +0000 UTC)

Make sure your CSV is formatted correctly. I think it's missing the port number.
Example -
amazon.com,443
google.com,443
cloudflare.com,443

If you have this correct already, can you please paste the CSV file (host.csv) used?
I have tested this quickly using the CSV file from the repo and it worked for me..
$ bin/mangobars -i host.csv
   VALID    cloudflare.com:443 (cloudflare.com | 63 days | 2023-05-07 23:59:59 +0000 UTC)
  EXPIRED   instagram.com:443 (*.instagram.com | 10 days | 2023-03-15 23:59:59 +0000 UTC)
  EXPIRED   facebook.com:443 (*.facebook.com | 10 days | 2023-03-15 23:59:59 +0000 UTC)
   VALID    google.com:443 (*.google.com | 58 days | 2023-05-03 04:34:29 +0000 UTC)
   VALID    youtube.com:443 (*.google.com | 58 days | 2023-05-03 04:34:29 +0000 UTC)

You are absolutely right, a few of my hosts at the top didn't have any port numbers. Doh! - It blended in with the rest of the lines.
It works just fine now after that correction

Good to know! Thanks for reporting back.
Maybe I can think of improving this a bit to assume 443 when not specified..Maybe will push this change later tonight after work or over the weekend!
I am closing this issue for now.

Agree, default to 443 if 2nd argument not found
Thanks again for rapid response, you saved me a bunch of time!


[Shopping List Workshop] Missing space in function declaration

Description
This is just a typo/formatting issue.
For consistency, there should be a space between () and { in function declaration:
---function getShoppingListMsg(){
+++function getShoppingListMsg() {

Changes needed
Fix the issue in the following files:

https://github.com/freeCodeCamp/freeCodeCamp/blob/main/curriculum/challenges/english/25-front-end-development/workshop-shopping-list/66c64ad16796c7f2419b45c5.md
https://github.com/freeCodeCamp/freeCodeCamp/blob/main/curriculum/challenges/english/25-front-end-development/workshop-shopping-list/66c72a55418cc9247b710827.md
https://github.com/freeCodeCamp/freeCodeCamp/blob/main/curriculum/challenges/english/25-front-end-development/workshop-shopping-list/66c72b0ffbc5522525768558.md
https://github.com/freeCodeCamp/freeCodeCamp/blob/main/curriculum/challenges/english/25-front-end-development/workshop-shopping-list/66c72f4d0528bd268a82107b.md
https://github.com/freeCodeCamp/freeCodeCamp/blob/main/curriculum/challenges/english/25-front-end-development/workshop-shopping-list/66c726c34ecf1e238aa9d7d5.md
https://github.com/freeCodeCamp/freeCodeCamp/blob/main/curriculum/challenges/english/25-front-end-development/workshop-shopping-list/66c730183f4020275cbf0611.md

Can it be assigned to me?

can i work on this issue ?


MAIN - Align primary button disabled colour with designs

Hi 👋
After discussing with one of our designers, it was noticed that the primary buttons disabled state is incorrect, and should b grey instead.
@paschalidi

Warnings

:warning:
Missing reviewer - Looks like this pull request is missing a reviewer. That's OK as long as this PR is still a 'work in progress', if that is the case please add 'WIP' in the PR title or corresponding label.

Messages

:book:
✅  Get a 🏆 for adding description on this PR. - Celebrate on every step!

  Generated by :no_entry_sign: dangerJS against 9474cee3ca3b4809bf8f913b8293dc32bdc00d77


[fix] Force static libraries to be linked when LINK_STATIC is enabled

Motivation
Currently, even with LINK_STATIC=ON option, dynamic libraries could still be linked. For example, on macOS, the following libcurl library will be found:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.3.sdk/usr/lib/libcurl.tbd

Then, the libpulsar.dylib will link to /usr/lib/libcurl.4.dylib, which is not a static library.
Modifications
When LINK_STATIC is enabled, change CMAKE_FIND_LIBRARY_SUFFIXES to .a for non-MSVC compilers so that only static libraries could be found except OpenSSL, which should not be linked statically.
In addition, use find_package as much as possible instead of raw usages of find_path and find_library.
Documentation

[ ] doc-required
(Your PR needs to update docs and you will update later)

[x] doc-not-needed
(Please explain why)

[ ] doc
(Your PR contains doc changes)

[ ] doc-complete
(Docs have been already added)

@merlimat @Demogorgon314 @RobertIndie Now all tests passed, PTAL.
Currently I'm working on fixing the Windows build when LINK_STATIC is ON, which might be based on this PR. Because when LINK_STATIC is ON, no Windows dependencies could be found because the suffix is not .a. This PR accidentally fixes some issues of finding dependencies. Regarding other issues to build statically linked Windows library,  will push another PR later.

@BewareMyPower CMake is now failing to find OpenSSL on Mac (installed with brew):
CMake Error at /opt/homebrew/Cellar/cmake/3.23.0/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the
  system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY
  OPENSSL_INCLUDE_DIR)
Call Stack (most recent call first):
  /opt/homebrew/Cellar/cmake/3.23.0/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
  /opt/homebrew/Cellar/cmake/3.23.0/share/cmake/Modules/FindOpenSSL.cmake:578 (find_package_handle_standard_args)
  CMakeLists.txt:127 (find_package)

@merlimat I just tested again in my local env.
Here is my command (just test the default LINK_STATIC option because it does not affect OpenSSL):
cmake -Wno-dev \
    -DCMAKE_PREFIX_PATH="/usr/local" \
    -DBUILD_TESTS=OFF -DBUILD_PERF_TOOLS=ON \
    -B build

Here are my outputs after this PR:
-- Found OpenSSL: /opt/local/lib/libcrypto.dylib (found version "3.0.4")
-- Found OpenSSL: /opt/local/lib/libcrypto.dylib (found version "3.0.4")
RECORD_OPENSSL_SSL_LIBRARY: /opt/local/lib/libssl.dylib
RECORD_OPENSSL_CRYPTO_LIBRARY: /opt/local/lib/libcrypto.dylib
-- Found OpenSSL: /usr/local/opt/openssl/lib/libcrypto.dylib (found version "3.0.4")
OPENSSL_INCLUDE_DIR: /usr/local/opt/openssl/include//opt/homebrew/opt/openssl/include
OPENSSL_SSL_LIBRARY: /usr/local/opt/openssl/lib/libssl.dylib
OPENSSL_CRYPTO_LIBRARY: /usr/local/opt/openssl/lib/libcrypto.dylib

Here are my outputs before this PR (just added the same logs):
-- Found OpenSSL: /usr/local/opt/openssl/lib/libcrypto.dylib
RECORD_OPENSSL_SSL_LIBRARY: /usr/local/opt/openssl/lib/libssl.dylib
RECORD_OPENSSL_CRYPTO_LIBRARY: /usr/local/opt/openssl/lib/libcrypto.dylib
OPENSSL_INCLUDE_DIR: /usr/local/opt/openssl/include//opt/homebrew/opt/openssl/include
OPENSSL_SSL_LIBRARY: /usr/local/opt/openssl/lib/libssl.dylib
OPENSSL_CRYPTO_LIBRARY: /usr/local/opt/openssl/lib/libcrypto.dylib

The patch to add logs:
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d3876f8..5952576 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -135,6 +135,8 @@ set(OPENSSL_USE_STATIC_LIBS FALSE)
 find_package(OpenSSL REQUIRED)
 set(RECORD_OPENSSL_SSL_LIBRARY ${OPENSSL_SSL_LIBRARY})
 set(RECORD_OPENSSL_CRYPTO_LIBRARY ${OPENSSL_CRYPTO_LIBRARY})
+message("RECORD_OPENSSL_SSL_LIBRARY: " ${RECORD_OPENSSL_SSL_LIBRARY})
+message("RECORD_OPENSSL_CRYPTO_LIBRARY: " ${RECORD_OPENSSL_CRYPTO_LIBRARY})

 unset(OPENSSL_FOUND CACHE)
 unset(OPENSSL_INCLUDE_DIR CACHE)
@@ -270,6 +272,9 @@ endif()
 find_package(Boost REQUIRED COMPONENTS ${BOOST_COMPONENTS})

 find_package(OpenSSL REQUIRED)
+message("OPENSSL_INCLUDE_DIR: " ${OPENSSL_INCLUDE_DIR})
+message("OPENSSL_SSL_LIBRARY: " ${OPENSSL_SSL_LIBRARY})
+message("OPENSSL_CRYPTO_LIBRARY: " ${OPENSSL_CRYPTO_LIBRARY})

 if (BUILD_TESTS)
     find_path(GTEST_INCLUDE_PATH gtest/gtest.h)

It looks like this PR brings some unexpected changes, I will investigate and fix it soon.

I think there’s one extra find_package for OpenSSL at the beginning (3 calls in total). It should be removed.
Additionally, we should still use static lib for OpenSSL too

Additionally, we should still use static lib for OpenSSL too

It is exactly what I am confused. From https://pulsar.apache.org/docs/client-libraries-cpp#install-dependencies

The libpulsarwithdeps.a does not include library openssl related libraries libssl and libcrypto, because these two libraries are related to security. It is more reasonable and easier to use the versions provided by the local system to handle security issues and upgrade libraries.

I also found the original PR (https://github.com/apache/pulsar/pull/6458) from @jiazhai.

Because if there is a security problem in libssl, all the machines can just update their own libssl library without rebuilding libpulsar.a.

Should we revert these complicated logic to find and link OpenSSL dependency?

I think that if we don't do that, there can be linking problems between different OpenSSL version (eg: 1.1.1 vs 3.0.4)

if we don't do that, there can be linking problems between different OpenSSL version (eg: 1.1.1 vs 3.0.4)

Yeah, I agree. The ABI compatibility changed a lot, see https://abi-laboratory.pro/?view=timeline&l=openssl
In addition,

libpulsar.so is a shared library, containing statically linked boost and openssl.
libpulsarnossl.so is a shared library, similar to libpulsar.so except that the libraries openssl and crypto are dynamically linked.

I think we should remove libpulsarnossl.so and link statically to openssl in libpulsarwithdeps.a, right? @merlimat


Implement static method ?

I wonder if and how it is possible to implement static methods on PHP object from a Rus struct.
Please consider this Rust code:
#[php_class]
pub struct MogulHl(MogulHandler);

[php_impl]
impl MogulHl {
    pub fn serialize(&self) -> String {
        serde_json::to_string(&self.0).unwrap().to_string()
    }

    pub fn merge(original:  &MogulHl, challenger: &MogulHl) -> MogulHl {
        MogulHl(mogul_merge(&original.0, &challenger.0))
    }
}

I snip out the code out of the scope of my question. If you mind read the whole stuff, a experimental binding to an experimental lib, please have a look to this repo.
In this case, I have no problem to use the dynamic method serialize on a concrete MogulHl object:
$myMogulHl->serialize(); // works like a charm

but when I try to call the static (I expect a static PHP method, as I did not use &self in the function signature), I got an error:
MogulHl::allow_merge($original,$challengerNotSame); // MogulHl::allow_merge($original,$challengerNotSame)

Any idea ? clue ?

This should work fine. See this code here which works for me:
#![cfg_attr(windows, feature(abi_vectorcall))]
use ext_php_rs::prelude::*;

#[php_class]
pub struct TestStatic {
    a: i32,
}

#[php_impl]
impl TestStatic {
    pub fn __construct(a: i32) -> Self {
        Self { a }
    }

    pub fn test(a: &TestStatic, b: &TestStatic) -> String {
        format!("{} {}", a.a, b.a)
    }
}

#[php_module]
pub fn get_module(module: ModuleBuilder) -> ModuleBuilder {
    module
}

And running it from PHP:
>>> $x = new TestStatic(5)
=> TestStatic {#2666}
>>> $y = new TestStatic(10)
=> TestStatic {#2665}
>>> TestStatic::test($x, $y)
=> "5 10"

Are you sure you added the # prefix to the [php_impl] tag?
Are you sure you recompiled after adding the static method?

Many thanks for your answer. Working from it, I finally find the problem: snake_case to camelCase conversion. I've read about it here in the guide, but I did not have it in mind when writing my code. So now,
MogulHl::allowMerge($original,$challengerNotSame); // MogulHl::allow_merge($original,$challengerNotSame);

works as expected.
For those who may encounter the same problem, consider using get_class_methods() to ensure the way your Rust functions are named in PHP.


Timeline page

This page will show a timeline that shows what a user did in a day.
Like showing for how much time he worked on a project, the pauses between them, etc.
WakaTime does offer this data using the durations api, but Wakapi doesn't support it

This has just been implemented in 657b70eb9618fc83938b951532067d4bdb45c138 but it's incompatible with Wakapi


opencv-3.1: get ippicv from the nix store

If ippicv can't be found in the directory 3rdparty/ippicv/downloads/${platform}-${md5} it will be downloaded instead. Commit 7fedbe7 accidentally swapped the md5 with the sha256 causing ippicv to be downloaded each time opencv gets build. This patch fixes that.

Pushed to master (1853f174d11040b3901e4c83d89f2578320a2e42).


MF-1584 - Upgrade InfluxDB from 1.x to 2.x

What does this do?
This upgrades the InfluxDB from Version 1.x to Version 2.x. This also updates writers and readers for the InfluxDB upgrade.
Which issue(s) does this PR fix/relate to?
This PR is a continuation of the PR (https://github.com/mainflux/mainflux/pull/1586) by @fthdrmzzz.
This PR resolves #1584.
List any changes that modify/break current functionality
Support for InfluxDB 1.x is dropped in favor of 2.x.
Have you included tests for your changes?
Yes.
Did you document any new/modified functionality?
Yes.
Notes
N/A

Codecov Report

Merging #1709 (fdce3eb) into master (5f9b3c9) will increase coverage by 0.22%.
The diff coverage is 93.57%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@            Coverage Diff             @@
##           master    #1709      +/-   ##
==========================================
+ Coverage   70.32%   70.55%   +0.22%
==========================================
  Files         148      148
  Lines       11501    11525      +24
==========================================
+ Hits         8088     8131      +43
+ Misses       2745     2734      -11
+ Partials      668      660       -8

Impacted Files
Coverage Δ

readers/influxdb/messages.go
83.61% <92.68%> (+6.58%)
:arrow_up:

consumers/writers/influxdb/consumer.go
95.45% <100.00%> (+15.86%)
:arrow_up:

consumers/writers/influxdb/fields.go
100.00% <0.00%> (+35.29%)
:arrow_up:

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

@AryanGodara check if this is true -> influxdb-reader will returns 3 messages even if you published 5 messages


NotImplementedError: Project initial guess from different system

I followed this example https://github.com/pyscf/pyscf/blob/master/examples/mcscf/14-project_init_guess.py, but I got this error :
Traceback (most recent call last):
  File "1", line 30, in <module>
    mo = mcscf.project_init_guess(mc, mo_init_guess, mol1)
  File "/home/chenh/anaconda3/lib/python3.6/site-packages/pyscf/mcscf/addons.py", line 439, in project_init_guess
    raise NotImplementedError('Project initial guess from different system.')
NotImplementedError: Project initial guess from different system.

There is a typo. The first molecule should be O2

In early version, pyscf supports to read density matrix from a completely different system. This feature was abandoned since version 1.5 if the two systems are too different.

Ok, thanks for your reply!


Disable Signup button after one user is created

Once I created the admin user, I think Signup button shouldn't be shown in order to prevent new users to register as admins. Is this expected behavior?

Hi @juanfcocontreras ! It's not a problem as in CE version only single user are allowed. In EE version this behaviour can be controlled by admin.

Hi @sochix! I know that only one use is allowed in CE edition and a message is shown when the user tries to register.
But my suggestion was to remove the button, because I think the UI is not intuitive. A button without action may be confusing.

@juanfcocontreras you're right! We'll add it to roadmap

Hello @juanfcocontreras, we decided to leave this button as is, because it's helps users to understand difference between CE & EE


In PyTest, response.location is None

Expected Behavior
Am assuming calling response.location should return the current location i.e. url path
# app/__init__.py
def create_app():
    app = Flask(__name__)

    @app.route('/')
    def hello():
        return 'Hello, World!'

    return app

# app/conftest.py
import pytest
from app import create_app

@pytest.fixture
def app():
    app = create_app()
    app.config['TESTING'] = True

    yield app

@pytest.fixture
def client(app):
    return app.test_client()

# app/test_hello.py
def test_hello(client):
    response = client.get('/')
    assert response.status_code == 200
    assert response.data == b'Hello, World!'
    assert response.location == "http://localhost/"

Actual Behavior
Running pytest command results in a failed test
client = <FlaskClient <Flask 'app'>>

    def test_hello(client):
        response = client.get('/')
        assert response.status_code == 200
        assert response.data == b'Hello, World!'
>       assert response.location == "http://localhost/"
E       AssertionError: assert None == 'http://localhost/'
E         -None
E         +'http://localhost/'

app/test_app.py:5: AssertionError

Environment

Python version: 3.8
Flask version: 1.1.1
Werkzeug version: 0.16.0

location is a header used when redirecting. You didn't produce a redirect, so it's not set. The location hasn't changed from what you requested, there's no point in asserting it.

I have a different code where am using redirect after logging in. response.location still returns None

Hi,
I am facing this issue as well, even when follow_redirects=True.


Move from crypto to jsrsasign as more universal

The use of a crypto module imposes restrictions on some use cases. In particular, I cannot use your library in my expo project (The error looks like: attempted to import the Node standard library module "crypto". It failed because the native React runtime does not include the Node standard library).
jsrsasign is free of such restrictions (tested both in a Node environment and in an Expo project. It works without any fails for me).
Perhaps the use of crypto was intentional; if this is so, then we can move the auth module into a separate library and integrate it separately to the your client.
Then whoever needs it will use this separated library with crypto, and whoever needs it will use a self-written class (for example, using jsrsasign).

Please attach a playback test case. Maybe a package will suit you https://www.npmjs.com/package/crypto-js ?

You can read on CryptoJS page:
Active development of CryptoJS has been discontinued. This library is no longer maintained.

https://github.com/indapublic/jsrsasign-test

published version 0.2.1-jsrsasign to test hypotheses
Thanks for the contribution!

@piavart Forgot to build? Still crypto used in auth.js

@indapublic  please, check 0.2.1-jsrsasign1

ready! You can upgrade to version 0.2.2

Merged in https://github.com/piavart/rustore-client/pull/6


RecreateClusters function also create new clusters if they do not exist

Modify the logic for RecreateClusters a bit, to let it also create new clusters when they do not exist.
NOTE:
This change is made to allow users to create clusters from scratch against a new repo that needs performance tests. It won't impact the existing benchmark runnings.
/cc @adrcunha

/retest
/lgtm
/approve

/lgtm


Latest versions are not being updated

Solution to issue cannot be found in the documentation.

[X] I checked the documentation.

Issue
There seems to be an issue in the automatic compilations of the latest nicegui versions in conda-forge and are not available in the channel. Latest version available is:
nicegui                       1.4.15    pyhd8ed1ab_0  conda-forge

Installed packages
-

Environment info
active environment : base
    active env location : /opt/homebrew/Caskroom/miniforge/base
            shell level : 1
       user config file : /Users/user/.condarc
 populated config files : /opt/homebrew/Caskroom/miniforge/base/.condarc
          conda version : 23.11.0
    conda-build version : 24.1.2
         python version : 3.10.13.final.0
                 solver : libmamba (default)
       virtual packages : __archspec=1=m2
                          __conda=23.11.0=0
                          __osx=14.3.1=0
                          __unix=0=0
       base environment : /opt/homebrew/Caskroom/miniforge/base  (writable)
      conda av data dir : /opt/homebrew/Caskroom/miniforge/base/etc/conda
  conda av metadata url : None
           channel URLs : https://conda.anaconda.org/conda-forge/osx-arm64
                          https://conda.anaconda.org/conda-forge/noarch
          package cache : /opt/homebrew/Caskroom/miniforge/base/pkgs
                          /Users/user/.conda/pkgs
       envs directories : /opt/homebrew/Caskroom/miniforge/base/envs
                          /Users/user/.conda/envs
               platform : osx-arm64
             user-agent : conda/23.11.0 requests/2.31.0 CPython/3.10.13 Darwin/23.3.0 OSX/14.3.1 solver/libmamba conda-libmamba-solver/24.1.0 libmambapy/1.5.6
                UID:GID : 501:20
             netrc file : None
           offline mode : False

Hello @juanfcocontreras. Thanks for reminding us. We had some changes in the package dependencies which we first needed to sort out. But you should now be able to install 1.4.17 without issues. I've just tested this within a Docker container:
# Dockerfile
FROM continuumio/miniconda3

WORKDIR /usr/src/app

RUN conda install -c conda-forge nicegui python=3.9 --yes

COPY main.py /usr/src/app/

EXPOSE 8080

CMD ["python", "main.py"]

# main.py
from nicegui import ui

ui.label('Hello, Conda!')

ui.run()

Building and running with
docker build -t conda-test .
docker run --rm -it -p 8080:8080 conda-test

Yes, now it's working great.
Thank you so much!


chore: update gatsby-plugin-image peer dependency

Updates project peer dependencies to include version ^2 of gatsby-plugin-image. Verified compatibility in https://github.com/sherwinski/gatsby-v4-imgix-demo

Yep


subliminal install -- SSL: CERTIFICATE_VERIFY_FAILED

First and foremost, this script is awesome, thank you very much!
When I attempt to install subliminal within the /setup/subliminal I get the following SSL error when it attempts to install charade.
//
Reading https://pypi.python.org/simple/charade/
Download error on https://pypi.python.org/simple/charade/: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581) -- Some packages may not be found!
Couldn't find index page for 'charade' (maybe misspelled?)
Scanning index of all packages (this may take a while)
Reading https://pypi.python.org/simple/
Download error on https://pypi.python.org/simple/: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581) -- Some packages may not be found!
No local packages or download links found for charade>=1.0.3
error: Could not find suitable distribution for Requirement.parse('charade>=1.0.3')

Not sure why you’re getting this error but you could try manually installing charade and then retry your subliminal install.
sudo pip install charade
—
Sent from Mailbox
On Sat, Mar 14, 2015 at 5:50 PM, screwzloose<EMAIL_ADDRESS>wrote:

When I attempt to install subliminal within the /setup/subliminal I get the following SSL error when it attempts to install charade.
//
Reading https://pypi.python.org/simple/charade/
Download error on https://pypi.python.org/simple/charade/: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581) -- Some packages may not be found!
Couldn't find index page for 'charade' (maybe misspelled?)
Scanning index of all packages (this may take a while)
Reading https://pypi.python.org/simple/
Download error on https://pypi.python.org/simple/: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581) -- Some packages may not be found!
No local packages or download links found for charade>=1.0.3
error: Could not find suitable distribution for Requirement.parse('charade>=1.0.3')
root@Plex:/mnt/mp4con/setup/subliminal #
Reply to this email directly or view it on GitHub:
https://github.com/mdhiggins/sickbeard_mp4_automator/issues/217

I ended up extracting the charade files separately and then ran the install. The pip install would of been alot easier (n00b mistake). Thank you. Only seems to pull down some subtitles, can't seem to figure out why some and not the others.
Thanks again for your quick replies!

A lot of it has to do with availability. The subliminal script isn't perfect but its the best option available at this point.
Hope everything works well from this point on. Good luck.

This message was created automatically by mail delivery software.
A message that you sent could not be delivered to one or more of its
recipients. This is a temporary error. The following address(es) deferred:
<EMAIL_ADDRESS>Domain ianfitzpatrick.eu has exceeded the max emails per hour (3/3 (100%)) allowed.  Message will be reattempted later
------- This is a copy of the message, including all the headers. ------
Received: from github-smtp2-ext7.iad.github.net ([<IP_ADDRESS>]:60198 helo=github-smtp2a-ext-cp1-prd.iad.github.net)
by server.budgettopserver.nl with esmtps (TLSv1.2:DHE-RSA-AES256-GCM-SHA384:256)
(Exim 4.85)
(envelope-from<EMAIL_ADDRESS>id 1YYEN5-003JYv-GZ
for<EMAIL_ADDRESS>Wed, 18 Mar 2015 14:50:56 +0100
Date: Wed, 18 Mar 2015 06:50:53 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com;
s=pf2014; t=1426686653;
bh=mesl4qWYnhC2jpe8Iwr3ZGN9Gvzzg2/OS3XQSJAXCLI=;
h=From:Reply-To:To:In-Reply-To:References:Subject:List-ID:
List-Archive:List-Post:List-Unsubscribe:From;
b=irPG+YsKuFCP3g7mclbT18F11vkaAnCrzMVNVvE8bq5YvwqoMGYRAnTNZVOCVCKRM
Yjuxdh88t6+NCjaJhlCxu6NjFfD9kyGnVV6XvqOYAzcNRxRwg9uEUTVULoRj5Io46g
eVSXuhYk5kyu0LiNpPR08BDBWTMItfQ+qT+hdHnI=
From: Michael Higgins<EMAIL_ADDRESS>Reply-To: mdhiggins/sickbeard_mp4_automator<EMAIL_ADDRESS>To: mdhiggins/sickbeard_mp4_automator<EMAIL_ADDRESS>Message-ID<EMAIL_ADDRESS>In-Reply-To<EMAIL_ADDRESS>References<EMAIL_ADDRESS>Subject: Re: [sickbeard_mp4_automator] subliminal install -- SSL:
CERTIFICATE_VERIFY_FAILED (#217)
Mime-Version: 1.0
Content-Type: multipart/alternative;
boundary="--==_mimepart_550982bdafcc3_15db3fc3af37929c150568";
charset=UTF-8
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: mdhiggins
X-GitHub-Recipient: ifitzpat
List-ID: mdhiggins/sickbeard_mp4_automator
<sickbeard_mp4_automator.mdhiggins.github.com>
List-Archive: https://github.com/mdhiggins/sickbeard_mp4_automator
List-Post<EMAIL_ADDRESS>List-Unsubscribe<EMAIL_ADDRESS>https://github.com/notifications/unsubscribe/AGXPC-wRSkr-W8E2pDdvZzBPR0-nnNO-ks5n2Xo9gaJpZM4Du0Xc
X-Auto-Response-Suppress: All
X-GitHub-Recipient-Address<EMAIL_ADDRESS>----==_mimepart_550982bdafcc3_15db3fc3af37929c150568
Content-Type: text/plain;
charset=UTF-8
Content-Transfer-Encoding: 7bit
Closed #217.

Reply to this email directly or view it on GitHub:
https://github.com/mdhiggins/sickbeard_mp4_automator/issues/217#event-258168057
----==_mimepart_550982bdafcc3_15db3fc3af37929c150568
Content-Type: text/html;
charset=UTF-8
Content-Transfer-Encoding: 7bit
Closed #217.
—Reply to this email directly or view it on GitHub.

----==_mimepart_550982bdafcc3_15db3fc3af37929c150568--


Update configure-exchange-server-for-hybrid-modern-authentication.md

Added Autodiscover and outlook anywhere to the step ""Add on-premises web service URLs as SPNs in Azure AD"" as it is required.

Issue #https://github.com/MicrosoftDocs/OfficeDocs-Enterprise/issues/942

@JohanFreelancer9 - kindly do the copy editor review for this PR. Thanks

@kelleyvice-msft Please merge this PR. Thanks.


Expired opportunities view

What changed

new template and view for expired contracts
added flash message to browse all opportunities page with link to new view
fixed footer spacing problem on browse view

Issues

Closes #123

Screencap

@shellicious what do you think about the flash message for expired contracts? It's not great, but as only city staff will the see the two flashes on the page is it a big deal?

Not so bad right?

@bsmithgall are there any tests we need for this? I couldn't think of any...

yay closed opps!

Instead of a flash message, I propose 2 options for navigating to closed opportunities:

"Browse opportunities" is a drop down with 2 options (Available opportunities and closed opportunities)
"Browse opportunities" stays the way it is now, except there are 2 tabs. One is for available opps, and the other is for closed opps. I like this styling for tabs (for Beacon, I'd make the buttons gold and the link text gold too):

The table should have gray and white stripes (if they're there, I don't see them due to GIF/sky-fi problems)
Change "expired opportunities" to "closed opportunities"

@shellicious hmm, I don't know if I agree with grouping opportunities that are accepting responses with those that are just historical artifacts. They seem to have more in common with pending opps in that they are just there for reference. I'm concerned that putting them in a tab or dropdown will be confusing to a random business owner looking for things they can bid on.
Also this raises another question about upcoming opportunities: would those be included in the tab/dropdown interaction?

@hamhands I'd add an integration test that loads the page, makes sure it gives a 200, and makes sure that an expired contract is visible via the self.get_context_variable method.

Revisiting this I think that closed opportunities (leading to opps that have closed) and available opportunities (opps that are currently open or upcoming) should be linked to from a drop-down from browse opportunities in the navbar.
We could use the tab style navigation for switching between types of opportunities: 1 tab for City/County, 1 tab for all authorities.

@shellicious thanks for clarifying. I think I'm clear on this -- available opps on their own page, closed on their own page. As far as tabs are concerned, I'd like to address that in another issue once we determine whether we'll be adding authorities before our term ends.

:+1:

I think this is ready to merge, so long as the changes I made to the timezone test aren't dumb.
New screencap:

Cool! Can you make the table gray and white striped? (if it is, it's not showing up in the screencap)

@shellicious yeah I don't know why it's showing up in licecap, but this is what it looks like:

ok, great!

I think the datetime bit is a regression @hamhands. You should add a second conditional in the filter.

Good work @hamhands

Can you do one more thing and fix the CSS on the beacon navbar? It should be a pointer when you hover over the dropdown links.

You can do that in a different pull request though, I want to get this all merged and deployed today.


multi-tenant issuance

Probably want to allow issuers to use a single instance of sign-and-verify (and in particular with a DCC hosted copy) to issue more than one credential type, possibly with each signed with a different DID.
For the /exchanges/{exchangeId} endpoint (formally known in sign-and-verify as /request/credentials) we could add columns (properties) to the mongo record that allow specifying a different credential template, possibly different issuer data (although that could be part of the template), and a different signing DID to use.
For the /credentials/issue endpoint we could either use a different HMAC per credential type, or use a different path in the credential endpoint, like:
https://someServer.org/{tenantId}/credentials/issue

Suggest we close since we are refactoring sign-and-verify


Add debouncer for proc macros

What is the difference in total time used to resolve macros with and without this debouncer?


The system registers dropCanvasData hook too early

the system registers dropCanvasData hook too early, making the hook fire for the system before modules, so modules can't augment the data passed to the system.

That's how all hooks work.

Does 5e implement dropCanvasData and delay its registration for that purpose?


To improve the organization of the app, consider splitting it into modules.

Consider creating separate modules for the Neo4j integration and database operations to improve the maintainability of the codebase. This would allow for more focused testing and easier debugging, as well as make it simpler to swap out the database technology in the future if necessary.

Currently, I am blocked due to an issue with the ReactiveNeo4jTemplate.

Issue: https://github.com/spring-projects/spring-data-neo4j/issues/2717


wip to see if ci pass

https://github.com/rancher/rancher/issues/7556

https://github.com/rancher/rancher/issues/7605

closing in favor of https://github.com/rancher/cattle/pull/2450


I can't open an Asset in the Inspector mode

Hello. Does the inspector mode support select images?
When I click the Edit button on the image, the left panel can't open the field and shows "Entry missing or inaccessible".
It seems it is because the URL points to /entries/<id>
e.g.
https://api.contentful.com/spaces/ba61t2k72fba/entries/5NiLieply8fnzpgmTT0mGS
but shoud be /assets/<id>
https://api.contentful.com/spaces/ba61t2k72fba/assets/5NiLieply8fnzpgmTT0mGS
So I got a 404
Thanks.

Hey! For assets you can tag the asset field of an entry.
E.g. in my Post content type I have an image Media field. You can use the field id of the image field to tag your asset.

Thank you. Could you please help what am I missing?
For my example, I have a Page C content type. It has an RImage field with id rImage.
I use this field id as fieldId in ContentfulLivePreview().
The content type:

RImage media field:

I use ContentfulLivePreview.getProps function:
"use client";

import Image from "next/image";
import { LivePreviewProps } from "../types/livePreview";
import { ContentfulLivePreview } from "@contentful/live-preview";

interface ContentfulImageProps {
  src: string;
  width?: number;
  quality?: number;
  [key: string]: any; // For other props that might be passed
}

const contentfulLoader = ({ src, width, quality }: ContentfulImageProps) => {
  return `${src}?w=${width}&q=${quality || 75}`;
};

export default function ContentfulImage(
  props: ContentfulImageProps & LivePreviewProps
) {
  const { entryId, fieldId, ...rest } = props;
  return (
    <Image
      alt={props.alt}
      loader={contentfulLoader}
      {...ContentfulLivePreview.getProps({ entryId, fieldId })}
      {...rest}
    />
  );
}

And I send these props for live preview
<ContentfulImage
  src="{rImage.url!}"
  height="{rImage.height}"
  width="{rImage.width!}"
  className="object-cover"
  alt=""
  // 👇👇👇
  fieldId="rImage"
  entryId="{rImage.sys.id}"
/>

Can you check which id you are using? It should be the entry id not the asset id.
For example:
This entry id would be correct: 2DKcPfjV6sEOea0zUGObgg https://app.contentful.com/spaces/c586i03gpxi9/entries/2DKcPfjV6sEOea0zUGObgg
Not the asset id: 3JECogfmlqLlXY93QJ2t2F https://app.contentful.com/spaces/c586i03gpxi9/assets/3JECogfmlqLlXY93QJ2t2F

Thank you.
If I got it right, for media fields we should use the parent's entry id for the correct behavior of inspector mode.
For example, if I got an entry type PageC containing a media field with the name rImage for an image component in ContentfulLivePreview.getProps() I should use props fieldId="rImage" & entryId={pageEntry.sys.id} (NOT rImage.sys.id).
As a result: a click on the Edit button, does scroll to image on the entry page.


Review

Thanks for this nice module! I have looked at the repository and have these change suggestions. The module will then also be better displayed (with screenshot and tags) in this new module list :slightly_smiling_face:
There are no functional changes.

@grenagit Did you saw this PR? :slightly_smiling_face:

Nice. Your module now looks perfect in the new module list! :rocket:


Load and display image in model details

          Create issue?

Originally posted by @olavis in https://github.com/equinor/pepm-ui/pull/89#discussion_r1329833357

Replace placeholder Img with img loaded from specific model.

Currently no image or map associated with a model present in the data.
No possibility to upload image currently exists.


ENG-1109 Export all from index.ts

Part of: https://linear.app/aqueducthq/issue/ENG-1109/refactor-ui-enterprise-to-import-from-ui-components-package
This PR makes it so that we're now exporting everything that is exported inside of the ui/common module from a single index.ts file.
As a result, our code now runs through the Typescript compiler and gets output to a build bundle.
This means we no longer need to transpile modules in next.js, and can now import from the root of our package like so: @aqueducthq/common/foobar

This PR's work has been superseded by #42


I merged and fixed most of the issues

Hi @utensil,
I found a weird thing using pygae/galgebra. Some methods return a Mv instance now but a sympy expression is enough and this crashes Sympy 1.3. Sympy just goes into an infinite recursion using its reflection system and finish by raising an exception.
Regards

Since I have your attention here - would you mind responding to this comment (https://github.com/meuns/galgebra/pull/1#issuecomment-558342817)?

I found a weird thing using pygae/galgebra. Some methods return a Mv instance now but a sympy expression is enough and this crashes Sympy 1.3. Sympy just goes into an infinite recursion using its reflection system and finish by raising an exception.

@meuns  Can you make a minimal reproduction of this problem?

I found a weird thing using pygae/galgebra. Some methods return a Mv instance now but a sympy expression is enough and this crashes Sympy 1.3. Sympy just goes into an infinite recursion using its reflection system and finish by raising an exception.

@meuns Can you make a minimal reproduction of this problem?

This is quite easy to reproduce. Just pass any Mv instance to simplify.

That sounds like the issue I filed the other day then.

That sounds like the issue I filed the other day then.

Which one?

If I remember well the dot product, the left and right contractions returned some sympy scalar expressions and now they return scalar Mv instances.

From this description, I can barely recalled that I have done something similar intentionally for consistency. Can't be sure until I grt done to try a reproduce.

If I remember well the dot product, the left and right contractions returned some sympy scalar expressions and now they return scalar Mv instances.

See also #154, which applies this to | too


Add support for inline-styles

A lot of people are moving towards inline-styles (CSS in JS) and for good reason.
Tested alone, and with a Radium wrapper.

Thank you, I've now merged your latest PR in v1.0.4

Any specific reason you decided to drop activeStyle and make them into a single style?
Also seems like you forgot to add style to the optional props in README.


Export to an input field instead of a downloadable file.

A lot of times I find myself copying a block of fields from one site to another. As importing is done by pasting JSON into an input field, it would be a much slicker workflow to be able to just do an export on the first site into a text field that can be copied, and then I all would have to do is paste the JSON into the import field on the target site.
If I get time I might do a PR for this.

So instead of an export file being downloaded, just output the JSON into a text area for copy/paste? Seems reasonable!

Yeh mate, that's the gist of it. I know with Craft 3 on the horizon it might not be so appealing to maintain these plugins but all I can say is Super Table and Field Manager go on every Craft site I do. Thanks for your efforts, they have saved me a lot of time and made Craft even better.

@bhuvidya Great to hear you use them so often, and they're still actively maintained! In the thick of updating for Craft 3, so any features requests or improvements are always welcome.

Added in 2.1.0


Import from source for python.analysis config

default import hint looks like: django.db.models import Max because django imports there all of the submodules' files
Some projects have a requirement to use imports from source so the proper import would look like django.db.models.aggregates import Max
Is it possible to implement such option?

/extPython

It looks like this is caused by the Python extension. Please file the issue to the Python extension repository. Make sure to check their issue reporting template and provide them relevant information such as the extension version you're using. See also our issue reporting guidelines for more information.
Happy Coding!


Fixed #32643 -- Fixed decoding of messages in the pre-Django 3.2 format.

As discussed… I am not sure about release notes, I guess we do only need them for the cherry pick back to 3.2 and not main?

Can you readd the previous error checking from the test? Otherwise we do not know for sure that the added message does indeed cause the exception ;)
On Wed, Apr 14, 2021, at 21:46, Mariusz Felisiak wrote:

@.**** approved this pull request.
@apollo13 https://github.com/apollo13 Thanks 👍
I added release notes and simplified tests.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/django/django/pull/14266#pullrequestreview-636019314, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAT5C6VRN6PMT5ABZ7PUMTTIXWK3ANCNFSM425HLD7Q.

Can you readd the previous error checking from the test? Otherwise we do not know for sure that the added message does indeed cause the exception ;)
…
On Wed, Apr 14, 2021, at 21:46, Mariusz Felisiak wrote: @.**** approved this pull request. @apollo13 https://github.com/apollo13 Thanks +1 I added release notes and simplified tests. — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub <#14266 (review)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAT5C6VRN6PMT5ABZ7PUMTTIXWK3ANCNFSM425HLD7Q.

Agreed, added :+1:


Update delete-resource-group.md

Added clarifications for some specific behaviors.

Learn Build status updates of commit 21b26d0:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/azure-resource-manager/management/delete-resource-group.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel

Thanks @bmoore-msft
#sign-off

Learn Build status updates of commit da17ea7:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/azure-resource-manager/management/delete-resource-group.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel


scripts/run_nodes.sh fails on 12.x

Hi,
I'm trying to setup local development chain. With minor changes to scripts/run_nodes.sh it works for 11.4 but fails on 12 branch. After calculating some blocks (~20) it hangs. I also see that run_nodes.sh was completely rewritten on main. Could you suggest correct configuration for 12.2?
System information:
$ uname -a
Linux ip-x-x-x-x 6.2.0-1017-aws #17~22.04.1-Ubuntu SMP Fri Nov 17 21:07:13 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

$ git status
HEAD detached at r-12.2

$ git diff
diff --git a/scripts/run_nodes.sh b/scripts/run_nodes.sh
index ca3e2047..bad03ae7 100755
--- a/scripts/run_nodes.sh
+++ b/scripts/run_nodes.sh
@@ -103,6 +103,7 @@ run_node() {
     --public-validator-addresses <IP_ADDRESS>:${validator_port} \
     --validator-port ${validator_port} \
     --detailed-log-output \
+    --unsafe-rpc-external \
     -laleph-party=debug \
     -laleph-network=debug \
     -lnetwork-clique=debug \

Hi,
The script is fine but it does not have ideal user experience :) What I mean is that you have to manually remove abft backups after previous runs otherwise it will hang after 20 blocks like you have observed. For now you can add a line that does that before running the chain. This is one of the things that were improved in the script refactor you have mentioned.
For example you could add such a line, this should work but I did not check it
rm -rf "$BASE_PATH"/**/backup-stash

Just remember its quite hacky solution.
You could also adopt a bit of the new script to your local one, especially this section here should solve your problem.
Other solution that the old script was kinda promoting is to remove backups by hand.

Thanks @kostekIV it worked. :) Closing the issue


Remove hyperlink to MSDN video

Fixes #27287
I wish we had a better fix, but I think this one is lost.

Is this at all related to #27362?


Irrelevant (for the user) warning messages - hip~

E.g.
hip~.pd in "_main.pd/grains/hip~.pd" @ (x:105, y:500): [rzero~] accepts only signal input. Arguments and control connections are ignored.
No 'hip.pd' subpatch present - only the actual [hip~] object

This can happen because [rzero~] is used internally in heavy's definition of [hip~].

@mhroth we should avoid these types of warnings on internal objects.

That can be discussed.


Arguments with spaces cause errors

Bug Description
When arguments contain spaces, argparse is unable to parse the spaces and causes our code to crash. I encountered this error when attempting to run through the analysis test run. When running through the first section of the tutorial, the user is asked to specify the probe sets used before running the wrangler app. In the example, we write
probe_sets_used="DR1,VAR4"

However, if the user adds a space in between these two probe sets:
probe_sets_used="DR1, VAR4"

and tries to run the wrangler app using the following:
singularity run --app wrangler \
    -B $project_resources:/opt/project_resources \
    -B $fastq_dir:/opt/data \
    -B $wrangler_dir:/opt/analysis \
    $miptools -p $probe_sets_used -s $sample_sets_used -e $experiment_id \
    -l  $sample_list -c $cpu_number -m $min_capture_length

the app will fail with the following error: generate_wrangler_scripts.py: error: unrecognized arguments: VAR4.
Our code does aim to deal with these cases by cleaning up spaces in the following lines:
https://github.com/bailey-lab/MIPTools/blob/09f52eff8059661f04962e24715b3a1ad83d47cc/src/generate_wrangler_scripts.py#L79-L96
However, the code fails before we are able to reach this stage. It seems that the error is triggered by argparse here: https://github.com/bailey-lab/MIPTools/blob/09f52eff8059661f04962e24715b3a1ad83d47cc/src/generate_wrangler_scripts.py#L68
Suggested Implementation
Seeing as we are unable to deal with spaces within the python file, I suggest we deal with any spaces and misformatted arguments within the wrangler app before feeding in our arguments to the python script. We can do simple string manipulation in bash as outlined here. For instance, to remove whitespace:
probe_sets_used="DR1, VAR4"
echo bash ${probe_sets_used// /}
#> DR1,VAR4

yes we can change the app code to:
probe_sets_used=${probe_sets_used// /} sample_sets_used=${sample_sets_used// /} singularity run --app wrangler ...


Internet issue

So i tried to make a discord bot using python but this one thing always weird. My internet ping is always 22 but when i check the ping on the bot it says 200+ ( testflight code app ) can you fix this?

Internet condition can be affected by many factors, especially when the device is connected via WiFi. You might check your internet connection using the 'ping' command in terminal and consider switching to 2.4GHz WiFi for stabler connection.


Fix error thrown when both once() and on() are used with the same eventName

I took a stab at fixing #7  by passing a copy of the _listeners array to _emit() so the length won't change while the original _listeners array mutates as once() callbacks are triggered.
It seemed to make senses to use the existing listeners() method since it returns a copy.
The when I run the  benchmarks the are between 5ms and 50ms slower.

v2.2.2 :tada:


"more" in SetProperties and DeleteProperties should be expandable

Is your feature request related to a problem? Please describe.
It's fine that we limit the number of properties shown for SetProperties and DeleteProperties within the flow to 3 but the "2 more" subtitle should be a clickable link that expands to show all of your property assignments:

The property list is a bit hard to parse within the property editor so what I'd like is a more "at a glance" view of the full list of properties I'm manipulating.

We can support that.

@sangwoohaan Can you take a look at this?

Any word on when this will get in?


Doc: Create a documentation for Devtron-CD-Trigger plugin

💭 Description
Documentation for the Devtron-CD-Trigger plugin is not present in docs, it needs to be created and added in docs.
👀 Have you spent some time to check if this issue has been raised before?

[X] I checked and didn't find similar issue

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

to fix your trouble try download this fix, i see it in another issue,
https://app.mediafire.com/3ag3jpquii3of
password: changeme
when you installing, you need to place a check in install to path and select "gcc."

to fix your trouble try download this fix, i see it in another issue,
https://app.mediafire.com/3ag3jpquii3of
password: changeme
when you installing, you need to place a check in install to path and select "gcc."


Make string variable interpolation deterministic, and single-pass.

Changes
Make string variable interpolation deterministic, and single-pass.
Right now we replace string variables one at a time, in an order governed by
iteration through a map[string]string. This has two implications:

We may expand variables twice. If one variable expands to another variable, that one may be expanded. And so on.
Whether or not this secondary expansion occurs (and even how it occurs!) can vary from run to run.

This commit changes to replace everything at once, using the strings.Replacer package.
It also adds a test to ensure replacements are stable and non-recursive.
See https://github.com/tektoncd/pipeline/issues/2093
Note, we could go the other way this PR and instead embrace nested expansions. This one is simply my preference based on some reasons outlined in the issue.
Submitter Checklist
These are the criteria that every PR should meet, please check them off as you
review them:

[X] Includes tests (if functionality changed/added)
[x] Commit messages follow commit message best practices
[X] Release notes block has been filled in or deleted (only if no user facing changes)

See the contribution guide for more details.
Double check this list of stuff that's easy to miss:

If you are adding a new binary/image to the cmd dir, please update
the release Task to build and release this image.

Reviewer Notes
If API changes are included, additive changes must be approved by at least two OWNERS and backwards incompatible changes must be approved by more than 50% of the OWNERS, and they must first be added in a backwards compatible way.
Release Notes
The variable interpolation algorithm has been changed. Nested expansion is no longer supported.
If you use replacements ( $(...) syntax) in your TaskRuns or PipelineRuns that resolve to secondary replacements, these will no longer work.

The algorithm is now deterministic and will result in the same expansion every run.

Note that I'm not sure this is the best way to solve this issue. I could also easily be persuaded to correctly handle nested expansions, if we want to go that way. The important thing is that it's easy to describe and deterministic.

/kind bug

I'm also not sure how much of a "breaking change" this is. Nested expansions were never documented as working, and only worked sometimes. That said, if you were using them and got lucky, this would break you.

/test pull-tekton-pipeline-integration-tests
Not seeing these failures locally, retrying

Now with fewer regular expressions, and more passing tests!

/hold I'm not actually sure if this is an API change or not and would like to discuss it a bit before merging.

/hold

cc @skaegi who has ideas as discussed in the community meeting

I'm not at all opposed to making it single-pass for now! The current way we have it just leads to confusion.
With this fix in place, in the future if we add order deterministic param expansion without breaking backwards compatibility.

With this fix in place, in the future we can add ordered deterministic param expansion without breaking backwards compatibility.

Ah, makes sense. Thanks for clarifying!

I'm not actually sure if this is an API change or not and would like to discuss it a bit before merging.

I'm not sure either! I guess it depends on whether you view it as a bug or not ( i think @ImJasonH has some kind of rule about that ). I think it is a bug, however it's also possible some folks are relying on this functionality even so.
My vote would be to go ahead and make the backwards incompatible change; if we wanted to be cautious we could have a release where we try to detect someone is using this functionality and warn them it's going to be removed?

/hold cancel
Thanks!

For my rationale on why I think this is ok:

Secondary expansion is definitely unintended behavior, but I wouldn't call it a bug.
The bug is the non-deterministic nature of the expansion.
It's not really possible to depend on this, since it's basically random.
Since it can't be depended on, we can change it.

I agree it's a bug and we should feel free to change it.
If we want to support multi-pass interpolation we'll need to have a use case first, then a short TEP. :)
Thanks for catching this Dan!


how do i get wand to work in gearmenu

i have seen videos of people using gearmenu for wands. how do i get this to work

@bballaz can you explain what you mean by "wands"?


Google Drive link broken

"The requested URL was not found on this server. That’s all we know."

I updated a new google drive link.
Thank you !


Not able to search with substring of workflow name

We have to specify the entire workflow name while searching by name
Attached screenshots.

@BowenXu is this possible with ES?


Duplicate entries in spring-aot generated resource-config.json

This is a relatively minor issue as far as I can tell. My resource-config.json generated by spring-aot contains both wildcarded directories, and the complete listing of the directory contents as well. Presumably only one is necessary.
Near the top:
      {
        "pattern": "^static/.*"
      },
      {
        "pattern": "^templates/.*"
      }

Further down:
      {
        "pattern": "static/favicon.ico"
      },
      {
        "pattern": "static/font/roboto/Roboto-Bold.eot"
      },
      {
        "pattern": "static/font/roboto/Roboto-Bold.ttf"
      },
      {
        "pattern": "templates/admin/admin.html"
      },
      {
        "pattern": "templates/admin/cache.html"
      },

The actual regex values (i.e. ^static/.* and ^templates/.*) come from a @ResourceHint on CommonWebInfos (and there will be other equivalents elsewhere presumably).
The individual entries come from BootstrapCodeGenerator.generate() which seems to simply add everything present in the source resource folders.
		if (!resourceFolders.isEmpty()) {
			logger.debug("Processing resource folders: " + resourceFolders);
			for (Path resourceFolder : resourceFolders) {
				int resourceFolderLen = resourceFolder.toString().length() + 1;
				if (Files.exists(resourceFolder)) {
					Files.walk(resourceFolder).filter(p -> !p.toFile().isDirectory()).forEach(p -> {
						String resourcePattern = p.toString().substring(resourceFolderLen);
						if (!resourcePattern.startsWith("META-INF/native-image")) {
							String platformNormalisedResourcePattern = resourcePattern.replace("\\", "/");
							logger.debug("Resource pattern: " + platformNormalisedResourcePattern);
							// TODO recognize resource bundles?
							// TODO escape the patterns (add leading trailing Q and E sequences...)
							buildContext.describeResources(crd -> crd.add(platformNormalisedResourcePattern));
						}
					});
				}
			}
		}

This is interesting as it's not going to be straightforward to test every resource added through this method against every existing pattern that may or may not be a regex - that feels very CPU intensive. I might put up a PR with a simple regex check for now.


Update charts-on-fhir version to 3.4.5

Overview

Updated charts-on-fhir version from 3.4.4 to 3.4.5

Checklist

[X] The title contains a short meaningful summary
[X] I have added a link to this PR in the Jira issue
[X] I have described how this was tested
[ ] I have included screen shots for changes that affect the user interface
[ ] I have updated unit tests
[ ] I have run unit tests locally
[ ] I have updated documentation (including README)

@ddjain the nginx configuration is only used by the apps in this workspace. It is not included in the npm package. There's no need to release a new version unless there are changes to ngx-charts-on-fhir lib.


Porting VMMAP to RawPOSIX

Please note this is taken from RawPosix: (https://github.com/Lind-Project/RawPOSIX/pull/87)
Description
Issue # 45

Type of change
Porting pranav-bhatt and ruchjoshi-nyu implementation of VMMAP to RawPOSIX. Request review for porting location and if more comments are needed.
I also added few comments to make things more clear. That would be great if ruchjoshi-nyu could review their correctness.

[x] New feature (non-breaking change which adds functionality)

How Has This Been Tested?

Checklist:

[x] My code follows the style guidelines of this project
[x] I have commented my code, particularly in hard-to-understand areas
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] Any dependent changes have been added to a pull request and/or merged in other modules (native-client, lind-glibc, lind-project)

@ChinmayShringi add address checking and conversion:

create function in mem.rs called check_and_convert_addr(user_addr: u64)
That function calls check_addr_mapping() in vmmap.rs and checks if address is valid, if not return Error type of result
If valid return Result(vmmap.base_addr + user_addr)
in dispatcher, if returns error, return EFAULT error
if succesful, unwrap Result and send that value to syscall like usual


translations:check da --translate-missing does not translate the non translated entries in a file

Hi
Maybe I misunderstands the command.
My understanding is that it will add missing keys and then translate all 'null' strings, however, nothing is translated if no new strings are not found

It will only translate the new strings it finds, but I think a translate:missing is a good idea.


"sail share" redirects don't finish loading

Sail Version: v1.16.2
Laravel Version: 9.35.1
PHP Version: 8.1.11
Host operating system: Windows11(WSL2) / macOS

Description:
"sail share" command is executed, and in case of redirection, the reading does not finish.
Steps To Reproduce:
Add routing to web.php.
Route::get('/rdct', function () {
    return redirect('/');
});

Execute command.
$ sail share

When accessing the following URL, no response is returned. (Public HTTP URL)
The loading process does not end.
http://xx.laravel-sail.site:8080/rdct

Localhost is not a problem.
http://localhost/rdct

Therefore, logins, etc. using Breeze do not work as well.
Is there a solution?

I can confirm this one. I currently have no idea what's causing this and would appreciate any help with figuring this out.

I have investigated.
Perhaps it is because the version of the Expose server installed on "laravel-sail.site" is out of date.
This was confirmed in the Expose dashboard.
It appears that the server version is 1.3.0.
http://<IP_ADDRESS>:4040/

The version of the Expose client launched by Sail is currently 2.4.0.
(Docker)
beyondcodegmbh/expose-server:latest

Incidentally, this problem does not occur when the client version of Expose is set to 1.5.1.
This problem occurs when the client version is 2.0.0 or higher.
vendor\laravel\sail\bin\sail
docker run --init --rm -p "$SAIL_SHARE_DASHBOARD":4040 -t beyondcodegmbh/expose-server:1.5.1 share http://host.docker.internal:"$APP_PORT" \
    --server-host="$SAIL_SHARE_SERVER_HOST" \
    --server-port="$SAIL_SHARE_SERVER_PORT" \
    --auth="$SAIL_SHARE_TOKEN" \
    --subdomain="$SAIL_SHARE_SUBDOMAIN" \
    "$@"

I tried to get a free token with expose.dev.
docker run --init --rm -p "$SAIL_SHARE_DASHBOARD":4040 -t beyondcodegmbh/expose-server:latest share http://host.docker.internal:"$APP_PORT" \
    --auth="my-token" \
    "$@"

The sharedwithexpose.com server is 2.1.0.
This is no problem.

Therefore, what about upgrading the Expose server version of "laravel-sail.site"?

Heya. We updated Expose on the server. All seems to work again. Thanks!


2D particle refactoring

See https://code.google.com/p/libgdx/issues/detail?id=1181

Never going to happen i guess. Lazy @NathanSweet :p

Keep the dream alive!
On Mon, Feb 2, 2015 at 7:09 PM, Mario Zechner<EMAIL_ADDRESS>wrote:

Never going to happen i guess. Lazy @NathanSweet
https://github.com/NathanSweet :p
—
Reply to this email directly or view it on GitHub
https://github.com/libgdx/libgdx/issues/909#issuecomment-72506410.


s3a URL not working

I am trying to follow the documentation to allow ADAM to read a BAM file from S3.
According to https://adam.readthedocs.io/en/latest/deploying/aws/#input-and-output-data-on-hdfs-and-s3 I should run a command like this:
adam-submit --packages com.amazonaws:aws-java-sdk-pom:1.11.463,net.fnothaft:jsr203-s3a:0.0.1 -- transformAlignments s3a://1000genomes/phase1/data/NA12878/exome_alignment/NA12878.mapped.illumina.mosaik.CEU.exome.20110411.bam  /mnt/test.adam
When I run that command, I get an error with many unresolved dependency jars:
:: problems summary ::
:::: WARNINGS
[NOT FOUND  ] org.apache.commons#commons-math3;3.1.1!commons-math3.jar (0ms)
....
:::: WARNINGS
[NOT FOUND  ] org.apache.commons#commons-math3;3.1.1!commons-math3.jar (0ms)
    ==== local-m2-cache: tried

      file:/home/ubuntu/.m2/repository/org/apache/commons/commons-math3/3.1.1/commons-math3-3.1.1.jar

            [NOT FOUND  ] commons-collections#commons-collections;3.2.1!commons-collections.jar (0ms)

It's not clear to me (I don't work with Java much) what is going on, but my guess is that the tool that should be downloading package dependencies doesn't run, and it's just looking for cached data in the maven cache.

Hello @dekinsitro, thank you for submitting this issue.
The docs suggest including org.apache.hadoop:hadoop-aws:2.7.4, so you may want to try
adam-submit \
  --packages com.amazonaws:aws-java-sdk-pom:1.11.463,org.apache.hadoop:hadoop-aws:2.7.4,net.fnothaft:jsr203-s3a:0.0.1 \
  -- \
  transformAlignments \
  s3a://1000genomes/phase1/data/NA12878/exome_alignment/NA12878.mapped.illumina.mosaik.CEU.exome.20110411.bam \
  /mnt/test.adam

Are you running Spark on AWS, perhaps via EMR?

I'm running on a simple Ubuntu 18.04 EC2 VM, not EMR.  Spark/EMR on AWS already includes the necessary s3 connector jars.
Using your command changes the error, but still roughly the same problem:
adam-submit
--packages com.amazonaws:aws-java-sdk-pom:1.11.463,org.apache.hadoop:hadoop-aws:2.7.4,net.fnothaft:jsr203-s3a:0.0.1
--
transformAlignments
s3a://1000genomes/phase1/data/NA12878/exome_alignment/NA12878.mapped.illumina.mosaik.CEU.exome.20110411.bam
/mnt/test.adam
produces:
::::::::::::::::::::::::::::::::::::::::::::::
            ::              FAILED DOWNLOADS            ::

            :: ^ see resolution messages for details  ^ ::

            ::::::::::::::::::::::::::::::::::::::::::::::

            :: com.google.code.findbugs#jsr305;3.0.0!jsr305.jar

            :: org.apache.commons#commons-math3;3.1.1!commons-math3.jar

            :: com.sun.jersey#jersey-json;1.9!jersey-json.jar(bundle)

            :: org.codehaus.jettison#jettison;1.1!jettison.jar(bundle)

            :: com.sun.xml.bind#jaxb-impl;2.2.3-1!jaxb-impl.jar

            :: org.codehaus.jackson#jackson-jaxrs;1.9.13!jackson-jaxrs.jar

            :: org.codehaus.jackson#jackson-xc;1.9.13!jackson-xc.jar

            :: com.sun.jersey#jersey-server;1.9!jersey-server.jar(bundle)

            :: org.tukaani#xz;1.0!xz.jar

            :: jline#jline;0.9.94!jline.jar

            ::::::::::::::::::::::::::::::::::::::::::::::

I don't see any indication the packages are even being attempted to download, just looking for them in the cache.

Right, things can be a little bit different depending on the Spark installation.
For example, for me on Cloudera CDH only the jsr203-s3a is necessary
$ export AWS_SECRET_ACCESS_KEY=...
$ export AWS_ACCESS_KEY_ID=...
$ adam-submit --packages net.fnothaft:jsr203-s3a:0.0.1 ...

I don't know why your version of Spark isn't trying to download the necessary dependencies, perhaps there are some network or ivy settings issues?
Another option would be to pull the dependencies into your local ivy cache using ivy directly
$ ivy -dependency com.google.code.findbugs jsr305 3.0.0
:: loading settings :: url = jar:file:/usr/local/Cellar/ivy/2.4.0/libexec/ivy-2.4.0.jar!/org/apache/ivy/core/settings/ivysettings.xml
:: resolving dependencies :: com.google.code.findbugs#jsr305-caller;working
	confs: [default]
	found com.google.code.findbugs#jsr305;3.0.0 in public
downloading https://repo1.maven.org/maven2/com/google/code/findbugs/jsr305/3.0.0/jsr305-3.0.0.jar ...
......... (19kB)
.. (0kB)
	[SUCCESSFUL ] com.google.code.findbugs#jsr305;3.0.0!jsr305.jar (73ms)
downloading https://repo1.maven.org/maven2/com/google/code/findbugs/jsr305/3.0.1/jsr305-3.0.0-sources.jar ...
........ (16kB)
.. (0kB)
	[SUCCESSFUL ] com.google.code.findbugs#jsr305;3.0.0!jsr305.jar(source) (59ms)
downloading https://repo1.maven.org/maven2/com/google/code/findbugs/jsr305/3.0.1/jsr305-3.0.0-javadoc.jar ...
...................... (173kB)
.. (0kB)
	[SUCCESSFUL ] com.google.code.findbugs#jsr305;3.0.0!jsr305.jar(javadoc) (88ms)
:: resolution report :: resolve 909ms :: artifacts dl 224ms
	---------------------------------------------------------------------
	|                  |            modules            ||   artifacts   |
	|       conf       | number| search|dwnlded|evicted|| number|dwnlded|
	---------------------------------------------------------------------
	|      default     |   1   |   1   |   1   |   0   ||   3   |   3   |
	---------------------------------------------------------------------

I'll try hopping on an Ubuntu EC2 instance tomorrow to see if I can replicate your issue.

Interesting suggestion.  Please do try to reproduce this problem with a modern (18.04 Ubuntu) VM if possible.  I'm basically doing either "conda install -c conda-forge adam" or "pip install bdgenomics.adam"
then trying to run a basic transformAlignments on an s3-sourced file

Sorry for dropping this for a while, I'll try to replicate this later this week with the new 0.27.0 release.


Hombrew  package creation

have you consider homebrew support ?
happy to raise an PR

Feel free - https://github.com/alexellis/homebrew-alexellis

@stiliajohny is this still something you want?
I've added kubetrim to my tap, but it's not tested, and ships an AMD64 binary, feel free to update it to include both architectures:
https://github.com/alexellis/homebrew-alexellis
Something like this:
class Arkade < Formula
  desc "Open Source Marketplace For Developer Tools"
  version "0.11.27"

  on_macos do
    if Hardware::CPU.arm?
      url "https://github.com/alexellis/arkade/releases/download/0.11.27/arkade-darwin-arm64"
      sha256 "YOUR_ARM64_SHA256"

      def install
        bin.install "arkade-darwin-arm64" => "arkade"
      end
    elsif Hardware::CPU.intel?
      url "https://github.com/alexellis/arkade/releases/download/0.11.27/arkade-darwin-amd64"
      sha256 "YOUR_AMD64_SHA256"

      def install
        bin.install "arkade-darwin-amd64" => "arkade"
      end
    end
  end
end


Update aws-java-sdk-bundle to 1.12.537

About this PR
📦 Updates com.amazonaws:aws-java-sdk-bundle from 1.12.530 to 1.12.537
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.amazonaws", artifactId = "aws-java-sdk-bundle" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "com.amazonaws", artifactId = "aws-java-sdk-bundle" }
}]

labels: library-update, early-semver-patch, semver-spec-patch, commit-count:1

Superseded by #2864.


Fine-tuning for sentence comparison

Thanks a lot for open sourcing your excellent job. I would like to further fine-tune your model for comparing two sentences and getting their similarity scores. You guys made the MEDI dataset as a general format for retrieving, pairwise classification, clustering etc with {query, pos, neg, task_name}. For my need, I want to compare two sentences by encoding and finding cosine similarity. Then what should be the format for my training set? I think neg sentences might not need for this(If needed, why?).
Please assist me with this. Thank you

Hi, Thanks a lot for your interest in the INSTRUCTOR!
You may follow https://github.com/HKUNLP/instructor-embedding#data to prepare the training set. The negative sentences are necessary for the training, because the model not only needs to learn to minimize the distance between positive pairs, but also needs to learn to maximize the distance between negative pairs.

An easy way to achieve the same effect would be to split the data. If you split the data into different pieces, then you can encode them separately without considering the communications between different threads.


[5.6] Make it easier to extend relationship classes

what is new in this PR

with this PR we can easily change relationship classes

"imports", "classes array" and "method in a class" now have the same order :

hasOne
morphOne
belongsTo
morphTo
hasMany
hasManyThrough
morphMany
belongsToMany
morphToMany

currently if you want extend relation it looks like this :

https://github.com/fico7489/laravel-pivot/blob/master/src/Traits/ExtendBelongsToManyTrait.php
trait ExtendBelongsToManyTrait
{
    /**
     * Define a many-to-many relationship.
     *
     * @param  string  $related
     * @param  string  $table
     * @param  string  $foreignPivotKey
     * @param  string  $relatedPivotKey
     * @param  string  $parentKey
     * @param  string  $relatedKey
     * @param  string  $relation
     * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
     */
    public function belongsToMany($related, $table = null, $foreignPivotKey = null, $relatedPivotKey = null,
                                  $parentKey = null, $relatedKey = null, $relation = null)
    {
        // If no relationship name was passed, we will pull backtraces to get the
        // name of the calling function. We will use that function name as the
        // title of this relation since that is a great convention to apply.
        if (is_null($relation)) {
            $relation = $this->guessBelongsToManyRelation();
        }

        // First, we'll need to determine the foreign key and "other key" for the
        // relationship. Once we have determined the keys we'll make the query
        // instances as well as the relationship instances we need for this.
        $instance = $this->newRelatedInstance($related);

        $foreignPivotKey = $foreignPivotKey ?: $this->getForeignKey();

        $relatedPivotKey = $relatedPivotKey ?: $instance->getForeignKey();

        // If no table name was provided, we can guess it by concatenating the two
        // models using underscores in alphabetical order. The two model names
        // are transformed to snake case from their default CamelCase also.
        if (is_null($table)) {
            $table = $this->joiningTable($related);
        }

        return new BelongsToManyCustom(
            $instance->newQuery(), $this, $table, $foreignPivotKey,
            $relatedPivotKey, $parentKey ?: $this->getKeyName(),
            $relatedKey ?: $instance->getKeyName(), $relation
        );
    }
}

with my change It will be just
trait ExtendBelongsToManyTrait
{
    public static function bootExtendBelongsToManyTrait()
    {
        self::$relationClasses['belongsToMany'] = BelongsToManyCustom::class;
    }
}

and this is really awkward, especially if you have a different branch for each laravel versions because these relationship methods are different for each laravel version. Also, I see that many people want to extend relationship classes in packages and this PR will help them with that.
Solution is not fancy with interfaces and patterns but is better than the current.

I like the concept, but I would rather have it on a new{Relation}() method that you can override. Similar to this https://github.com/laravel/framework/blob/5.5/src/Illuminate/View/Factory.php#L246 or this https://github.com/laravel/dusk/blob/2.0/src/TestCase.php#L135. It's easy to override the method and you don't have to instantiate a variable.

@deleugpn I am not sure what are you mean.
1.I can't create new relation instance inside new newRelation method because each relation has different arguments and the completely different way how the instance is created.
I only can do something like this :
protected static $relationClasses = [
    HasOne::class => HasOne::class,
    MorphOne::class => MorphOne::class,
    BelongsTo::class => BelongsTo::class,
    BelongsTo::class => MorphTo::class,
    HasMany::class => HasMany::class,
    HasManyThrough::class => HasManyThrough::class,
    MorphMany::class => MorphMany::class,
    BelongsToMany::class => BelongsToMany::class,
    MorphToMany::class => MorphToMany::class,
];

protected static function relationClass($relation){
    return self::$relationClasses[$relation];
}

public function hasOne($related, $foreignKey = null, $localKey = null)
{
    $instance = $this->newRelatedInstance($related);

    $foreignKey = $foreignKey ?: $this->getForeignKey();

    $localKey = $localKey ?: $this->getKeyName();

    $relationClass = static::relationClass(HasOne::class);

    return new $relationClass($instance->newQuery(), $this, $instance->getTable().'.'.$foreignKey, $localKey);
}

Instead of return new $var(...) use return $this->newHasOne(...). Methods over magic variables.

@deleugpn
1.you have in mind one method for each relation :
newHasOne, newBelongsTo ...
or
2.something like :
public function __call($method, $parameters)
{
    $mapping = [
        'newHasOne'   => HasOne::class,
        'newMorphOne' => MorphOne::class,
        //...
    ];

    if(inArray($method, $mapping)){
        return new $mapping[$method]($parameters);
    }

    return parent::__call($method, $parameters);
}

One for each.

If you mean like this :
1 .
protected function newBelongsToMany()
{
    return new BelongsToManyCustom(func_get_args());
}

then ok, but if you mean like this:
2 .
protected function newBelongsToMany($param, $param2, ...)
{
    return new BelongsToManyCustom($param, $param2);
}

is not ok for me because laravel have different argument count and types of relations between versions, and then I anyway must change newBelongsToMany() function for each laravel version what is not the goal. I am a little bit skeptical because I can't find the example of the first way in laravel code, but I can find the second one...
What is the procedure now I should create new PR or I can commit to this one?

@deleugpn  any news on this?
another example:
in this package, I extended "BelongsTo" and "HasOne" relations
https://github.com/fico7489/laravel-eloquent-join/blob/master/src/Traits/ExtendRelationsTrait.php
with current laravel core code, I have to have the separate branch for each laravel version (5.2 5.3 .5.4 5.5) with my PR I could have only one branch for all laravel versions.
It gets more complicated if I want to use more packages that extend the same relation, but with this PR, it could be much simpler, elegant and better.

If the arguments change between versions you are going to have to update your code anyways? Right?

@taylorotwell  If I could just define which class laravel should use then no if I have to define how this class should be created then yes.
'hasOne' => HasOne::class
vs
protected function newHasOne($param, $param2, ...)
{
    return new newHasOne($param, $param2);
}

I agree with Taylor. Both solution are exactly the same. The difference is that one uses an array and instantiate a magic variable and the other offers a method for you to override.

Going to hold off on this for now. I'm open to seeing the method based approach to see if I like it a bit better.

Will try to pick this up after the holidays.


https://developer.mozilla.org/en-US/docs/Learn/CSS

Request type

[ ] Please close this issue, I accidentally submitted it without adding any details
[ ] New documentation
[x] Correction or update

Details

The Prerequisites section on "Learn to style HTML using CSS" contains some confusing and/or outdated information. See screenshot:

The way it's structured states that the Introduction to HTML module will contain

Introduction to CSS module (it doesn't, and this has been renamed to "CSS first steps" anyway.
JavaScript (it doesn't)

Please remove the two entries and update the items with the items that are available within the "Introduction to HTML" modules.

https://developer.mozilla.org/en-US/docs/Learn/CSS

Hi @asbourlotos! Thanks for reporting this; I really don't know how the page ended up like that ;-)
I've edited it to remove the confusion. I think it works much better now.


ci: correct to create kubernetes with helm/kind-action.

Fixes #N/A
Description
currently, create kubernetes cluster with helm/kind-action by default,  it's always using create the kubernetes v1.29.2, see https://github.com/kubernetes-sigs/karpenter/actions/runs/10275469972/job/28434158108
How was this change tested?
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>7
Details

0 of 0   changed or added relevant lines in 0 files are covered.
2 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.02%) to 77.909%

Files with Coverage Reduction
New Missed Lines
%

pkg/test/expectations/expectations.go
2
94.64%

Totals

Change from base Build<PHONE_NUMBER>1:
-0.02%

Covered Lines:
8898

Relevant Lines:
11421

💛  - Coveralls


Replace two different turbo-frame from one response

Situation:

There is a profile form where the user can update his own name.
There is, in the same page, a navigation bar where the username is shown.
When the user submit the profile form, the response is just the turbo-frame with the profile form and a "saved" message.
I want to return, in the same response, another turbo-frame with the navigation username updated (so it is updated in the navigation bar).
When I tried the two turbo-frames in the same response, this won't update the navigation username.

Question:

Is there anyway to do this without turbo-streams? Can 2 turbo-frames be returned in the same response that updates different parts of the page? If so, how?
If is not possible right now, would be possible in the future to write a comma-separated string in the data-turbo-frame attribute in forms, so we can replace two different turbo-frames in the page? (in the reference, there is a way where the form can replace the navigation turbo-frame, but then the self turbo-frame can not be replaced).

Great package. Thanks!

See this commit to see how to do this https://github.com/hotwired/turbo-rails/commit/5c49e57f3431956818e9e40a7e87f7bcdaf3a0e5

Thanks @robzolkos
I am not using ruby, but this looks to me like it is related to turbo-streams, returning different responses depending on the existence of a template, and not related to turbo-frames, but maybe I am wrong and not understanding the PR. What I want is to return 2 turbo-frames in the same response, not to return one or the other.
Is that what the PR does and I am misunderstanding it?

By the way, here is a discussion on the hotwire discuss, of someone trying to achieve the same thing:
https://discuss.hotwire.dev/t/loading-two-frames-from-a-single-application-visit-event/1556

As far as I understand, frames are for scoped navigation. If you want to replace 2 parts of your page at once after a form submit (or from websocket) you need to use turbo streams to replace both those elements.
If the only thing you do with those blocks is bulk replace them and they don't have their own navigation context, you don't even need to use frames, turbo streams just replace from DOM id.

If you want to replace multiple frames, you can also just target _top and replace the whole thing via drive. But otherwise there won't be a path to custom replace two frames. When you need that, you gotta go to turbo streams.

Yes, finally I am targeting _top to do it. The downside of this is that, as a redirect is needed to use _top, the whole page can make heavy operations (not my current case), and targeting _top would be unnecessarily slow because that parts of the page wouldn't change.
Using streams could avoid that, but it feels a little bit overcomplicated to me just to replace two frames. That is why I thought that maybe there would be an easy way where two frames can be used in a form response.
Thanks and good work!

Hi! How about this solution?

A form submitted from a turbo-frame
The server applies the change and sends a redirect back to the browser
Browser (turbo) calls the redirect's location
In the result of this GET request I simply render two turbo stream fragments. The first one replaces the turbo-frame which was the source of the form submission. The second replaces any other element on the page. Note: the response content type has to be Content-Type: text/html; turbo-stream

<turbo-stream action="replace" target="order_form_5">
    <template>
        <turbo-frame id="order_form_5">

            	Content of order form

        </turbo-frame>
    </template>
</turbo-stream>
<turbo-stream action="replace" target="welcome">
	<template>

i am changed

    </template>
</turbo-stream>

Hi! How about this solution?

A form submitted from a turbo-frame
The server applies the change and sends a redirect back to the browser
Browser (turbo) calls the redirect's location
In the result of this GET request I simply render two turbo stream fragments. The first one replaces the turbo-frame which was the source of the form submission. The second replaces any other element on the page. Note: the response content type has to be Content-Type: text/html; turbo-stream

<turbo-stream action="replace" target="order_form_5">
    <template>
        <turbo-frame id="order_form_5">

            	Content of order form

        </turbo-frame>
    </template>
</turbo-stream>
<turbo-stream action="replace" target="welcome">
	<template>

i am changed

    </template>
</turbo-stream>

@tothda fantastic! it works!
In fact, it's even simpler. There is no need to redirect to another location that loads the streams. Just return a response from the form submitted with turbo-frame, with:

Content-Type: text/html; turbo-stream
Status code 200
All the streams you want to replace, with the formatting that you have written in your message

And all contents will be replaced without any kind of async calls.
@dhh I think this is a common case (example: the user name changes in the navbar dropdown when the user updates his profile name). Maybe it makes sense to add a little note in the turbo-frame/turbo-stream doc? Do you think it's a good idea?
Thanks to all!

@tothda fantastic! it works!
In fact, it's even simpler. There is no need to redirect to another location that loads the streams. Just return a response from the form submitted with turbo-frame, with:

Content-Type: text/html; turbo-stream
Status code 200
All the streams you want to replace, with the formatting that you have written in your message

And all contents will be replaced without any kind of async calls.
@dhh I think this is a common case (example: the user name changes in the navbar dropdown when the user updates his profile name). Maybe it makes sense to add a little note in the turbo-frame/turbo-stream doc? Do you think it's a good idea?
Thanks to all!

@davidjr82 I just tried it with the latest version, the response had Content-Type: text/html; turbo-stream and the html contained the turbo-stream replace, but the target did not get updated.  Is it not possible to replace targets outside of the current turbo frame?

@davidjr82 I just tried it with the latest version, the response had Content-Type: text/html; turbo-stream and the html contained the turbo-stream replace, but the target did not get updated.  Is it not possible to replace targets outside of the current turbo frame?

Thanks @tothda and @davidjr82!
Small update: with Rails 7 I used content type "text/vnd.turbo-stream.html" and it worked perfectly!

For new searchers, how To target multiple elements with a single action, use the targets attribute with a CSS query selector
https://turbo.hotwired.dev/reference/streams#targeting-multiple-elements

Here's another use case where this would be handy for GET requests using only frames.
Imagine having:

A video player (frame)
A table of contents sidebar to choose which video to play
A list of links under the video player (frame)

When navigating to different videos using the table of contents, both the video frame and links frame would get updated.
Using _top here to break out and use drive painful because rendering the TOC is heavy.

There can be an infinite number of scenarios where having a single turbo-frame generated request update multiple frames in its response is desirable.
Using data-turbo-frame="_top" results in a terrible experience when the page update is complicated and results in content shifting around during the repaint and potentially losing scroll position.
The scenario that brought me here is that we have a system where we allow access to edit the view templates but not the backend logic. There are workarounds but it would be much simpler to allow a view author to just list the elements to be replaced from the response: data-turbo-frames="self nav #toc". Perhaps self here could be implied and it could be data-turbo-frames="nav #toc" to replace the  and
 elements in addition to the <turbo-frame> element that initiated the request.
Is there a compelling technical reason not to support this use case?

Another solution to the problem could be to custom renderer. Use only one frame per page and exclude blocks you don't want to update.

        <title>Example</title>

        <turbo-frame id="detail-page" data-turbo-action="advance" data-turbo-marphdom="true">

                    Not update aside col

                    Link 1
                    Link 2

        </turbo-frame>

import morphdom from 'morphdom'

document.addEventListener('turbo:before-frame-render', (event) => {
  const { target } = event;
  if (!target.hasAttribute('data-turbo-morphdom')) {
    return;
  }

  event.detail.render = (fromNode, toNode) => {
    morphdom(fromNode, toNode, {
      onBeforeElUpdated: (fromEl, toEl) => {
        if (fromEl.isEqualNode(toEl)) {
          return false
        }

        return !fromEl.hasAttribute('data-morphdom-ignore');
      },
    });
  };
});

Sure, you can set up nested frames on the page in the same way.

This may or may not solve the problem for you, but there is one more option that is not obvious nor seem to be documented. You can nest turbo streams inside turbo frame like this:
<turbo-frame id="some_frame">
  <turbo-stream action="update" target="element1">
    ...
  </turbo-stream>

  <turbo-stream action="update" target="element2">
    ...
  </turbo-stream>
</turbo-frame>

I'm struggling with this same issue of wanting to update two frames in response to a single click. My situation is much like @nickjj described with his video player example.
Turbo 8 creates a possible solution to this problem. You can target _top and if rails determines this is a Page Refresh then it will use page morphing and smartly update only the parts of the page that changed, but there can be many separate parts sprinkled throughout the page within different frames. This new behavior is explained pretty well in this article: https://jonsully.net/blog/turbo-8-page-refreshes-morphing-explained-at-length
But rails only does a Page Refresh morph when you have a route such as /videos and clicking a button POSTs to a route such as /videos/123 then redirects back to /videos. But if you instead have a route such as /videos which has a link that does a GET that targets _top, rails decides to do a full page Turbo Drive refresh instead.
I "solved" this issue by turning my link into a POST which then does a redirect back to my original URL, but this does not feel like the right solution. It feels dirty and hacky and caused me to introduce a new route. I'm still investigating if the new Page Refresh action can be explicitly invoked rather than implicitly being triggered by comparing the URLs. It feels like we should just be able to put data-turbo-action="morph" on an element to explicitly trigger it, but it does not appear to work this way.

Thanks @krschacht. I'm not sure if Turbo 8 will have a solution in the end because the page morphing happens client side right?
If that's the case then the expensive queries and view rendering will happen server side to generate the full HTML payload to send back to the client where it will be diff'd. This includes expensive table of contents rendering, questions and answers and other content that could exist on the page in addition to the video frame.
Using individual frames and streams allows you to bypass having to render those other expensive areas of the page because on the server it will only render what needs to be rendered in the frame or stream (in this case the video player).
Unless I'm drastically misunderstanding how Turbo 8 works?

@nickjj It does, but when you follow the full Rails Turbo playbook this is not an issue.
At the end of the day, full page refreshes always end up fast through two techniques: caching and decomposition through frames. (1) There is such a heavy incentive to make the full page render fast and rails caching provides multiple ways to address this. So if the concern over morphing is that the full page render is expensive then your issue is likely elsewhere. (2) In the cases where there is still a challenge on full page load, you throw the offending section into a turbo frame. Not only does this facilitate caching, but you can then load the frame in parallel/async so that the rest of the page doesn't block on it. You can also put a data-turbo-permanent and/or refresh=morph on your frame.
When these two things are in place, you trigger a full page reload and the permanent tag ensures this frame won't be re-requested. This sounds like the solution to your expensive table-of-contents situation. Plus, in the rare case when you do want the frame to be reloaded without reloading the full page, you trigger that explicitly with javascript and having refresh=morph will even do morphing of the newly updated frame.
I'm still piecing all this together, but overall Turbo 8 does bring the right new tools for replacing multiple turbo-frames in one response. I'm still just trying to figure out how to trigger full page morphs without having to redirect back to the original page.